【MIMO稳定裕度】基于数据驱动的多输入多输出系统稳定裕度分析

article/2025/6/29 13:40:00

  最近一直在忙着写论文,只能说要写一篇高水平论文确实不容易,要一直反复来回修改调整,要求比较高,所以没太有时间和精力写博客,这两天结束了初稿,又正好是假期,出来冒个泡。

  本次分享的主题是:多输入多输出系统的稳定裕度求解方法。

0. 问题描述

  对于多输入多输出系统,经典的Bode图分析稳定裕度不再适用,目前市面上对于多输入多输出系统用的比较广泛的办法有:

  • 回差阵奇异值法;
  • μ分析法;

  其中回差阵奇异值法相对比较保守,但是两种方法都是基于模型的,也就是必须得有建立好的状态空间模型才能求解稳定裕度。然而,最近却了解到一种不基于模型,基于实验数据来解算稳定裕度的方法,并且求解过程简单,感觉在实际中更加有效。以下首先介绍基于模型的SM求解算法,然后介绍基于数据驱动的SM求解方法,最后再补充介绍一下μ分析法求解SM法

1. 基于模型的MIMO稳定裕度分析

  对于多输入多输出闭环系统,在被控对象输入端注入一个复对角乘性扰动 I m + Δ ( s ) \mathbf{I}_m+\mathbf{\Delta }\left( s \right) Im+Δ(s) 来定义多变量增益和时延裕度(GM and DM)。

当求解增益裕度时,
Δ ( s ) = d i a g ( r 1 , r 2 , . . . , r m ) , ∣ r i ∣ ⩽ r max ⁡ , i = 1 , 2 , . . . m \mathbf{\Delta }\left( s \right) =\mathrm{diag}\left( r_1, r_2, ... , r_m \right) , \left| r_i \right|\leqslant r_{\max}, i=1,2,...m Δ(s)=diag(r1,r2,...,rm),rirmax,i=1,2,...m当求解时延裕度时, Δ ( s ) = d i a g ( e − s τ 1 − 1 , e − s τ 2 − 1 , . . . , e − s τ m − 1 ) , 0 ⩽ τ i ⩽ τ max ⁡ , i = 1 , 2 , . . . m \mathbf{\Delta }\left( s \right) =\mathrm{diag}\left( e^{-s\tau _1-1}, e^{-s\tau _2-1}, ... , e^{-s\tau _m-1} \right) , 0\leqslant \tau _i\leqslant \tau _{\max}, i=1,2,...m Δ(s)=diag(esτ11,esτ21,...,esτm1),0τiτmax,i=1,2,...m对上图利用环路变换和小增益定理进行转换可得 R i ( s ) = ( I m + ( H ( s ) K G ( s ) ) − 1 ) − 1 \mathbf{R}_{\mathrm{i}}\left( s \right) =\left( \mathbf{I}_m+\left( \mathbf{H}\left( s \right) \mathbf{KG}\left( s \right) \right) ^{-1} \right) ^{-1} Ri(s)=(Im+(H(s)KG(s))1)1此时的增益裕度和时延裕度的最大值为 r max ⁡ = ( 1 − ε 1 ) ∥ R i ( s ) ∥ − 1 τ max ⁡ = ( 1 − ε 2 ) ∥ s R i ( s ) ∥ − 1 r_{\max}=\left( 1-\varepsilon _1 \right) \left\| \mathbf{R}_i\left( s \right) \right\| ^{-1} \\ \tau _{\max}=\left( 1-\varepsilon _2 \right) \left\| s\mathbf{R}_i\left( s \right) \right\| ^{-1} rmax=(1ε1)Ri(s)1τmax=(1ε2)sRi(s)1对于 H ∝ H_{\propto} H范数 ∥ R i ( s ) ∥ \left\| R_i\left( s \right) \right\| Ri(s)求通过sigma函数求解最大奇异值得到,然而可转换成对应的增益裕度和时延裕度。 d b 2 m a g ( − r max ⁡ + 1 ) ⩽ G M ⩽ d b 2 m a g ( r max ⁡ + 1 ) 0 ⩽ D M ⩽ τ max ⁡ db2mag\left( -r_{\max}+1 \right) \leqslant GM\leqslant db2mag\left( r_{\max}+1 \right) \\ 0\leqslant DM\leqslant \tau _{\max} db2mag(rmax+1)GMdb2mag(rmax+1)0DMτmax在验证上述结果的时候,直接在反馈回路上加上增益环节和时延环节即可,-r*[1 0;0 1]+[1 0;0 1],经过验证,该裕度取值合适,较不保守。

