对B站一位良心up主的视频学习总结
安利:https://www.bilibili.com/video/BV1RW411q7FD/?spm_id_from=trigger_reload

对于可镇定的线性系统: x ˙ = A x + B u \dot{x}=Ax+Bu x˙=Ax+Bu, u = − k x u=-kx u=−kx
写成闭环形式,也就是 x ˙ = A c l x \dot{x}=A_{cl}x x˙=Acl​x
我们的做法是通过选择反馈增益k来改变闭环矩阵 A c l A_{cl} Acl​ 的特征值,从而控制系统的表现。
那么

  • 什么样的反馈增益k才是最好的呢?

在优化理论中,引入cost function的概念,来帮助选择反馈增益k。

找到一个k,使得在满足镇定系统的同时,最小化cost function。

m i n J = ∫ 0 ∞ [ x T Q x + u T R u ] d t min J=\int_{0}^{\infty}[x^{T}Qx+u^{T}Ru]dt minJ=∫0∞​[xTQx+uTRu]dt
这里,矩阵Q和R都是对角正定矩阵,他们的每一个对角元素的值都代表着对每一个对应的状态 x i ≠ 0 x_{i}\neq 0 xi​​=0和输入 u i ≠ 0 u_{i}\neq 0 ui​​=0的惩罚。

  • 矩阵对角元素的值越大,表示对该状态或输入的惩罚越厉害。那么体现在最终系统的表现上就是,该状态或输入的值越小。

视频中,老师对倒立摆进行建模,得到其状态空间方程下的系统矩阵:A,B

然后利用simulink对其进行仿真:(这里目的主要是学习一下simulink仿真时,如何从0进行建模与simulink仿真)

第一次选择Q=[100 0; 0 1]; R=.01,在MATLAB中用

k=lqr(A,B,Q,R)

命令得到该cost function下的最有反馈增益k。其内部主要是通过求解Riccati方程得到k。

得到如下仿真曲线

可以看到状态最终能够被镇定到0,但是控制输入u太大。
那么接下来,可以尝试将和u相关的矩阵R的值给大一点。对u的值惩罚大,从而得到的仿真结果中,u的计算结果就相对要小一点。同时将Q矩阵中的元素值给小一点,表示不是很关心状态的收敛速度。

第二次选择Q=[1 0; 0 1]; R=100,在MATLAB中用

k=lqr(A,B,Q,R)

得到新的k,仿真得到如下对照曲线。(为了便于观察,复制了一份刚刚的系统,作为对照)

可以看到,蓝色的线条是第二组的仿真结果。收敛速度变慢了,但是控制输入u的值相对的变小了。这样更加符合实际情况,因为有时会考虑到执行器饱和的问题。

总结

这里主要是复习一下LQR的相关知识,并且系统的学习一下,对一个实际的问题进行建模、simulink仿真的过程。
simulink搭建一个模型的时候,主要考虑以下步骤:

  • 将状态空间方程分别写成单个状态的表达式
  • 用n个积分器由 x ˙ \dot{x} x˙得到 x x x,从而得到各个状态,注意积分器要置初值,默认0
  • 搭建控制输入u,构成闭环系统
  • 必要时,对模块化的子系统创建subsystem,便于观察。

