倒立摆实验书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直线型一级倒立摆系统系列实验
实验九倒立摆模型建立与仿真
实验目的
1、通过对倒立摆模型理论分析,建立状态空间模型。
2、结合经典控制理论和现代控制理论分析倒立摆系统的稳定性。
3、画出系统的状态、输出响应曲线。
实验指导
1、倒立摆工作原理
倒立摆系统通过计算机、I/O卡、伺服系统、倒立摆本体和光电码盘反馈测量元件组成一个闭环系统,其工作原理框图如图下所示。
图一中光电码盘1由伺服电机自带,小车的位移可以根据该码盘的反馈通过换算获得,速度信号可以通过对位移的差分得到。各个摆杆的角度由光电码盘2测量并直接反馈到I/O卡,而角速度信号可以通过对角度的差分得到。计算机从I/O卡实时读取数据,确定控制决策(电机的输出力矩),并发给I/O卡。I/O卡经过电控箱内部电路产生相应的控制量,驱动电机转动,使小车按控制要求进行运动,以达到控制目的。
图一倒立摆系统工作原理框图
2、倒立摆系统建模
实验内容
1、根据推导的微分方程,以小车的加速度为输入量、摆杆的角度为输出量,写出传递函数。(提示:对微分方程进行拉斯变换)
2、将得到的传递函数,转换为零极点模型和状态空间模型,并依据零极点模型极点以及状态空间模型A矩阵判定系统的稳定性。
3、绘制倒立摆系统的状态响应、输出响应曲线。(提示:用lsim函数)
思考:对于传递函数的稳定性能,在经典控制理论中常用的分析方法有哪些?现在控制理论又是怎样判定系统的稳定性?以该系统为例,进行具体分析。
实验十一级倒立摆的PID法校正
实验目的
1、针对倒立摆系统是不稳定性,通过设计PID控制器改善系统的稳定性能。
2、学会PID参数调节方法。
实验原理
实验内容
1、在simulink中搭建如下图的PID控制器,在edit菜单栏下找到Create Subsystem单击即可对PID控制器封装,封装结果如图2中的Subsystem框图,点击kd、ki、k对其数值大小进行编译。
图一 PID控制器
2、将封装好的PID控制器与倒立摆系统进行连接,设计出如下图所示的系统框图
3、通过调节PID参数,观察输出波形,判断系统的稳定性,直到倒立摆系统输出曲线稳定存在。不断调节PID参数,比较各组参数的曲线,选出一组稳定性最好的参数。
思考:PID控制器能够改善系统稳定性的原理?
实验十一基于状态反馈的闭环极点配置
实验内容
1、将得到的状态方程转换为传递函数、零极点模型,判断系统的稳定性。
2、依据得到的转态空间模型,状态反馈的期望极点为-2,-3,-4+3i,-4-3i,绘制系统的阶跃响应曲线。(提示:用[Y,X]=lsim(sys,U,T) U为单位阶跃输入。K=place(A,B1,op) op为设定极点)
3、搭建倒立摆系统的仿真框图如下图,通过示波器观察各个状态的曲线以及输出曲线与实验程序得到的曲线对比分析。
实验十二 倒立摆LQR 控制算法设计与仿真
实验目的
通过LQR 算法的设计与仿真,对现代控制理论中的最优控制有更深的理解。为状态反馈系统中K 的值得选取提供了理论方法。
实验内容
1、由理论分析知,可以设计基于最优控制的状态调节器,使系统闭环稳定。设状态反馈调节律的形式为 )()(k x K k u r -=
通过使性能指标函数
)]()()()()()([21)()(2110k u k R k u k X k Q k X N PX N X J r T N k r T T ++=∑-= 为最小, G k P H H K P H R K T T r r )1(])1([1+++=-
其中P 由下列黎卡提方程获得
G k P H H k P H R H k P G G k P G Q k P T T r T T r )1(])1([)1()1()(1++++-++=-
其中r Q ,r R 分别用来对状态向量x(k),控制向量u(k)引起的性能度量的相对重要性进行加权。在实际运算中我们运用Matlab 控制系统工具箱中的“dlqr ”函数直接进行运算。
利用dlqr 函数,我们需要提供两个权值矩阵:Q 、R 。通常我们取R=1,而对于Q 我们只能通过不断的凑取来得到。源程序如下:
A=[0 1 0 0
0 0 0 0
0 0 0 1
0 0 29.7 0]
B=[0 ;1;0 ;3];
C=[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1];
D=[0 0 0 0]';
R=1 ;
Q=[500 0 0 0 ;0 30 0 0;0 0 50 0;0 0 0 10];
K=lqr(A,B,Q,R)
Ak0=[(A-B*K)];
Bk0=[B];
Ck0=[C];
Dk0=[D];
x=[0 0 0 0]';
sys=ss(Ak0,Bk0,Ck0,Dk0);
T=0:0.1:20;
U=1+0*T
[Y,X]=lsim(sys,U,T);
h=plot(T,-Y)
grid on;
title(' LQR 控制');
legend('Cart','VCart','single','Vs');
通过仿真得到的K值代入到,实验十一中替换框图中K值,得到状态与输出曲线。 Q2取为:Q=[100 0 0 0;0 0 0 0;0 0 10 0;0 0 0 0];
Q3取为Q=[1000 0 0 0;0 0 0 0;0 0 100 0;0 0 0 0]
重复上述的实验步骤,
通过比较找到Q值得选取对相应曲线的影响。
(取大的值时系统的响应速度加快,但是超调加大;反之则响应变慢但是超调减小。)
附录实验十一参考程序
A=[0 1 0 0
0 0 0 0
0 0 0 1
0 0 29.7 0];
B1=[0;1;0;3];
C=[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1];
D1=[0 0 0 0]';
op=[-2 ;-3 ;-4+3i ;-4-3i];%期望极点
K=place(A,B1,op)
Ak1=[(A-B1*K)];
Bk1=[B1];
Ck1=[C];
Dk1=[D1];
sys=ss(Ak1,Bk1,Ck1,Dk1);
T=0:0.1:20;
U=1+0*T
[Y,X]=lsim(sys,U,T);
plot(T,-Y),
grid;
legend('Cart','VCart','single','Vs');