2. 基于数据驱动的MIMO稳定裕度分析

  以上方法是基于有确切模型的时候求解稳定裕度,然而对于实际情况来说,大部分时候是不知道具体模型的,此时使用上述方法得到的稳定裕度就会有较大的偏差。
  对上一节的控制回路进行调整,可得到基于扫频数据的稳定裕度求解方法。

上图表示的意思是,通过在z点注入扫频信号,在w点获取对应的输出数据,此时借助频率响应综合识别软件包(CIFER) 的帮助即可得到对应的 R i ( s ) \boldsymbol{R}_i\left( s \right) Ri(s),具体的求解步骤如下:

最终得到奇异值曲线如下所示,对最大奇异值根据上节的公式进行转换,可得到对应的增益裕度为6.17dB,时延裕度为0.1618s。经过验证,数值合理,较不保守。

上述方法的优势之处为:

  • 简单;
  • 无模型基于实验数据获得;
  • 在不中断环路的情况下进行在线评估SM;
  • 对于含时滞环节的不确定性能更好的处理;

劣势在于:虽然扫频试验得到的数据驱动SMs具有一定的保守性,但在所得到的数据驱动SMs的扰动下,系统仍能保持稳定。

3. μ分析法求解稳定裕度

  顺带补充一下μ分析法求解稳定裕度的方法,同样在输入端引入乘性不确定性


将不确定性从系统中分离出来,并转换为如下形式:

其中 P = − ( I + K G ) − 1 K G \boldsymbol{P}=-\left( \boldsymbol{I}+\boldsymbol{KG} \right) ^{-1}\boldsymbol{KG} P=(I+KG)1KG  这样,原系统转化为适合鲁棒稳定性分析的标准形式。如果知道了回路开环传递函数KG ,就可以通过该式计算出P(s)的频率特性,进而利用Matlab中的 μ-tool得到系统的结构奇异曲线。并找出系统的μ峰值。


上图μ峰值为3.75,转换成经典的增益裕度和相角裕度分别为2.0492dB15.2904°。经过验证,此结果合理,系统在此范围内仍能稳定。

4. 总结

  1、分别阐述了基于理论模型和基于实验数据的稳定裕度计算方法;
  2、可根据实际情况合理选择计算方法;在理论上可以采用基于模型的计算方法(小增益 L 2 L_2 L2方法和μ分析法),在实践上可以采用基于扫频数据驱动的测量方法。


http://www.hkcw.cn/article/UtlgLgdgVS.shtml

相关文章

Python 训练营打卡 Day 33-神经网络

简单神经网络的流程 1.数据预处理(归一化、转换成张量) 2.模型的定义 继承nn.Module类 定义每一个层 定义前向传播流程 3.定义损失函数和优化器 4.定义训练过程 5.可视化loss过程 预处理补充: 分类任务中,若标签是整…

TDengine 的 AI 应用实战——电力需求预测

作者: derekchen Demo数据集准备 我们使用公开的UTSD数据集里面的电力需求数据,作为预测算法的数据来源,基于历史数据预测未来若干小时的电力需求。数据集的采集频次为30分钟,单位与时间戳未提供。为了方便演示,按…

【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡

【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡 一、项目背景与转型原因 1.1 原定计划的变更 本系列教程最初规划是开发即构美颜SDK的UTS插件,但由于甲方公司内部战略调整,原项目被迫中止。考虑到: 技术…

(aaai2024) Omni-Kernel Network for Image Restoration

代码:https://github.com/c-yn/OKNet 研究动机:作者认为Transformer模型计算复杂度太高,因此提出了 omni-kernel module (OKM),可以有效的学习局部到全局的特征表示。该模块包括:全局、大分支、…

useMemo useCallback 自定义hook

useMemo & useCallback & 自定义hook useMemo 仅当依赖项发生变化的时候,才去重新计算;其他状态变化时则不去做不必要的计算。 useCallback 缓存函数。但是使用注意📢 ,useCallback没有特别明显的优化。 *合适的场景——父…

android binder(二)应用层编程实例

一、binder驱动浅析 从上图看出,binder的通讯主要涉及三个步骤。 在 Binder Server 端定义好服务,然后向 ServiceManager 注册服务在 Binder Client 中向 ServiceManager 获取到服务发起远程调用,调用 Binder Server 中定义好的服务 整个流…

GESP2024年3月认证C++二级( 第三部分编程题(2)小杨的日字矩阵)

参考程序&#xff1a; #include <iostream> using namespace std;int main() {int n;cin >> n; // 读入奇数 n// 外层循环控制每一行for (int i 0; i < n; i) {// 内层循环控制每一列for (int j 0; j < n; j) {char ch;// 如果当前列是最左或最右&#x…

BUUCTF[ACTF2020 新生赛]Exec 1题解

