- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一级直线倒立摆matlab程序
非线性作业
一 一级直线倒立摆
如图1所示
系统里的各参数变量
M:小车系统的等效质量(1.096kg);
:摆杆的质量(0.109kg);
:摆杆的半长(0.25m);
J:摆杆系统的转动惯量(0.0034kg*m);
g:重力加速度(9.8N/Kg);
r:小车的水平位置(m);
θ:摆角大小(以竖直向上为0起始位置,逆时针方向为正方向);
:小车对摆杆水平方向作用力(N)(向左为正方向),’是其反作用力;
:小车对摆杆竖直方向作用力(N)(向上为正方向),’是其反作用力;
U:电动机经传动机构给小车的力,可理解为控制作用u’(向左为正方向);
:摆杆重心的水平位置(m);:摆杆重心的竖直位置(m)。
1.1一级倒立摆的数学建模
定义系统的状态为[r,r, θ, θ]
经推导整理后可以达到倒立摆系统的牛顿力学模型:
(1)
(2)
因为摆杆一般在工作在竖直向上的小领域内θ=0,可以在小范围近似处理:,则数学模型可以整理成:
(3)
(4)
系统的状态空间模型为
=+ (5)
(6)
代人实际系统的参数后状态方程为:
=+ (7)
(8)
1.2滑模变结构在一级倒立摆系统的应用
主要包括切换函数的设计、控制率的设计和系统消除抖振的抑制。基于线性二次型最优化理论的切换函数设计,定义系统的优化积分指标是:
Q0,
本文采用指数趋近律:,其中k和ε为正数。将其代人S=Cx=0中,可以得到:
(9)
控制率为: (10)
ε的选取主要是为了抑制系统的摩擦力和近似线性化所带来的误差和参数摄动等因素,从而使得系统具有良好的鲁棒性。文中k=25, ε=0.8。取变换矩阵T。
其中T=,
去Q*11=diag([300 50 350]),Q22=10
关于Riccati方程的解有MATLAB的lqr函数可以解出
二程序
%主程序:直线一级倒立摆
clear all
close all
global C M0 F
ts=0.02; %采样时间
T=30; %仿真时间
TimeSet=[0:ts:T];
para=[];
%options为解微分函数中的调整参数,reltol和abstol分别是设置相对误差和绝对误差
options=odeset(RelTol,1e-3,AbsTol,[1e-3 1e-3 1e-3 1e-3]);
%options=[];
x0=[0.5,0.3,0,0]; %初始值
[t,xout]=ode45(daolibai2eq,TimeSet,x0,options,para);%固定格式,子程序调用
%返回值
x1=xout(:,1);
x2=xout(:,2);
x3=xout(:,3);
x4=xout(:,4);
s=C(1)*x1+C(2)*x2+C(3)*x3+C(4)*x4; %切换函数或切换面
%选择控制器
if F==1
% for k=1:1:T/ts+1
M0=40;
%u(k)=-M0*sign(s(k));
u=-M0*sign(s);
%end
else if F==2
beta=30;
delta=0;
for k=1:1:T/ts+1
u(k)=-beta*(abs(x1(k))+abs(x2(k))+abs(x3(k))+abs(x4(k))+delta)*sign(s(k));
end
end
%绘图
figure(1);
plot(t,x1,r);
xlabel(time(s));ylabel(Cart Position);
figure(2);
plot(t,x2,r);
xlabel(time(s));ylabel(Pendulum Angle);
figure(3);
plot(t,s,r);
xlabel(time(s));ylabel(s);
figure(4);
plot(t,u,r);
xlabel(time(s));
ylabel(u)
文档评论(0)