资源描述:
《基于双闭环pid控制的一阶倒立摆控制系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、福州大学至诚学院本科生课程设计题目:基于双闭环PID控制的一阶倒立摆控制系统设计姓名:学号:系别:电气工程系专业:电气工程与自动化年级:07级指导教师:2010年4月28日22目录1、系统模型的建立…………………………………………………3.2、模型验证……………………………………………….……….4.3、设计的内外环的PID控制器………………………………………10.4、SIMULIN仿真…………………………………………………...13.5、检测系统的鲁棒性………………………………………………16.6、遇到问题…………………
2、………………………………………19.7、心得体会…………………………………………………………..20.8、结论…………………………………...…………………………21.9、参考文献…………………………………………………………..22.22一.系统模型的建立如图01所示的“一阶倒立摆控制系统”中,设计一个能通过检测小车的位置与摆杆的摆动角,来适当控制电动机驱动力的大小的控制系统。图011)对模型的理论分析建立一阶倒立摆的精确模型(实际模型)如下所示:2).点进行线性化后得到(近似模型):若只考虑摆角在工作点等零附近的细微变化
3、,这是可以将模型线性化,得到近似模型,将J=m(l^2)/3,M=1kg代入即可得到要求的关于参数m、l的模型,让后再进行线性化表达式在模型验证中。22二.模型验证1)子系统的建立实际模型图1Fcn:(((4*m*(l^2))/3)*u[1]+l*m*((4*m*(l^2))/3)*sin(u[3])*(u[2]^2)-10*(m^2)*(l^2)*sin(u[3])*cos(u[3]))/(((4*m*(l^2))/3)*(1+m)-(m^2)*(l^2)*power(cos(u[3]),2))Fcn1:(m*l*cos
4、(u[3])*u[1]+(m^2)*(l^2)*sin(u[3])*cos(u[3])*(u[2]^2)-10*(1+m)*m*l*sin(u[3]))/((m^2)*(l^2)*power(cos(u[3]),2)-(1+m)*(4*m*(l^2))/3)线性模型图2Fcn2:(30*(1+m*u[2]-3*u[1])/(l*(4+m)Fcn3:(5*u[1]-30*m*u[2])/(4+m)做完以上之后点击鼠标左键不放对图形进行选定,接着右击creatsubsystem如下图所示:22图32)模型的封装:倒立摆的振子质
5、量m和倒摆长度L作为子系统的参数:图4双击函数模块:图522欲改变其中的任一个参数只要点击其中二者之一的函数方块就行,在其中的m,l改就行了。有两种实现的方法:一种是利用示波器观察如下图所示,另一种是采用绘图程序实现。1)示波器实现如图6:图6示波器显示结果如图7所示22图72)用程序实现:%Inertedpendulum%Modeltestinopenloop%Signalsrecuperation%将导入到xy.mat中的仿真试验数据读出loadxy.matt=signals(1,:);%读取时间信号f=signals
6、(2,:);%读取作用力F信号x=signals(3,:);%读取精确模型中的小车位置信号q=signals(4,:);%读取精确模型中的倒摆摆角信号xx=signals(5,:);%读取简化模型中的小车位置信号qq=signals(6,:);%读取简化模型中的倒立摆摆角信号%Drawingcontrolandx(t)responsesignals%画出在控制力的作用下的系统响应曲线%定义曲线的纵坐标、标题、坐标范围和曲线的颜色等特征figure(1)%定义第一个图形hf=line(t,f(:));%连接时间-作用力曲线g
7、ridon;xlabel('Time(s)')%定义横坐标ylabel('Force(N)')%定义纵坐标axis([0100.12])%定义坐标范围axet=axes('Position',get(gca,'Position'),...22'XAxisLocation','bottom',...'YAxisLocation','right','Color','None',...'XColor','k','YClor','k');%定义曲线属性ht=line(t,x,'color','r','parent',axet);%
8、连接时间-小车位置曲线ht=line(t,xx,'color','r','parent',axet);%连接时间-小车速度曲线ylabel('Evolutionofthexposition(m)')%定义坐标名称axis([0100.1])%定义坐标范围title('Responsexandx''inm