收藏 分销(赏)

倒立摆建模.doc

上传人:快乐****生活 文档编号:2670321 上传时间:2024-06-04 格式:DOC 页数:17 大小:834.24KB 下载积分:8 金币
下载 相关 举报
倒立摆建模.doc_第1页
第1页 / 共17页
倒立摆建模.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
1.一阶倒立摆建模 在忽略了空气流动阻力,以及各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图所示,其中: M:小车质量 m:为摆杆质量 J:为摆杆惯量 F:加在小车上的力 x:小车位置 θ:摆杆与垂直向上方向的夹角 l :摆杆转动轴心到杆质心的长度 根据牛顿运动定律以及刚体运动规律,可知: (1) 摆杆绕其重心的转动方程为 (2) 摆杆重心的运动方程为 得 (3)小车水平方向上的运动为 联列上述4个方程,可以得出 一阶倒立精确气模型: 式中J为摆杆的转动惯量: 若只考虑θ在其工作点附近θ0=0附近()的细微变化,则可以近似认为: 2.2 模型建立及封装 1、建立以下模型: 图2 模型验证原理图 2、 由状态方程可求得: Fcn:(4/3*u[1]+4/3*m*l*sin(u[3])*power(u[2],2)-10*m*sin(u[3])*cos(u[3]))/(4/3*(1+m)-m*power(cos(u[3]),2)) Fcn1:(cos(u[3])*u[1]+m*l*sin(u[3])*cos(u[3])*power(u[2],2)-10*(1+m)*sin(u[3]))/(m*l*power(cos(u[3]),2)-4/3*l*(1+m)) Fun2:(4*u[1]-30*m*u[3])/(4+m) Fun3:(u[1]-10*(1+m)*u[3])/(m*l-4/3*l*(1+m)) (其中J =mL^2/3,小车质量M=1kg,倒摆振子质量m=1Kg,倒摆长度l=1m,重力加速度g=10m/s^2) 将以上表达式导入函数。 3、匡选要封装区后选择[Edit>>Create Subsystem]便得以下系统: 图3 子系统建立 4、鼠标右击子系统模块,在模块窗口选项中选择[Edit>>Edit Mask>>Parameters],则弹出如下窗口,添加参数m和l。 图4 添加参数 5、将精确模型subsystem和简化模型subsystem1组合成以下系统以供验证(输入信号是由阶跃信号合成的脉冲,幅值及持续时间为0.1s)。 图5 系统模块封装 3 仿真验证 3.1 实验设计 假定使倒立摆在(θ=0,x=0)初始状态下突加微小冲击力作用,则依据经验知,小车将向前移动,摆杆将倒下。 3.2 编制绘图子程序 1、新建M文件输入以下程序并保存。 clc load xy.mat t=signals(1,:); %读取时间信号 f=signals(2,:); %读取作用力F信号 x=signals(3,:); %读取精确模型中的小车位置信号 q=signals(4,:); %读取精确模型中倒摆摆角信号 xx=signals(5,:); %读取简化模型中的小车位置信号 qq=signals(6,:); %读取简化模型中倒立摆摆角信号 figure(1) %定义第一个图形 hf=line(t,f(:)); %连接时间-作用力曲线 grid on; xlabel('Time(s)') %定义横坐标 ylabel('Force(N)') %定义纵坐标 axis([0 1 0 0.12]) %定义坐标范围 axet=axes('Position',get(gca,'Position'),... 'XAxisLocation','bottom',... 'YAxisLocation','right','color','none',... 'XColor','k','YColor','k'); %定义曲线属性 ht=line(t,x,'color','r','parent',axet); %连接时间-小车位置曲线 ht=line(t,xx,'color','r','parent',axet); %连接时间-小车速度曲线 ylabel('Evolution of the xposition(m)') %定义坐标名称 axis([0 1 0 0.1]) %定义坐标范围 title('Response x and x''in meter to a f(t) pulse of 0.1 N' ) %定义曲线标题名称 gtext ('\leftarrow f (t)'),gtext ('x (t) \rightarrow') , gtext (' \leftarrow x''(t)') figure (2) hf=line(t,f(:)); grid on xlabel('Time') ylabel('Force(N)') axis([0 1 0 0.12]) axet=axes('Position',get(gca,'Position'),... 'XAxisLocation','bottom',... 'YAxisLocation','right','color','none',... 'XColor','k','YColor','k'); ht=line(t,q,'color','r','parent',axet); ht=line(t,qq,'color','r','parent',axet); ylabel('Angle evolution (rad)') axis([0 1 -0.3 0]) title('Response \theta(t)and \theta'' in rad to a f(t) pulse of 0.1 N' ) gtext('\leftarrow f (t)'), gtext ('\theta (t) \rightarrow'), gtext (' \leftarrow \theta''(t)'3.3 仿真验证 2、在系统模型中,双击子系统模块,则会弹出一个新窗口,在新窗口中输入m和l值,点击OK并运行,如图7所示。 图6 参数输入 3、运行M文件程序,执行该程序的结果如图8所示。 图7 模型验证仿真结果 从中可见,在0.1N的冲击力下,摆杆倒下(θ由零逐步增大), 小车位置逐渐增加,这一结果符合前述的实验设计,故可以在一定程度上确认该“一阶倒立摆系统”的数学模型是有效的。同时,由图中也可以看出,近似模型在0.8s以前与精确模型非常接近,因此,也可以认为近似模型在一定条件下可以表达原系统模型的性质。 4 双闭环PID控制器设计 一级倒立摆系统位置伺服控制系统如图10所示。 图10 一级倒立摆系统位置伺服控制系统方框图 4.1内环控制器的设计 内环采用反馈校正进行控制。 图11 内环系统结构图 控制器参数的整定: 令: 内环控制器的传递函数为: 内环控制系统的闭环传递函数为: 4.2外环控制器的设计 外环系统前向通道的传递函数为: 图12 外环系统结构图 外环控制器采用PD形式,其传递函数为: 图13 系统仿真结构图 5 仿真实验 1、根据已设计好的PID控制器,可建立图14系统,设置仿真时间为20ms,单击运行。(其中的对象模型为精确模型的封装子系统形式) 图14 SIMULINK仿真框图 2、新建M文件,输入以下命令并运行。 %将导入到PID.mat中的仿真试验数据读出 load PID.mat t=signals(1,:); q=signals(2,:); x=signals(3,:); %drawing x(t) and thera(t) response signals %画小车位置和摆杆角度的响应曲线 figure(1) hf=line(t,q(:)); grid on xlabel ('Time (s)') axis([0 10 -0.3 1.2]) ht=line(t,x,'color','r'); axis([0 10 -0.3 1.2]) title('\theta(t) and x(t) Response to a step input') gtext('\leftarrow x(t)'),gtext('\theta(t) \uparrow') 执行该程序的结果如图9所示,从中可见,双闭环PID控制方案是有效的。 图15 系统仿真结果图
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服