倒立摆实验三.docx
- 文档编号:13946551
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:13
- 大小:82.49KB
倒立摆实验三.docx
《倒立摆实验三.docx》由会员分享,可在线阅读,更多相关《倒立摆实验三.docx(13页珍藏版)》请在冰点文库上搜索。
倒立摆实验三
实验三研究倒立摆系统对信号的跟踪
1、实验目的
观察倒立摆对于不同输入信号的跟踪情况,加深对状态空间和状态反馈的理解。
2、实验内容
在平衡位置,分别设定下列三种信号,记录倒立摆的运动情况:
(1)方波信号:
频率0.2Hz,幅值0.05m
(2)正弦波信号:
频率0.2Hz,幅值0.05m
(3)锯齿波信号:
频率0.2Hz,幅值0.05m
三、实验步骤:
系统实际参数请参考实验一。
具体步骤如下:
(1)编制MATLAB程序对状态反馈控制系统进行信号跟踪仿真,输入按实验要求生
成,同时状态反馈向量K取由实验二得到的,使实际系统满足控制要求的反馈向
量K0;记录15秒的响应过程;
(2)启动教学程序,开始实时控制,用默认参数起摆,待摆杆稳定后,将K值设定
为K0;
(3)双击"Signal"模块,设定频率和幅值;
(4)等待摆杆稳定后,双击"Switch"模块,切换到"Signal"模块输入;
(5)双击示波器"Scope"观测系统响应,保证时间在20秒以上;然后双击"Switch"模
块,切换到"PosRef"模块输入,等待小车回到初始稳定位置;
(6)停止实时控制,双击"Signal"模块,选择不同的输入信号:
(7)sine-正弦波,square-方波,sawtooth-锯齿波;
(8)再次开始实时控制,直到三种波形均观测完毕;
(9)编写MATLAB程序绘出实际系统的实时跟踪曲线,仿真时间至少15秒;
(10)在锯齿波跟踪曲线图上,利用"放大"功能测量出实际系统对于输入的延迟时间:
测量输入曲线和锯齿波响应曲线最高点之间的时间差,利用多个时间差求平均获得平均延迟时间。
四、MATLAB源程序
>>M=1.32;m=0.132;b=0.21;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;
>>%求反馈向量K
>>R=1;Q1=200;Q3=100;Q=[Q1000;0000;00Q30;0000];K=lqr(A,B,Q,R);
>>K
K=
-14.1421-12.146763.582511.8413
>>%求状态反馈后的系统sysstate
>>Ac=A-B*K;
>>Bc=B*K
(1);%输入变换使输入与反馈的量纲匹配
>>sysstate=ss(Ac,Bc,C,D)
a=
x1x2x3x4
x10100
x210.458.823-46.28-8.752
x30001
x429.0524.52-101.4-24.33
b=
u1
x10
x2-10.45
x30
x4-29.05
c=
x1x2x3x4
y11000
y20010
d=
u1
y10
y20
Continuous-timemodel.
>>%%%信号模拟发生器
>>T=0.001;Tmax=15;
>>%生成阶跃信号¨
>>t=[0:
T:
Tmax];
>>U=0.1*ones(size(t));
>>plot(t,U)
>>y=lsim(sysstate,U,t);figure
(1);
>>plot(t,U,'R')
>>holdon
>>y=lsim(sysstate,U,t);figure
(1);
>>holdon
>>plot(t,y(:
1),t,y(:
2),'r');
>>ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');
%生成方波信号
>>[U,t]=gensig('square',5,Tmax,T);U=0.1.*U;
>>y=lsim(sysstate,U,t);figure
(1);
>>holdon
>>[U,t]=gensig('square',5,Tmax,T);U=0.1.*U;
>>plot(t,U,'b')
>>plot(t,U,'g')
>>y=lsim(sysstate,U,t);figure
(1);
>>holdon
>>plot(t,y(:
1),t,y(:
2),'r');
>>ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');
>>%生成正弦波
>>t=[0:
T:
Tmax];
>>U=0.1*sin(2*pi*t);%或
>>[U,t]=gensig('sine',5,Tmax,T);U=0.1.*U;
>>plot(t,U)
>>holdon
>>plot(t,U)
>>holdon
>>y=lsim(sysstate,U,t);figure
(1);
>>holdon
>>plot(t,y(:
1),t,y(:
2),'r');
>>ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');
>>%生成锯齿波
>>t=0:
0.02:
15;y=1-mod(t,1);U=0.1*y;
>>plot(t,U);
>>holdon
>>y=lsim(sysstate,U,t);figure
(1);
>>holdon
>>plot(t,y(:
1),t,y(:
2),'r');ylabel('Position/morAngle/rad');legend('CarPosition','PendulumAngle');
5、MATLAB仿真图形
1、跟踪阶跃:
蓝色的为跟踪信号(仿真时颜色紊乱,特标注)
2、跟踪方波
蓝色为跟踪信号
3、跟踪锯齿信号
蓝色为跟踪信号
4、跟踪正弦信号
5、实际系统的响应曲线
1、跟踪阶跃:
2、跟踪方波:
3、跟踪锯齿:
4、跟踪正弦:
注:
由于最初平衡应在零位置时,我们的实验器材就是处于一个波动运行的效果中,所以会发现最后跟踪也是在波动的平衡下。
6、思想题:
(1)仿真曲线和实际响应曲线是否大致相同?
仿真曲线和实际曲线相差比较大,由于我们的实验器材比较不稳定,所以造成的误差比较大。
(2)请说明原系统是否完全可控?
a=
x1x2x3x4
x10100
x210.458.823-46.28-8.752
x30001
x429.0524.52-101.4-24.33
b=
u1
x10
x2-10.45
x30
x4-29.05
c=
x1x2x3x4
y11000
y20010
d=
u1
y10
y20
计算:
>>a*b
ans=
-10.4500
162.0453
-29.0500
450.5525
>>a*a*b
ans=
1.0e+003*
0.1620
-1.2783
0.4506
-4.3465
>>a*a*a*b
ans=
1.0e+004*
-0.1278
0.7604
-0.4346
3.3428
%得到能控矩阵
>>p=[0-10.4500.1620-0.1278;-10.4500162.0453-1.27830.7604;0-29.05000.4506-0.4346;-29.0500450.5525-4.34653.3428]
p=
0-10.45000.1620-0.1278
-10.4500162.0453-1.27830.7604
0-29.05000.4506-0.4346
-29.0500450.5525-4.34653.3428
%求矩阵的行列式
>>pc=det(p)
pc=
6.8239
行列式不是0,所以系统是能控的。
7、实验感想
现代控制理论这门课程是比较抽象的,状态空间的建立更是让人困惑,此次倒立摆实验为我们提供了一个具体的模型,让我们可以真实地感知课本中所学的内容。
我们组的实验时间安排在第一大组,由于缺乏对实验装置的认识同时对理论知识掌握的不够清晰,我们组的实验还是经历了一番挫折的。
首先是实验仪器,由于环境原因,我们组开始选择的实验仪器不能完成实验内容,在更换了一台实验仪器之后,我们发现由于小车存在自振,实现现象总是与理论结果有偏差;另外由于对模型不够清晰,使得我们一开始对感到十分疑惑,后来通过老师悉心的指导和小组成员的认真讨论,我们小组终于对实验有了一定深度的认识,后来我们又在帮助其他同学实验的过程中获得了更多对状态空间方法的认识。
在后期实验报告的撰写过程中,我们小组有序分工,互相讨论,大家对小组的合作感触颇深。
这次实验,让我们对理论知识有了一个具体的认识,也锻炼了我们的合作能力,我们希望可以有更多这样锻炼的机会!
同时,感谢钱老师的悉心指导!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒立 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)