合肥工业大学自动控制理论综合实验倒立摆实验报告.docx
《合肥工业大学自动控制理论综合实验倒立摆实验报告.docx》由会员分享,可在线阅读,更多相关《合肥工业大学自动控制理论综合实验倒立摆实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
合肥工业大学自动控制理论综合实验倒立摆实验报告
合肥工业大学自动控制理论综合实验倒立摆实验报告
————————————————————————————————作者:
———————————————————————————————— 日期:
1、把上述参数代入,求解系统的实际模型;
a) 摆杆角度和小车位移之间的传递函数;
M=1.096;m=0.109;b=0.1;l=0.25;I=0.0034;g=9.8;
n1=[m*l0 0];d1=[I+m*l^2 0 -m*g*l];
Phi1=tf(n1,d1)
返回:
Transferfunction:
0.02725s^2
--------------------
0.01021s^2 -0.2671
b)摆杆角度和小车加速度之间的传递函数;
继续输入:
n2=[m*l];d2=d1;Phi2=tf(n2,d2)
返回:
Transferfunction:
0.02725
--------------------
0.01021s^2 -0.2671
c) 摆杆角度和小车所受外界作用力的传递函数;
继续输入:
q=(M+m)*(I+m*l^2)-(m*l)^2;n3=[m*l/q00];d3=[1 b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0];
Phi3=tf(n3,d3)
返回:
Transferfunction:
2.357s^2
---------------------------------------
s^4+0.08832s^3-27.83s^2-2.309 s
d) 以外界作用力作为输入的系统状态方程;
继续输入:
q2=(I*(M+m)+M*m*l^2);
A1=[0100;0 -(I+m*l^2)*b/q2m^2*g*l^2/q20;00 0 1;0-m*l*b/q2 m*g*l*(M+m)/q20];
B1=[0;(I+m*l^2)/q2;0;m*l/q2];C1=[1000;0010];D1=[0;0];
sys1=ss(A1,B1,C1,D1)
返回:
a=
x1 x2 x3x4
x1 0 1 0 0
x2 0 -0.088320.6293 0
x3 0 0 0 1
x4 0 -0.2357 27.83 0
b =
u1
x1 0
x20.8832
x3 0
x4 2.357
c=
x1 x2x3x4
y1 1 0 0 0
y2 001 0
d=
u1
y1 0
y2 0
e) 以小车加速度作为输入的系统状态方程;
继续输入:
A2=[0100;000 0;0001;003/(4*l) 0];B2=[0;1;0;3/(4*l)];
C2=C1;D2=D1;
sys2=ss(A2,B2,C2,D2)
返回:
a =
x1 x2 x3x4
x1 0 1 0 0
x20 000
x300 0 1
x4 0 0 30
b=
u1
x10
x21
x30
x4 3
c =
x1x2x3 x4
y110 00
y2 0 01 0
d =
u1
y10
y20
2、根据倒立摆系统数学模型(以小车的加速度为输入的模型,即sys2),判断开环系统的稳定性、可控性和可观性;
稳定性:
继续输入:
eig(A2)
返回:
ans=
1.7321
-1.7321
0
0
有一个位于正实轴的根和两个位于原点的根,表明系统是不稳定的。
可控性和可观性:
继续输入:
Qc2=ctrb(A2,B2)
Qo2=obsv(A2,C2)
Rc2=rank(Qc2)
Ro2=rank(Qo2)
返回:
Qc2=
01 00
1 0 0 0
0 3 0 9
3 090
Qo2=
1 0 0 0
00 1 0
0 1 0 0
0 0 0 1
0 00 0
0 0 3 0
00 0 0
0 0 0 3
Rc2=
4
Ro2 =
4
可控性和可观性判别矩阵是满秩的,所以系统完全能控,完全能观。
3、利用matlab画出倒立摆系统(以小车的加速度为输入的模型)阶跃响应曲线;
继续输入:
step(sys2)
得到:
可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。
4.利用matlab画出倒立摆系统(以小车的加速度为输入的模型)的根轨迹;
继续输入:
A2_1=[01;0 0];B2_1=[0;1];C2_1=[10];D2_1=0;
sys2_1=ss(A2_1,B2_1,C2_1,D2_1);
A2_2=[0 1;3/(4*l)0];B2_2=[0;3/(4*l)];C2_2=[10];D2_2=0;
sys2_2=ss(A2_2,B2_2,C2_2,D2_2);
rlocus(sys2_1)
rlocus(sys2_2)
得到:
直线倒立摆 MATLAB仿真实验
在MATLAB下绘制原系统(Phi2)的Bode图和乃奎斯特图。
继续输入:
bode(Phi2),grid
继续输入:
margin(Phi2)
得到幅值裕量和相角裕量
输入nyquist(Phi2)
得到乃奎斯特曲线:
可以得到,系统没有零点,但存在两个极点,其中一个极点位于右半s 平面,
根据奈奎斯特稳定判据,闭环系统稳定的充分必要条件是:
当ω 从−∞到+ ∞变
化时,开环传递函数G( jω) 沿逆时针方向包围-1 点p圈,其中p为开环传递函数
在右半S平面内的极点数。
对于直线一级倒立摆,由奈奎斯特图我们可以看出,开
环传递函数在S右半平面有一个极点,因此G(jω)需要沿逆时针方向包围-1点一圈。
可以看出,系统的奈奎斯特图并没有逆时针绕-1点一圈,因此系统不稳定,
需要设计控制器来镇定系统。
2、超前校正控制设计(绘制校正后系统的Bode图和乃奎斯特图)
直线一级倒立摆的频域法设计结构图如4-1所示。
其中G(s)为直线一级倒立摆的开环传递函数,G(s)c 为超前校正控制器。
1、设计控制器G(s)c,使得系统的静态误差位置系数为10,相位裕量为50°,增益裕
量等于或大于10db。
继续输入:
Pm2=55*pi/180;%超前矫正设计,将期望相角裕量换算成弧度
s=tf('s');%定义s为传递函数变量
Phi2_0=10/((0.01021/0.2671)*s^2-1);%矫正前系统开环传递函数,取静态位置误差系数为10
[mag2,phase2,w]=bode(Phi2_0);
alfa=(1-sin(Pm2))/(1+sin(Pm2));%计算a值
adb=20*log10(mag2);am=10*log10(alfa);
wc=spline(adb,w,am);%计算期望的矫正后系统穿越频率
T=1/(wc*sqrt(alfa));alfaT=alfa*T;
Gc2=tf([T1],[alfaT 1])%得到Gc(s)
返回:
Transferfunction:
0.1044s+1
-------------
0.01383s +1
上式即为超前矫正器。
2、绘制校正后系统的Bode图和和乃奎斯特图,读出校正后系统的相位裕量和幅值裕
量,判断是否满足要求的相位裕量和幅值裕量。
继续输入:
margin(Gc2*Phi2_0)%绘制系统伯德图并求出幅值裕量和相角裕量
继续输入:
nyquist(Gc2*Phi2_0)
实验三:
经典控制理论-一级倒立摆的PID 控制仿真实验
Kp=9时:
Kp=40:
Kp=40,Ki=0,Kd=4:
Kp=40,Ki=0,Kd=10:
Kp=40,Ki=20,Kd=4:
Kp=40,Ki=40,Kd=4:
实验四:
现代控制理论 -一级倒立摆的极点配置控制仿真实验
1、设计极点配置控制器u=— Kx,要求系统的调节时间大约为3秒和阻尼比为0.5;
由前面实验可知,以小车加速度为输入时,系统完全能控,完全能观。
输入:
M=1.096;m=0.109;b=0.1;l=0.25;I=0.0034;g=9.8;q=(M+m)*(I+m*l^2)-(m*l)^2;
n1=[m*l0 0];d1=[I+m*l^20-m*g*l];
Phi1=tf(n1,d1);
n2=[m*l];d2=d1;
Phi2=tf(n2,d2);
n3=[m*l/q00];d3=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q -b*m*g*l/q0];
Phi3=tf(n3,d3);
q2=(I*(M+m)+M*m*l^2);
A1=[0100;0-(I+m*l^2)*b/q2m^2*g*l^2/q2 0;0 0 01;0 -m*l*b/q2 m*g*l*(M+m)/q20];
B1=[0;(I+m*l^2)/q2;0;m*l/q2];C1=[1 000;0 010];D1=[0;0];
sys1=ss(A1,B1,C1,D1);
A2=[0100;000 0;0 0 01;0 03/(4*l)0];B2=[0;1;0;3/(4*l)];
C2=C1;D2=D1;
sys2=ss(A2,B2,C2,D2);
A2_1=[01;00];B2_1=[0;1];C2_1=[10];D2_1=0;
sys2_1=ss(A2_1,B2_1,C2_1,D2_1);
A2_2=[01;3/(4*l)0];B2_2=[0;3/(4*l)];C2_2=[10];D2_2=0;
sys2_2=ss(A2_2,B2_2,C2_2,D2_2);
P2_1=[-1/2+1.732/2*j-1/2-1.732/2*j];
K2_1=place(A2_1,B2_1,P2_1) %配置极点
P2_2=P2_1;
K2_2=place(A2_2,B2_2,P2_2) %配置极点
返回:
K2_1=
1.0000 1.0000
K2_2=
1.3333 0.3333
2、绘制原系统的脉冲响应曲线;
系统sys2_1的单位脉冲响应:
输入:
impulse(sys2_1)
系统sys2_的单位脉冲响应:
输入:
impulse(sys2_2)
3、绘制校正后(极点配置)系统的脉冲响应曲线;
校正后的系统矩阵分别变为:
A=A-B*K B=BC=C D=D;
故继续输入:
(1)sys2_1_K2_1=ss(A2_1-B2_1*K2_1,B2_1,C2_1,D2_1);
impulse(sys2_1_K2_1)
得到
(2)
sys2_2_K2_2=ss(A2_2-B2_2*K2_2,B2_2,C2_2,D2_2);
impulse(sys2_2_K2_2)