现代控制理论课程实验三:一阶倒立摆的LQR控制器设计

  • 一、实验目的
  • 二、实验设备与软件
  • 三、实验原理
    • 3.1、被控对象模型及其线性化
    • 3.2、时不变线性连续系统的状态反馈控制与线性二次型最优控制LQR
    • 3.3、实验平台的基本原理与使用指南
  • 四、实验内容
    • 4.1、MATLAB仿真结果
    • 4.2、MATLAB程序如下
    • 4.2.1、判断系统的能控与能观性
    • 4.2.2、求系统的极点
    • 4.2.3、进行极点配置
    • 4.3、线性二次型最优控制LQR求出配置极点
  • 五、实验室运行结果
  • 六、实验总结

一、实验目的

1、理解并掌握线性状态反馈控制的原理和方法;
2、理解并掌握LQR控制器设计方法;
3、练习控制性能比较与评估的方法。

二、实验设备与软件

实验设备

  • 倒立摆实验台

实验软件

  • MATLAB软件

三、实验原理

3.1、被控对象模型及其线性化

倒立摆系统的各量含义与关系如下表和下图。
根据牛顿定律建立系统垂直和水平方向的动力学方程,计及 u = F ,可得到

如下所示



该状态方程输入是加速度,输出是小车位置和摆杆角度。而小车的位置和摆杆角度以及它们的导数均可以通过传感器测量,所以在系统可控制的情况下,可以利用状态反馈综合控制器改善性能。

3.2、时不变线性连续系统的状态反馈控制与线性二次型最优控制LQR

  • 对时不变线性连续系统

3.3、实验平台的基本原理与使用指南

倒立摆系统的控制结构框图如下


“Pendulum”模块内部包含三种模块,每种模块的具体功能是通过S-Function实现的,这里不做介绍。其中“Set Car’s Vcc and Vel”模块的作用是设置小车运动的速度和加速度,“Get Car’s Position”模块的作用是读取小车当前的实际位置,“Get Pend’s Angle”的作用是角度编码器读取摆杆当前摆起的实际角度,该角度顺时针为“+”,逆时针为“-” (以竖直向下的状态为起始状态,见图1)。这里需要注意的是,由于编码器所读脉冲的正负号与实际需要的数符号相瓣,所以编码器输出经过一个负的比例增益后转化为输出角度

另外,在Simulink中搭建系统模型时,需要将Inverted_Pendulum_RealTime_lib中的GT400-SV Initialization模块放到编辑的模型中。

四、实验内容

动手实验与分析:

基于式(6)所示的倒立摆模型(控制摆角和位置),根据原系统的特点设计LQR最优控制器,并分析参数 和 阵的选取对系统的影响。实物实验前先进行理论分析计算(包括能控性分析和稳定性分析,指标转化计算,可以编制相应的程序计算,也可以手算),并在MATLAB/Simulink中进行离线数值计算分析,调整相关参数,合适后在倒立摆平台上做在线实验,比较仿真结果与实验结果。

4.1、MATLAB仿真结果

系统的MATLAB/Simulink仿真图如下

4.2、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 0 1 0 ];
D = [ 0 0 ]';Gs = ss(A, B, C, D);
Qc = ctrb(A, B);        % 可控矩阵
Qo = obsv(A, C);        % 可观测矩阵
rankQc = rank(Qc);      % 求可控矩阵的秩
rankQo = rank(Qo);      % 求可控矩阵的秩if rankQc == 4disp('系统可控');
elsedisp('系统不可控');
endif rankQo == 4disp('系统可观');
elsedisp('系统不可观');
end

4.2.1、判断系统的能控与能观性

判断系统的能控与能观性运行如下

>> shiYan3
系统可控
系统可观
  • 由运行结果可知,系统可控、客观。

4.2.2、求系统的极点

求系统的极点的代码如下

P = poly(A); % 特征多项式
rootP = roots(P); % 极点
disp(rootP);

求系统的极点运行结果如下

>> shiYan3
系统可控
系统可观005.4222-5.4222
  • 可以知道系统有一个极点在右边,系统不稳定。

4.2.3、进行极点配置

ζ=0.8、ζ=0.707、ζ=0.316
设计状态反馈阵时,要使系统的极点设计成具有两个主导极点,两个非主导极点,这样就可以用二阶系统的分析方法进行参数的确定。我们设置系统的最大超调量小于等于8%,调节时间为小于等于5 S。运用超调量的计算公式可以计算出ε= 0.63;ts=5s,可以求得Wn≥0.95。用极点公式为P1,2=-εw + iw√1-εz,得到两个配置的共轭极点为: -0.6士0.74i。选取非主导极点距虚轴的距离为主导极点距虚轴的距离的5倍以上:所以可以两个非主导极点为:-10。

进行极点配置MATLAB程序代码如下:

p = [-0.6 + 0.74j -0.6 - 0.74j -10 -10];  % 极点配置
K = acker(A, B, p);
disp(K);

进行极点配置运行如下

  -3.0871   -4.6990   52.4649    8.6330

MATLAB仿真如下

  • 由仿真结果可知,系统的调节时间5s左右,系统的摆杆最终稳定在0的位置。

4.3、线性二次型最优控制LQR求出配置极点

线性二次型最优控制LQR求出配置极点代码如下所示

% 线性二次型最优控制LQR求出配置极点
Q = [1000 0 0 0; 0 0 0 0; 0 0 1000 0; 0 0 0 0];
R = 1;
LQR_K = lqr(A, B, Q, R);
disp(LQR_K);

线性二次型最优控制LQR求出配置极点运行如下

-31.6228  -21.7963   83.4140   14.2355

