倒立摆小车控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

仲恺农业工程学院课程设计报告电机拖动与运动控制综合设计院系:自动化学院题目:倒立摆小车控制班级:工业自动化131姓名:廖声雄学号:201321714116时间:2016.10.10-2016.10.15指导老师:付根平一、实验目的:1、设计基于状态观测器的状态反馈控制系统。2、学习设计小车单级倒立摆系统,并用simulink仿真。3、使用M语言设计出单级倒立摆动画程序。二、实验任务三、实验设计1.倒立摆的模型摆杆长度为L,质量为m的单级倒立摆(摆杆的质心在杆的中心处),小车的质量为M。在水平方向施加控制力u,相对参考系产生位移为y。为了简化问题并且保其实质不变,忽略执行电机的惯性以及摆轴、轮轴、轮与接触面之间的摩擦力及风力。如下图所示:摆杆质心坐标为:在y轴方向上应用牛顿第二定律得到以下方程:而代入(1)式,化简为:(1)(3)或(4)简化后得式(2)经过线性化处理后得:式(5)经过线性化处理后得:cosθ(/2)θsinθmymLmg()θ2mLMmyuθθ2mLmymgGsinθ2LyyGcosθ2Lz2222ddsinθdd2LMymyutt222dsinθ=θcosθθsinθdtdsinθ=θcosθdtdcosθ=θsinθdt222dcosθθcosθθsinθdt22GG22ddcosθsinθsinθd2d22yzLLLmmmgtt2222ddsinθcosθcosθsinθsinθd22d222LLLLLmymmgtt2()(/2)θsinθ(/2)θcosθMmymLmLu不失一般性,不妨选取倒立摆的参数如下:代入参数后2、倒立摆的控制系统设计选取状态变量:.43.21yyxxxx则其状态空间表达式为:设L=0.8m、M=0.5kg、m=0.5kg、而g=9.8m/。则系统的状态空间表达式为4321214321432101000001,2.0025.0000098.01000000475.130010xxxxyyuxxxxxxxx首先判断系统的能控性和能观性,输入以下语句:a=[0100;13.475000;0001;-0.98000];b=[0;-0.25;0;0.2];c=[1000;0010];rc=rank(ctrb(a,b))ro=rank(obsv(a,c))语句的运行结果为:;0100010000000010114321)(4321uxxxxxxxxMMlMmgMlgmM43212101000001xxxxyy/20.6mL1.20.1kg=0.12kgm1kgM29.8m/sg1.120.072θyu0.120.0721.176y这表明系统能控性矩阵满秩,系统是能控的。所以,可以进行状态反馈来任意配置极点。能观性矩阵满秩。系统能观,可以设计状态观测器,因此可以设计具有状态观测器的状态反馈控制系统。再输入以下指令:eig(a),计算出系统矩阵a的特征值运行的结果为:因此,可以配置控制系统的极点为:-5、-5.2、-5.6、-6,并且可以设计状态观测器的极点为:-20、-21、-22、-23。输入并且运行以下命令:P=[-5-5.2-5.6-6];K=place(a,b,p)P1=[-20-21-22-23]G1=place(a',c',p1);G=G1'运行的结果为:即:G=464.641119.172743.14860.938422.3914471.83151.039542.8514K=[-1050.8-297.6-356.6-263.0]下图就是所设计的具有状态观测器的状态反馈控制系统Simulink仿真模型。在积分器中设置初值,然后运行仿真模型,如下图所示:基于状态观测器的单级倒立摆系统状态反馈控制系统仿真模型选择Matrix(k*u)四、实验结果及分析得到的的仿真曲线分别如图所示A=[0100;13.475000;0001;-0.98000];B=[0;-0.25;0;0.2];C=[1000;0010];K=[-1050.8-297.6-356.6-263.0];G=[42.851.04;471.8322.39;0.9443.15;19.17464.64];sim('lsx1.mdl');H_CAR=0.4;H_WHEEL=0.08;L=0.8;N=length(yout.signals.values);LINEWIDTH=6.0;CARWIDTH=3.0;ARROWWIDTH=2.5;fori=1:Nclf;y=yout.signals.values(i,1);theta=yout.signals.values(i,2)*pi/180;y_line=y+L*sin(theta);z_line=L*cos(theta)+H_CAR;plot([(y+0.035),(y+0.35),(y+0.35),(y-0.35),(y-0.35),(y-0.04)],[H_CAR+0.3,H_CAR+0.3,H_WHEEL+0.4,H_WHEEL+0.4,H_CAR+0.3,H_CAR+0.3],'b','LineWidth',CARWIDTH);%画车体holdonplot([(+0.85),(-0.85)],[H_CAR+0.24,H_CAR+0.24],'k','LineWidth',0.7);holdonplot([+0.89,+0.89],[H_CAR+0.2,H_CAR-0.38],'k','LineWidth',0.7);holdonplot([-0.89,-0.89],[H_CAR+0.2,H_CAR-0.38],'k','LineWidth',0.7);holdonplot([(+0.87),(-0.87)],[H_CAR-0.4,H_CAR+-0.4],'k','LineWidth',0.7);holdonplot([(+0.85),(-0.85)],[H_CAR-0.36,H_CAR-0.36],'k','LineWidth',1.0);holdonplot([(+0.7),(-0.7)],[H_CAR,H_CAR],'k','LineWidth',1.0);holdonplot([(-0.85),(-0.7)],[H_CAR+0.2,H_CAR],'k','LineWidth',1.0);holdonplot([(+0.7),(+0.85)],[H_CAR,H_CAR+0.2],'k','LineWidth',1.0);holdonplot([y,y],[H_CAR+0.3,H_CAR+L+0.2],'--k','LineWidth',0.7);holdonr=0.04;hseta=0:0.001:pi;yh=y+r*cos(hseta);zh=H_CAR++0.3+r*sin(hseta);plot(yh,zh,'b','LineWidth',CARWIDTH);holdon;r=0.04;hseta=0:0.001:2*pi;yh=y_line+r*cos(hseta);zh=z_line+0.03+r*sin(hseta);plot(yh,zh,'k','LineWidth',CARWIDTH);holdon;yl_circle=y-0.2;yr_circle=y+0.2;z_circle=H_WHEEL/2;r=H_WHEEL/2;seta=0:0.001:2*pi;yyl=yl_circle+r*cos(seta);yyr=yr_circle+r*cos(seta);zz=z_circle+0.4+r*sin(seta);plot(yyl,zz,yyr,zz,'b','LineWidth',CARWIDTH);holdon;%电动机和右下角滑轮yl_circle=-0.85;yr_circle=+0.85;z_circle=0.1;r=0.04;seta=0:0.001:2*pi;yyl=yl_circle+r*cos(seta);yyr=yr_circle+r*cos(seta);zz=z_circle+r*sin(seta)-0.06;plot(yyl,zz,'k',yyr,zz,'k','LineWidth',CARWIDTH);holdon;%滑轮yl_circle=-0.85;yr_circle=+0.85;z_circle=H_WHEEL/2;r=H_WHEEL/2;seta=0:0.001:2*pi;yyl=yl_circle+r*cos(seta);yyr=yr_circle+r*cos(seta);zz=z_circle+0.56+r*sin(seta);plot(yyl,zz,'k',yyr,zz,'k','LineWidth',CARWIDTH);holdon;plot([y,y_line],[H_CAR+0.32,z_line],'r','LineWidth',LINEWIDTH);%画单摆杆holdonifi1&&iN%画出表示行车方向的箭头ifyout.signals.values(i,1)yout.signals.values(i-1,1)plot([(y-0.08),(y+0.08)],[(H_CAR+H_WHEEL)/2+0.4,(H_CAR+H_WHEEL)/2+0.4],'m','LineWidth',ARROWWIDTH);holdonplot([(y+0.08),(y+0.08)-0.05*cos(pi/6)],[(H_CAR+H_WHEEL)/2+0.4,(H_CAR+H_WHEEL)/2+0.4+0.05*sin(pi/6)],'m','LineWidth',ARROWWIDTH);holdonplot([(y+0.08),(y+0.08)-0.05*cos(pi/6)],[(H_CAR+H_WHEEL)/2+0.4,(H_CAR+H_WHEEL)/2+0.4-0.05*sin(pi/6)],'m','LineWidth',ARROWWIDTH);holdonelseifyout.signals.values(i,1)yout.signals.values(i-1,1)plot([(y-0.08),(y+0.08)],[(H_CAR+H_WHEEL)/2+0.4,(H_CAR+H_WHEEL)/2+0.4],'m','LineWidth',ARROWWIDTH);holdonplot([(y-0.08),(y-0.08)+0.05*cos(pi/6)],[(H_CAR+H_WHEEL)/2+0.4,(H_CAR+H_WHEEL)/2+0.4+0.05*sin(pi/6)],'m','LineWidth',ARROWWIDTH);holdonplot([(y-0.08),(y-0.08)+0.05*cos(pi/6)],[(H_CAR+H_WHEEL)/2+0.4,(H_CAR+H_WHEEL)/2+0.4-0.05*sin(pi/6)],'m','LineWidth',ARROWWIDTH);holdonendendxlabel('y(t)/m'),ylabel('z(t)/m'),title('倒立摆小车二维动态效果图');axisequal;%保持坐标比例协调pause(0.2);end小车运行图:

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功