基于LMI的输出反馈H∞控制及其仿真(含实现程序)

2023-11-03

目录

1.H∞输出反馈控制

1.1 框架结构

 1.2 广义系统

1.3 等价的LMI问题

2.参考文献

3.文献案例实现

3.1 二阶系统

3.2 H∞最优输出反馈控制器

3.2.1 程序

3.1.2 时域和频域分析

3.3 H∞次优输出反馈控制器

3.3.1 程序

3.3.2 时域和频域分析

3.4 最优与次优控制器对比


1.H∞输出反馈控制

1.1 框架结构

  H∞输出反馈控制框架 

 1.2 广义系统

1.3 等价的LMI问题

min γ

H∞最优输出反馈

可以用LMI ToolBox中的mincx求解器求解,也可以用MATLAB封装函数hinflmi(本文选择)或hinfric实现,其中hinflmi和hinfric使用格式及案例分析也可以查看往期文章。

使用hinfric和hinflmi函数设计H∞输出反馈控制器(含白嫖代码)_Mr. 邹的博客-CSDN博客

2.参考文献

《基于LMI的输出反馈H∞控制及其仿真----李阳,李树民》

文献链接给在上面了(万方),本来是粘贴出来直接给大家看,但是客服说我侵权了,我只能把文献删了,希望大家理解!谢谢!

3.文献案例实现

3.1 二阶系统

3.2 H∞最优输出反馈控制器

对于即将要用上的函数,这里不再做解释,具体可以查看往期文章:

ltisys和ltiss函数使用及示例学习_Mr. 邹的博客-CSDN博客  

使用hinfric和hinflmi函数设计H∞输出反馈控制器(含白嫖代码)_Mr. 邹的博客-CSDN博客

H2/H无穷控制之msfsyn、hinfmix和h2hinfsyn函数使用及示例学习_Mr. 邹的博客-CSDN博客_hinfsyn函数

3.2.1 程序

 %% H∞最优输出反馈控制器
a = [0 1 ;-6 -5];b1 = [1;0];b2 = [0;1];
c1 = [1 0];d11 = 0;d12 = 0;
c2 = [1 0];d21 = 1;d22 = 0;
P = ltisys(a,[b1 b2],[c1;c2],[d11 d12;d21 d22]);%开环广义系统
[gopt,K] = hinflmi(P,[1 1]);%H∞最优输出反馈控制器
[ak,bk,ck,dk] = ltiss(K);%控制器的状态空间形式
[kdum,kden] = ss2tf(ak,bk,ck,dk);%控制器传递函数的分子分母
ktf = tf(kdum,kden)%控制器的传递函数形式
clsys = slft(P,K)%闭环系统传递函数
spol(clsys)%闭环系统极点,用于检验闭环系统稳定性
norminf(clsys)%外部扰动w到被调输出的闭环系统RMS/ee增益
figure(1);splot(clsys,'st')%闭环系统时域响应阶跃图
figure(2);splot(clsys,'bo')%闭环系统频域响应伯德图

3.1.2 时域和频域分析

图1 闭环系统时域响应阶跃图

图2 闭环系统频域响应伯德图

3.3 H∞次优输出反馈控制器

3.3.1 程序

 %%   H∞次优输出反馈控制器
a = [0 1 ;-6 -5];b1 = [1;0];b2 = [0;1];
c1 = [1 0];d11 = 0;d12 = 0;
c2 = [1 0];d21 = 1;d22 = 0;
P = ltisys(a,[b1 b2],[c1;c2],[d11 d12;d21 d22]);%开环广义系统
[gopt,K] = hinflmi(P,[1 1],0.1);%设定性能指标γ<0.1,即次优H∞输出反馈控制器
[ak,bk,ck,dk] = ltiss(K);%控制器的状态空间形式
[kdum,kden] = ss2tf(ak,bk,ck,dk);%控制器传递函数的分子分母
ktf = tf(kdum,kden)%控制器的传递函数形式
clsys = slft(P,K)%闭环系统传递函数
spol(clsys)%闭环系统极点,用于检验闭环系统稳定性
norminf(clsys)%外部扰动w到被调输出的闭环系统RMS/ee增益
figure(1);splot(clsys,'st')%闭环系统时域响应阶跃图
figure(2);splot(clsys,'bo')%闭环系统频域响应伯德图

3.3.2 时域和频域分析

  图3 闭环系统时域响应阶跃图

 图4 闭环系统频域响应伯德图

