倒立摆实验.docx
《倒立摆实验.docx》由会员分享,可在线阅读,更多相关《倒立摆实验.docx(13页珍藏版)》请在冰豆网上搜索。
倒立摆实验
自控实验报告
——倒立摆控制实验报告
姓名:
丁蓉
学号:
0910200101
同组人:
丁亚男(0910200102)
秦冬亮(0910200206)
羌勤勤(0910200205)
吴利平(0910200213)
时间:
2012年5月5号
实验一建立一级倒立摆的数学模型
一、实验目的
学习建立一级倒立摆系统的数学模型,并进行Matlab仿真。
二、实验内容
写出系统传递函数和状态空间方程,用Matlab进行仿真。
三、实验步骤
(1)将数据代入公式,求出系统的传递函数;
(2)将数据代入公式,求出系统的状态空间方程;
(3)将实际系统的状态空间方程转化为传递函数,与1进行比较;
(4)求出传递函数的极点和状态方程A的特征值,进行比较;
(5)进行系统开环脉冲响应和阶跃响应的Matlab仿真。
四、MATLAB源程序
>>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=0;
>>gs=tf(num,den);
>>gs
Transferfunction:
2.054s
---------------------
s^2-29.16s-2.013
>>numpo=[(I+m*l^2)/q0-m*g*l/q];
>>denpo=[1b*(I+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0];
>>gspo=tf(numpo,denpo);
>>gspo
Transferfunction:
0.7391s-20.13
---------------------------------------
s^4+0.07391s^3-29.23s^2-2.013s
>>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);
>>sys
a=
x1x2x3x4
x10100
x20-0.073910.71750
x30001
x40-0.205429.230
b=
u1
x10
x20.7391
x30
x42.054
c=
x1x2x3x4
y11000
y20010
d=
u1
y10
y20
Continuous-timemodel.
>>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')
>>gs0=tf(sys);
>>gs0
Transferfunctionfrominputtooutput...
0.7391s^2+6.565e-016s-20.13
#1:
---------------------------------------
s^4+0.07391s^3-29.23s^2-2.013s
2.054s
#2:
-----------------------------------
s^3+0.07391s^2-29.23s-2.013
>>t=0:
T:
5;
>>y=impulse(sys,t);
>>figure
(2);
>>plot(t,y(:
1),t,y(:
2),'r');
>>axis([02080]);
>>legend('CarPosition','PendulumAngle');
>>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');
>>%通过状态方程求系统(摆杆角度和小车位置)的开环阶跃响应
>>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');
>>%求传递函数极点
P=pole(gs);
Po=pole(gspo);
>>p
p=
0.0173
>>Po
Po=
0
5.4042
-5.4093
-0.0689
>>%求A的特征值
E=eig(A);
>>E
E=
0
-0.0689
-5.4093
5.4042
5、结果展示及分析
1、系统的传递函数:
摆杆角度:
2.054s
---------------------
s^2-29.16s-2.013
小车位置:
0.7391s-20.13
---------------------------------------
s^4+0.07391s^3-29.23s^2-2.013s
2、系统的状态方程:
a=
x1x2x3x4
x10100
x20-0.073910.71750
x30001
x40-0.205429.230
b=
u1
x10
x20.7391
x30
x42.054
c=
x1x2x3x4
y11000
y20010
d=
u1
y10
y20
Dx=Ax+Bu
Y=Dx+Bu
3、状态方程转化为的传递函数
小车位置:
0.7391s^2+6.565e-016s-20.13
---------------------------------------
s^4+0.07391s^3-29.23s^2-2.013s
摆动角度:
2.054s
-----------------------------------
s^3+0.07391s^2-29.23s-2.013
可以发现两种方法得到传递函数不一样。
4、传递函数极点
摆角角度:
p=0.0173
小车位置Po=
0
5.4042
-5.4093
-0.0689
5、状态矩阵A的特征值
E=
0
-0.0689
-5.4093
5.4042
6、系统脉冲响应曲线(传递函数求得)
小车位置:
摆杆角度:
7、状态方程求得脉冲响应
摆杆角度:
小车位置:
8、传递函数求得系统的开环阶跃响应
小车位置:
摆动角度:
9、状态方程求得开环阶跃响应
小车位置:
摆杆角度:
6、思考题
(1)由状态空间方程转化为传递函数,是否与直接计算传递函数相等?
不相等
(2)通过仿真表明开环系统是否稳定?
请通过极点(特征值)理论来分析。
因为极点不都在左半平面,所以不稳定
(3)传递函数的极点和状态方程的特征值的个数、大小是否相等?
如果不相等,请解释其原因。
个数、大小相等。
因为状态方程转化为的传递函数其特征方程是相等的。