一阶倒立摆控制系统设计

更新时间:2024-05-29 03:22:01 阅读量: 综合文库 文档下载

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

倒立摆课程设计报告

课程设计说明书

课程名称: 控制系统课程设计 设计题目:一阶倒立摆控制器设计 院 系: 信息与电气工程学院 班 级: 设 计 者: 学 号: 指导教师: 设计时间:2013年2月25日到2013年3月8号

1

倒立摆课程设计报告

课程设计(论文)任务书

专 业 学 生 题 目 子 题 设计时间 自动化 班 级 指导教师 一阶倒立摆课程设计 2013年 2 月 25 日 至 2013 年 3 月 8 日 共 2 周 设计(论文)的任务和基本要求,包括设计任务、查阅文献、方案设计、说明书(计算、图纸、撰写内容及规范等)、工作量等内容。 1.建立一阶倒立摆数学模型 2.做模型仿真试验 (1)给出Matlab仿真程序。 (2)给出仿真结果和响应曲线。 3.倒立摆系统的PID控制算法设计 设计PID控制器,使得当在小车上施加1N的脉冲信号时,闭环系统的响应指标为: (1)稳定时间小于5秒 (2)稳态时摆杆与垂直方向的夹角变化小于0.1 弧度 设计要求 并作PID控制算法的MATLAB仿真 4.倒立摆系统的最优控制算法设计 用状态空间法设计控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为: (1)摆杆角度?和小车位移x的稳定时间小于5秒 (2)x的上升时间小于1秒 (3)?的超调量小于20度(0.35弧度) (4)稳态误差小于2%。 0902101 指导教师签字: 系(教研室)主任签字:

2013年 3月 5日

2

倒立摆课程设计报告

目录

一、 建立一阶倒立摆数学模型 ............................................................................................. 4

1. 一阶倒立摆的微分方程模型 ...................................................................................... 4 2. 一阶倒立摆的传递函数模型 ...................................................................................... 6 3. 一阶倒立摆的状态空间模型 ...................................................................................... 7 二、 一阶倒立摆matlab仿真 ................................................................................................ 9 三、 倒立摆系统的PID控制算法设计 .............................................................................. 13 四、倒立摆系统的最优控制算法设计 ................................................................................. 23 五、 总结 ............................................................................................... 错误!未定义书签。 六、 参考文献 ....................................................................................................................... 29

3

倒立摆课程设计报告

一、建立一阶倒立摆数学模型

首先建立一阶倒立摆的物理模型。在忽略空气阻力和各种摩擦之后, 可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图1所示。

系统内部各相关参数定义如下: M 小车质量 m 摆杆质量 b 小车摩擦系数

l 摆杆转动轴心到杆质心的长度 I 摆杆惯量

F 加在小车上的力 x 小车位置

φ 摆杆与垂直向上方向的夹角 θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)

1. 一阶倒立摆的微分方程模型

对一阶倒立摆系统中的小车和摆杆进行受力分析,其中,N和 P为小车与摆杆相互作用力的水平和垂直方向的分量。

4

倒立摆课程设计报告

图 1-2 小车及摆杆受力图

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

(1-1)

由摆杆水平方向的受力进行分析可以得到下面等式:

(1-2)

即:

把这个等式代入式(1-1)中,就得到系统的第一个运动方程:

(1-4)

为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:

(1-3)

(1-5)

即:

(1-6)

力矩平衡方程如下:

(1-7)

由于面有负号。

5

所以等式前

倒立摆课程设计报告

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

(1-8)

,(φ是摆杆与垂直向上方向之间的夹角),假设φ <<1

d?2)?0。用u代表被控对dt象的输入力F,利用上述近似进行线性化得直线一阶倒立摆的微分方程为:

