倒立摆实验报告.docx
《倒立摆实验报告.docx》由会员分享,可在线阅读,更多相关《倒立摆实验报告.docx(34页珍藏版)》请在冰豆网上搜索。
倒立摆实验报告
倒立摆实验报告
机自82
组员:
李宗泽
李航
刘凯
付荣
倒立摆与自动控制原理实验
一.实验目的:
1.运用经典控制理论控制直线一级倒立摆,包括实际系统模型的
建立、根轨迹分析和控制器设计、频率响应分析、PID控制分析等内
容.
2.运用现代控制理论中的线性最优控制LQR方法实验控制倒立
摆
3.学习运用模糊控制理论控制倒立摆系统
4.学习MATLAB工具软件在控制工程中的应用
5.掌握对实际系统进行建模的方法,熟悉利用MATLAB对系统模型进行仿真,利用学习的控制理论对系统进行控制器的设计,并对系统进行实际控制实验,对实验结果进行观察和分析,非常直观的感受控制器的控制作用。
二.实验设备
计算机及MATLAB.VC等相关软件
固高倒立摆系统的软件
固高一级直线倒立摆系统,包括运动卡和倒立摆实物
倒立摆相关安装工具
三.倒立摆系统介绍
倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种
技术的有机结合,其被控系统本身又是一个绝对不稳定、高阶次、多
变量、强耦合的非线性系统,可以作为一个典型的控制对象对其进行
研究。
倒立摆系统作为控制理论研究中的一种比较理想的实验手段,
为自动控制理论的教学、实验和科研构建一个良好的实验平台,以用
来检验某种控制理论或方法的典型方案,促进了控制系统新理论、新
思想的发展。
由于控制理论的广泛应用,由此系统研究产生的方法和
技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹
拦截控制系统、航空对接控制技术、火箭发射中的垂直度控制、卫星
飞行中的姿态控制和一般工业应用等方面具有广阔的利用开发前景。
倒立摆已经由原来的直线一级倒立摆扩展出很多种类,典型的有直线倒立摆环形倒立摆,平面倒立摆和复合倒立摆等,本次实验采用的是直线一级倒立摆。
倒立摆的形式和结构各异,但所有的倒立摆都具有以下的特性:
1)非线性2)不确定性3)耦合性4)开环不稳定性5)约束限制
倒立摆控制器的设计是倒立摆系统的核心内容,因为倒立摆是一个绝对不稳定的系统,为使其保持稳定并且可以承受一定的干扰,需要给系统设计控制器,本小组采用的控制方法有:
PID控制、双PID控制、LQR控制、模糊PID控制、纯模糊控制
四.直线一级倒立摆的物理模型:
系统建模可以分为两种:
机理建模和实验建模。
实验建模就是通过在研究对象上加上一系列的研究者事先确定的输入信号,激励
研究对象并通过传感器检测其可观测的输出,应用数学手段建立起系统的输入-输出关系。
。
机理建模就是在了解研究对象的运动规律基础上,通过物理、化学的知识和数学手段建立起系统内部的输入-状态关系。
,由于倒立摆本身是自不稳定的系统,实验建模存在一定的困难。
但是忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程。
下面我们采用牛顿-欧拉方法建立直线型一级倒立摆系统的数学模型:
在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图所示:
我们不妨做以下假设:
M小车质量
m摆杆质量
b小车摩擦系数
l摆杆转动轴心到杆质心的长度
I摆杆惯量
F加在小车上的力
x小车位置
φ摆杆与垂直向上方向的夹角
θ摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)
图是系统中小车和摆杆的受力分析图。
其中,N和P为小车与摆杆相互作用
力的水平和垂直方向的分量。
注意:
在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而
矢量方向定义如图所示,图示方向为矢量正方向。
分析小车水平方向所受的合力,可以得到以下方程:
(3-1)
由摆杆水平方向的受力进行分析可以得到下面等式:
(3-2)
即:
(3-3)
把这个等式代入式(3-1)中,就得到系统的第一个运动方程:
(3-4)
为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,
可以得到下面方程:
(3-5)
(3-6)
力矩平衡方程如下:
(3-7)
注意:
此方程中力矩的方向,由
l,故等式前面有负号。
合并这两个方程,约去P和N,得到第二个运动方程:
(3-8)
设θ=φ+π(φ是摆杆与垂直向上方向之间的夹角),假设φ与1(单位是弧
度)相比很小,即φ<<1,则可以进行近似处理:
用u来代表被控对象的输入力F,线性化后两个运动方程如下:
(3-9)
对式(3-9)进行拉普拉斯变换,得到
(3-10)
注意:
推导传递函数时假设初始条件为0。
由于输出为角度φ,求解方程组的第一个方程,可以得到:
或
如果令则有:
把上式代入方程组的第二个方程,得到:
整理后得到传递函数:
其中
设系统状态空间方程为:
方程组对,解代数方程,得到解如下:
整理后得到系统状态空间方程:
由(3-9)的第一个方程为:
对于质量均匀分布的摆杆有:
于是可以得到:
化简得到:
设则有:
另外,也可以利用MATLAB中tf2ss命令对(3-13)式进行转化,求得上述状
态方程。
实际系统的模型参数如下:
M小车质量1.096Kg
m摆杆质量0.109Kg
b小车摩擦系数0.1N/m/sec
l摆杆转动轴心到杆质心的长度0.25m
I摆杆惯量0.0034kg*m*m
把上述参数代入,可以得到系统的实际模型。
摆杆角度和小车位移的传递函数:
摆杆角度和小车加速度之间的传递函数为:
摆杆角度和小车所受外界作用力的传递函数:
以外界作用力作为输入的系统状态方程:
以小车加速度作为输入的系统状态方程:
注意事项:
在固高科技所有提供的控制器设计和程序中,采用的都是以
小车的加速度作为系统的输入,如果用户需要采用力矩控制的方法,可以参考以
上把外界作用力作为输入的各式。
五.系统的阶越响应分析
根据已经得到系统的状态方程,先对其进行阶跃响应分析,在
MATLAB中
键入以下命令:
clear;
A=[0100;0000;0001;0029.40];
B=[0103]';
C=[1000;0100];
D=[00]';
step(A,B,C,D)
可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。
六.频率响应分析(系统稳定性分析)
前面我们已经得到了直线一级倒立摆的物理模型,实际系统的
开环传递函数
为:
其中输入为小车的加速度V(s),输出为摆杆的角度Φ(s)。
在MATLAB下绘制系统的Bode图和奈奎斯特图。
在MATLAB中键入以下命令:
clear;
num=[0.02725];
den=[0.01021250-0.26705];
z=roots(num);
p=roots(den);
subplot(2,1,1)
bode(num,den)
subplot(2,1,2)
nyquist(num,den)
得到如下图所示的结果:
z=
Emptymatrix:
0-by-1
p=
5.1136
-5.1136
可以得到,系统没有零点,但存在两个极点,其中一个极点位于右半s平面,
根据奈奎斯特稳定判据,闭环系统稳定的充分必要条件是:
当ω从-∞到+∞变
化时,开环传递函数G(jω)沿逆时针方向包围-1点p圈,其中p为开环传递函数
在右半S平面内的极点数。
对于直线一级倒立摆,由奈奎斯特图我们可以看出,开
环传递函数在S右半平面有一个极点,因此G(jω)需要沿逆时针方向包围-1点一圈。
可以看出,系统的奈奎斯特图并没有逆时针绕-1点一圈,因此系统不稳定,
需要设计控制器来镇定系统。
七.具体控制方法
(一)双PID控制
直线一级倒立摆双PID控制实验
1.PID控制分析
经典控制理论的研究对象主要是单输入单输出的系统,控制器设计时一般需
要有关被控对象的较精确模型。
PID控制器因其结构简单,容易调节,且不需要
对系统建立精确的模型,在控制上应用较广。
对于倒立摆系统输出量为摆杆的角度,它的平衡位置为垂直向上的
情
况。
系统控制结构框图如下:
2.双PID实验控制参数设定及仿真。
在Simulinkzhong建立直线一级倒立摆模型
上下两个PID模块。
鼠标右键,选择“Lookundermask”打开模型
内部结构分别为:
双击第二个模块打开参数设置窗口
令kp=1.ki=0.kd=0
得到摆杆角度仿真结果
可看出控制曲线不收敛。
因此增大控制量。
令kp=-30.ki=0.kd=4.6.得
到如下仿
真结果
从上面摆杆角度仿真结果可看出,稳定比较好。
但稳定时间稍微有点长。
双击第一个模块打开参数设置窗
经多次尝试在此参数即kp=-7,ki=0,kp=-4.5情况下效果最好。
得到以下仿真结果
黄线为小车位置输出曲线,红线为摆杆角度输出曲线。
从图中可以看出,系统可以比较好的稳定。
稳定时间在稳定性不错。
3.双PID控制实验
打开直线一级倒立摆爽PID实时控制模块
2-3秒之间。
双击doublePID控制模块进入参数设置
把参数输入PID控制器。
编译程序,使计算机同倒立摆连接。
运行程序。
实验结果如下图所示
从图中可以看出,倒立摆可以实现比较好的稳定性。
(二)线性最优二次控制LQR
线性二次最优控制LQR控制实验
1线性二次最优控制LQR基本原理及分析
线性二次最优控制LQR基本原理为,由系统方程:
确定下列最佳控制向量的矩阵K:
u(t)=-K*x(t)
使得性能指标达到最小值:
式中Q——正定(或正半定)厄米特或实对称阵
R——为正定厄米特或实对称阵
图3-54最优控制LQR控制原理图
方程右端第二项是考虑到控制能量的损耗而引进的,矩阵Q和R
确定了误差和能量损耗的相对重要性。
并且假设控制向量u(t)是无约束的。
对线性系统:
根据期望性能指标选取Q和R,利用MATLAB命令lqr就可以得到反馈矩阵K的值。
K=lqr(A,B,Q,R)
改变矩阵Q的值,可以得到不同的响应效果,Q的值越大(在一定的范围之内),系统抵抗干扰的能力越强,调整时间越短。
但是Q不能过大
2.LQR控制参数调节及仿真
前面我们已经得到了直线一级倒立摆系统的比较精确的动力学
模型,下面我们针对直线型一级倒立摆系统应用LQR法设计与调节控制器,控制摆杆保持竖直向上平衡的同时,跟踪小车的位置。
前面我们已经得到了直线一级倒立摆系统的系统状态方程:
应用线性反馈控制器,控制系统结构如下图。
图中R
是施加在小车上的阶跃输入,四个状态量x,x,φ,φ分别代表小车位移、小车速度、摆杆角度和摆杆角速度,输出y=[x,φ]’包括小车位置和摆杆角度。
设计控制器使得当给系统施加一个阶跃输入时,摆杆会摆动,然后仍然回到垂直位置,小车可以到达新的指定位置。
假设全状态反馈可以实现(四个状态量都可测),找出确定反馈控制规律的向量K。
在Matlab中得到最优控制器对应的K。
Lqr函数允许你选择两个参数——R和Q,这两个参数用来平衡输入量和状态量的权重。
最简单的情况是假设
R=1,Q=C’*C。
当然,也可以通过改变Q矩阵中的非零元素来
调节控制器以得到期望的响应。
其中,Q1,1代表小车位置的权重,而Q3,3是摆杆角度的权重,输入的权重R是1。
下面来求矩阵K,Matlab语句为K=lqr(A,B,Q,R)。
下面在MATLAB中
编程计算:
A=[0100;0000;0001;0029.40];
B=[0103]';
C=[1000;0010];
D=[00]';
Q11=1500;Q33=300;
Q=[Q11000;
0000;
00Q330;
0000];
R=1;
K=lqr(A,B,Q,R);
Ac=[(A-B*K)];Bc=[B];Cc=[C];Dc=[D];
T=0:
0.005:
5;
U=0.2*ones(size(T));
Cn=[1000];
Nbar=rscale(A,B,Cn,0,K);Bcn=[Nbar*B];
[Y,X]=lsim(Ac,Bc,Cc,Dc,U,T);
plot(T,X(:
1),'-');holdon;
plot(T,X(:
2),'-');holdon;
plot(T,X(:
3),'.');holdon;
plot(T,X(:
4),'-');
legend('cartpls','cartspd','pendang','pendspd')
令Q1,1=1,Q3,3=1求得
K[-1-1.785525.4224.6849]
在Simulink中建立直线一级倒立摆的模型如下图所示:
“LQRController”为一封装好的模块,在其上单击鼠标右键,选择“Lookunder
mask”打开LQRController结构如下:
双击“MatrixgainK”即可输入控制参数:
点击执行仿真,得到如下仿真结果:
LQR控制的阶跃响应如上图所示,从图中可以看出,闭环控制系统响
应的超调量很小,但稳定时间和上升时间偏大,我们可以通过增大控
制量来缩短稳定时间和上升时间。
可以发现,Q矩阵中,增加Q11使稳定时间和上升时间变短,
并且使摆杆的角度变化减小。
经过多次尝试,这里取Q1,1=1500,Q3,3
=300,
则K=[-32.7298-23.825581.618214.7098]
输入参数,运行得到响应曲线如下:
从图中可以看出,系统响应时间有明显的改善,增大
Q1,1和
Q3,3,系统的响应还会更快,但是对于实际离散控制系统,过大的
控制量会引起系统振荡。
3.直线一级倒立摆LQR控制实验
打开直线一级倒立摆LQR实时控制模块
其中“LQRController”为LQR控制器模块,“RealControl”为实时控
制模块,双击“LQRController”模块打开LQR控制器参数设置窗口
如下:
在“LQRController”模块上点击鼠标右键选择“Lookundermask”打开模
型如下:
双击“RealControl”模块打开实时控制模块如下图:
其中“Pendulum”模块为倒立摆系统输入输出模块,输入为小车的速度“Vel”和“Acc”,输出为小车的位置“Pos”和摆杆的角度
“Angle”。
双击“Pendulum”模块打开其内部结构:
其中“SetCart’sAccandVel”模块的作用是设置小车运动的速度和加速度,GetCart’sPosition”模块的作用是读取小车当前的实际位置,“GetPend’sAngle”的作用是读取摆杆当前的实际角度。
2)运行程序,实验运行结果如下图所示:
其中图片上半部分为小车的位置曲线,下半部分为摆杆角度的变化曲线,从图中可以看出,小车位置和摆杆角度比较稳定。
控制效果很好。
在此实验中,R值固定,R=1,则只调节Q值,Q11代表小车位置的权重,而Q33是摆杆角度的权重,若Q33增加,使得θ的变化幅度减小,而位移r的响应速度变慢;若Q11增加,使得r的跟踪速度变快,而θ的变化幅度增大。
当给系统施加一个阶跃输入后,得到系统的响应结果。
从响应曲线可明显看出是否满足系统所要达到的性能指标要求。
通过这样反复不断的试凑,选取能够满足系统动态性能要求的Q和R。
(三)直线二级倒立摆
直线两级倒立摆由直线运动模块和两级倒立摆组件组成。
6.1系统物理模型
为简化系统,我们在建模时忽略了空气阻力和各种摩擦,并认为摆杆为刚体。
二级倒立摆的组成如图6-1所示:
图6-1直线两级倒立摆物理模型倒立摆参数定义如下:
M小车质量
m1摆杆1的质量
m2摆杆2的质量
m3质量块的质量
l1摆杆1中心到转动中心的距离
l2摆杆2中心到转动中心的距离
θ1摆杆1与竖直方向的夹角
θ2摆杆2与竖直方向的夹角
F作用在系统上的外力
利用拉格朗日方程推导运动学方程:
拉格朗日方程为:
L(q,q)=T(q,q)-V(q,q)
其中L为拉格朗日算子,q为系统的广义坐标,T为系统的
动能,V为系统的势能。
其中i=1,2,3,,n,fi为系统在第i个广义坐标上的外力,
在二级倒立摆系统中,系统的广义坐标有三个广义坐标,分别为x,
θ1,θ2。
首先计算系统的动能:
其中Tm,Tm1,Tm2,Tm3分别为小车的动能,摆杆1的动能,摆杆
2的动能和质量块的动能。
小车的动能:
Tm1=Tm1'+Tm2''其中Tm1',Tm2'分别为摆杆1的平动动能
和转动动能。
Tm2=Tm2'+Tm2''其中Tm2',Tm2'分别为摆杆2的平动动能
和转动动能。
对于系统,设以下变量:
xpend1摆杆1质心横坐标;
yangle1摆杆1质心纵坐标;
xpend2摆杆2质心横坐标;
yangle2摆杆2质心纵坐标;
xmass质量块质心横坐标;
ymass质量块质心纵坐标;
又有:
由于系统在θ1,θ2广义坐标下没有外力作用,所以有:
在Mathematics中计算以上各式。
因其余各项为0,所以这里仅列举了k12、k13、k17、k22、k23、k27
等7项,得到结果如下:
6.2系统可控性分析
系统状态矩阵A,B,C,D如下:
利用MATLAB计算系统状态可控性矩阵和输出可控性矩阵的秩:
得到结果如下:
或是通过MATLAB命令ctrb和obsv直接得到系统的可控性和可
观测性。
运行的到:
可以得到,系统状态和输出都可控,且系统具有可观测性。
6.3直线两级倒立摆MATLAB仿真
在MATLABSimulink中建立直线两级倒立摆的模型:
其中“State-Space”模块为直线两级倒立摆的状态方程,双击模块打开模型:
“Controller”模块为控制器模块,在“Controller”模块上单击鼠标右键,选择“Lookundermask”打开模型内部结构:
其中“MatrixGainK”为反馈矩阵。
双击“Controller”模块打开其参数设置窗口:
先设置参数为“1”。
“Disturbance”模块为外界干扰模块,其作用是给系统施加一个阶跃信号,点击
“”运行模型进行开环系统仿真。
得到运行结果如下:
从仿真结果可以看出,系统发散,为使系统稳定,需要对其添加
控制器。
6.4LQR控制器设计及仿真
给系统添加LQR控制器,添加控制器后的系统闭环图如下图所
示:
下面利用线性二次最优控制LQR方法对系统进行控制器的设
计
clear;clc;
k12=86.69;k13=-21.62;k17=6.64;
k22=-40.31;k23=39.45;k27=-0.088;
a=[000100;000010;000001;000000;0k12k13000;0k22k23000];
b=[0001k17k27]';
c=[100000;010000;001000];
d=[0;0;0];
q11=1;q22=1;q33=1;
q=[q1100000;0q220000;00q33000;000000;000000;000000];
r=1;
k=lqr(a,b,q,r)
aa=a-b*k;
b=b*k
(1);
sys=ss(aa,b,c,d);
t=0:
0.01:
5;
[y,t,x]=step(sys,t);
plot(t,y(:
1),'g',t,y(:
2),'r',t,y(:
3));
gridon
运行得到以下结果:
LQR控制参数为:
K=[173.818-83.9412.01624.2791-13.036]
得到仿真结果如下:
可以看出,系统稳定时间过