南京理工大学现代控制实验报告(倒立摆实验).docx
《南京理工大学现代控制实验报告(倒立摆实验).docx》由会员分享,可在线阅读,更多相关《南京理工大学现代控制实验报告(倒立摆实验).docx(25页珍藏版)》请在冰豆网上搜索。
倒立摆控制系统
实验报告
姓名:
学号:
同组人:
指导老师:
田杨
2014年4月
实验一建立一级倒立摆的模型
1.实验目的
建立一级倒立摆系统的数学模型,并进行Matlab仿真。
2.实验内容
写出系统的传递函数与状态空间方程,并用Matlab进行仿真。
3.实验步骤
实际系统参数如表1.1所示。
表1.1:
系统参数表
实验步骤如下:
(1)将数据代入公式,求出系统的传递函数;
(2)将数据代入公式,求出系统的状态空间方程;
(3)将实际系统的状态空间方程转化为传递函数,与1进行比较
(4)求出传递函数的极点和状态方程A的特征值,进行比较;
(5)进行系统开环脉冲响应和阶跃响应的Matlab仿真。
4.实验代码
系统传递函数gs(输出为摆杆角度)和gspo(输出为小车位置)构建:
M=1.32;m=0.132;b=0.1;l=0.27;I=0.0032;g=9.8;T=0.02;
q=(M+m)*(I+m*l^2)-(m*l)^2
num=[m*l/q0];
den=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q];
gs=tf(num,den)
numpo=[(I+m*l^2)/q0-m*g*l/q];
dempo=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0];
gspo=tf(numpo,dempo)
相应的状态方程为:
p=I*(M+m)+M*m*l^2;
A=[0100;0-(I+m*l^2)*b/pm^2*g*l^2/p0;0001;0-m*b*l/pm*g*l*(M+m)/p0];
B=[0;(I+m*l^2)/p;0;m*l/p];
C=[1000;0010];
D=0;
sys=ss(A,B,C,D)
实际系统仿真:
1)由系统传递函数仿真系统开环脉冲响应:
t=0:
T:
5;
y1=impulse(gs,t);
y2=impulse(gspo,t);
figure
(1);
plot(t,y2,'b',t,y1,'r');
xlabel('t/s');
ylabel('Position/morAngle/rad');
axis([02080]);
legend('CarPosition','PendulumAngle');
2)由状态方程求系统开环脉冲响应:
t=0:
T:
5;
y=impulse(sys,t);
figure
(2);
plot(t,y(:
1),t,y(:
2),'r');
xlabel('t/s');
ylabel('Position/morAngle/rad');
axis([02080]);
legend('CarPosition','PendulumAngle');
将状态方程转换为传递函数gs0:
gs0=tf(sys);
3)由传递函数求系统的开环阶跃响应:
t=0:
T:
5;
y1=step(gs,t);
y2=step(gspo,t);
figure(3);
plot(t,y2,'b',t,y1,'r');
axis([02.5080]);
xlabel('t/s');
ylabel('Position/morAngle/rad');
legend('CarPosition','PendulumAngle');
4)由状态空间方程求系统的开环阶跃响应:
t=0:
T:
5;
y=step(sys,t);
figure(4);
plot(t,y(:
1),t,y(:
2),'r');
xlabel('t/s');
ylabel('Position/morAngle/rad');
axis([02.5080]);
legend('CarPosition','PendulumAngle');
5.系统的传递函数和状态方程
5.1给出系统的传递函数和状态方程
在Matlab的CommandWindow内运行上面的源程序,会得出系统的传递函数
gs=2.054ss3+0.07391s2-29.23s-2.013
gspo=0.7391s2-20.13s4+0.07391s3-29.23s2-2.013s
以及状态方程sys(A,B,C,D):
A=01000-0.073910.7175000010-0.205429.230,
B=00.739102.054
C=10000010
D=00
5.2将实际系统的状态空间方程转化为传递函数:
gs‘=2.054ss3+0.07391s2-29.23s-2.013
gspo’=0.7391s2+6.565×10-16s-20.13s4+0.07391s3-29.23s2-2.013s≈0.7391s2-20.13s4+0.07391s3-29.23s2-2.013s
可见,由实际系统的状态空间方程转化为的传递函数与仿真的传递函数相一致。
5.3传递函数极点和系统状态矩阵A的特征值:
传递函数gspo的极点:
Po= 0
5.4042
-5.4093
-0.0689
系统状态矩阵A的特征值:
E= 0
-0.0689
-5.4093
5.4042
可见A的特征值与传递函数gspo的极点一致。
6.系统开环响应曲线
6.1由系统传递函数所得系统开环脉冲响应和阶跃响应
由系统传递函数求得开环脉冲响应曲线如下图1.1所示,开环阶跃响应曲线如下图1.2所示
图1.1开环脉冲响应曲线
图1.2开环阶跃响应曲线
6.2由系统状态方程所得系统开环脉冲响应和阶跃响应
由系统状态方程所得开环脉冲响应曲线如下图1.3所示,开环阶跃响应曲线如下图1.4所示。
图1.3开环脉冲响应曲线
图1.4开环阶跃响应曲线
由图可看出系统不稳定,响应趋于无穷,二是由状态空间方程得到的响应曲线与由传递函数得到的响应曲线是相同的,也就是说,两者在描述系统特性上是等价的。
那么由状态空间方程出发,设计控制方法也是可行的。
7、思考题
7.1由状态空间方程转化为传递函数,是否与直接计算传递函数相等?
答:
相等。
由系统直接计算传递函数,得:
gspo=0.7391s2-20.13s4+0.07391s3-29.23s2-2.013s
由状态方程计算传递函数,得:
gspo=0.7391s2+6.565e-016s-20.13s4+0.07391s3-29.23s2-2.013s
7.2通过仿真表明开环系统是否稳定?
请通过极点(特征值)理论来分析。
答:
利用Matlab计算传递函数gspo极点以及状态方程的特征值如下,
传递函数gspo的极点:
Po=[05.4042-5.4093-0.0689]
系统状态矩阵A的特征值:
E=[0-0.0689-5.40935.4042]
存在极点含有正实部,表明开环系统不稳定。
7.3传递函数的极点和状态方程的特征值的个数、大小是否相等?
如果不相等,请解释其原因。
答:
传递函数的极点和状态方程的特征值的个数、大小是相等的
传递函数gspo的极点:
Po=[05.4042-5.4093-0.0689]
系统状态矩阵A的特征值:
E=[0-0.0689-5.40935.4042]
可见A的特征值与传递函数gspo的极点大小相等、个数一致。
实验二倒立摆系统控制算法的状态空间法设计
1.实验目的
学习如何使用状态空间法设计系统的控制算法。
2.实验内容
用状态空间法设计控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为:
(1)杆角度µ和小车位移x的稳定时间小于5秒
(2)x的上升时间小于2秒2
(3)µ的超调量小于20度(0.35弧度)
(4)稳态误差小于4%.
3.Matlab源程序及程序执行结果
3.1Matlab源程序:
clearall;
M=1.32;m=0.132;b=0.1;l=0.27;I=0.0032;g=9.8;T=0.02;
p=I*(M+m)+M*m*l^2;
A=[0100;0
-(I+m*l^2)*b/pm^2*g*l^2/p0;0001;0-m*b*l/pm*g*l*(M+m)/p0];
B=[0;(I+m*l^2)/p;0;m*l/p];
C=[1000;0010];
D=0;
R=1;Q1=200;Q3=100;Q=[Q1000;0000;00Q30;0000];
K=lqr(A,B,Q,R)
Ac=A-B*K;
Bc=B*K
(1);
sysstate=ss(Ac,Bc,C,D)
t=0:
T:
5;
U=0.2*ones(size(t));y=lsim(sysstate,U,t);
figure
(1);
holdon;
plot(t,y(:
1),t,y(:
2),'r')
boxon;
xlabel('t/s');
ylabel('Position/morAngle/rad');
legend('CarPosition','PendulumAngle');
E=eig(Ac)
3.2Matlab程序的执行结果和仿真图形
3.2.1当Q1=200,Q3=100时,执行结果为:
K=[-14.1421-12.146763.582511.8413]
系统的响应曲线如下图2.1所示:
图2.1系统仿真的响应曲线(Q1=200,Q2=100)
3.2.2当Q_1=90,Q_3=100时,执行结果为:
K=[-9.4868-9.256756.287910.4228]
系统的响应曲线如下图2.2所示:
图2.2系统仿真的响应曲线(Q1=90,Q2=100)
由仿真数据可知,系统阶跃响应性能指标如下:
Q1/Q3
位移上升时间
位移调节时间
角度设置时间
角度超调量
200/100
1.68s
2.98s
2.25s
4.2%
90/100
1.56s
3.12s
2.56
3.6%
4.系统实际响应曲线
实验Simulink结构图:
4.1无扰动时响应结果
4.1.1当Q1=200;Q3=100时
图2.3无输入下小车实际响应曲线(Q1=200,Q2=100)
小车的稳定位置P1=-900
图2.4无输入下摆杆实际响应曲线(Q1=200,Q2=100)
摆杆的稳定角度Pend1=-1200
4.2阶跃输入时系统的响应结果
4.2.1当Q1=200;Q3=100时
图2.5小车实际阶跃响应曲线(Q1=200,Q2=100)
P2=-16333.33
小车的稳定位置:
P2-P1=-16333.33-(-900)=-15433