【Matlab】线性二次型最优控制问题(LQR控制)

2023-05-16

前面介绍了变分法与极小值原理的基础思想,之后有一个非常重要的应用就是线性二次型的最优控制问题。假如系统是线性的,性能泛函是状态变量与控制变量的二次型函数的积分,那么这样的问题称之为线性二次型最优控制问题。形如:

上式中,Q1为状态加权矩阵,Q2为控制加权矩阵,Q0为终端加权矩阵。(有些书中把Q2矩阵写作R矩阵)

在实际应用中,Q1,Q2是对称矩阵并且常取对角阵。

在实际的应用中,第一项为 Lx = 1/2 * xT * Q1 * x,其中x表示状态误差,x越大,代价函数Lx越大,Q1的对角线上的元素q1i表示的是对应误差分量xi的重视程度,越被重视的误差分量,就希望它越小,相应的加权系数就取得越大:

例如上式,对x1更重视,就把q11设置得更大一点。

被积函数中的第二项 Lu = 1/2 * uT * Q2 * u,代表动态过程中对控制的约束与要求。一般就取单位阵就可以。

被积函数中的第三项突出了对终端误差的要求,看自身需求来确定,在有些场合需要,在有些场合不需要。

对于一般的系统,如何进行求解?可以按照下面的步骤:

对于以上的一般系统,可以先构造哈密顿函数:

之后根据最优控制求出最优控制时的控制量u的表达式,之后根据正则方程,将最优的u带入进去,得到一个最优轨迹的表达式以及λ:

之后引入一个新的矩阵P来表示λ与x的关系:λ = Px,之后便可以由P表示出最优控制率K,之后再将引入控制器的u带入回原系统(此时u可以由x来表示,因此可以合并),得到原系统的闭环表达式,之后便可以得到一个黎卡提方程:

以上只是演示一下推导的步骤,实际上当然不需要这么繁琐,这个黎卡提方程也不需要我们每次都手算,由matlab,我们可以得到一个matlab推荐的值,不过这个黎卡提的一般求解方法也确实是一个世界难题。

实例:

假设我们有一个比较简单的系统:x_dot = x + u,性能泛函就是线性二次型性能泛函的一般形式,那么按照这个步骤,便可以求出一个最优控制率:

其实使用matlab的话,是可以直接得到这个矩阵K的,之后代入就可以了,我自己做了一个简单的sumilink模型来验证一下:

按照那个方程画出模型:

之后就可以看出最后的控制效果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Matlab】线性二次型最优控制问题(LQR控制) 的相关文章

