编辑: liubingb | 2018-11-22 |
m=0.2;
b=0.1;
i=0.006;
g=9.8;
l=0.3;
q=(M+m)*(i+m*l^2)-(m*l)^2;
num=[m*l/q 0] den=[1 b*(i+m*l^2)/q C(M+m)*m*g*l/q Cb*m*g*l/q] 运行结果如下: num = 4.5455
0 den = 1.0000 0.1818 -31.1818 -4.4545 更进一步,给小车施加一个脉冲推力,要得到系统的开环脉冲响应,可以在上面的m文件后加上几行: M=0.5;
m=0.2;
b=0.1;
i=0.006;
g=9.8;
l=0.3;
q=(M+m)*(i+m*l^2)-(m*l)^2;
num=[m*l/q 0] den=[1 b*(i+m*l^2)/q C(M+m)*m*g*l/q Cb*m*g*l/q] t=0:0.01:5;
impulse(num,den,t) axis([0
1 0 60]) 可以得到系统的开环响应曲线如下: 3.4.2 状态方程法仿真 状态方程法可以进行单输入系统设计,因此在这个单节倒立摆系统中,我们将尝试同时对摆角和小车的位置进行控制.为了更具有挑战性,给小车一个阶跃输入信号,设计指标如下: 1)小车位置X和摆杆角度的稳定时间小于5秒: 2)位置X的上升时间小于5秒;
3)摆杆角度的超调量小于20(0.35弧度). 下面,我们用Matlab求出系统得状态空间方程各矩阵,并仿真系统的开环响应,在这里同样给出了一个m_文件,执行m文件,Matlab将会给出系统状态空间方程的A,B,C,和 D矩阵,并给出在给定输入为一个人0.2ms阶跃信号时系统的响应曲线. M=0.5;
m=0.2;
b=0.1;
i=0.006;
g=9.8;
l........