当前位置:文档之家› 单级倒立摆系统

单级倒立摆系统

单级倒立摆系统建模图中u 是施加于小车的水平方向的作用力,x 是小车的位移,θ是摆杆的倾斜角。

若不给小车施加控制力,倒摆会向左或向右倾斜,控制的目的是当倒摆出现偏角时,在水平方向上给小车以作用力,使得摆杆和小车能够迅速恢复到平衡位置(θ=0,x=0)。

为了建立倒立摆系统的简易模型又不失其实质,可先作如下假设: 1、倒立摆与摆杆均为匀质刚体。

2、可忽略摆与载体,载体与外界的摩擦,即忽略摆轴、轮轴、轮与接触面之间的摩擦力等。

系统的受力如下图示,其中小车的质量为M ,瞬时位移为x ,摆杆长度为2L ,质量为m ,瞬时位置为)sin (θL x -。

Hx小车受力图 摆杆受力图运用牛顿力学定律,小车沿x 轴方向运动有:22dtxd M H u =-摆杆重心沿x 轴方向有:22)sin (dtL x d m H θ-= 摆杆重心沿y 轴方向有:22)cos (dtL d m mg V θ=- 摆杆围绕其重心的转动运动可用力矩方程来描述:θθθcos sin HL VL I += 式中,2231)2(121mL L m I ==为摆杆围绕其重心的转动惯量。

控制中要求θ小于5弧度,即在θ很小时,θθ≈sin ,1cos ≈θ,将方程在平衡点(θ=0,x=0)附近线性化处理。

则以上各式变为:xM H u =- ① )(θL x m H -= ② 0=-mg V ③HL VL I +=θθ④ 由式①和式②得:u mL xm M =++θ )( ⑤ 由式②、③和④得:θθmgL xmL mL I =++ )(2 ⑥ 由式⑤和式⑥可得单级倒立摆方程:u MmLI m M mL MmL I m M gL M m m 22)()()(++++++=θθu MmLI m M mL I MmL I m M gL m x 22222)()(++++++=θ 对以上两式进行拉氏变换,整理得以u 为输入量,以摆杆摆角θ为输出量得传递函数G(s)=gL m M m s MmL I m M mLs U s )(])[()()(22+-++=θ控制指标共有4个,即单级倒立摆的摆角θ、摆速θ、小车位置x 、小车速度x。

以摆角θ和小车位移x 为输出量,将倒立摆运动方程转化为状态方 程的形式为:u MmL I m M mL I MmL I m M mL x x MmL I m M gL m MmL I m M gLM m m x x ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛++++++⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⨯⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛+++++=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛2222222)(0)(0000)(1000000)()(0010 θθθθu x x x y ⎪⎪⎭⎫ ⎝⎛+⎪⎪⎪⎪⎪⎭⎫⎝⎛⨯⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛=0001000001 θθθ假设系统内部各相关参数如下: M :小车质量 1kg m :摆杆质量0.5kgL :摆杆转动轴心到杆质心的长度 0.3m g :重力加速度 9.8m/s 2 I :摆杆转动惯量 0.015kg·m 2程序代码:%分别得摆角和小车位置对输入的传递函数 M=1; m=0.5; L=0.3; g=9.8; I=0.015;t1=m*(m+M)*g*L/[(M+m)*I+M*m*L^2]; t2=m^2*g*L^2/[(M+m)*I+M*m*L^2]; t3=m*L/[(M+m)*I+M*m*L^2];t4=(I+m*L^2)/[(M+m)*I+M*m*L^2]; A=[0 1 0 0 ; t1 0 0 0; 0 0 0 1; t2 0 0 0]; B=[0;t3;0;t4]; C=[1 0 0 0; 0 0 1 0]; D=[0;0];sys1=ss(A,B,C,D); sys2=tf(sys1)执行得:Transfer function from input to output...2.222#1: --------------------------s^2 - 1.776e-015 s - 32.670.8889 s^2 + 7.895e-016 s - 21.78 #2: --------------------------------- s^4 - 1.776e-015 s^3 - 32.67 s^2%摆角开环控制脉冲响应M=1;m=0.5;L=0.3;g=9.8;I=0.015;num=[m*L];den=[(M+m)*I+M*m*L^2 0 -m*(m+M)*g*L];impulse(num,den)axis([0 1 -60 0])grid执行得开环响应,系统开环不稳定:单级倒立摆系统的PID控制比例、积分和微分控制器的控制规律比例控制器能减小上升时间,减小稳态误差;积分控制亦可以减小稳态误差,但可能使瞬态响应变差;微分控制能提高系统稳定性、减小超调并改善系统瞬态响应。

针对单级倒立摆系统,由于本设计的控制目标是通过给小车底座一个控制力u,使小车停留在预定的位置,并使杆不倒下,故设定要跟踪的参考输入信号为零,同时加于小车的干扰力设为脉冲信号。

那么,添加了PID控制器的系统结构图如下:其等效方框图如下,便于MATLAB传递函数的录入。

图中)(s G c 为PID 控制器为:s K s K s K s G I P D c /)()(2++=其中,K P 、K D 、K I 分别为比例、微分和积分常数。

运行程序:%K P =1、K D =1、K I =1时 M=1; m=0.5; L=0.3; g=9.8; I=0.015; num=[m*L];den=[(M+m)*I+M*m*L^2 0 -m*(m+M)*g*L]; sys1=tf(num,den); kp=1; kd=1; ki=1;numPID=[kd kp ki]; denPID=[1 0];ctrc=tf(numPID,denPID); sys=feedback(sys1,ctrc);impulse(sys)title('Impulse response with kp=1 kd=1 ki=1')运行程序:%K P=100、K D=1、K I=10时M=1;m=0.5;L=0.3;g=9.8;I=0.015;num=[m*L];den=[(M+m)*I+M*m*L^2 0 -m*(m+M)*g*L];sys1=tf(num,den);kp=100;kd=1;ki=10;numPID=[kd kp ki];denPID=[1 0];ctrc=tf(numPID,denPID);sys=feedback(sys1,ctrc);impulse(sys)title('Impulse response with kp=100 kd=1 ki=10')再考虑小车位置时的控制仿真,此时运行程序:num=[0.889 0 -21.78];den=[1 0 -32.67 0 0];sys1=tf(num,den);kp=100;kd=50;ki=1;numPID=[kd kp ki];denPID=[1 0];ctrc=tf(numPID,denPID);sys=feedback(sys1,ctrc);impulse(sys)axis([0 3 0 60])控状态。

基于极点配置的倒立摆状态反馈控制器设计倒立摆系统全状态反馈模型图如下图示:要求设计控制器,使系统具有较短的调节时间(约4秒)和较小的超调(小0.05)。

由21ξξπσ--=e和ns t ξω4=可以得到单级倒立摆系统的两个性能指标69.0≥ξ,93.1≥n ω取7.0=ξ,2=n ω 。

将得到的阻尼比和自然角频率值代人下式:22,11ξωξω-+-=n n j s得到系统的2个主导极点为:-1.4+j1.43,-1.4-j1.43另外两个非主导极点,不妨取为两重极点,且距主导极点5倍以上,即满足:74.15||||||||43=⨯≥=s s ,故可以取743-==s s 。

至此,单级倒立摆系统的4个期望极点都已确定。

对系统进行任意零极点配置的前提是,系统状态完全能控,可以借助Matlab 程序判断系统的能控性。

M=1; m=0.5; L=0.3; g=9.8; I=0.015;t1=m*(m+M)*g*L/[(M+m)*I+M*m*L^2]; t2=m^2*g*L^2/[(M+m)*I+M*m*L^2]; t3=m*L/[(M+m)*I+M*m*L^2];t4=(I+m*L^2)/[(M+m)*I+M*m*L^2]; A=[0 1 0 0 ; t1 0 0 0; 0 0 0 1; t2 0 0 0]; B=[0;t3;0;t4];k=rank(ctrb(A,B))得到k=4,满秩,系统状态完全能控,可进行任意极点配置。

为匹配place()函数,把-7,-7两个极点改成-7-0.0001i,-7+0.0001i,因为增加的徐步很小,可以忽略不记,运行程序得结果:M=1;m=0.5;L=0.3;g=9.8;I=0.015;t1=m*(m+M)*g*L/[(M+m)*I+M*m*L^2];t2=m^2*g*L^2/[(M+m)*I+M*m*L^2];t3=m*L/[(M+m)*I+M*m*L^2];t4=(I+m*L^2)/[(M+m)*I+M*m*L^2];A=[0 1 0 0 ;t1 0 0 0;0 0 0 1;t2 0 0 0];B=[0;t3;0;t4];P=[-1.4+1.43i -1.4-1.43i -7-0.0001i -7+0.0001i];K=place(A,B,P)>> K =59.7966 11.1098 -9.0110 -8.8746加入以上状态反馈率的K值后运行如下程序:M=1;m=0.5;L=0.3;g=9.8;I=0.015;t1=m*(m+M)*g*L/[(M+m)*I+M*m*L^2];t2=m^2*g*L^2/[(M+m)*I+M*m*L^2];t3=m*L/[(M+m)*I+M*m*L^2];t4=(I+m*L^2)/[(M+m)*I+M*m*L^2];A=[0 1 0 0 ;t1 0 0 0;0 0 0 1;t2 0 0 0];B=[0;t3;0;t4];C=[1 0 0 0;0 0 1 0];D=[0;0];K=[59.7966 11.1098 -9.0110 -8.8746];Ac=[(A-B*K)];T=0:0.005:6;U=0.2*ones(size(T)); [Y,X]=lsim(Ac,B,C,D,U,T); plot(T,X(:,1),'-');hold on ; plot(T,X(:,3),'-.');hold on ; legend('PendAng','CartPos')方法,极点配置法的超调减小了,同时小车位置的响应不再发散,但小车位置没有得到跟踪,而是向负方向移动了。

相关主题