合肥工业大学自动控制理论综合实验倒立摆实验报告

更新时间:2023-03-10 20:21:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、把上述参数代入,求解系统的实际模型; a) 摆杆角度和小车位移之间的传递函数;

M=1.096;m=0.109;b=0.1;l=0.25;I=0.0034;g=9.8; n1=[m*l 0 0];d1=[I+m*l^2 0 -m*g*l]; Phi1=tf(n1,d1)

返回:

Transfer function: 0.02725 s^2 -------------------- 0.01021 s^2 - 0.2671

b) 摆杆角度和小车加速度之间的传递函数;

继续输入: n2=[m*l];d2=d1; Phi2=tf(n2,d2) 返回:

Transfer function: 0.02725

-------------------- 0.01021 s^2 - 0.2671

c) 摆杆角度和小车所受外界作用力的传递函数;

继续输入:q=(M+m)*(I+m*l^2)-(m*l)^2; n3=[m*l/q 0 0];d3=[1 b*(I+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0]; Phi3=tf(n3,d3) 返回:

Transfer function:

2.357 s^2

--------------------------------------- s^4 + 0.08832 s^3 - 27.83 s^2 - 2.309 s

d) 以外界作用力作为输入的系统状态方程; 继续输入:q2=(I*(M+m)+M*m*l^2);

A1=[0 1 0 0;0 -(I+m*l^2)*b/q2 m^2*g*l^2/q2 0;0 0 0 1;0 -m*l*b/q2 m*g*l*(M+m)/q2 0];

B1=[0;(I+m*l^2)/q2;0;m*l/q2];C1=[1 0 0 0;0 0 1 0];D1=[0;0]; sys1=ss(A1,B1,C1,D1)

返回:a =

x1 x2 x3 x4 x1 0 1 0 0 x2 0 -0.08832 0.6293 0 x3 0 0 0 1 x4 0 -0.2357 27.83 0 b =

u1 x1 0 x2 0.8832 x3 0 x4 2.357

c =

x1 x2 x3 x4 y1 1 0 0 0 y2 0 0 1 0 d =

u1 y1 0 y2 0

e) 以小车加速度作为输入的系统状态方程;

继续输入:A2=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 3/(4*l) 0];B2=[0;1;0;3/(4*l)];

C2=C1;D2=D1;

sys2=ss(A2,B2,C2,D2) 返回:

a =

x1 x2 x3 x4 x1 0 1 0 0 x2 0 0 0 0 x3 0 0 0 1 x4 0 0 3 0 b =

u1 x1 0 x2 1 x3 0 x4 3 c =

x1 x2 x3 x4 y1 1 0 0 0 y2 0 0 1 0 d =

u1 y1 0 y2 0

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 =

0 1 0 0 1 0 0 0 0 3 0 9 3 0 9 0

Qo2 =

1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3

Rc2 =

4

Ro2 =

4

可控性和可观性判别矩阵是满秩的,所以系统完全能控,完全能观。

3、利用matlab画出倒立摆系统(以小车的加速度为输入的模型)阶跃响应曲线; 继续输入:step(sys2) 得到:

Step Response32.5To: Out(1)Amplitude21.510.5054To: Out(2)321000.511.5Time (sec)22.53可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。

4.利用matlab画出倒立摆系统(以小车的加速度为输入的模型)的根轨迹; 继续输入:A2_1=[0 1;0 0];B2_1=[0;1];C2_1=[1 0];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=[1 0];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([T 1],[alfaT 1])%得到Gc(s) 返回:

Transfer function: 0.1044 s + 1 ------------- 0.01383 s + 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*l 0 0];d1=[I+m*l^2 0 -m*g*l]; Phi1=tf(n1,d1); n2=[m*l];d2=d1; Phi2=tf(n2,d2);

n3=[m*l/q 0 0];d3=[1 b*(I+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0]; Phi3=tf(n3,d3);

q2=(I*(M+m)+M*m*l^2);

A1=[0 1 0 0;0 -(I+m*l^2)*b/q2 m^2*g*l^2/q2 0;0 0 0 1;0 -m*l*b/q2 m*g*l*(M+m)/q2 0];

B1=[0;(I+m*l^2)/q2;0;m*l/q2];C1=[1 0 0 0;0 0 1 0];D1=[0;0]; sys1=ss(A1,B1,C1,D1);

A2=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 3/(4*l) 0];B2=[0;1;0;3/(4*l)]; C2=C1;D2=D1;

sys2=ss(A2,B2,C2,D2);

A2_1=[0 1;0 0];B2_1=[0;1];C2_1=[1 0];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=[1 0];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=B C=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)

本文来源:https://www.bwwdw.com/article/csow.html

Top