线性二次型最优控制LQR求出配置极点MATLAB仿真如下

  • 由仿真结果可知,线性二次型最优控制LQR求出配置极点,使系统的调节时间降低到了2s,摆杆的摆动幅度更小。

五、实验室运行结果

在实验室进行实物倒立摆的控制,设计的控制模型与系统的运行结果如下

控制系统模型

系统正常运行的效果图

系统在扰动下的运行结果

六、实验总结

一阶倒立摆的LQR控制器设计的实验总结如下几点所示

  • 1、通过实验,理解并掌握了线性状态反馈控制的原理和方法。运用状态反馈可以配置系统的极点到任意的位置。
  • 2、理解并掌握LQR控制器设计方法。
  • 3、通过实验掌握了利用状态反馈配置极点的前提:对系统进行能控与能观性的判断。
  • 4、通过实验,加强了动手实践与理论相结合的能力。

现代控制理论课程实验三:一阶倒立摆的LQR控制器设计相关推荐

  1. 倒立摆:Simulink控制器设计

    倒立摆:Simulink控制器设计 问题设置和设计要求 在这个问题中,如下图所示,带有倒立摆的小车被冲击力"撞上"了. 对于此示例,我们假设 (M)推车质量0.5公斤 (m)摆质量 ...

  2. 直线型一阶倒立摆4---能量起摆

    五.能量起摆 能量起摆这一概念来自于K.J.Astrom and K.Furuta的SWINGING UP A PENDULUM BY ENERGY CONTROL.文献下载地址 以下是我翻译的部分论 ...

  3. 倒立摆C语言双闭环控制程序,基于双闭环PID控制的一阶倒立摆控制系统的设计(最终版)...

    <基于双闭环PID控制的一阶倒立摆控制系统的设计.doc>由会员分享,可在线阅读全文,更多相关<基于双闭环PID控制的一阶倒立摆控制系统的设计(最终版)>请在www.woc88 ...

  4. 现代控制理论课程实验一:线性系统状态空间分析与运动解

    现代控制理论课程实验一:线性系统状态空间分析与运动解 一.实验目的 二.实验设备与软件: 三.实验原理: 3.1.求矩阵特征值和特征向量命令格式 3.2.求运动的方法 3.3.状态方程的数值积分方法- ...

  5. 计算机课实验三,成都信息工程学院计算机网络课程实验三

    成都信息工程学院计算机网络课程实验三 本文关键词:成都,计算机网络,信息工程学院,课程,实验 成都信息工程学院计算机网络课程实验三 本文简介:计算机网络实验报告实验三:编写客户服务器程序班级xxxxx ...

  6. [LQR简要快速入门]+[一级倒立摆的LQR控制]

    [LQR简要快速入门]+[一级倒立摆的LQR控制] 1. 什么是LQR 2. 公式含义 3. 倒立摆的建模 3.1 线性化 3.2 状态空间建立 4. LQR算法实现 5. MATLAB代码仿真 6. ...

  7. 【Simulink教程案例8】基于simulink的LQR控制器设计——以环形倒立摆为控制对象

    欢迎订阅<FPGA/MATLAB/SIMULINK系列教程> 本课程学习成果预览: 目录 1.软件版本 2.LQR控制器的理论 3.使用SIMULINK实现LQR控制器

  8. 一阶倒立摆的输入和输出是什么_了解一阶高通滤波器传递函数

    简要回顾一下:通过对S域电路的分析,可以得到低通滤波器的输入输出特性表达式:电路的VOUT/VIN表达式是滤波器的传递函数,如果将该表达式与标准化形式进行比较,可以快速确定两个关键参数,即截止频率和最 ...

  9. 江南大学物联网工程学院数据库课程实验三作业3vb.net实验报告

    一.开发环境 语言环境:Microsoft.NET Framework 4.6 SDK IDE:Microsoft Visual Studio Community 2015 二.代码及配置 1.For ...

  10. 【控制理论】用ADRC控制倒立摆

最新文章

  1. incon函数图像c语言,[转载]c语言经典题目
  2. Python3判断自身脚本是不是在运行
  3. 如何选择深度学习优化器
  4. linux 监听日志_Linux系统取证概述
  5. UOJ276 [清华集训2016] 汽水 【二分答案】【点分治】【树状数组】
  6. Scala入门系列(十):函数式编程之集合操作
  7. Python机器学习工具箱
  8. 阿里云云计算 16 块存储的概念
  9. 07到09程序员对自己工资的态度···
  10. 商业计划书-智能导盲仗
  11. XCode5设置字体
  12. 大年三十问候导师的后果...
  13. 平方根估计 python 3
  14. 数字信号内插方法的python实现
  15. 【我的渲染技术进阶之旅】基于Filament渲染引擎绘制一个不停旋转的彩色矩形
  16. 【大数据存储技术】思考题及参考答案
  17. 遥测、遥信、遥控、遥调的简要说明
  18. html中字号调节,设置页面字体大小 怎么调整ps界面字体的大小
  19. Spark Core快速入门系列(5) | RDD 中函数的传递
  20. ENSP使用Web界面管理配置流程(防火墙、AC)

热门文章

  1. 人口matlab数学模型,基于MATLAB构建人口数学模型研究二胎开放对中国人口的影响...
  2. Google Chrome谷歌旧版本下载
  3. 优秀课程案例:使用Scratch制作坦克大战经典版!
  4. Vivado 2019使用教程
  5. Arcgis学习笔记(二)投影和定义投影
  6. 数域、有限域(伽罗瓦域)
  7. python汉化包放哪_python 汉化
  8. python中文版下载-python3.8.1汉化版
  9. java正则表达式校验车牌号_车牌号校验正则表达式
  10. mysql数据库置疑_SQL数据库置疑 823 824 错误修复 无法附加处理