鲁棒控制理论学习:静态状态反馈H∞控制器

鲁棒性,即系统的健壮性,是指在异常和危险情况下系统能够维持其功能和性能的能力。在控制系统中,鲁棒性表现为系统在参数摄动下维持某些性能的特性。例如,当控制系统面临输入错误、磁盘故障、网络过载或有意攻击等挑战时,其能否保持稳定并继续有效运行,就体现了其鲁棒性。

状态反馈和前馈是提升系统鲁棒性的两种重要手段。状态反馈是将系统的状态信息作为反馈信号,通过反馈回路来调整系统的控制输入,以达到期望的控制目标。而前馈则是将干扰或预测的未来状态信息提前加入到控制输入中,以抵消或减小干扰对系统输出的影响。

全 信 息或 状 态 反 馈)H∞控制问题

考虑一个动力 学系统如下

若存在状态反馈 Fx 使得系统稳定 即使得 +BF 为稳定矩阵 则称动态系统 或矩阵对 是可镇定的
如下方程描述的 MIMO 动态系统
闭环系统的方程为
% 定义系统参数  
J = 1; % 假设的转动惯量,可以根据实际情况修改这个值  
  
% 定义状态空间模型的矩阵  
A = [0 1; 0 0];  
B = [0 0; 1/J 0];  
B_disturbance = [0 0; 0 -1/J]; % 外部干扰的输入矩阵  
C = [1 0; 0 1]; % 输出矩阵,这里假设同时观测位置和速度  
D = [0 0; 0 0]; % 直接传递矩阵,通常为零,因为没有直接传递项  
  
% 创建状态空间模型  
sys = ss(A, [B B_disturbance], C, D);  
  
% 分割B矩阵为控制输入矩阵和扰动输入矩阵  
B_u = B(:,1); % 控制输入矩阵  
B_d = B(:,2); % 扰动输入矩阵  
  
% 定义状态反馈矩阵K  
% 这通常基于某些优化准则,例如极点配置或LQR设计  
% 在这里,我们简单地选择一个反馈矩阵作为示例  
K = [k1 k2]; % k1和k2是反馈系数,需要根据设计要求来选择它们  
  
% 计算闭环系统的状态矩阵  
A_closed = A - B_u*K;  
  
% 创建闭环系统的状态空间模型(不考虑扰动)  
sys_closed = ss(A_closed, B_u, C, D);  
  
% 分析闭环系统  
% 例如,绘制极点图  
pole(sys_closed);  
grid on;  
title('Pole-Zero Map of the Closed-Loop System');  
  
% 或者绘制Bode图  
bode(sys_closed);  
grid on;  
title('Bode Plot of the Closed-Loop System');  

对比下输出反馈:

系统的H∞范数对应于bode图中幅值曲线的峰值,而系统的H2范数则对应于bode图中幅值曲线下方的面积。
H∞范数不超过一个上界,H2范数尽可能小,以保证系统对于不确定性具有鲁棒稳定性,并表现出更好的性能。
在状态反馈情况下,闭环系统的H∞性能并不能通过增加控制器的阶数来加以改进,因此,系统的H∞状态反馈控制器,总是能够选择一个静态控制律。

将其运用H∞的计算思路,通过矩阵A,B1,B2,C1等计算得到状态反馈矩阵K以此进行状态变量的控制作用!
鲁棒控制(Ⅰ)—LMI处理方法_lmi求解控制器参数-优快云博客文章浏览阅读5.5k次,点赞6次,收藏51次。系统的H∞范数对应于bode图中幅值曲线的峰值,而系统的H2范数则对应于bode图中幅值曲线下方的面积。H∞范数不超过一个上界,H2范数尽可能小,以保证系统对于不确定性具有鲁棒稳定性,并表现出更好的性能。在状态反馈情况下,闭环系统的H∞性能并不能通过增加控制器的阶数来加以改进,因此,系统的H∞状态反馈控制器,总是能够选择一个静态控制律。Matlab中计算Hinf最优控制器命令为:hinfsyn 或者 hinflmi。连续系统控制器求解举例:% hinflmiclear;clc;A = [0];_lmi求解控制器参数https://blog.youkuaiyun.com/qq_34551090/article/details/112754683
### H∞鲁棒控制的概念与实现 #### 什么是H∞鲁棒控制? H∞鲁棒控制是一种现代控制理论方法,旨在设计控制器以最小化系统对外部扰动和模型不确定性的敏感度。其核心目标是在最坏情况下保持系统的稳定性并优化性能指标[^1]。 #### 数学基础 H∞控制基于线性矩阵不等式(LMI)和状态空间表示。对于给定的动态系统 \( G(s) \),假设存在不确定性或外部干扰输入 \( w(t) \),以及期望输出 \( z(t) \),则可以通过求解特定的 Riccati 方程来获得最优控制器增益矩阵 \( K \)[^3]。 #### MATLAB 实现 MATLAB 提供了专门用于 H∞ 控制设计的工具箱 Robust Control Toolbox 和 Mu Synthesis 方法。以下是使用 `hinfsyn` 函数的一个简单示例: ```matlab % 定义被控对象的状态空间模型 A = [-1, 0; 0, -2]; B1 = [1; 0]; % 扰动输入通道 B2 = [0; 1]; % 控制输入通道 C1 = [1, 0]; % 性能输出通道 C2 = [0, 1]; % 测量输出通道 D11 = 0; D12 = 0; D21 = 0; D22 = 0; G = ss(A, [B1 B2], [C1; C2], [D11 D12; D21 D22]); % 使用 hinfsyn 设计 H-infinity 控制器 [normbound, K] = hinfsyn(G); disp('控制器传递函数:'); tf(K) ``` 此代码片段展示了如何利用 MATLAB 的 `hinfsyn` 函数计算满足指定 H∞范数约束条件下的最佳控制器 $K$[^3]。 #### Python 实现 在 Python 中可以借助 `control` 库完成类似的 H∞ 控制器设计任务。下面是一个简单的例子: ```python import numpy as np from control import ss, hinfsyn # 定义连续时间状态空间模型 A,B,C,D A = [[-1, 0], [0, -2]] B1 = [[1], [0]] # 扰动输入 B2 = [[0], [1]] # 控制输入 C1 = [[1, 0]] # 性能输出 C2 = [[0, 1]] # 测量输出 D11 = [[0]] D12 = [[0]] D21 = [[0]] D22 = [[0]] P = ss(A, np.hstack((B1, B2)), np.vstack((C1, C2)), np.block([[D11, D12], [D21, D22]])) # 调用 hinfsyn 进行 H-inf 合成 K, CL, gam = hinfsyn(P, 1, 1) print(f"Controller Transfer Function:\n{K}") ``` 这段脚本同样实现了针对一个二阶系统的 H∞ 控制器合成过程,并返回相应的闭环系统响应特性[^1]。 #### 结论 无论是采用 MATLAB 还是 Python 平台,都可以方便地构建复杂的 H∞ 鲁棒控制系统。这些技术广泛应用于航空航天、机器人等领域,在面对复杂环境变化时表现出优异的适应能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值