资源描述
倒立摆实验报告
机自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.096 Kg
m 摆杆质量 0.109 Kg
b 小车摩擦系数 0 .1N/m/sec
l 摆杆转动轴心到杆质心的长度 0.2 5m
I 摆杆惯量 0.0034 kg*m*m
把上述参数代入,可以得到系统的实际模型。
摆杆角度和小车位移的传递函数:
摆杆角度和小车加速度之间的传递函数为:
摆杆角度和小车所受外界作用力的传递函数:
以外界作用力作为输入的系统状态方程:
以小车加速度作为输入的系统状态方程:
注意事项:在固高科技所有提供的控制器设计和程序中,采用的都是以
小车的加速度作为系统的输入,如果用户需要采用力矩控制的方法,可以参考以
上把外界作用力作为输入的各式。
五.系统的阶越响应分析
根据已经得到系统的状态方程,先对其进行阶跃响应分析,在MATLAB 中
键入以下命令:
clear;
A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0];
B=[ 0 1 0 3]';
C=[ 1 0 0 0;0 1 0 0];
D=[ 0 0 ]';
step(A, B ,C ,D)
可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。
六.频率响应分析(系统稳定性分析)
前面我们已经得到了直线一级倒立摆的物理模型,实际系统的开环传递函数
为:
其中输入为小车的加速度V (s) ,输出为摆杆的角度Φ(s) 。
在MATLAB 下绘制系统的Bode 图和奈奎斯特图。
在MATLAB 中键入以下命令:
clear;
num=[0.02725];
den=[0.0102125 0 -0.26705];
z=roots(num);
p=roots(den);
subplot(2,1,1)
bode(num,den)
subplot(2,1,2)
nyquist(num,den)
得到如下图所示的结果:
z =
Empty matrix: 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模块。鼠标右键,选择 “ Look under mask”打开模型内部结构分别为:
双击第二个模块打开参数设置窗口
令kp=1.ki=0.kd=0
得到摆杆角度仿真结果
可看出控制曲线不收敛。因此增大控制量。令kp=-30.ki=0.kd=4.6.得到如下仿
真结果
从上面摆杆角度仿真结果可看出,稳定比较好。但稳定时间稍微有点长。
双击第一个模块打开参数设置窗
经多次尝试在此参数即kp=-7,ki=0,kp=-4.5 情况下效果最好。
得到以下仿真结果
黄线为小车位置输出曲线,红线为摆杆角度输出曲线。
从图中可以看出,系统可以比较好的稳定。稳定时间在2-3秒之间。稳定性不错。
3.双PID控制实验
打开直线一级倒立摆爽PID实时控制模块
双击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=[0 1 0 0 ; 0 0 0 0;0 0 0 1; 0 0 29.4 0];
B=[0 1 0 3]';
C=[1 0 0 0; 0 0 1 0];
D=[0 0]';
Q11=1500;Q33=300;
Q=[Q11 0 0 0;
0 0 0 0;
0 0 Q33 0;
0 0 0 0];
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=[1 0 0 0];
Nbar=rscale(A,B,Cn,0,K);Bcn=[Nbar*B];
[Y,X]=lsim(Ac,Bc,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('cartpls','cartspd','pendang','pendspd')
令Q1,1= 1,Q3,3 =1求得
K [-1 -1.7855 25.422 4.6849]
在 Simulink 中建立直线一级倒立摆的模型如下图所示:
“LQR Controller”为一封装好的模块,在其上单击鼠标右键,选择“Look under
mask”打开LQR Controller 结构如下:
双击“Matrix gain K”即可输入控制参数:
点击 执行仿真,得到如下仿真结果:
LQR 控制的阶跃响应如上图所示,从图中可以看出,闭环控制系统响应的超调量很小,但稳定时间和上升时间偏大,我们可以通过增大控制量来缩短稳定时间和上升时间。
可以发现,Q 矩阵中,增加Q11 使稳定时间和上升时间变短,并且使摆杆的角度变化减小。经过多次尝试,这里取Q1,1=1500, Q3,3 =300,
则K = [ -32.7298 -23.8255 81.6182 14.7098]
输入参数,运行得到响应曲线如下:
从图中可以看出,系统响应时间有明显的改善,增大Q1,1 和Q3,3 ,系统的响应还会更快,但是对于实际离散控制系统,过大的控制量会引起系统振荡。
3.直线一级倒立摆LQR控制实验
打开直线一级倒立摆LQR 实时控制模块
其中“LQR Controller”为LQR 控制器模块,“Real Control”为实时控制模块,双击“LQR Controller”模块打开LQR 控制器参数设置窗口如下:
在“LQR Controller”模块上点击鼠标右键选择“Look under mask”打开模
型如下:
双击“Real Control”模块打开实时控制模块如下图:
其中“Pendulum”模块为倒立摆系统输入输出模块,输入为小车的速度“Vel ”和“Acc ”,输出为小车的位置“Pos”和摆杆的角度“Angle ”。
双击“Pendulum”模块打开其内部结构:
其中“Set Cart’s Acc and Vel”模块的作用是设置小车运动的速度和加速度, Get Cart’s Position”模块的作用是读取小车当前的实际位置,“Get Pend’s Angle” 的作用是读取摆杆当前的实际角度。
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,f i 为系统在第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 仿真
在MATLAB Simulink 中建立直线两级倒立摆的模型:
其中“State-Space”模块为直线两级倒立摆的状态方程,双击模块打开模型:
“Controller”模块为控制器模块,在“Controller”模块上单击鼠标右键,选择 “ Look under mask”打开模型内部结构:
其中“Matrix Gain K”为反馈矩阵。
双击“Controller”模块打开其参数设置窗口:
先设置参数为“1”。
“Disturbance”模块为外界干扰模块,其作用是给系统施加一个阶跃信号,点击
“ ”运行模型进行开环系统仿真。
得到运行结果如下:
从仿真结果可以看出,系统发散,为使系统稳定,需要对其添加控制器。
6.4 LQR 控制器设计及仿真
给系统添加LQR 控制器,添加控制器后的系统闭环图如下图所示:
下面利用线性二次最优控制 LQR 方法对系统进行控制器的设计
clear;clc;
k12=86.69;k13=-21.62;k17=6.64;
k22=-40.31;k23=39.45;k27=-0.088;
a=[0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1;0 0 0 0 0 0;0 k12 k13 0 0 0;0 k22 k23 0 0 0];
b=[ 0 0 0 1 k17 k27]';
c=[1 0 0 0 0 0;0 1 0 0 0 0;0 0 1 0 0 0];
d=[0; 0; 0];
q11=1;q22=1;q33=1;
q=[q11 0 0 0 0 0;0 q22 0 0 0 0;0 0 q33 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0;0 0 0 0 0 0];
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));
grid on
运行得到以下结果:
LQR 控制参数为:
K=[ 1 73.818 -83.941 2.0162 4.2791 -13.036]
得到仿真结果如下:
可以看出,系统稳定时间过长,因此增加权重Q 的值。
设Q11=300;Q22=500;Q33=500;
运行得到仿真结果:
LQR 控制参数为:
K=[ 17.321 110.87 -197.57 18.468 2.7061 -32.142]
从图中可以看出,系统可以很好的稳定,在给定倒立摆干扰后,系统在 2.5 秒内可以恢复到平衡点附近。
把以上仿真参数输入 Simulink 模型中
得到运行结果
从图中可知,系统稳定性还不错。
但这未必是最好的参数。所以,下面改变LQR参数,比较结果变化。
确定最合适参数。
1. 设Q11=1000;Q22=500;Q33=500;
运行得到仿真结果:
LQR 控制参数为:
k=31.6228 116.7093 -238.1742 29.1041 1.2221 -39.3596
可看出位置在2秒左右就可恢复到平衡点位置。而角度依然是在2.5秒内恢复到平衡位置。
2、设Q11=1500;Q22=500;Q33=500;
运行得到仿真结果:
LQR 控制参数为:
k= 38.7298 119.2083 -257.0671 34.1612 0.5092 -42.7166
可看出位置在1.5-2.0秒内就可恢复到平衡点位置。而角度依然是在2.5秒内恢复到平衡位置。
3. 设Q11=1500;Q22=500;Q33=500;
运行得到仿真结果:
LQR 控制参数为:
k = 44.7214 121.1834 -272.5934 38.3562 -0.0849 -45.4751
可看出位置依然在1.5秒就可恢复到平衡点位置。而角度依然是在2.5秒内恢复到平衡位置。
4.设Q11=1500;Q22=1000;Q33=1000;
运行得到仿真结果:
LQR 控制参数为:
k = 38.7298 129.4996 -281.3118 35.7389 0.4721 -46.5905
可看出位置在1.5-2.0内就可恢复到平衡点位置。而角度是在2.5秒内恢复到平衡位置。
5.设Q11=1500;Q22=100;Q33=100;
运行得到仿真结果:
LQR 控制参数为:
k = 38.7298 108.6175 -232.1487 32.4616 0.5479 -38.7170
可看出位置在1.5内就可恢复到平衡点位置。而角度是在2秒内恢复到平衡位置。
通过对比,第5个参数最合适。
LQR 控制参数为:
k = 38.7298 108.6175 -232.1487 32.4616 0.5479 -38.7170
把其输入到Simulink模型中。
得到运行结果。
此结果最好,系统不仅可以很好的稳定,而且在给定倒立摆干扰后,系统可在2秒内恢复到平衡点附近。
八.个人小结。
倒立摆实验个人小结
李航 08011041
大三上学期的第一次机械工程实验,我们接触和学习了减速器,维持一个学期的实验,我们从结构,运动等方面,对机械有了更深的认识,而这个学期,我们要更进一步,从机械控制理论,来让自己对机械的理解,有一个新的高度。
我们接触的倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性系统,可以作为一个典型的控制对象对其进行研究。
倒立摆数学模型:
通过对倒立摆系统的物理模型和实际模型的认知,以及对该系统的阶跃响应,可控性分析和频率响应分析,我们可以知道倒立摆系统是不稳定的,可控的,所以就有了我们的课题:具体的控制方法。
在前半个学期,我们学习了机械控制理论,了解了伯德图和奈奎斯特图,而在大一的高数学习中,我们初步学习了MATLAB,通过在图书馆以及网上查找资料,我们学习了SIMULINK仿真,为这次实验打下了一定的基础。
对于一级倒立摆线性系统,我们实验了两种控制方法:分别是双PID控制和LQR控制。
常规的PID控制,是最早的也是最经典的一种控制方式,由于其算法简单、鲁棒性好、可靠性高,因而至今仍广泛应用于工业过程控制中。它有三个控制环节,分别是比例、积分和微分,实验中使用的控制器的传递函数是
其中Kp、Ki、Kd分别为比例系数、积分系数和微分系数。各个系数功能如下:
1. 比例系数Kp增大,闭环系统的灵敏度增加,稳态误差减小,系统振荡增强;比例系数超过某个值时,闭环系统可能变得不稳定。
2. 积分系数Ki增大,可以提高系统的型别,使系统由有差变为无差;积分作用太强会导致闭环系统不稳定。
3. 微分系数Kd增大,预测系统变化趋势的作用增强,会使系统的超调量减小,响应时间变快。
但是上述的各个参数在调节过程中并不是相互独立的,而是会相互影响。PID控制的快速性较差,而且只能对摆角进行控制,无法控制位移。
双PID控制,则解决了传统的PID控制只能控制摆角的缺陷,但是对于双PID控制,如何使摆角角度和小车位置达到协调,使系统响应收敛,是个难题,而且PID控制是单控制量,外部扰动对实验结果的影响会比较大,所以我们学习了线性二次型控制,也就是LQR控制。
LQR控制是通过最小化性能指标,得到系统的控制量U=-KX,其中Q,R,分别是状态变量和输入向量的加权矩阵,X是状态量,U是控制量,K是状态矩阵。根据期望性能指标选取Q和R,利用MATLAB 命令lqr 就可以得到反馈矩阵K 的值。K=lqr( A,B,Q,R)
改变矩阵Q 的值,可以得到不同的响应效果,Q 的值越大(在一定的范围之内),系统抵抗干扰的能力越强,调整时间越短。利用MATLAB自带的函数,可以很快算出反馈矩阵各参数的值。
通过实验结果,我们发现LQR控制作为多变量的控制,稳定性,快速性和抗干扰性都很好,,LQR控制可得到状态线性反馈的最优控制规律 ,易于构成闭环最优控制是现代控制理论中发展最早也最为成熟的一种状态空间设计法。
实验心得:
比较这三种控制方法,经典PID控制方法的效果是最不理想的,因为PID这类单输入输出的线性控制器,对于倒立摆这种非线性,很不稳定的系统,虽然能使其稳定,但是快速性和抗干扰性都很差,相比较而言,LQR的效果就要好很多。
这次的倒立摆实验,可以说是我做过的最难的一个实验了,不仅涉及面十分广,而且涉及的知识也都很难。通过这次实验,我们对机械控制理论有了更深一步的了解,也把书上学的知识,应用到了实际中。
在实验过程中,我们认识了倒立摆这个经典的控制系统,也接触了PID和LQR等多种控制方法,让我们对机械,这个词的概念,也更加深入的有了自己的理解。
而且作为一个分组实验,我充分感受到了团队力量的强大,也体会到了克服困难的艰辛,学会了用多种的途径去解决难题。通过预习,借阅书籍,上网等多种途径,也为将来的学习打下良好的基础。
而且通过这个控制领域的经典基础实验,为将来考研以及科研都是很有帮助的。
同时要感谢同学和老师对自己的帮助,让自己能顺利的完成这次实验。
但是在实验中,我个人也有一些建议。首先这个实验的基础是机械控制理论基础这门课,但是这么课我们在实验开始的时候压根就没学,所以前几周只能靠自学或者毫无进展,但是自学不能保证效率,所以实验的时间安排感觉不是很好。
倒立摆实验小结
李宗泽08011043
我是这次倒立摆实验我们小组的组长,由于分组的关系,我们组的组员平时成绩都不是特别理想,但是从一开始,我们就有信心能把这次实验完成。
这次实验要求我们运用经典控制理论控制直线一级倒立摆,包括实际系统模型的建立、控制器设计、频率响应分析、PID 控制分析等内容。运用现代控制理论中的线性最优控制LQR 方法实验控制倒立摆。并且能熟练的运用matlab解决实际问题,了解SIMULINK仿真。
倒立摆是一种典型的快速、多变量、非线性、绝对不稳定、非最小相位系统。是进行控制理论研究的典型实验平台,倒立摆实验是运用古典控制理论,结合现代应用软件MATLAB里的SIMULINK对其进行仿真,最后在实际实验中对摆杆进行快速性,准确性和稳定性控制,达到理想的效果。因此,研究倒立摆具有重要的理论和实践意义。
实验的初期,也就是前几周,我们主要先大致预习了控制理论里的频率响应和时域响应的内容,了解了伯德图和奈奎斯特图的含义。并且到图书馆里借阅了相关书籍,到网上查找有关资料,并且结合大一时的高数课,复习了matlab的基本操作。
这次实验的主要内容是利用三种控制方法,使倒立摆系统达到稳定,并且比较三种控制方法的优劣。
我们首先做的是经典PID控制,经典PID控制是最早发展起来的一种控制方法,由于其算法简单、鲁棒性好、可靠性高,因而至今仍广泛应用于工业过程控制中。该方法的主要思想是:根据给定值r与系统的实际输出值c构成控制偏差e,然后将偏差的比例( P) 、积分( I)和微分(D)三项通过线性组合构成控制量,对被控对象进行控制,故称为PID控制。
比例环节P的作用,是对当前时刻的偏差信号进行放大或衰减后作为控制信号输出。积分环节I可以累计从零时刻起到当前的输入信号的全部值。微分环节D的输出正比于输入的当前变化率,作用是有偏差信号的当前变化率来预见随后的偏差将是增大还是减小,增减幅度如何。PID控制通过调节KP,KI,KD三个基本参数,来实现仿真,达到预期的控制效果,但是PID控制是一个单输入输出的控制,它只能摇杆的角度,而不能控制小车的位移。
双PID控制是利用两个PID来同时控制倒立摆系统,双PID的模型如下:
双PID控制虽然能控制小车的位移,但是我们在实际操作过程中,发现实验结果的曲线很难达到收敛,往往都是发散的。
LQR控制:线性二次型调节器(Linear Quadratic Regulator —LQR) 问题在现代控制理论中占有非常重要的位置,受到控制界的普遍重视,应用十分广泛,是现代控制理论的中最重要的成果之一。线性二次型(LQ) 性能指标易于分析、处理和计算,而且通过线性二次型最优设计方法得到的倒立摆系统控制方法,具好较好的鲁棒性与动态特性以及能够获得线性反馈结构等优点,因而在实际的倒立摆控制系统设计中,得到了广泛的应用。
LQR控制通过matlab的程序,根据期望性能指标选取Q和R,就可以得到反馈矩阵K的值。改变矩阵Q的值,可以得到不同的响应结果,Q的值越大,系统抵抗干扰能力越强,调整时间越短。
从实验的结果来看,LQR控制在快速性和抗干扰性上,都要强于PID控制,这是因为LQR是多变量控制。
经过了这次实验,我有了很多收获:
1. 作为一个小组的组长,我体会到了自己身上的责任和压力,从分配任务到实验进行,实验报告,对我自己都是一个很好的锻炼。
2. 这次实验过程中,我也学习到了很多平时接触不到的知识,复习了matlab的应用,了解了simulink模块的应用,而且也对现代控制理论有了理解,为将来的学习打下基础。
3. 体会到了团队力量的强大,大家的互相努力,才有了这次实验的成功。
4. 最后离不开老师和同学对自己和我们这个小组的帮助,感谢老师和同学。
倒立摆实
展开阅读全文