BUUCTF[ACTF2020 新生赛]Exec 1题解 分析解题过程总结: 分析 先分析题目&#xff1a;exc()是一个内部调用shell命令的函数&#xff0c;同样的函数还有system(), 创建靶机&#xff0c;打开网址&#xff0c;是一个和PING相关的网页&#xff0c;查看源代码&#xff0c;没有提示&a…

NX869NX874美光固态颗粒NX877NX883

NX869NX874美光固态颗粒NX877NX883 美光固态硬盘颗粒技术解析与市场展望 近年来&#xff0c;固态硬盘&#xff08;SSD&#xff09;市场呈现出蓬勃发展的态势&#xff0c;而作为核心组件的存储颗粒&#xff0c;其技术进展与市场动态自然吸引了众多关注。在众多品牌中&#xff…

CodeTop100 Day20

58、翻转字符串中的数字 class Solution {public String reverseWords(String s) {s s.trim(); int j s.length() - 1, i j;StringBuilder res new StringBuilder();while (i > 0) {while (i > 0 && s.charAt(i) ! ) i--…

重温经典算法——快速排序

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 基本原理 快速排序基于分治思想&#xff0c;通过选取基准元素将数组划分为两个子数组&#xff08;小于基准和大于基准&#xff09;&#xff0c;递归排序子数组。平均时间复…

【机器学习】集成学习与梯度提升决策树

目录 一、引言 二、自举聚合与随机森林 三、集成学习器 四、提升算法 五、Python代码实现集成学习与梯度提升决策树的实验 六、总结 一、引言 在机器学习的广阔领域中,集成学习(Ensemble Learning)犹如一座闪耀的明星,它通过组合多个基本学习器的力量,创造出…

Python量化交易:K线形态识别与技术分析可视化

引言 在量化交易领域&#xff0c;K线形态识别是一种重要的技术分析方法&#xff0c;可以帮助投资者预测市场趋势并制定交易策略。本文将介绍如何使用Python实现K线形态的自动识别与可视化分析&#xff0c;无需依赖复杂的第三方库如TA-Lib&#xff0c;完全使用纯Python实现。通…

前端自动化测试利器:Playwright 全面介绍

目录 &#x1f9ea; 前端自动化测试利器&#xff1a;Playwright 全面介绍 ✨ 为什么选择 Playwright&#xff1f; 1. 跨浏览器支持 2. 多语言支持 3. 自动等待机制 4. 强大的页面交互能力 &#x1f527; Playwright 快速上手 &#x1f4f8; 更强的调试体验 &#x1f9…

华为云Flexus+DeepSeek征文|华为云 Dify 打造智慧水果分析助手,实现“知识库 + 大模型”精准赋能

前言 本文聚焦基于华为云平台部署的智慧水果分析助手 AI Agent&#xff0c;通过 Dify 平台集成 Embedding、Rerank 及 DeepSeek 模型&#xff0c;构建工作流&#xff0c;实现提问内容驱动的 “知识库 大模型” 与 “联网搜索 大模型” 智能切换。 ECS控制台&#xff1a;https…

【算法设计与分析】实验——改写二分搜索算法,众数问题(算法分析:主要算法思路),有重复元素的排列问题,整数因子分解问题(算法实现:过程,分析,小结)

说明&#xff1a;博主是大学生&#xff0c;有一门课是算法设计与分析&#xff0c;这是博主记录课程实验报告的内容&#xff0c;题目是老师给的&#xff0c;其他内容和代码均为原创&#xff0c;可以参考学习&#xff0c;转载和搬运需评论吱声并注明出处哦。 要求&#xff1a;2.…

MCP协议学习

MCP协议出现的背景 MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;由Anthropic公司于2024年11月推出&#xff0c;旨在解决大语言模型&#xff08;LLM&#xff09;与外部数据源、工具和服务之间的标准化交互问题。例如某金融科技公司需开发一款…

【笔记】Windows 部署 Suna 开源项目完整流程记录

#工作记录 因篇幅有限&#xff0c;所有涉及处理步骤的详细处理办法请参考文末资料。 Microsoft Windows [Version 10.0.27868.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗…

SQL Views(视图)

目录 Views Declaring Views Example: View Definition Example: Accessing a View Advantages of Views Triggers on Views Interpreting a View Insertion&#xff08;视图插入操作的解释&#xff09; The Trigger Views A view is a relation defined in terms of…

MySQL指令个人笔记

MySQL学习&#xff0c;SQL语言笔记 一、MySQL 1.1 启动、停止 启动 net start mysql83停止 net stop mysql831.2 连接、断开 连接 mysql -h localhost -P 3306 -u root -p断开 exit或者ctrlc 二、DDL 2.1 库管理 2.1.1 直接创建库 使用默认字符集和排序方式&#xf…