当前位置: 首页 > article >正文

MATLAB 控制系统设计与仿真 - 31

二次型最优控制

考虑到系统如果以状态空间方程的形式给出,其性能指标为:

J=\frac{1}{2}x^T(t_f)Fx(t_f)+\frac{1}{2}\int_{t_0}^{t_f}[x^T(t)Qx(t)+u^T(t)Ru(t)]dt

其中F,Q,R是有设计者事先选定。线性二次最优控制问题简称LQ(Linear Quadractic)问题,就是寻找一个控制u^*(t),使得系统沿着由指定初态x_0出发的相应轨迹x^*(t),其性能指标J取得最小值。

LQ问题分为有限时间LQ问题和无限时间LQ问题。在有限时间LQ问题中,终端时刻t_f是固定的,且为有限值;而在无限时间LQ问题中,t_f=\infty

此外,从工程应用角度,还可以把LQ最优控制问题分为调节问题和跟踪问题,而调节问题又分为状态调节问题和输出调节问题。所谓状态调节问题,就是设计最优控制u^*(t),使在其作用下把系统由初始状态x_0驱动到平衡状态x_e=0,同时性能指标J取得最小值。而跟踪问题,则要求在使系统的输出y(t)跟踪已知的或未知的参考信号y_r(t)的同时,使某个相应的二次型性能指标J为极小。

无限时间LQ状态调节

无限时间LQ状态调节问题中的性能指标为:

J=\frac{1}{2}\int_{t_0}^{\infty}[x^T(t)Qx(t)+u^T(t)Ru(t)]dt

其中{A,B}为能控的,\left \{ A,Q^{1/2} \right \}为能观的。

无限时间最优调节器系统的结构图如下:

对于无限时间LQ状态调节问题,u^*(t)为其最优控制的充分必要条件是其具有形式:

u^*(t)=-K^*x^*(t) \\ K^*=R^{-1}B^TP

而最优性能指标为:

J^*=\frac{1}{2}x_0^TPx_0

其中P为下述Riccati矩阵代数的解。

PA+A^TP+Q-PBR^{-1}B^TP=0​​​​​​​

应该指出的是,这种设计所得到的闭环控制系统是渐进稳定的。

在MATLAB中,提供了lqr函数用于求无限时间LQ状态调节问题,函数的调用格式为:

[K,P,e]=lqr(sys,Q,R,N); % 计算联系时间系统的最优反馈增益矩阵
                        % K为最优反馈增益矩阵
                        % P为对应的Riccati方程的解
                        % e为对应的闭环系统的极点
                        % Q为状态权重矩阵
                        % R为输入权重矩阵
                        % N为状态,输入交叉权重矩阵

其性能指标为:

J=\frac{1}{2}\int_{0}^{\infty}[x^TQx+u^TRu+2x^TNu]dt

默认时N=0。

例如:

假设系统状态空间表达式为:

\dot{x}(t)=\begin{bmatrix} 0 &1 &0 \\ 0&0 & 1\\ -1 & -4 &-6 \end{bmatrix}x(t)+ \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}u(t)

采用输入反馈,系统的性能指标为:

J=\frac{1}{2}\int_{0}^{\infty}[x^TQx+u^TRu]dt

Q=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0& 0 & 1 \end{bmatrix},R=1

试设计LQ最优控制器,计算最优状态反馈矩阵,并绘制闭环系统的阶跃响应曲线。

MATLAB代码如下:

clear all;clc;
A=[0 1 0;0 0 1;-1 -4 -6];
B=[0 0 1]';
C=[1 0 0];
D=0;
sys=ss(A,B,C,D);
Q=diag([1,1,1]);
R=1;
[K P e]=lqr(sys,Q,R);
Ac=A-B*K;
Bc=B;
Cc=C;
Dc=D;
sysC=ss(Ac,Bc,Cc,Dc);
step(sysC);
xlabel('time(s)');
ylabel('response')
title('step response');
grid on

程序运行结果如下:

最后,欢迎大家有问题给我留言。

非常感谢小伙伴们的-点赞-收藏-关注


http://www.kler.cn/a/613798.html

相关文章:

  • NFC 碰一碰发视频的短视频剪辑功能源码技术开发
  • 编程技术水平横向和垂直发展的抉择全方位分析
  • 【HTML】验证与调试工具
  • 前端性能优化思路_场景题
  • chrome-driver安装
  • Hyperlane:Rust Web开发的未来,释放极致性能与简洁之美
  • 【Git “reset“ 命令详解】
  • 智慧科技,安全会见:辉视监狱智能会见系统助力监狱管理升级
  • 【Android】屏幕刷新机制(概览)
  • 通用人工智能(AGI)的发展路径(人工智能通识)
  • iPhone mini,永远再见了
  • MySQL 性能优化:索引优化与查询优化
  • Scala集面向对象与函数式编程
  • 华为hcia——Datacom实验指南——配置IPv4静态路由,默认路由和浮动静态路由
  • Selenium之Web Driver常用属性
  • 【C#语言】C#文件操作实战:动态路径处理与安全写入
  • Ruby 简介
  • 手机硬件检测详解:从版本信息到相机功能的全面指南
  • Springboot读取nacos配置
  • 如何在 Windows 上安装和使用 Ollama WebUI