倒立摆MATLAB建模

更新时间:2023-10-07 14:19:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

线控大作业

如图所示的倒立摆系统。图中,倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。

图 倒立摆系统

假定倒立摆系统的参数如下。

摆杆的质量:m=0.1g 摆杆的长度:2l=1m 小车的质量:M=1kg 重力加速度:g=10/s2 摆杆惯量:I=0.003kgm2 摆杆的质量在摆杆的中心。

设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量

? %≤10%,

调节时间ts ≤4s ,使摆返回至垂直位置,并使小车返回至参考位置(x=0)。

要求:1、建立倒立摆系统的状态方程

2、定量分析,定性分析系统的性能指标——能控性、能观性、稳定性 3、极点配置

设计分析报告

1 系统建模

在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统。如下如所示。

图 一级倒立摆模型

其中:

φ 摆杆与垂直向上方向的夹角

θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下) 图是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。

注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图所示,图示方向为矢量正方向。

分析小车水平方向所受的合力,可以得到以下方程:

??F?bx??N M?x由摆杆水平方向的受力进行分析可以得到下面等式:

d2N?m2(x?lsin?)

dt

即:

??cos??ml??2sin? ??ml?N?m?x把这个等式代入式(3-1)中,就得到系统的第一个运动方程:

??cos??ml??2sin??F ??bx??ml?(M?m)?x为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,

可以得到下面方程:

d2P?mg?m2(lcos?)

dt??sin??ml??2cos? P?mg??ml?力矩平衡方程如下:

?? ?Plsin??Nlcos??I?注意:此方程中力矩的方向,由于?????,cos???cos?,sin???sin?,故等式前面有负号。

合并这两个方程,约去P和N,得到第二个运动方程:

???mglsin???ml??cos? (I?ml2)?x设?????(?是摆杆与垂直向上方向之间的夹角),假设?与1(单位是弧度)相比很小,即???1,则可以进行近似处理:cos???1,sin????,(用u来代表被控对象的输入力F,线性化后两个运动方程如下:

d?2)?0。dt?(I+ml2)??mgl??mlx ?(M?m)x?bx?ml??u?对式(3-9)进行拉普拉斯变换,得到

222??(I?ml)?(s)s?mgl?(s)?mlX(s)s ?22??(M?m)X(s)s?bX(s)s?ml?(s)s?U(s)注意:推导传递函数时假设初始条件为0。

由于输出为角度?,求解方程组的第一个方程,可以得到:

(I?ml2)gX(s)?[?2]?(s)

mls?(s)mls2或 ?X(s)(I?ml2)s2?mgl?,则有: x如果令v???(s)ml ?22V(s)(I?ml)s?mgl把上式代入方程组的第二个方程,得到:

?(I?ml2)g??(I?ml2)g?(M?m)????b??2??(s)s?ml?(s)s2?U(s)

s??mls??ml整理后得到传递函数:

ml2s?(s)q? 2b(I?ml)(M?m)mglbmglU(s)s4?s3?s2?sqqq其中 q?(M?m)(I?ml2)?(ml)2 设系统状态空间方程为:

????AX?BuX

y?CX?Du??解代数方程,得到解如下: ?,?方程组 对?x??x??x?2222?(I?ml)bmgl(I?ml)?????xx???u222?I(M?m)?MmlI(M?m)?MmlI(M?m)?Mml? ?????????mlbmgl(M?m)ml????x???u??222?I(M?m)?MmlI(M?m)?MmlI(M?m)?Mml?整理后得到系统状态空间方程: 010???22?x??(I?ml)bmgl2?????0I(M?m)?Mml2I(M?m)?Mml2x???????0??00????mlbmgl(M?m)??0??????I(M?m)?Mml2I(M?m)?Mml2?0?0??2x?????I?ml0?????2?xI(M?m)?Mml??????u 1?????0?ml?????0????2????I(M?m)?Mml???x????0?x??1000??x????u y??????????0??0010????????????代入倒立摆系统的参数。

摆杆的质量:m=0.1g 摆杆的长度:2l=1m

小车的质量:M=1kg 重力加速度:g=10/s2 摆杆惯量:I=0.003kgm2

?x??0?x??0????????0???????01001000110??x??0??x??1?0???????u? 1?????0??????0?????1??x????0?x??1000??x????u? y????????????0010?????0???????另外,也可以利用 MATLAB 中 tf2ss 命令对(3-13)式进行转化,求得上述状态方程。

2 系统分析

2.1 判断系统能控性和能观性

在MATLAB中,可以利用ctrb()和obsv()函数直接求出能控性和能观性矩阵 A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 11 0];

B=[0;1;0;1]; C=[1 0 0 0;0 0 1 0]; D=[0;0];

Uc=ctrb(A,B);rc=rank(Uc); n=size(A); if rc==n

disp('system is controlled.') elseif rc

disp('system is uncontrolled.') end Vo=obsv(A,C); ro=rank(Vo); if ro==n

disp('system is observable.') elseif ro~=n

disp('system is no observable.')

End

运行情况如下:

2.2 系统稳定性

A=[0 1 0 0;0 0 1 0;0 0 0 1;0 0 11 0]; B=[0;1;0;1];

C=[1 0 0 0;0 0 1 0]; D=[0;0];

P=poly(A),v=roots(P) 运行结果如下:

特征值为0(二重),3.3166,-3.3166,显然,其中一个极点在右半平面,该系统不稳定。

3 系统设计 极点配置与控制器设计

极点配置的方法就是通过一个适当的状态反馈增益矩阵的状态反馈方法 ,将闭环系统的极点配置到任意期望的位置。

X(t)=Ax(t)+Bu(t),其中x是状态变量(n维),u是控制信号,这里选

取控制信号为u=-Kx,

x(t)=(A-BK) x(t),该方程的解为x(t)=e(A-BK)t x(0),

系统的稳态响应和瞬态响应特性由矩阵 A - B K的特征决定。

K=-(K1K2K3K4) x,闭环系统的方程为

x=Ax+Bf=(A-BK)x,选取所希望的极点值为,

p1p2p3p4

设计状态反馈阵时,要使系统的极点设计成具有两个主导极点,两个非主导

极点,这样就可以用二阶系统的分析方法进行参数的确定。

最大超调量小于等于10%,调节时间为4S, 运用超调量的计算公式,

-zp1-z2d%=e 100%,其中z为阻尼系数,有该公式可求得,阻尼系数

z=0.59,小于1,是欠阻尼。

ts=

33=(-s为极点实部),可以求得wn=1.27 zwns则极点公式为p1,=2-zwn?j1zwn,得到两个共轭极点为

2p1,=2-0.7 5j配置非主导极点

1.. 025p3=-15,p4=-15,

在MATLAB的控制系统工具箱中提供了单变量系统极点配置acker(),其格式为 K=acker(A,B,p)

程序如下:

A=[0 1 0 0;0 0 -2 0;0 0 0 1;0 0 22 0]; B=[0;1;0;-1];

C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]; D=0;

rc=rank(ctrb(A,B));

p=[-0.75+1.025j,-0.75-1.025j,-15,-15]; K=acker(A,B,p) 运行结果如下:

4 程序及其执行结果

该二阶系统的阶跃响应为下图所示

脉冲响应:

本文来源:https://www.bwwdw.com/article/kq3d.html

Top