倒立摆建模.docx
- 文档编号:14443483
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:14
- 大小:469.27KB
倒立摆建模.docx
《倒立摆建模.docx》由会员分享,可在线阅读,更多相关《倒立摆建模.docx(14页珍藏版)》请在冰点文库上搜索。
倒立摆建模
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>>CreateSubsystem]便得以下系统:
图3子系统建立
4、鼠标右击子系统模块,在模块窗口选项中选择[Edit>>EditMask>>Parameters],则弹出如下窗口,添加参数m和l。
图4添加参数
5、将精确模型subsystem和简化模型subsystem1组合成以下系统以供验证(输入信号是由阶跃信号合成的脉冲,幅值及持续时间为0.1s)。
图5系统模块封装
3仿真验证
3.1实验设计
假定使倒立摆在(θ=0,x=0)初始状态下突加微小冲击力作用,则依据经验知,小车将向前移动,摆杆将倒下。
3.2编制绘图子程序
1、新建M文件输入以下程序并保存。
clc
loadxy.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(:
));%连接时间-作用力曲线
gridon;
xlabel('Time(s)')%定义横坐标
ylabel('Force(N)')%定义纵坐标
axis([0100.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('Evolutionofthexposition(m)')%定义坐标名称
axis([0100.1])%定义坐标范围
title('Responsexandx''inmetertoaf(t)pulseof0.1N')%定义曲线标题名称
gtext('\leftarrowf(t)'),gtext('x(t)\rightarrow'),gtext('\leftarrowx''(t)')
figure
(2)
hf=line(t,f(:
));
gridon
xlabel('Time')
ylabel('Force(N)')
axis([0100.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('Angleevolution(rad)')
axis([01-0.30])
title('Response\theta(t)and\theta''inradtoaf(t)pulseof0.1N')
gtext('\leftarrowf(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,单击运行。
(其中的对象模型为精确模型的封装子系统形式)
图14SIMULINK仿真框图
2、新建M文件,输入以下命令并运行。
%将导入到PID.mat中的仿真试验数据读出
loadPID.mat
t=signals(1,:
);
q=signals(2,:
);
x=signals(3,:
);
%drawingx(t)andthera(t)responsesignals
%画小车位置和摆杆角度的响应曲线
figure
(1)
hf=line(t,q(:
));
gridon
xlabel('Time(s)')
axis([010-0.31.2])
ht=line(t,x,'color','r');
axis([010-0.31.2])
title('\theta(t)andx(t)Responsetoastepinput')
gtext('\leftarrowx(t)'),gtext('\theta(t)\uparrow')
执行该程序的结果如图9所示,从中可见,双闭环PID控制方案是有效的。
图15系统仿真结果图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒立 建模