当前位置: 首页 > 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

程序运行结果如下:

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

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

相关文章:

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

二次型最优控制 考虑到系统如果以状态空间方程的形式给出,其性能指标为: 其中F,Q,R是有设计者事先选定。线性二次最优控制问题简称LQ(Linear Quadractic)问题,就是寻找一个控制,使得系统沿着由指定初态出发的相应轨迹,其性能指标J取得最小值。 LQ问题分…...

蓝桥杯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…...

【NLP 面经 3】

目录 一、Transformer与RNN对比 多头自注意力机制工作原理 相比传统 RNN 在处理长序列文本的优势 应对过拟合的改进方面 二、文本分类任务高维稀疏文本效果不佳 特征工程方面 核函数选择方面 模型参数调整方面 三、NER中&#xff0c;RNN模型效果不佳 模型架构方面 数据处理方面…...

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…...

基础算法篇(3)(蓝桥杯常考点)-图论

前言 这期是蓝桥杯常考点的最后一章了&#xff0c;其中的dijkstra算法更是蓝桥杯中的高频考点 图的基本相关概念 有向图和无向图 自环和重边 稠密图和稀疏图 对于不带权的图&#xff0c;一条路径的路径长度是指该路径上各边权值的总和 对于带权的图&#xff0c;一条路径长度时…...

git错误:fatal: detected dubious ownership in repository at xxxxxx

1、报错说明 这个错误通常是由于Git仓库目录的拥有者或权限问题引起的。Git检测到仓库目录的所有权可能存在不一致或不安全的情况。 通常导致此报错的可能原因&#xff1a; &#xff08;1&#xff09;文件或目录的拥有者不一致&#xff1a; 仓库目录中的某些文件或子目录可能…...

【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"&…...

【分布式】深入剖析 Sentinel 限流:原理、实现

在当今分布式系统盛行的时代&#xff0c;流量的剧增给系统稳定性带来了巨大挑战。Sentinel 作为一款强大的流量控制组件&#xff0c;在保障系统平稳运行方面发挥着关键作用。本文将深入探讨 Sentinel 限流的原理、实现方案以及其优缺点&#xff0c;助力开发者更好地运用这一工具…...

[leetcode]2492. 两个城市间路径的最小分数(并查集 排序后建边)

题目链接 题意 给定一个 n n n个点 m m m条边的无向图 每条边有边权 求1-n的路径中最小的边权是多少 每条路可以重复走 思路 把边按边权降序排序 用并查集维护连通性 遍历每条边 每次合并边的起点和终点 如果1和n联通 并且这条边在1和n的这个连通块中 就对ans取min Code…...

关于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…...

嵌入式八股文学习——虚函数相关知识学习

虚函数 什么是虚函数&#xff1f;虚函数示例解析代码解析&#xff1a; 使用虚函数的注意事项1. 虚函数的声明与定义2. 派生类中的虚函数 哪些函数不能声明为虚函数1. 普通函数&#xff08;非成员函数&#xff09;2. 构造函数3. 内联成员函数4. 静态成员函数5. 友元函数总结 纯虚…...

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…...

物联网开发项目:AS608+ESP32S3+Vue构建指纹识别系统(二)——ESP32部分

一、前言 接着上一篇文章介绍的关于AS608模块的介绍以及关于指纹特征库的提取与导入分析&#xff0c;如果亲自上手了的话&#xff0c;那么对于Arduino IDE和AS608的基本操作已经熟悉了。 在这一个月之中&#xff0c;抛开中途有事耽误了&#xff0c;终于是基本上完成了我们整个项…...

程序化广告行业(46/89):竞价结算规则、底价策略与内部排名解析

程序化广告行业&#xff08;46/89&#xff09;&#xff1a;竞价结算规则、底价策略与内部排名解析 大家好&#xff01;在之前的几篇博客中&#xff0c;我们已经深入探讨了程序化广告的多个重要方面&#xff0c;从基础概念到实际操作流程。我写这些博客的目的&#xff0c;就是希…...

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

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

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

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

Unity 2022.3.x部分Android设备播放视频黑屏问题

Android平台视频兼容性问题很多…类似的黑屏问题真的很头大&#xff0c;总结一些常见问题&#xff1a; 1. 视频文件不支持压缩 如果使用AssetBundle加载视频&#xff0c;这个AssetBundle压缩格式要选None。有人可能会说最新版Unity已经支持bundle压缩下播放视频&#xff0c;稳…...

vLLM 部署 openai whisper 模型实现语音转文字

vLLM 部署 openai whisper 模型实现语音转文字 1. 安装 vLLM2. 启动 openai whisper 模型 1. 安装 vLLM pip install vllm vllm[audio] --pre --extra-index-url https://wheels.vllm.ai/nightly --upgrade2. 启动 openai whisper 模型 CUDA_VISIBLE_DEVICES0 \ VLLM_WORKER_…...

【Zabbix技术系列文章】第④篇——Zabbix 数据可视化

在当今数字化运维时代&#xff0c;面对海量的监控数据&#xff0c;如何从中快速获取有价值的信息至关重要。Zabbix 的数据可视化功能为我们提供了直观、高效的解决方案&#xff0c;它能将复杂的监控数据转化为清晰易懂的图表和仪表盘&#xff0c;助力运维人员迅速发现问题、分析…...

表格数据导出为Excel

环境及插件配置&#xff1a;&#xff08;理论上vue2应该也可以使用&#xff0c;没有试验过&#xff09; "vue": "^3.2.36", "webpack": "^5.94.0", "webpack-cli": "^5.1.4", "file-saver": "^2.…...

Faster-Whisper —— 为语音识别加速的利器

Faster-Whisper —— 为语音识别加速的利器 在语音识别技术迅速发展的今天&#xff0c;OpenAI 的 Whisper 模型因其强大的多语言识别能力和优异的准确率而受到广泛关注。然而&#xff0c;高精度模型往往伴随着高昂的计算开销和较长的推理时间&#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…...