1、小车对摆杆水平方向作用力(N)(向左为正方向),是其反作用力;小车对摆杆竖直方向作用力(N)(向上为正方向),是其反作用力;U:电动机经传动机构给小车的力,可理解为控制作用u(向左为正方向);摆杆重心的水平位置(m);摆杆重心的竖直位置(m)。11一级倒立摆的数学建模定义系统的状态为r,r, , 经推导整理后可以达到倒立摆系统的牛顿力学模型: (1) (2)因为摆杆一般在工作在竖直向上的小领域内=0,可以在小范围近似处理:,则数学模型可以整理成: (3) (4)系统的状态空间模型为=+ (5) (6)代人实际系统的参数后状态方程为:=+ (7) (8)1.2滑模变结构在一级倒立摆系统的应用主要
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 allclose allglobal C M0 Fts
3、=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)
4、*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); %endelse if F=2 beta=30; delta=0; for k=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 fi
5、gure(2); plot(t,x2,Pendulum Angle figure(3); plot(t,s,s figure(4); plot(t,u, ylabel(uend%子程序function dx=DxnamicModel(t,x,flag,para)%自定义动态函数%倒立摆经计算后模型M=1.096;m=0.109;b=0.1;l=0.25;I=0.0034;T=0.005;g=0.98;k22=-(I+m*l2)*b/(I*(M+m)+M*m*l2);k23=m2*g*l2/(I*(M+m)+M*m*l2);k42=-m*l*b/(I*(M+m)+M*m*l2);k43=m*g*
6、l*(M+m)/(I*(M+m)+M*m*l2);b12=(I+m*l2)/(I*(M+m)+M*m*l2);b14=m*l/(I*(M+m)+M*m*l2);A=0,1,0,0;0,k22,k23,0;0,0,0,1;0,k42,k43,0;b=0;b12;0;b14;%Ackermanns formulan1=-1;n2=-2;n3=-3;C=0,0,0,1*inv(b,A*b,A2*b,A3*b)*(A-n1*eye(4)*(A-n2*eye(4)*(A-n3*eye(4);s=C*x;F=2;elseif F=2 beta=30; delta=0; u=-beta*(abs(x(1)+abs(x(2)+abs(x(3)+abs(x(4)+delta)*sign(s);%state equationdx=zeros(4,1);f0=0.5;ft=f0*sin(3*t);dx=A*x+b*(u+ft);三 仿真结果图2图3图4图5
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1