鲁棒控制理论学习:静态状态反馈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求解控制器参数-CSDN博客文章浏览阅读5.5k次,点赞6次,收藏51次。系统的H∞范数对应于bode图中幅值曲线的峰值,而系统的H2范数则对应于bode图中幅值曲线下方的面积。H∞范数不超过一个上界,H2范数尽可能小,以保证系统对于不确定性具有鲁棒稳定性,并表现出更好的性能。在状态反馈情况下,闭环系统的H∞性能并不能通过增加控制器的阶数来加以改进,因此,系统的H∞状态反馈控制器,总是能够选择一个静态控制律。Matlab中计算Hinf最优控制器命令为:hinfsyn 或者 hinflmi。连续系统控制器求解举例:% hinflmiclear;clc;A = [0];_lmi求解控制器参数https://blog.csdn.net/qq_34551090/article/details/112754683
### 鲁棒控制算法的实现方法 鲁棒控制的核心目标是在存在不确定性和扰动的情况下,确保控制系统具有良好的稳定性和性能表现。以下是几种常见的鲁棒控制算法及其具体实现方法: #### 1. **H无穷 (H∞) 控制** H无穷控制是一种经典的鲁棒控制方法,旨在最小化系统对外部干扰的最大增益[^1]。其实现通常涉及以下几个方面: - 构建广义被控对象 \( G(s) \),该对象包含了系统的动态特性以及不确定性。 - 定义加权函数来反映不同频段内的性能需求和鲁棒性要求。 - 将问题转化为线性矩阵不等式 (LMI) 的形式并利用数值优化工具求解。 在 MATLAB 中,可以使用 `hinfsyn` 函数完成 H∞ 控制器的设计。例如: ```matlab % 建立广义被控对象 G = rss(3,2,2); % 创建随机状态空间模型作为示例 W1 = tf([1],[0.1,1]); % 输出权重 W2 = tf([1],[0.05,1]); % 输入权重 Gu = augw(G,W1,W2); % 设计 H∞ 控制器 [K,CL,GAM] = hinfsyn(Gu); ``` #### 2. **混合灵敏度 (Mixed Sensitivity) 方法** 混合灵敏度方法结合了经典频率响应分析与现代优化技术,用于平衡性能指标和鲁棒稳定性。其核心思想是对闭环传递函数的不同部分施加不同的约束条件。 实现过程如下: - 定义三个主要的传递函数:\( S(s), T(s), KS(s) \),分别表示敏感度、互补敏感度和输入到误差的传递函数。 - 使用加权因子调整各部分的重要性。 - 利用凸优化理论解决相应的 LMI 或 Riccati 方程。 MATLAB 提供了支持此方法的相关工具箱命令,比如 `mixsyn` 和 `lqry` 等。 #### 3. **基于线性矩阵不等式的鲁棒控制设计** LMI 是一种强大的数学框架,适用于各种复杂的多变量控制问题[^2]。通过将特定类型的鲁棒控制问题转换成标准 LMIs 形式,可借助高效计算手段找到解析解或者近似最优解。这种方法特别适合处理含有结构化或非结构化的参数变化情况下的系统。 下面是一个简单的例子展示如何应用 YALMIP 工具包配合 SeDuMi 求解器来进行基本操作: ```matlab sdpvar P Q R; F = [A'*P + P*A + C'*Q*C <= -eye(n), ... B'*R + P*B == eye(m)]; optimize(F,-trace(P)); K = value(R)/value(P); ``` 需要注意的是,在实际工程实践中,当遇到无法收敛的情况时,应仔细检查所建立的数学模型是否合理合规[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值