资源描述
哈 尔 滨 工 业 大 学
哈尔滨工业大学
控制科学与工程系
控制系统设计课程设计报告
姓 名: 院(系):英才学院
专 业:自动化 班 号:
任务起至日期:
课程设计题目: 直线一级倒立摆控制器设计
已知技术参数和设计要求:
本课程设计的被控对象采用固高公司的直线一级倒立摆系统GIP-100-L。
系统内部各相关参数为:
M小车质量0.5kg; m摆杆质量0.2kg; b小车摩擦系数0.1N/m/sec; l摆杆转动轴心到杆质心的长度0.3m; I摆杆惯量0.006kg*m*m; T采样时间0.005秒。
设计要求:
1.推导出系统的传递函数和状态空间方程。用Matlab进行阶跃输入仿真,验证系统的稳定性。
2.设计PID控制器,使得当在小车上施加0.1N的脉冲信号时,闭环系统的响应指标为:
(1)稳定时间小于5秒;
(2)稳态时摆杆与垂直方向的夹角变化小于0.1弧度。
3.设计状态空间极点配置控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为:
(1)摆杆角度和小车位移x的稳定时间小于3秒
(2)x的上升时间小于1秒
(3)的超调量小于20度(0.35弧度)
(4)稳态误差小于2%。
工作量:
1.建立直线一级倒立摆的线性化数学模型;
2.倒立摆系统的PID控制器设计、Matlab仿真及实物调试;
3.倒立摆系统的极点配置控制器设计、Matlab仿真及实物调试。
工作计划安排:
第3周:(1)建立直线一级倒立摆的线性化数学模型;
(2)倒立摆系统的PID控制器设计、Matlab仿真;
(3)倒立摆系统的极点配置控制器设计、Matlab仿真。
第4周:实物调试;
撰写课程设计论文。
同组设计者及分工:
各项工作独立完成
指导教师签字
年 月 日
教研室主任意见:
教研室主任签字
年 月 日
*注:此任务书由课程设计指导教师填写。
一.直线一阶倒立摆简介
倒立摆是进行控制理论研究的典型实验平台。倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性系统,可以作为一个典型的控制对象对其进行研究。最初研究开始于二十世纪50 年代,麻省理工学院(MIT)的控制论专家根据火箭发射助推器原理设计出一级倒立摆实验设备。近年来,新的控制方法不断出现,人们试图通过倒立摆这样一个典型的控制对象,检验新的控制方法是否有较强的处理多变量、非线性和绝对不稳定系统的能力,从而从中找出最优秀的控制方法。
倒立摆系统作为控制理论研究中的一种比较理想的实验手段,为自动控制理论的教学、实验和科研构建一个良好的实验平台,以用来检验某种控制理论或方法的典型方案,促进了控制系统新理论、新思想的发展。由于控制理论的广泛应用,由此系统研究产生的方法和技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控制系统、航空对接控制技术、火箭发射中的垂直度控制、卫星飞行中的姿态控制和一般工业应用等方面具有广阔的利用开发前景。 平面倒立摆可以比较真实的模拟火箭的飞行控制和步行机器人的稳定控制等方面的研究。
一阶倒立摆系统的结构示意图如下所示:
摆杆
小车
滑轨 电机
图1-1 一阶倒立摆结构示意图
系统组成框图如下所示:
倒立摆
伺服驱动器
运动控制卡
伺服电机
计算机
光电码盘1
光电码盘2
图1-2 一级倒立摆系统组成框图
系统是由计算机、运动控制卡、伺服机构、倒立摆本体和光电码盘几大部分组成的闭环系统。光电码盘1将小车的位移、速度信号反馈给伺服驱动器和运动控制卡,白干的角度、角速度信号由光电码盘2反馈给运动控制卡。计算机从运动控制卡中读取实时数据,确定控制决策(小车运动方向、移动速度、加速度等),并由运动控制卡来实现控制决策,产生相应的控制量,使电机转动,通过皮带带动小车运动吗,保持摆杆平衡。
二.直线一阶倒立摆数学模型的推导
首先建立一阶倒立摆的物理模型。在忽略空气阻力和各种摩擦之后, 可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图1所示。
图 2-1 直线一阶倒立摆模型
系统内部各相关参数定义如下:
M 小车质量
m 摆杆质量
b 小车摩擦系数
l 摆杆转动轴心到杆质心的长度
I 摆杆惯量
F 加在小车上的力
x 小车位置
φ 摆杆与垂直向上方向的夹角
θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)
1. 一阶倒立摆的微分方程模型
对一阶倒立摆系统中的小车和摆杆进行受力分析,其中,N和 P为小车与摆杆相互作用力的水平和垂直方向的分量。
图 1-2 旋转臂及摆杆受力图
分析小车水平方向所受的合力,可以得到以下方程:
(1-1)
由摆杆水平方向的受力进行分析可以得到下面等式:
(1-2)
即:
(1-3)
把这个等式代入式(1-1)中,就得到系统的第一个运动方程:
(1-4)
为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:
(1-5)
即:
(1-6)
力矩平衡方程如下:
(1-7)
由于所以等式前面有负号。
合并这两个方程,约去 P和 N,得到第二个运动方程:
(1-8)
设 ,(φ是摆杆与垂直向上方向之间的夹角),假设φ <<1弧度, 则可以进行近似处理:。用u代表被控对象的输入力F,利用上述近似进行线性化得直线一阶倒立摆的微分方程为:
(1-9)
2. 一阶倒立摆的传递函数模型
对式(1-9)进行拉普拉斯变换,得:
(2-1)
注意:推导传递函数时假设初始条件为 0。
由于输出为角度φ,求解方程组的第一个方程,可得:
(2-2)
或
(2-3)
如果令,则有:
(2-4)
(2-5)
把上式代入方程组(2-1)的第二个方程,得:
整理后得到传递函数:
(2-6)
其中。
3. 一阶倒立摆的状态空间模型
设系统状态空间方程为:
(3-1)
方程组(2-9)对解代数方程,得到解如下:
(3-1)
整理后得到系统状态空间方程:
(3-2)
(3-3)
摆杆的惯量为,代入(1-9)的第一个方程为:
得:
化简得:
(3-4)
设, 则有:
(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
代入上述参数可得系统的实际模型。
摆杆角度和小车位移的传递函数:
(4-1)
(4-2)
摆杆角度和小车加速度之间的传递函数为:
(4-3)
摆杆角度和小车所受外界作用力的传递函数:
以外界作用力作为输入的系统状态方程:
(4-4)
以小车加速度为输入的系统状态方程:
(4-5)
5.系统阶跃响应分析
上面已经提到系统的状态方程,先对其进行阶跃响应分析,在Matlab中键入以下命令:
得到以下计算结果:
图 2-2 直线一级倒立摆单位阶跃响应仿真
可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。
三.一阶倒立摆PID控制器设计
设计指标要求:
设计PID控制器,使得当在小车上施加0.1N的阶跃信号时,闭环系统的响应指标为:
(1) 稳定时间小于5秒;
(2) 稳态时摆杆与垂直方向的夹角变化小于0.1弧度。
1. PID控制分析
在模拟控制系统中,控制器最常用的控制规律是PID控制。常规PID控制系统原理框图如图3-1所示。系统由模拟PID控制器KD(s)和被控对象G(s)组成。
图 3-1 常规PID控制系统图
PID控制器是一种线性控制器,它是根据给定值r(t)与实际输出值y(t)构成控制偏差e(t)
将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。其控制规律为
或写成传递函数的形式
式中:——比例系数;——积分时间常数;——微分时间常数。
在控制系统设计和仿真中,也将传递传递函数写成
式中:——比例系数;——积分系数;——微分系数。
简单说来,PID控制器各校正环节的作用如下:
(1) 比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差。
(2) 积分环节:主要用于消除稳态误差,提高系统的型别。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
(3) 微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
这个控制问题和我们之前遇到的标准控制问题有些不同,在这里输出量为摆杆的位置,它的初始位置为垂直向上,我们给系统施加一个扰动,观察摆杆的响应。系统框图如图3-2所示:
图3-2 直线一级倒立摆闭环系统图
图中KD(s)是控制器传递函数,G(s)是被控对象传递函数。
考虑到输入r(s)=0,结构图可以很容易地变换成
图3-3 直线一级倒立摆闭环系统简化图
该系统的输出为
其中: num——被控对象传递函数的分子项
den——被控对象传递函数的分母项
numPID——PID控制器传递函数的分子项
denPID——PID控制器传递函数的分母项
通过分析上式就可以得到系统的各项性能。
由(2-13)可以得到摆杆角度和小车加速度的传递函数:
PID控制器的传递函数为:
只需调节PID控制器的参数,就可以得到满意的控制效果。
前面的讨论只考虑了摆杆角度,那么,在控制的过程中,小车位置如何变化呢?
小车的位置输出为:
通过对控制量v双重积分即可以得到小车位置。
2. PID控制参数设定及MATLAB仿真
实际系统的物理模型:
在Simulink中建立如图3-4所示的直线一级倒立摆模型:
图 3-4 直线一阶倒立摆PID控制MATLAB仿真模型
经过多次调试将Kp、KI、KD的值分别设为50、20、10,用MATLAB仿真得到如下结果:
图 3-5 PID控制仿真结果
从上面仿真结果可以看出,系统可以较好的稳定,但由于积分因素的影响,稳定时间明显增大。
此外,得到小车的位置输出曲线如图3-6所示:
图 3-6 小车位置曲线
由图3-6可以看出,由于PID控制器为单输入单输出系统,所以只能控制摆杆的角度,并不能控制小车的位置,所以小车会往一个方向运动。
3. PID控制实验
1) 在MATLAB Simulink 中打开直线一级顺摆实时控制程序。
(进入MATLAB Simulink 实时控制工具箱“Googol Education Products”打
开“Inverted Pendulum\Linear Inverted Pendulum\Linear 1-Stage Pendulum
Experiment\ PID Experiments”中的“PID Control Demo” )
图 3-7 MATLAB实时控制界面
2) 双击“PID Controller”模块打开PID参数设置界面,将Kp、KI、KD分别设为50,20,10。
3) 点击“ ”编译程序,在MATLAB命令窗口中有编译提示信息,在编译成功后进行以下实验。
4) 打开电控箱电源,确认运行安全后进行下面的操作。
5) 点击“ ”连接程序,在连接成功后点击“ ”运行程序,在系统保持稳定的情况下给系统施加干扰。
得到以下实控结果:
图 3-8 PID控制实验结果
由图3-8可以看出,倒立摆可以实现较好的稳定性,摆杆的角度在3.14弧度左右。PID控制器并不能对小车的位置进行控制,小车会沿滑杆移动。
当给予一定的干扰时,小车位置和角度的变化曲线如下图所示:
图 3-9 施加干扰时的PID实验结果
由上图可以看出,系统可以较好的抵换外界干扰,在干扰停止后,系统能够很快的回到平衡位置。
四.一阶倒立摆状态空间极点配置控制器设计
设计要求:
用极点配置法设计控制器,使得当在小车上施加0.1N的阶跃信号时,闭环系统的响应指标为:
(1) 要求系统调整时间小于3秒;
(2) 稳态时摆杆与垂直方向的夹角变化小于0.1弧度。
1.状态空间分析
状态反馈闭环控制系统原理图如图4-1所示。
图4-1 状态反馈闭环控制原理图
状态方程为:
式中:X为状态向量(n维),u为控制向量(纯量),A为n x n维常数矩阵,B为n x 1维常数矩阵。
选择控制信号:
求解上式,得到
方程解为:
可以看出,如果系统状态完全可控,K选择适当,对于任意的初始状态,当t趋于无穷时,都可以使x(t)趋于0。
极点配置的设计步骤:
(1) 检验系统的可控性条件。
(2) 从矩阵A的特征多项式
来确定,,的值。
(3) 确定使状态方程变为可控标准型的变换矩阵T:
其中M为可控性矩阵,
(4) 利用所期望的特征值,写出期望的多项式
并确定,,…的值。
(5) 需要的状态反馈增益矩阵K由以下方程确定:
2.极点配置及MATLAB仿真
前面我们已经得到了直线一级倒立摆的状态空间模型,以小车加速度作为输入的系统状态方程为:
于是有:
直线一级倒立摆的极点配置转化为:
对于如上所述的系统,设计控制器,要求系统具有较短的调整时间(约3秒)和合适的阻尼比(阻尼比ξ=0.5)。
下面采用极点配置的方法计算反馈矩阵K。
倒立摆极点配置原理图如图4-2所示。
图4-2 倒立摆极点配置原理图
极点配置步骤如下:
(1) 检验系统可控性
检验可控性与可观性的代码如下:
clear;
A=[ 0 1 0 0;
0 0 0 0;
0 0 0 1;
0 0 24.5 0];
B=[ 0 1 0 2.5]';
C=[ 1 0 0 0;
0 1 0 0];
D=[ 0 0 ]';
Cona1=[B A*B A^2*B A^3*B];
cona2=[C*B C*A*B C*A^2*B C*A^3*B D];
rank(cona1)
rank(cona2)
MATLAB运行后得:
ans =
4 (rank(cona1))
ans =
2 (rank(cona2))
可以看出,和一级倒立摆相同,系统的状态完全可控性矩阵的秩等于系统的状态维数,系统的输出完全可控性矩阵的秩等于系统输出向量y的维数,所以系
统可控,因此可以对系统进行控制器的设计,使系统稳定。
(2) 计算特征值
根据要求,并留有一定的裕量(设调整时间为2秒),我们选取期望的闭环极点,其中:
其中是一对具有的主导闭环极点,位于主导闭环极点的左边,因此其影响较小,因此期望的特征方程为:
因此可以得到:
由系统的特征方程:
因此有
系统的反馈增益矩阵为:
(1) 确定使状态方程变为可控标准型的变换矩阵T:
式中:
于是可以得到:
(2) 状态反馈增益矩阵K为:
=[-73.44 -36.72 132.34 16.27]
=[1800 – 0 900 – 0 233+24.5 4 – 0 ]
得到控制量为:
以上结果也可以用MATLAB编程计算,代码如下:
clear;
A=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 24.5 0];
B=[0 1 0 2.5]';
C=[1 0 0 0;0 0 1 0];
D=[0 0]';
J=[-15 0 0 0;0 -15 0 0;0 0 -2-2*i 0;0 0 0 -2+2*i];
pa=poly(A);
pj=poly(J);
M=[B A*B A^2*B A^3*B];
W=[pa(4) pa(3) pa(2) 1;pa(3) pa(2) 1 0;pa(2) 1 0 0;1 0 0 0];
T=M*W;
K=[pj(5)-pa(5) pj(4)-pa(4) pj(3)-pa(3) pj(2)-pa(2)]*inv(T)
Ac=[(A-B*K)];
Bc=[B];
Cc=[C];
Dc=[D];
T=0:0.005:5;
U=0.2*ones(size(T));
Cn=[1 0 0 0];
Nbar=rscale(A,B,Cn,0,K);
Bcn=[Nbar*B];
[Y,X]=lsim(Ac,Bcn,Cc,Dc,U,T);
plot(T,X(:,1),'-'); hold on;
plot(T,X(:,2),'.'); hold on;
plot(T,X(:,3),'.'); hold on;
plot(T,X(:,4),'.');
legend('CartPos','CartSpd','PendAng','PendSpd')
用MATLAB运行得到的结果如下图:
图 4-3 极点配置仿真结果
可以看出,倒立摆可以在2秒内达到平衡,满足设计要求。
3.极点配置控制实验
实验步骤如下:
(1) 进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“ Inverted Pendulum\Linear Inverted Pendulum\Linear 1-Stage Pendulum Experiment\ LQR Control Experiments”中的“LQR Control Demo” )
图 4-4 状态空间极点配置实时控制程序
(2) 点击Controller模块将Kx, Kx’,Ka,Ka’的值分别设为-73.44,-36.72, 132.34, 16.27,然后点击“OK”完成设置。
(3) 编译程序,建立连接,然后点击运行得到“Scope”的试验结果如下图所示:
图 4-5 极点配置实时控制结果
可以看出,系统可以在很小的震动范围内保持平衡,小车振幅约为m,摆杆振动的幅值约为0.05弧度。
在给定倒立摆干扰时,系统响应如下所示:
图 10 施加干扰时的极点配置实时控制结果
从上图可以看出,系统的稳定时间约为3秒,达到设计要求
五.课程设计心得与体会
本次课程设计的时间是三周,其内容是针对直线一阶倒立摆建立控制系统模型,根据技术参数和指标要求对系统进行PID控制器设计和极点配置控制器的设计。在第一周,首先去实验室观察了直线一阶倒立摆的实物及其工作原理,然后对直线一阶倒立摆进行机理建模,对倒立摆进行结构的受力分析,进而得到一阶倒立摆的微分方程模型、传递函数模型以及状态空间数学模型,最后用MATLAB对系统进行仿真,分析其系统阶跃响应。第二周主要进行直线一阶倒立摆的PID控制器设计,在第一周的建模结果的基础上,进行PID系数的匹配与调试,借助MATLAB仿真得到一组比较适合的系数,然后到实验室进行一阶倒立摆的实物系统上检验调试结果,并作进一步的调整。第三周主要进行一阶倒立摆的极点配置控制器设计,根据设计指标选取期望的闭环极点,然后求得反馈增益矩阵,进而得到状态反馈控制表达式。之后再用Matlab进行仿真,检测运行结果。最后再到实验室的实物系统上进行检验与调试。
在这三周的控制系统的课程设计过程中我收获了很多。首先,在设计过程中对课本上的理论知识有了更深入的理解,尤其是对一些比较抽象的概念有了更切实的体会并得到了进一步的巩固。其次,这次课程设计使我对控制系统的过程及其方法有了更深的理解,从指标要求到控制系统的建立,从建模到控制器的设计,都有了更好的掌握。在实践中深切体会到很多平时上课遇不到的问题及其解决方法,增强了自己的实践操作能力。此外,在本次课程设计中,我还深刻感受到自己很多地方的不足,例如基础知识掌握不扎实,参数调试不够熟练等等,在以后的学习过程中力求不断提高。
最后,感谢xxx老师对我的悉心帮助与指导。
展开阅读全文