弧度, 则可以进行近似处理:cos???1,sin????,( (1-9)

2. 一阶倒立摆的传递函数模型

对式(1-9)进行拉普拉斯变换,得:

(2-1)

注意:推导传递函数时假设初始条件为 0。

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

(2-2)

(2-3)

如果令错误!未找到引用源。,则有:

(2-4)

把上式代入方程组(2-1)的第二个方程,得:

(2-5)

6

倒立摆课程设计报告

整理后得到传递函数:

(2-6)

其中

3. 一阶倒立摆的状态空间模型

设系统状态空间方程为:

(3-1)

方程组(2-9)对x解代数方程,得到解如下:

..(3-1)

整理后得到系统状态空间方程:

(3-2)

(3-3)

1摆杆的惯量为I?ml2,代入(1-9)的第一个方程为:

3

7

倒立摆课程设计报告

得:

化简得:

设x?[xx?..(3-4)

?],u?x 则有:

'..

(3-5)

4.实际系统的传递函数与状态方程

实际系统的模型参数如下:

M 小车质量 0.5 Kg m 摆杆质量 0.2 Kg

b 小车摩擦系数 0 .1N/m/sec l 摆杆转动轴心到杆质心的长度 0.3m

I 摆杆惯量 0.006 kg*m*m

8

倒立摆课程设计报告

代入上述参数可得系统的实际模型。 摆杆角度和小车位移的传递函数:

(4-1)

摆杆角度和小车加速度之间的传递函数为:

摆杆角度和小车所受外界作用力的传递函数:

(4-2)

(4-3)

以外界作用力作为输入的系统状态方程:

(4-4)

以小车加速度为输入的系统状态方程:

(4-5)

二、一阶倒立摆matlab仿真

实际系统参数如下,按照上面给出的例子求系统的传递函数、状态空间方程,并进行脉冲响应和阶跃响应的matlab仿真。

9

倒立摆课程设计报告

M 小车质量 摆杆质量

1.096Kg 0.109Kg

0.1 N/m/sec

m

b

小车摩擦系数

l 摆杆转动轴心到杆质心的长度 0.25m

I 摆杆惯量 0.0034 kg*m*m

T 采样时间 0.005秒

1. 传递函数法 Matlab程序如下: M=1.096; m=0.109; b=0.1; I=0.0034; g=9.8; L=0.25;

q=(M+m)*(I+m*L^2)-(m*L)^2; num=[m*L/q 0 0]

den=[1 b*(I+m*L^2)/q -(M+m)*m*g*L/q -b*m*g*L/q 0]; [r,p,k]=residue(num,den); s=p;

得到传递函数的分子: num =

2.3566 0 0

以及传递函数分母: den =

1.0000 0.0883 -27.8285 -2.3094 0 开环极点: s =

10

倒立摆课程设计报告

其中,G1(s)是摆杆传递函数,G2(s)是小车传递函数。

由于输入信号r(s)?0,所以可以把结构图转换成:

其中,反馈环代表我们前面设计的摆杆的控制器。

从此框图我们可以看出此处只对摆杆角度进行了控制,并没有对小车位置进行控制。 小车位置输出为:

num2G2(s)den2X(s)?F(s)?F(s)(numPID)(num)1?KD(s)G1(s)11?

(denPID)(den1)?(num2)(denPID)(den1)F(s)(denPID)(den1)(den2)?(numPID)(num1)(den2)其中,num1,den1,num2,den2分别代表被控对象1和被控对象2传递函数的分子和分母。numPID和denPID代表PID控制器传递函数的分子和分母。下面我们来求G2(s),根据前面实验二的推导,有

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

mls可以推出小车位置的传递函数为

16

倒立摆课程设计报告

(I?ml2)2mgls?X(s)qq G2(s)??2U(s)b(I?ml)3(M?m)mgl2bmgls4?s?s?sqqq其中 q?[(M?m)(I?ml)?(ml)]

可以看出,den1 =den2=den,小车的算式可以简化成:

22X(s)?(num2)(denPID)F(s)

(denPID)(den)?k(numPID)(num1)3. PID控制算法的MATLAB仿真 实际系统参数如下:

M 小车质量 1.096 Kg m 摆杆质量 0.109 Kg b 小车摩擦系数 0 .1N/m/sec l 摆杆转动轴心到杆质心的长度 0.25m

I 摆杆惯量 0.0034 kg*m*m F 加在小车上的力 x 小车位置 T 采样时间

摆杆的matlab仿真程序代码如下:

M=0.5; m=0.2; b=0.1; I=0.006; g=9.8; L=0.3;

q=(M+m)*(I+m*L^2)-(m*L)^2; num1=[m*L/q 0 0];

den1=[1 b*(I+m*L^2)/q -(M+m)*m*g*L/q -b*m*g*L/q 0]; Kp=1; Ki=1; Kd=1;

numPID=[ Kd Kp Ki]; denPID=[1 0];

num=conv(num1,denPID);

den=polyadd(conv(denPID,den1),conv(numPID,num1)); [r,p,k]=residue(num,den); s=p

t=0:0.005:5;

impulse(num,den,t)

17

倒立摆课程设计报告

axis([0 2 0 10])

运行程序得到: s =

-6.4161 3.9693 0.0019 0 0

并得到仿真图像如下:

Impulse Response109876Amplitude54321000.20.40.60.81Time (sec)1.21.41.61.82

图3.1 kp=ki=kd=1时的仿真响应图

可见此时系统并不稳定,此时应该首先调整kp,观察其响应的变化: 讲kp设置为150,得到并观察响应图如下: s =

-1.2224 +18.0044i -1.2224 -18.0044i -0.0000 -0.0000 -0.0000

18

倒立摆课程设计报告

Impulse Response0.20.150.10.05Amplitude0-0.05-0.1-0.15-0.200.511.52Time (sec)2.533.54

图3-2,kp=150系统仿真图

可见此时系统两个闭环极点均在S平面做平面,系统稳定,系统稳定时间约为4秒,满足要求。此时系统有极小的静态误差,根据系统对于精度的要求可酌情考虑是否添加积分控制,本文添加积分控制。 将积分参数设为5,得到并观察闭环响应图。

在笔者经过多次尝试之后,发现积分控制对于系统响应的调节作用极小,笔者给出当积分参数分别设为10和50的响应图如下:

Impulse Response0.20.150.10.05Amplitude0-0.05-0.1-0.15-0.200.511.522.5Time (sec)33.544.55

图3-3,ki=10的响应

19

倒立摆课程设计报告

Impulse Response0.20.150.10.05Amplitude0-0.05-0.1-0.15-0.200.511.522.5Time (sec)33.544.55

图3-4,ki=50系统的响应

积分作用通常是用来调整系统的静态误差,使之达到需要的范围,但是此处明显积分作用对系统的影响不大,并了解到被控对象的特性属于变化快的类型,应该考虑改变微分控制,虽然微分控制在实际系统中运用并不多见。 笔者将微分作用参数设置为10,20,50观察其效果图。

Impulse Response0.20.150.10.05Amplitude0-0.05-0.1-0.15-0.200.511.522.5Time (sec)33.544.55

图3-5,kp=150,ki=50,kd=10的仿真图像

20

倒立摆课程设计报告

Impulse Response0.20.150.10.05Amplitude0-0.05-0.1-0.15-0.200.511.522.5Time (sec)33.544.55

图3-6,kp=150,ki=50,kd=20的仿真图像

Impulse Response0.20.150.10.05Amplitude0-0.05-0.1-0.15-0.200.511.522.5Time (sec)33.544.55

图3-7,kp=150,ki=50,kd=50的仿真图像

当微分效果加上去的时候,系统闭环仿真图像结果得到了质的改善,瞬间取代了超调,不稳定,响应时间也迅速降到了0.5秒,稳定时间在1秒,完美地

21

倒立摆课程设计报告

完成了任务。其效果已经不能简单的用好来形容,但是微分作用并非如此普及,并且每次都效果如此良好,要根据不同的对象来判断用什么作用。必须要说的是,微分作用在物理实现中是并不容易的,如果只有比例调节和积分调节就能达到预想的效果,那就不要使用微分调节。

4.小车位置控制算法仿真

pid2.m是仿真小车位置变化的m文件,文件如下: % 小车位置PID控制

% 输入倒立摆传递函数 G1(s)=num1/den1,G2(s)=num2/den2 M = 1.096; m = 0.109; b = 0.1; q = (M+m)*(I+m*l^2) -(m*l)^2; num1 = [m*l/q 0 0];

den1 = [1 b*(I+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0]; num2 = [-(I+m*l^2)/q 0 m*g*l/q]; den2 = den1;

% 输入控制器PID数学模型 Gc(s)=numPID/denPID Kp = 150; Ki = 50; Kd = 50; numPID = [Kd Kp Ki]; denPID = [1 0];

% 计算闭环系统传递函数G(s)=num/den % 多项式相乘

num = conv(num2,denPID); % 多项式相加

den = polyadd(conv(denPID,den2),conv(numPID,num1 )); % 求闭环系统极点 [r,p,k] = residue(num,den); % 显示闭环系统极点 s = p

% 求取多项式传函的脉冲响应 t=0:0.005:5; impulse(num,den,t)

% 显示范围:横坐标0-5,纵坐标0-10,此条语句参数可根据仿真输出曲线调整

axis([0 5 -0.1 0.5]) grid

此时系统取Kp=150,Ki=50,Kd=50,阶跃响应仿真曲线如下图所示: s =

22

I = 0.0034; g = 9.8; l= 0.25;

倒立摆课程设计报告

-115.0953 -2.4030 -0.4177 0

0

Impulse Response0.40.3Amplitude0.20.10-0.100.511.522.5Time (sec)33.544.55

图3-8,小车位置仿真

由仿真结果能够看出,当摆杆角度处于很好的闭环控制下时,小车位置虽然处于失控状态,但是上升速度不快。

四、倒立摆系统的最优控制算法设计

1. 设计目的与要求

现代控制理论的最突出特点就是将控制对象用状态空间表达式的形式表示出来,这样便于对多输入多输出系统进行分析和设计。线性二次型最优控制算法(LQR)是现代控制理论中一种重要的、基本的方法,LQR算法的目的是在一定的性能指标下,使系统的控制效果最佳,即利用最少的控制能量,来达到最小的状态误差。本章主要利用最优控制算法实现对一阶倒立摆系统的摆杆角度和小车位置的同时控制。 设计目的:

23

倒立摆课程设计报告

学习如何使用状态空间法设计系统的控制算法。 设计要求:

用状态空间法设计控制器,使得当在小车上施加0.2N的阶跃信号时,闭环系统的响应 指标为:

(1)摆杆角度?和小车位移x的稳定时间小于5秒 (2)x的上升时间小于1秒

(3)?的超调量小于20度(0.35弧度) (4)稳态误差小于2%。

2. 最优控制器的设计

在PID调节中,我们的输入是脉冲量,并且在设计控制器时,只对摆杆角度进行控制,而不考虑小车的位移。然而,对一个倒立摆系统来说,把它作为单输出系统是不符合实际的,如果把系统当作多输出系统的话,用状态空间法分析要相对简单一些,在这一章我们将设计一个对摆杆位置和小车位移都进行控制的控制器。 系统状态方程为

??AX?BuXY?CX?Du 在倒立摆相关参数为:

M 小车质量 1.096Kg

摆杆质量 m

b 小车摩擦系数

0.2109Kg

0.1 N/m/sec

l 摆杆转动轴心到杆质心的长度 0.25 m

I 摆杆惯量 T 采样时间

0.0034 kg*m*m 0.005秒

的条件下,状态方程系数矩阵如下:

1?0?00.0883A???00??0?0.2357??0??0.8832??1000?01.0000??;B???;C???;0010?0?01.0000??????27.82850??2.3566?00?0?D???

?0?

24

倒立摆课程设计报告

最优控制的前提条件是系统是能控的,下面来判断一下系统的能控能观性。 ? Matlab仿真程序如下:

A=[0 1 0 0;0 -(I+m*L^2)*b/p (m^2*g*L^2)/p 0;0 0 0 1;0 -(m*L*b)/p m*g*L*(m+M)/p 0]

B=[0;(I+m*L^2)/p;0;(m*L)/p] C=[1 0 0 0;0 0 1 0] D=[0;0]

Qc=ctrb(A,B);//判断能控性 K=rank(Qc)

Qo=obsv(A,C);//判断能观性 I=rank(Qo)

1. Matlab仿真结果为: K =

4 I =

4

即:系统的能控矩阵的秩 rank[BABA2BA3B]?4。 系统的能观矩阵的秩 rank[CCACA2CA3]?4。

故系统是能控能观的。因此可以给系统加上最优控制器使得系统闭环稳定,且满足暂态性能指标。在运用线性二次型最优控制算法进行控制器设计时,主要的目的就是获得反馈向量K的值。由上一小节的推导知道,设计系统状态反馈控制器时,一个关键的问题就是二次型性能指标泛函中加权矩阵Q和R的选取。为了使问题简化及加权矩阵具有比较明确的物理意义,我们将Q取为对角阵。假设

?Q110?0Q22 Q???00?0?000Q3300?0??;R?[r] 0??Q44?这样得到的性能指标泛函为

?

J??Q11x1?Q22x2?Q33x3?Q44x4?ru2dt

0?2222? 25

倒立摆课程设计报告

由上式可以看出,Qii是对xi的平方的加权,Qii的相对增加就意味着对xi的要求相对其它状态变量严格,在性能指标中的比重大,xi的偏差状态相对减小。r是对控制量u的平方加权,当r相对较大时,意味着控制费用增加,使得控制能量较小,反馈减弱,而r取值较小时,系统控制费用减小,反馈增加,系统动态响应迅速。

考虑到一阶倒立摆系统在运行过程中,主要的被控量为系统的输出量x和?,因此在选取加权对角阵Q的各元素值时,由于Q11代表小车位置的权重,而Q33是摆杆角度的权重,所以只选取Q11、Q33,而Q22?Q44?0。 选取Q和R时需要注意的几个方面:

(1)由于我们采用的系统模型是线性化的结果,为使系统个状态量能够在线性范围工作,要求各状态量不应过大。

(2)闭环系统最好能有一对共轭复数极点,这样有利于克服系统的非线性摩擦,但系统主导极点的模不应太大以免系统频带过宽,使得系统对噪声太敏感,以致系统不能正常工作。

(3)加权矩阵R的减小,会导致大的控制能量,应注意控制U的大小,不要超过系统执行机构的能力,使得放大器处于饱和状态。

?、控制系统如下图所示,图中R是施加在小车上的阶跃输入,四个状态量x、x??和??分别代表小车位移、小车速度、摆杆位置和摆杆角速度,输出y??x,??包

括小车位置和摆杆角度。我们要设计一个控制器,使得当给系统施加一个阶跃输入时,摆杆会摆动,然后仍然回到垂直位置,小车到达新的命令位置。

26

倒立摆课程设计报告

2)系统仿真 M = 0.5; m = 0.2; b = 0.1; I = 0.006; g = 9.8; l = 0.3; p = I*(M+m)+M*m*l^2;

A = [0 1 0 0; 0 -(I+m*l^2)*b/p (m^2*g*l^2)/p 0; 0 0 0 1; 0 -(m*l*b)/p m*g*l*(M+m)/p 0]; B = [ 0; (I+m*l^2)/p; 0;m*l/p ]; C = [1 0 0 0;0 0 1 0]; D = [0;0]; p = eig(A); % 求向量K x = 5000; y = 100; Q = [x 0 0 0; 0 0 0 0; 0 0 y 0 0 0 0 0]; R = 1; K = lqr(A,B,Q,R) % 计算LQR控制矩阵

Ac = [(A-B*K)]; Bc = [B]; Cc = [C]; Dc = [D]; % 计算增益Nbar Cn = [1 0 0 0];

Nbar = rscale(A,B,Cn,0,K); Bcn = [Nbar*B];

% 求阶跃响应并显示,小车位置为虚线,摆杆角度为实线 T = 0:0.005:5;

U = 0.2*ones(size(T));

[Y,X] = Lsim(Ac,Bcn,Cc,Dc,U,T); plot(T,Y(:,1),':',T,Y(:,2),'-')

legend('Cart Position','Pendulum Angle') grid

文件中用到求取输入输出匹配系数函数rscale,它不是Matlab 工具,因此必须把它拷贝到rscale.m文件中, 并把该文件和源文件一起拷贝到MATLAB工作区。rscale.m文件如下: % 求取输入输出匹配系数

27

倒立摆课程设计报告

function[Nbar] = rscale(A,B,C,D,K) s = size(A,1);

Z = [zeros([1,s]) 1]; N = inv([A,B;C,D])*Z'; Nx = N(1:s); Nu = N(1+s);

Nbar = Nu + K*Nx;

用函数rscale来计算Nbar,运行程序,得到: K =

-70.7107 -40.6531 125.7702 24.3770

0.250.20.150.10.050-0.05-0.1-0.15 0Cart PositionPendulum Angle 0.511.522.533.544.55

图4-1,系统仿真图

即Nbar?rscale(A,B,Cn,0,K)??70.7107,可以看出,实际上Nbar和K向量中与小车位置x对应的那一项相等。

此时系统的响应曲线如下,小车位置跟踪输入信号;并且,摆杆超调足够小,稳态误差满足要求,上升时间和稳定时间也符合设计指标。

28

倒立摆课程设计报告

五、参考文献

倒立摆课程设计指导书 曲延滨 2011年3月 哈尔滨工业大学出版社

29

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

Top