MATLAB - 最优控制(Optimal Control)

系列文章目录


前言 - 什么是最优控制

        最优控制是动态系统满足设计目标的条件。最优控制是通过执行以下定义的最优性标准的控制律来实现的。一些广泛使用的最优控制方法有:


一、线性二次调节器 (LQR)/线性二次高斯 (LQG) 控制

线性二次调节器 (LQR) 是一种全状态反馈最优控制律,$u=-K x$,通过最小化二次代价函数来调节控制系统。

图 1. 线性二次调节器控制器的示意图。

此代价函数取决于系统状态 (x)(�) 和控制输入 (u)(�),如下所示。 

$J(u)=\int_{0}^{\infty}(x^{T}Q x+u^{T}R u+2x^{T}N u)d t$

基于性能设定,为此最优控制律设置加权因子 Q、R 和 N,以定义系统状态调节和控制作动成本之间的适当平衡。

在许多最优控制问题中,并非所有状态可测量。在这些情况下,必须使用观测器来估计状态。卡尔曼滤波器就是使用频率较高的一个观测器。卡尔曼滤波器结合 LQR 控制器构成一个线性二次高斯 (LQG) 控制器。

图 2. 线性二次高斯控制器的示意图。

 

二、模型预测控制

模型预测控制 (MPC) 用于最小化多输入多输出 (MIMO) 系统中的代价函数。该系统受限于输入和输出约束。这种最优控制方法使用系统模型来预测被控对象输出。控制器使用预测的被控对象输出求解在线优化问题,即二次规划,以确定可将预测输出驱动到参考值的可操作变量的最佳调整。MPC 变体包括自适应、增益调度和非线性 MPC 控制器。所使用的 MPC 控制器的类型取决于预测模型(线性/非线性)、约束(线性/非线性)、代价函数(二次/非二次)、吞吐量和采样时间。

图 3. 模型预测控制的示意图。

微处理器技术和高效算法的进步,使得这种最优控制方法在诸如自动驾驶、航空航天应用中的最佳地形跟踪等应用中得到了更广泛的采用。

三、强化学习

强化学习是一种机器学习方法,其中计算机智能体通过与动态环境的反复试错交互来学习最佳行为。智能体使用来自环境的观测值来执行一系列动作,目的是最大化智能体的任务累积奖励度量。这种学习不需要人工干预,也不需要显式编程。 

图 4. 强化学习的示意图。

这种最优控制方法可用于决策问题,以及用作使用传统控制方法的应用的非线性控制备选方案。这些应用包括自动驾驶机器人、调度问题和系统的动态标定等。 

四、极值搜索控制

极值搜索是一种最优控制方法,它使用无模型实时优化自动调整控制系统参数以最大化目标函数。此方法不需要系统模型,可用于参数和扰动随时间缓慢变化的系统。这种最优控制方法适用于稳定的系统。这些系统可以容忍控制中的噪声,并且只需调整少量的控制系统参数。

极值搜索控制的应用包括自适应巡航控制、太阳能电池板的最大功率点追踪 (MPPT) 和防抱死制动系统 (ABS)。

 

图 5. 极值搜索控制的示意图。

五、H 无穷综合

H 无穷综合是一种最优控制工具/方法,用于设计单输入单输出 (SISO) 或 MIMO 反馈控制器,以实现稳健的性能和稳定性。与使用波特或 PID 调节的回路成形等经典控制方法相比,H 无穷更适合需要通道间交叉耦合的多变量控制系统。

对于 H 无穷,控制目标是根据归一化闭环增益来制定的。H 无穷综合会自动计算通过最小化该增益来优化性能的控制器。这很有用,因为许多控制目标可以用最小化增益来表示。其中包括抗扰、对噪声的灵敏度、跟踪、回路成形、回路解耦和稳健稳定性等目标。H 无穷综合的变体可用于处理固定结构或全阶控制器。