3.4 最优与次优控制器对比

       由于最优控制器难以实现,因为增益K的值过大,LMI工具箱也提示控制器的模态过快, 建议提高的值来取消快的模态,所以文章选用了性能指标γ上限为0.1的次优H∞输出反馈控制器。

如果有帮助,麻烦帮忙点个赞是我最大的分享动力,非常感谢!

注:仅为便利自己学习,错误在所难免,如有兴趣的学者可以参考交流,谢谢!

参考资料:

《基于LMI的输出反馈H∞控制及其仿真----李阳,李树民》

ltisys和ltiss函数使用及示例学习_Mr. 邹的博客-CSDN博客  

使用hinfric和hinflmi函数设计H∞输出反馈控制器(含白嫖代码)_Mr. 邹的博客-CSDN博客

H2/H无穷控制之msfsyn、hinfmix和h2hinfsyn函数使用及示例学习_Mr. 邹的博客-CSDN博客_hinfsyn函数

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

基于LMI的输出反馈H∞控制及其仿真(含实现程序) 的相关文章

  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调
  • matlab mex 文件和 C++ dll (Windows)

    我有一个带有 Test 类的 DLL 标题 class MY EXPORT Test public int doit const string str 和来源 int Test doit const string str return in
  • 在 MATLAB 中使用 FFT 的频率响应

    这是场景 使用频谱分析仪 我有输入值和输出值 样本数是32000采样率为2000样本 秒 输入是正弦波50 hz 输入为电流 输出为压力 单位 psi 我如何使用 MATLAB 根据这些数据计算频率响应 使用 MATLAB 中的 FFT 函
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 句柄类和值类的区别

    我有一些 C 背景 想使用 Matlab 中的类 句柄和值类有什么区别 我知道如果我想定义一个带有重载运算符 例如 和 的矩阵类 我会使用值类 然而 有时 当我选择一个手柄类时 事情似乎只对我有用 MathWorks 提供了一些有关其用途的
  • Matlab:保存后翻转图例顺序和图例重叠图

    我正在尝试根据以下内容反转我的图例条目顺序matlab条形图中图例颜色的逆序 https stackoverflow com questions 31178005 reverse ordering of legend colors in m
  • Matlab 字段名索引[重复]

    这个问题在这里已经有答案了 所以我有一个包含多个表的元胞数组 我试图访问表的第一个列名称 c table1 table2 table3 以下两行都给了我错误 fieldnames c 1 1 fieldnames c 1 1 Error i
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • MATLAB 中的霍夫变换

    有谁知道如何使用霍夫变换来检测二值图像中最强的线 A zeros 7 7 A 6 10 18 24 36 38 41 1 使用 rho theta 格式 其中 theta 以 45 为步长 从 45 到 90 以及如何在 MATLAB 中显
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标