随机推荐

  • 我的2014

    弹指间2014过去了 xff0c 在过去的一年里 xff0c 或许你收获了成功 xff0c 取得了令人瞩目的成绩 又或许你失意落魄 xff0c 躲在角落了自舔伤口 但这些都不重要 xff0c 重要的是今年是2015不是2014 新的一年里有
  • 51单片机实现串口偶校验

    1 STC单片机串口 2 PSW是一个8位寄存器 PSW的全称是Program Status Word xff0c 即程序状态字 奇偶标志位P 每执行一条汇编指令 xff0c 单片机都能根据A中1的个数的奇偶自动令P置位或清零 xff0c
  • SLAM十四讲第二版ch7位姿估计实践的编译问题

    在看ch7中遇到了g2o OptimizableGraph Vertex clone const 未定义的引用的问题 为了方便以后复现 xff0c 记录如下 我的环境配置 Pangolin 0 5 Opencv 3 4 16 cere 1
  • SLAM十四讲第二版ch6的未定义的引用问题

    在使用slam十四讲第二版做题的时候发现 xff0c ch6编译问题 xff0c 特此记录如下 make时遇到问题如下 xff1a 对 g2o OptimizableGraph Vertex clone const 未定义的引用 对 g2o
  • Ubuntu18.04配置ORB_SLAM3(ROS)

    一 安装ROS 建议按照官网操作 cn melodic Installation Ubuntu ROS Wiki http wiki ros org cn melodic Installation Ubuntu 二 安装eigen3 3 7
  • Semantic Visual Simultaneous Localization and Mapping: A Survey阅读笔记

    Abstract xff1a 通过语义和vslam结合可以很好解决动态和复杂环境中良好定位 首先回顾了语义vslam发展 xff0c 关注优势和差异 其次探讨了 xff1a 语义信息提取和关联 语义的应用和语义的优势然后收集分析了最先进的s
  • git上传到gitee的记录

    一 安装和配置 sudo apt get install git git config global user email 你的邮箱 git config global user name 64 你的昵称 二 上传 先在github或者gi
  • Burst Imaging for Light-Constrained Structure-From-Motion论文翻译记录

    准备开始2022ICRA的SLAM论文阅读记录 Abstract 在极低光照条件下拍摄的图像受噪声限制 xff0c 会导致现有的机器人视觉算法失效 在本文中 xff0c 我们开发了一种图像处理技术 xff0c 用于从弱光条件下采集的图像中辅
  • ROS常用指令

    非代码 一 创建工作空间 mkdir p catkin ws src cd catkin ws src catkin init workspace 二 创建功能包 cd workspace src catin create pkg name
  • 【Matlab】线性跟踪微分器

    线性跟踪微分器介绍 xff1a 线性跟踪微分器出自自抗扰控制ADRC xff0c 线性跟踪微分器有两个作用 xff0c 一是可以用来滤波 xff0c 而是可以用来求取输入的微分 这里有一篇文章可以推荐看看 xff1a https blog
  • FreeRTOS启动流程

    Reset Handler xff1a 芯片上电默认进Reset Handler SystemInit xff1a 初始化时钟及中断向量映射 main xff1a main函数入口 main xTaskCreate xff1a pvPort
  • 基于STM32F411使用SPI+DMA驱动LCD

    先看效果 F411CE 硬件SPI xff0b DMA驱动LCD 基于HAL库 其实HAL库我用不太习惯 xff0c 一直也是用的标准库 但HAL库确实是好上手一些 xff0c 就迅速创建一个新的template 这次就当尝试一下吧 xff
  • 动手深度学习-环境配置(手动安装,一步一步教你,有截图可看)

    一 xff1a 官网教程 这一部分对应了书中的第二讲 xff1a 预备知识部分 因为我是Windows用户 xff0c 所以这里先只讲Windows部分的安装过程 1 xff1a 第一步是根据操作系统下载并安装Miniconda xff0c
  • 机器学习算法原理与实践(三)、卡尔曼滤波器算法浅析及matlab实战

    协方差矩阵 状态协方差矩阵传递 状态协方差的更新 Matlab 实现 Matlab效果 测试代码 测试效果 原创 Liu LongPo 转载请注明出处 CSDN http blog csdn net llp1992 卡尔曼滤波器是一种利用线
  • Pixhawk之获取传感器数据并更新姿态

    博主 xff1a UAV 声明 xff1a 尊重版权 xff0c 转载请注明出处 原文地址 xff1a 联系方式 xff1a 595493514 64 qq com 技术交流QQ xff1a 595493514 read AHRS 是负责更
  • 类与对象以及类的继承

    类与对象以及类的继承 Java是一门面向对象的语编程言 世界上有众多对象 xff0c 我们把具有相同属性和方法的对象归为一个类 因此 xff0c 类 便是Java代码中的基本单位 下面是对一些名词的解释 类 类是一个模板 xff0c 用来定
  • 如何使用 Apache IoTDB 触发器

    Apache IoTDB 触发器提供了一种侦听序列数据变动的机制 配合用户自定义逻辑 xff0c 可完成告警 数据转发等功能 触发器基于 Java 反射机制实现 用户通过简单实现 Java 接口 xff0c 即可实现数据侦听 IoTDB 允
  • Apache IoTDB 查询引擎源码阅读——数据异步传输模块

    本文参考了 Apache IoTDB 社区成员田原和王中的设计文档 xff0c 由于飞书链接限制 xff0c 本文没有贴出参考链接 背景 Apache IoTDB 查询引擎目前采用 MPP 架构 xff0c 一条查询 SQL 大致会经历下图
  • strchr字符查找函数族;strchrnul()

    https blog csdn net jasonchen gbd article details 80069134 Linux中的字符串和字节序列处理函数 Y 字符串查找 xff0c 有库函数 xff0c 可以起到事半功倍的效果 xff0
  • 【Matlab】线性二次型最优控制问题(LQR控制)

    前面介绍了变分法与极小值原理的基础思想 xff0c 之后有一个非常重要的应用就是线性二次型的最优控制问题 假如系统是线性的 xff0c 性能泛函是状态变量与控制变量的二次型函数的积分 xff0c 那么这样的问题称之为线性二次型最优控制问题