下表对上述最优控制方法进行了比较:

最优控制方法优化是否在运行时进行?(是/否)最优控制过程的优化过程是如何工作的?它是否能处理硬约束?*(可以/不能)它是否使用基于模型的方法?(是/否)吞吐量如何?(高/低)
LQR/LQG使用适用于已知线性时不变系统的闭式解不能
隐式 MPC(是)使用预测模型,求解在线优化问题以计算最优控制动作可以低(非线性 MPC),高(线性 MPC)
显式 MPC(否)用于计算最优控制动作的优化问题的解采用离线计算可以
强化学习是**学习任务的最优行为以最大化奖励度量不能***取决于训练算法低(使用训练)、中高(在推断过程中)
极值搜索控制扰动和调整控制参数以最大化目标函数不能
H 无穷综合自动计算控制器,使其最小化归一化闭环增益不能

http://www.niftyadmin.cn/n/5276357.html

相关文章

hab_virtio hypervisor 虚拟化

Linux的 I / O 虚拟化 Virtio 框架 简而言之,virtio是半虚拟化管理程序中设备上的抽象层。virtio由Rusty Russell开发以支持他自己的虚拟化解决方案lguest。本文从准虚拟化和仿真设备的介绍开始,然后探讨的细节virtio。重点是virtio2.6.30内核发行版中的…

JVM性能调优辅助手册之JVM指令

文章目录 栈和局部变量操作将常量压入栈的指令从栈中的局部变量中装载值的指令将栈中的值存入局部变量的指令 wide指令通用(无类型)栈操作类型转换整数运算逻辑运算移位操作按位布尔运算浮点运算 对象和数组对象操作指令数组操作指令 控制流条件分支指令比较指令无条…

基于DSP的IIR数字滤波器(论文+源码)

1.系统设计 在本次基于DSP的IIR数字低通滤波计中,拟以TMS320F28335来作为系统的主控制器,通过ADC0832模数转换芯片来对输入信号进行采集;通过TLC5615来将低通滤波后的信号进行输出;同时结合MATLAB仿真软件,对设计的II…

C++面向对象(OOP)编程-STL详解(vector)

本文主要介绍STL六大组件,并主要介绍一些容器的使用。 目录 1 泛型编程 2 CSTL 3 STL 六大组件 4 容器 4.1 顺序性容器 4.1.1 顺序性容器的使用场景 4.2 关联式容器 4.2.1 关联式容器的使用场景 4.3 容器适配器 4.3.1 容器适配器的使用场景 5 具体容器的…

Linux shell编程学习笔记37:readarray命令和mapfile命令

目录 0 前言1 readarray命令的格式和功能 1.1 命令格式1.2 命令功能1.3 注意事项2 命令应用实例 2.1 从标准输入读取数据时不指定数组名,则数据会保存到MAPFILE数组中2.2 从标准输入读取数据并存储到指定的数组2.3 使用 -O 选项指定起始下标2.4 用-n指定有效行数…

【Linux】ip命令使用

ip命令 用于管理与配置网络接口和路由表。 ip命令的安装 ip 命令来自 iproute2 软件包,在 CentOS 7 中默认已安装。 yum install -y iproute 语法 ip [ OPTIONS ] OBJECT { COMMAND | help }ip [ -force ] -batch filename选项及作用 执行令 : ip …

如何在小程序中添加字符

随着移动互联网的普及,微信小程序已经成为众多商家的首选。通过微信小程序,商家可以展示产品、服务和品牌形象。那么如何在微信小程序中添加视频内容呢?本文将详细介绍操作步骤。 首先,商家需要登录乔拓云平台,进入门店…

软件测试真的看不到前途吗?

看到这个问题和问题后的说明,题主的显性问题就有两个: 1、软件测试有没有前途 2、若从事没有前途的测试,该怎么办(真的只能转行么)? 一、软件测试有没有前途? 先说结论:如果在2020年…