倒立摆实验报告.docx
- 文档编号:5330724
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:51
- 大小:2.07MB
倒立摆实验报告.docx
《倒立摆实验报告.docx》由会员分享,可在线阅读,更多相关《倒立摆实验报告.docx(51页珍藏版)》请在冰豆网上搜索。
倒立摆实验报告
倒立摆实验报告
机自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、2 5m
I摆杆惯量0.0034kg*m*m
把上述参数代入,可以得到系统得实际模型。
摆杆角度与小车位移得传递函数:
摆杆角度与小车加速度之间得传递函数为:
摆杆角度与小车所受外界作用力得传递函数:
以外界作用力作为输入得系统状态方程:
以小车加速度作为输入得系统状态方程:
注意事项:
在固高科技所有提供得控制器设计与程序中,采用得都就是以
小车得加速度作为系统得输入,如果用户需要采用力矩控制得方法,可以参考以
上把外界作用力作为输入得各式.
五.系统得阶越响应分析
根据已经得到系统得状态方程,先对其进行阶跃响应分析,在MATLAB中
键入以下命令:
clear;
A=[ 0 10 0;000 0;0 0 01;0 029、4 0];
B=[0103]’;
C=[ 10 00;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情况下效果最好。
得到以下仿真结果
黄线为小车位置输出曲线,红线为摆杆角度输出曲线.
从图中可以瞧出,系统可以比较好得稳定。
稳定时间在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=[0100 ;0 0 0 0;0001;0029、40];
B=[0103]’;
C=[1000;0010];
D=[00]';
Q11=1500;Q33=300;
Q=[Q1100 0;
000 0;
00Q330;
0 0 00];
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=[10 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),'—');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、7855 25、422 4、6849]
在Simulink中建立直线一级倒立摆得模型如下图所示:
“LQRController”为一封装好得模块,在其上单击鼠标右键,选择“Lookunder
mask"打开LQRController结构如下:
双击“Matrix gainK”即可输入控制参数:
点击执行仿真,得到如下仿真结果:
LQR控制得阶跃响应如上图所示,从图中可以瞧出,闭环控制系统响应得超调量很小,但稳定时间与上升时间偏大,我们可以通过增大控制量来缩短稳定时间与上升时间。
可以发现,Q矩阵中,增加Q11使稳定时间与上升时间变短,并且使摆杆得角度变化减小.经过多次尝试,这里取Q1,1=1500,Q3,3 =300,
则K=[-32、7298 -23、825581、6182 14、7098]
输入参数,运行得到响应曲线如下:
从图中可以瞧出,系统响应时间有明显得改善,增大Q1,1与Q3,3 ,系统得响应还会更快,但就是对于实际离散控制系统,过大得控制量会引起系统振荡.
3、直线一级倒立摆LQR控制实验
打开直线一级倒立摆LQR实时控制模块
其中“LQR Controller”为LQR控制器模块,“RealControl”为实时控制模块,双击“LQRController”模块打开LQR控制器参数设置窗口如下:
在“LQRController”模块上点击鼠标右键选择“Lookundermask"打开模
型如下:
双击“RealControl"模块打开实时控制模块如下图:
其中“Pendulum”模块为倒立摆系统输入输出模块,输入为小车得速度“Vel”与“Acc ”,输出为小车得位置“Pos”与摆杆得角度“Angle”。
双击“Pendulum"模块打开其内部结构:
其中“SetCart’sAccandVel"模块得作用就是设置小车运动得速度与加速度,GetCart’sPosition"模块得作用就是读取小车当前得实际位置,“GetPend’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,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”打开模型内部结构:
其中“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=[173、818—83、9412、01624、2791-13、036]
得到仿真结果如下:
可以瞧出,系统稳定时间过长,因此增加权重Q得值。
设Q11=300;Q22=500;Q33=500;
运行得到仿真结果:
LQR控制参数为:
K=[ 17、321 110、87-197、57 18、4682、7061—32、142]
从图中可以瞧出,系统可以很好得稳定,在给定倒立摆干扰后,系统在2、5秒内可以恢复到平衡点附近。
把以上仿真参数输入Simulink模型中
得到运行结果
从图中可知,系统稳定性还不错。
但这未必就是最好得参数。
所以,下面改变LQR参数,比较结果变化。
确定最合适参数。
1、设Q11=1000;Q22=500;Q33=500;
运行得到仿真结果:
LQR控制参数为:
k=31、6228 116、7093-238、174229、10411、2221 -39、3596
可瞧出位置在2秒左右就可恢复到平衡点位置。
而角度依然就是在2、5秒内恢复到平衡位置.
2、设Q11=1500;Q22=500;Q33=500;
运行得到仿真结果:
LQR 控制参数为:
k=3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒立 实验 报告