LQR控制器——简单实现与仿真相关推荐

  1. MATLAB中SSQJ,基于lqr的一级倒立摆仿真研究

    基于lqr的一级倒立摆仿真研究 综合性实验设计题目:直线一级倒立摆班级:0802姓名:郭长春指导老师:张白莉学号:200807211065摘要倒立摆是一个复杂的多变量强祸合不稳定非线性的系统,借助于这 ...

  2. 如何使用matlab得出pid控制参数值,基于MATLAB的PID控制器参数整定及仿真

    基于MATLAB的PID控制器参数整定及仿真 摘要:PID控制器结构和算法简单,应用广泛,但参数整定比较复杂,在此我探讨利用MATLAB实现PID参数整定及其仿真的方法,并分析比较比例.比例积分.比例 ...

  3. matlab实现模糊控制器并仿真,用Matlab实现空调温度模糊控制器的设计与仿真.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp建筑/施工&nbsp>&nbsp给排水/暖通与智能化 用Matlab实现空调温度模糊控制器的 ...

  4. matlab实现模糊控制器并仿真,用Matlab实现空调温度模糊控制器的设计与仿真

    第 20 卷第 1 期 2006 年 3 月 上 海 工 程 技 术 大 学 学 报 JOURNAL OF SHANGHAI UNIVERSITY OF ENGINEERING SCIENCE Vol ...

  5. 【优化控制】基于遗传算法实现优化LQR控制器含Matlab源码

    1 简介 车辆悬架系统是影响汽车行驶平顺性和乘坐舒适性的重要结构部件.传统的被动悬架由于其弹性元件刚度和减震器阻尼是固定不变的,这导致其只能适应某一特定路面行驶,限制了适应多样性路况的需求以及车辆性能 ...

  6. LQ优化控制Matlab,基于Matlab的LQ控制器的设计与仿真研究

    第24卷第4期2010年7月甘肃联合大学学报(自然科学版) Jour nal of G ansu Lianhe U niver sity (N atural Sciences)V o l.24No.4 ...

  7. matlab中pid Tune控制器,基于MATLAB的PID控制器参数整定及仿真

    基于MATLAB的PID控制器参数整定及仿真 摘要:PID控制器结构和算法简单,应用广泛,但参数整定比较复杂,在此我探讨利用MATLAB实现PID参数整定及其仿真的方法,并分析比较比例.比例积分.比例 ...

  8. 1_simulink简单入门_simulink仿真PID控制

    1_simulink简单入门_simulink仿真PID控制 2_simulink搭建RCL_电阻电感电容模块 毕业前想去做物联网还是或者linux,结果玩了一年多的电机控制,早就深知matlab/s ...

  9. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

最新文章

  1. 机器学习-第六章 支持向量机(SVM)
  2. docker 简单入门(一)
  3. 【代码保留】表删除/重命名(含中文与空格)
  4. 两所大学中的智能车竞赛校内赛
  5. 【MongoDB】5.MongoDB与java的简单结合
  6. DedeCms 5.7后台去除版权及去除广告的方法
  7. ajax提交数据被截断的问题
  8. AI未成解药 流利说2019年净亏5.75亿 Q4付费用户再降20万
  9. android模拟器游戏按键映射,刺激战场模拟器按键映射对比 逍遥安卓模拟器智能按键最好...
  10. netty 关闭chnnal_Netty 源码学习——服务端流程分析
  11. 【“计算机科学与技术”专业小白成长系列】Peter Norvig:十年学会编程
  12. Windows远程桌面实现之二(抓屏技术之MirrorDriver镜像驱动开发)
  13. 安装opencv时出现PEP517问题解决
  14. java代码实现pdf按页拆分以及合并
  15. xMAP/NMAP/MIAP/移动办公/手机办公/移动适配
  16. 神经翻译笔记4扩展c. 2017-2019年间RNN和RNN语言模型的新进展
  17. Laya Class
  18. 【12月13日】A股ROE最高排名
  19. 【实验五 一维数组】7-3 sdut-C语言实验-区间之和
  20. 最好用的10个php开发工具推荐

热门文章

  1. c语言输出漏斗图形7层,ECharts 教程 漏斗图属性与实例介绍 - 闪电教程JSRUN
  2. ubuntu16.04 通过命令,修改屏幕分辨率
  3. Maven命令行参数
  4. as ssd测试软件得分少,教大家AS SSD Benchmark如何测试硬盘性能
  5. 2.2.1 Nginx高性能负载均衡器
  6. D1net阅闻:Facebook上线求职功能,以挑战LinedIn
  7. PHP 重启 php-fpm 的几种方法
  8. 嵌入式linux+程序构架,从头开始构建一个嵌入式 Linux 发行版
  9. android实现新闻内容显示功能,Android 类似新闻界面评论框
  10. MySQL学习-修改表结构