随机推荐

  • 通达信缠论完整指标_【画线参数调整、拔地而起指标介绍、走势完美实战案例】疯狂的缠论通达信版自动画线选股指标更新:很小但很有用的更新...

    导读 文章包含4部分 通达信版画线选股指标的画线参数都可以手动调整了 通达信版画线选股指标子指标介绍 拔地而起 走势完美策略实战案例 走势完美策略实战要点 理论 1 通达信版自动画线选股指标更新 画线参数都可以手动调整 疯狂的缠论通达信版自
  • Java 实现图片转base64

    一 自己实现byte数组拷贝 public class Base64Util base64图片 存储的byte数组 private byte baseByte new byte 0 public static void main Strin
  • Skill: UltraEdit: ue64ctmn.dll 删除不掉

    卸载UltraEdit时ue64ctmn dll删除不掉 原因 自动生成鼠标右键菜单项 该文件被鼠标右键menu占用 解决 在运行中输入 regedit 展开 HKEY CLASSES ROOT shellex ContextMenuHan
  • 基于uniapp实现掘金的微信小程序模版小项目

    代码地址 1 前言 涉及的框架及技术 uniapp vant animate vuex iconfont websocket 2 启动流程 直接用Hbuilder打开 然后点击运行 gt 运行到小程序模拟器 gt 微信开发者工具 启动之后如
  • 用AI写代码 -- Github Copilot测试

    截图为copilot官网 要使用copilot 首先要安装vscode 下载copilot插件 下载完了以后 并不能马上使用 还需要申请内测账号 前几天 我终于收到内测账号通过的邮件 趁着今天在家 连忙打开vscode测试一下 爬图片 我们
  • STL——String类(2)成员函数详解

    目录 前言 一 String的成员函数 1 基本成员函数 代码实验 实验结果 类对象每次扩容后的capacity数据展示 1 2 resize 调整字符串大小 1 3reserve 请求更改该对象的容量capacity值 代码实验 前言 S
  • 新建的maven项目没有maven依赖

    把该项目转成动态web项目 出现web图标后再右键项目 点击属性 添加maven依赖 删除项目 不删源码 重新引入后可出现maven依赖 有时未成功 可重新添加maven依赖 这时在pom xml文件中添加的依赖也会进入到maven依赖中
  • 微信小程序怎么设置全局背景颜色?

    其实啊 这个可简单了 有手就行 首先 打开微信小程序开发工具 其次 找到全局配置app json文件 修改 navigationBarBackgroundColor 222 这是修改的导航栏的颜色 接着 在app wxss文件中 配值pag
  • JAVA微服务场景下分布式日志收集排查问题实战

    问题产生的根由 不同服务的日志存在哪里 我们怎么去排查线上问题 问题场景 我们部署的java服务可能有几十个 不同的项目里面他是看不到别的服务的日志 只有服务的返回msg消息 相比传统的单体服务来说 排查问题和解决问题的原因相对比较复杂和麻
  • 《Kafka权威指南》——初识 Kafka

    发布与订阅消息系统 在正式讨论Apache Kafka 以下简称Kafka 之前 先来了解发布与订阅消息系统的概念 并认识这个系统的重要性 数据 消息 的发送者 发布者 不会直接把消息发送给接收 者 这是发布与订阅消息系统的一个特点 发布者
  • 性能测试很难吗?一文带你学会性能测试核心流程和概念

    在很多人的概念中 性能测试就是使用Loadrunner Jmeter等工具进行压测 然后得到测试结果即可 但仔细想想 对谁进行测试 测试目的是什么 监测指标有哪些 得到的结果如何分析 怎样的结果算通过 等等 所以使用工具压测只是性能测试最基
  • 泰迪杯C题第二问

    面包多 https mianbaoduo com o bread Ypmbl5Zq
  • java 8 新特性,接口默认方法、lambda表达式、Optional、stream

    java 8 新特性 当面试官让我说几个java 8 的新特性 我巴拉巴拉把知道的都说了 然而 面试官接着问 stream里面如果按照分类过滤怎么做呢 map 是什么 嘀 扫码成功 哎呀 地铁里面的空调真不错啊 真不错 果然 只做到了解是不
  • qt常见问题

    1所有能够接受和发送消息的class必须存在有消息循环的线程环境中 2对象的消息处理默认环境是是存在于创建这个对象的线程环境中的 对于第二点如何理解 比如 subthread subthread connect this sigA this
  • Chisel学习2构建过程与测试

    要开始学习更有趣的Chisel代码 我们首先需要学习如何编译Chisel程序 如何生成在FPGA中执行的Verilog代码 以及如何编写调试测试并验证我们的电路是正确的 Chisel是用Scala编写的 因此任何支持Scala的构建过程都可
  • 基于Vue三大互联网企业级开箱即用中后台解决方案对比字节跳动Arco Design Pro,蚂蚁集团Ant Design Pro和腾讯TDesign Starter

    基于Vue中后台解决方案越来越多开源了 随着各大互联网企业的Vue UI框架开源和普及后 都又有新的中后台解决方案也开源 方便开发者使用了 下面来作一个主观和客观的对比一下 字节跳动Arco Pro 蚂蚁集团Ant Design Pro 腾
  • Android 新增一个自定义分区

    在某个项目中 有一个需求 需要新增一个xxx分区 这个分区类似于vendor oem分区 名字为指定的 此处有点好奇 为什么不直接使用oem分区 而是另外弄一个分区名出来 功能实现点 在root目录下新增分区的挂载目录 将自定义分区的内容生
  • Flask-数据库-SQLAlchemy

    SQLAlchemy是flask的扩展 是一个功能强大的OR映射器 支持多种数据库后台 可以将类的对象映射至数据库表 使用这个工具 可以创建数据库 创建表 并为数据库添加数据 进行查询操作等 参考 Flask SQLAlchemy Flas
  • kafka(一)kafka的基础与常用配置

    文章目录 一 kafka基础内容 二 kafka 中重要的参数配置 2 1 log dirs 2 2 unclean leader election enable 2 3 message max bytes 2 4 request requ
  • 基于LMI的输出反馈H∞控制及其仿真(含实现程序)

    目录 1 H 输出反馈控制 1 1 框架结构 1 2 广义系统 1 3 等价的LMI问题 2 参考文献 3 文献案例实现 3 1 二阶系统 3 2 H 最优输出反馈控制器 3 2 1 程序 3 1 2 时域和频域分析 3 3 H 次优输出反