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

news2025/4/2 17:47:16

二次型最优控制

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

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.coloradmin.cn/o/2325934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯15届JAVA_A组

将所有1x1转化为2x2 即1x1的方块➗4 然后计算平方数 记得-1 2 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter;public class Main{static BufferedReader in new BufferedReader(new In…

deepseek v3 0324实现工作流编辑器

HTML 工作流编辑器 以下是一个简单的工作流编辑器的HTML实现&#xff0c;包含基本的拖拽节点、连接线和可视化编辑功能&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewp…

20250331-智谱-沉思

背景 收到GLM沉思的消息&#xff0c;立马试用下。感觉真的太及时了。 &#xff08;背景&#xff1a;为了客户的需求“AI辅助写作”实验了2款开源workflow&#xff0c;2款在线workflow&#xff0c;好几款多智能体框架后&#xff0c;心中无底之际。。。&#xff09; 1. GLM(开启…

Java EE(17)——网络原理——IP数据报结构IP协议解析(简述)

一.IP数据报结构 (1)版本&#xff1a;指明协议的版本&#xff0c;IPv4就是4&#xff0c;IPv6就是6 (2)首部长度&#xff1a;单位是4字节&#xff0c;表示IP报头的长度范围是20~60字节 (3)8位区分服务&#xff1a;实际上只有4位TOS有效&#xff0c;分别是最小延时&#xff0c;最…

26考研|高等代数:线性空间

线性空间这一章在整个高等代数学习过程中是非常精华的部分&#xff0c;在学习这一章的过程中会有部分的概念较为抽象&#xff0c;一定要抓紧抓牢对于概念的理解&#xff0c;反复阅读与感受&#xff0c;同时也可以根据已知的解析几何中介绍的二维空间或者三维空间进行类推比较&a…

【Linux】进程间通信(IPC)-- 无名管道、命名管道

IPC机制 实现进程间通信 在多个进程间传输数据或共享信息的机制。 数据交换&#xff0c;共享资源&#xff0c;进程同步&#xff0c;消息传递。 IPC实现原理&#xff1a;通信进程能够访问相同的内存区域。 方法&#xff1a; 管道&#xff1a;无名管道pipe、命名管道FIFO S…

每日一题-力扣-2278. 字母在字符串中的百分比 0331

字母在字符串中的百分比求解方案 | 力扣 2278 题解 问题描述 给定一个字符串 s 和一个字母 letter&#xff0c;我们需要计算 letter 在 s 中出现的百分比&#xff0c;并将结果向下取整。例如&#xff0c;如果字符串是 "foobar"&#xff0c;字母是 "o"&…

关于CodeJava的学习笔记——11

一、GUI 1、最简单的GUI 只有一个按钮的GUI import java.awt.*; import javax.swing.*; public class SimpleGUI{JFrame frame;Button bt;public SimpleGUI(){frame new JFrame("标题栏内容");bt new Button("点我啊");frame.add(bt);frame.setSize(8…

首个物业plus系列展 2025上海国际智慧物业博览会开幕

AI赋能服务升级&#xff01;首个“物业plus”系列展 2025上海国际智慧物业博览会盛大开幕 3月31日&#xff0c;2025上海国际智慧物业博览会&#xff08;简称“上海物博会”&#xff09;在上海新国际博览中心N4馆隆重开幕。本届展会由广州旭杨国际展览有限公司主办&#xff0c…

rk3586开发版新增系统调用(Android13)

一、前言 最近想学一下kernel和hal,所以买了一块板子,带了个摄像头和屏幕,1100,学习投资了。这个Android内核定一个系统调用感觉是真的麻烦&#xff0c;主要是有一层bionic C&#xff0c;一开始不熟悉的时候还是花了点时间去配置。 二、kernel修改 include/uapi/asm-generic…

OCR第三个方案:PP-OCRv4的初步探索

一、PP-OCR历史简要回顾 先请出PP-OCR官网&#xff0c;理解上有出入的&#xff0c;以官网为准。 1.1 PP-OCR系列历史 PP-OCRv1&#xff08;2020&#xff09;&#xff1a;首创3.5M超轻量模型&#xff0c;奠定两阶段架构基础&#xff08;检测方向分类识别&#xff09;PP-OCRv2…

ICLR 2025 Spotlight:让机器人实现「自主进化」,蚂蚁数科、清华提出具身协同框架 BodyGen

最近&#xff0c;全球 AI 和机器学习顶会 ICLR 2025 公布了论文录取结果&#xff1a;由蚂蚁数科与清华大学联合团队提出的全新具身协同框架 BodyGen 成功入选 Spotlight&#xff08;聚光灯/特别关注&#xff09;论文。 论文出自蚂蚁数科与清华大学兴军亮老师团队合作的科研项目…

第十九章:Python-pyttsx3 库实现文本转语音功能

前言 在开发语音交互应用或需要文本转语音功能的项目时&#xff0c;pyttsx3 是一个非常实用的 Python 库。它支持离线语音合成&#xff0c;无需联网即可将文本转换为语音。本文将详细介绍 pyttsx3 的功能、用法以及常见问题的解决方法&#xff0c;并通过示例代码帮助你快速上手…

SvelteKit 最新中文文档教程(16)—— Service workers

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …

Flutter项目之构建打包分析

目录&#xff1a; 1、准备部分2、构建Android包2.1、配置修改部分2.2、编译打包 3、构建ios包3.1、配置修改部分3.2、编译打包 1、准备部分 2、构建Android包 2.1、配置修改部分 2.2、编译打包 执行flutter build apk命令进行打包。 3、构建ios包 3.1、配置修改部分 3.2、编译…

24、网络编程基础概念

网络编程基础概念 网络结构模式MAC地址IP地址子网掩码端口网络模型协议网络通信的过程&#xff08;封装与解封装&#xff09; 网络结构模式 C/S结构&#xff0c;由客户机和服务器两部分组成&#xff0c;如QQ、英雄联盟 B/S结构&#xff0c;通过浏览器与服务器进程交互&#xf…

Mentalab Explore Pro携手 Wearanize + 数据集,推动睡眠科学研究

在神经科学和睡眠研究的领域&#xff0c;精确监测大脑活动是获取深入见解的关键。传统多导睡眠监测&#xff08;PSG&#xff09;设备虽然提供了详尽的数据&#xff0c;但其操作的复杂性和成本限制了其在更广泛场景中的应用。可穿戴技术的兴起提供了一种新的数据收集方式&#x…

基于 RK3588 的 YOLO 多线程推理多级硬件加速引擎框架设计(代码框架和实现细节)

一、前言 接续上一篇文章&#xff0c;这个部分主要分析代码框架的实现细节和设计理念。 基于RK3588的YOLO多线程推理多级硬件加速引擎框架设计&#xff08;项目总览和加速效果&#xff09;-CSDN博客https://blog.csdn.net/plmm__/article/details/146542002?spm1001.2014.300…

【Yolov8部署】 VS2019+opencv+onnxruntime 环境下部署目标检测模型

文章目录 前言一、导出yolov8模型为onnx文件二、VS2019中环境配置三、源码与实际运行 前言 本文主要研究场景为工业场景下&#xff0c;在工控机与工业相机环境中运行的视觉缺陷检测系统&#xff0c;因此本文主要目的为实现c环境下&#xff0c;将yolov8已训练好的检测模型使用o…

论文阅读:Dual Anchor Graph Fuzzy Clustering for Multiview Data

论文地址:Dual Anchor Graph Fuzzy Clustering for Multiview Data | IEEE Journals & Magazine | IEEE Xplore 代码地址&#xff1a;https://github.com/BBKing49/DAG_FC 摘要 多视角锚图聚类近年来成为一个重要的研究领域&#xff0c;催生了多个高效的方法。然而&#…