ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

旺纳姆与龙伯格能控规范形II构造详解及三阶双输入算例

旺纳姆与龙伯格能控规范形II构造详解及三阶双输入算例 做了这么多年控制系统设计我最怕在教材里看到“旺纳姆能控规范形”“龙伯格能控规范形”这种词。不是因为它们真有那么难而是教材通常只给定义不给过程尤其带上“II型”这种编号之后前后翻几章也未必找得到一个完整算例。这篇文章就把我当时手推的整个过程放出来旺纳姆能控规范形II、龙伯格能控规范形II的具体构造步骤再配一个三阶双输入系统的完整手算例子。适合正在啃线性系统理论、准备复试或者想把MIMO状态反馈极点配置真正搞懂的人。先说清楚一件事这两类规范形解决的是同一个问题——把能控的多输入多输出系统变换成一组“块状”标准形式让状态反馈设计、能控性结构分析变得直观。但MIMO系统和SISO系统有一个本质区别SISO的能控标准型是唯一的而MIMO因为输入通道多能控性矩阵列向量的选取顺序会直接影响规范形的形状所以出现了多种构造方案。旺纳姆形和龙伯格形就是其中最经典的两种II型则可以理解为这两类规范形在“行向量排列方向”上的一种特定约定。1. 为什么MIMO系统的能控规范形不能照搬SISO标准型1.1 SISO能控标准型到底做了什么对单输入系统 ẋ Ax bu只要系统能控就存在一个线性变换 x Tz把系统变成下面这种形状ż [0 1 0 ... 0; 0 0 1 ... 0; ... 0 0 0 ... 1; -a₀ -a₁ -a₂ ... -aₙ₋₁] z [0; 0; ... 0; 1] u这个形式的好处一眼就能看出来状态变量的关系被拉成了一根链最后一个状态直接接受输入反馈增益 K 只要按特征多项式系数逐项配平就行。设计极点配置时完全不用解复杂的矩阵方程。SISO系统之所以能这么做本质上是因为能控性矩阵 [b, Ab, ..., Aⁿ⁻¹b] 本身就是一组按“幂次递推”排列的基变换矩阵直接取这组基即可。但MIMO系统的能控性矩阵有m列每个输入通道会生成一列自己的 Krylov 序列没法像SISO那样简单地排成一串。1.2 MIMO系统多出来的麻烦能控性指数对MIMO系统 ẋ Ax Bu能控性矩阵是Q [B, AB, A²B, ..., Aⁿ⁻¹B]这里Q是 n×nm 的大矩阵能控等价于rank(Q)n。但要从这里面选出n个线性无关列选择方式并不是唯一的。不同的选择方式会产生不同形状的规范形。能控性指数就是描述这种选择方式的关键量。把Q按“列优先”的顺序扫描也就是b₁, b₂, ..., b_m, Ab₁, Ab₂, ..., Ab_m, A²b₁, ...逐列检查当前列是否与已选列线性无关直到选出n个无关列为止。对第i个输入通道被选中的向量个数记为 μᵢ这些 μᵢ 合起来就叫做系统的能控性指数。注意能控性指数必须满足μ₁ μ₂ ... μ_m n且每个 μᵢ 都不超过系统的能控性指数上界。这个看似简单的筛选过程其实是后面所有构造步骤的地基。1.3 旺纳姆形和龙伯格形各自的思路旺纳姆能控规范形的核心思路是把变换后的系统矩阵 Ā 尽量做成“分块对角”或“分块三角”结构每一个对角块对应一个输入通道的能控子空间块与块之间的耦合尽量少。这样的好处是能控性结构一目了然。龙伯格能控规范形的核心思路则是把每个对角块做成友矩阵形式副对角线上是1最后一行放特征多项式系数。这样设计状态反馈时可以直接参照SISO的办法按块配平极点。可以简单理解为旺纳姆形强调“解耦结构”龙伯格形强调“方便配极点”。两者构造步骤高度相似差别主要体现在变换矩阵行向量的排列顺序上这也是“I型/II型”说法的来源。2. 动手之前先算清楚两个东西能控性指数和筛选出来的基向量2.1 逐列扫描的完整过程我直接用一个具体的三阶双输入系统走一遍筛选流程。设A [1 2 0; 0 -1 1; 1 0 2]B [1 0; 0 1; 1 0]记 B 的两列为 b₁ [1;0;1]b₂ [0;1;0]。先算需要的前几列Ab₁ [1;1;3] Ab₂ [2;-1;0] A²b₁ [3;2;7] A²b₂ [0;1;2]能控性矩阵 Q [b₁, b₂, Ab₁, Ab₂, A²b₁, A²b₂]。按逐列扫描的规则扫描序号当前列是否保留说明1b₁ [1;0;1]保留首个向量直接作为基向量2b₂ [0;1;0]保留与b₁线性无关3Ab₁ [1;1;3]保留det([b₁,b₂,Ab₁]) 2 ≠ 04Ab₂停止已经选满3个向量不必再判断所以选出的基向量顺序是 b₁, b₂, Ab₁能控性指数为输入通道1选中 b₁ 和 Ab₁共2个即 μ₁2输入通道2选中 b₂共1个即 μ₂1。这里有一个新手很容易踩的坑能控性指数依赖“扫描顺序”和“列优先排列方式”。如果按行优先排列能控性矩阵算出来的 μᵢ 很可能不一样。教材里说的能控性指数默认都是按这种“先遍历所有输入列再遍历乘以A的列”的规则定义的。2.2 构造S矩阵把基向量按输入通道分组筛选出基向量之后要做一步非常关键的重排把属于同一个输入通道的向量放在相邻位置并按A的幂次升序排列。对当前例子S矩阵应该构造为S [b₁, Ab₁, b₂]而不是 [b₁, b₂, Ab₁]。原因很简单——变换后的系统矩阵Ā要形成分块结构块的内部必须是同一个Krylov子空间里的向量。把 b₁ 和 Ab₁ 放在一起才能保证第一个对角块对应输入通道1的能控子空间。代入数值S [1 1 0; 0 1 1; 1 3 0]S的每一列分别为 b₁, Ab₁, b₂。这组基是满秩的因为 det(S) -2 ≠ 0。2.3 求S的逆取“每块最后一行”作对偶向量接下来计算 S⁻¹。这里建议用增广矩阵法手算不容易出错S⁻¹ [1.5 0 -0.5; -0.5 0 0.5; 0.5 1 -0.5]S⁻¹ 的总行数刚好等于每个基向量的对偶行向量。对第 i 个输入通道取出S⁻¹中与该通道最后一个基向量对应的行。在当前S的排列中输入通道1的基向量是 b₁, Ab₁最后一个向量是 Ab₁对应S⁻¹的第2行记为 e₁ᵀ [-0.5, 0, 0.5]输入通道2的基向量是 b₂最后一个向量就是 b₂对应S⁻¹的第3行记为 e₂ᵀ [0.5, 1, -0.5]。这两个行向量是整个构造过程的核心。后面无论旺纳姆形还是龙伯格形都是从 e₁ᵀ 和 e₂ᵀ 出发去搭变换矩阵P。3. 旺纳姆能控规范形II的构造块末行取出按降幂摆成P3.1 旺纳姆形变换矩阵的排布规则旺纳姆能控规范形II的变换矩阵 P是由对偶向量 eᵢᵀ 以及它与 A 的乘积行向量组成的。规则是对每个输入通道 i先写出 eᵢᵀ A^{μᵢ-1}再写 eᵢᵀ A^{μᵢ-2}直到 eᵢᵀ也就是按“降幂”排列然后按通道顺序从上到下堆叠。对当前例子μ₁2所以通道1贡献两行e₁ᵀ A 和 e₁ᵀμ₂1通道2只贡献一行e₂ᵀ。先算 e₁ᵀ Ae₁ᵀ A [-0.5, 0, 0.5] × [1 2 0; 0 -1 1; 1 0 2] [0, -1, 1]于是旺纳姆变换矩阵为P_W [0 -1 1; -0.5 0 0.5; 0.5 1 -0.5]注意第一行是 e₁ᵀ A第二行才是 e₁ᵀ这就是“降幂”排列。3.2 变换后的A矩阵和B矩阵变换后系统为 ẋ Ax Bu令 z P_W x则新的状态空间描述为Ā P_W A P_W⁻¹ B̄ P_W B我直接给出手算结果中间矩阵乘法建议读者自己用增广法验证一遍这里不再展开每一步P_W⁻¹ [1 -1 1; 0 1 1; 1 1 1]Ā_W [2 1 3; 1 0 0; 0 0 0]B̄_W [1 -1; 0 0; 0 1]从结构上看Ā_W 的第一块——也就是前2行前2列——是 [[2,1],[1,0]]这是一块友矩阵第3行第3列是0对应1维的第二块。右上角的 [3;0] 是两块之间的耦合项。B̄ 中第一个输入的方向主要落在第一块第二个输入落在第三行第二块的最后一行。3.3 为什么这样排布能“解耦”旺纳姆形的设计目标是让第 i 个输入主要控制第 i 个能控子空间。由于每个对角块本身是能控子空间对应的友矩阵块块间耦合被压缩到了很窄的区域里比如右上角、左下角而不会像一般矩阵那样到处都是非零元素。实际在做能控性结构分解时这种“块三角化”的形式特别有用。比如需要判断系统能控性结构、计算能控子空间的维数旺纳姆形能直接给出答案。代价是非对角块的耦合处理起来仍然需要额外步骤。4. 龙伯格能控规范形II的构造同样一对偶向量按升幂排成P4.1 龙伯格形变换矩阵的排布规则龙伯格能控规范形II与旺纳姆形在构造步骤上几乎一样唯一的区别在于每个通道内的行向量按“升幂”排列也就是先写 eᵢᵀ再写 eᵢᵀ A一直到 eᵢᵀ A^{μᵢ-1}。对当前例子通道1贡献两行e₁ᵀ 和 e₁ᵀ A通道2贡献一行e₂ᵀ。代入数值P_L [-0.5 0 0.5; 0 -1 1; 0.5 1 -0.5]注意第二行是 e₁ᵀ A第一行是 e₁ᵀ正好和旺纳姆形相反。4.2 变换后的A矩阵和B矩阵求逆得P_L⁻¹ [-1 1 1; 1 0 1; 1 1 1]变换后Ā_L [0 1 0; 1 1 3; 0 0 0]B̄_L [0 0; 1 -1; 0 1]对比一下就能看到差别Ā_L 的前2行前2列是 [[0,1],[1,1]]这块已经是非常标准的友矩阵形式——右上角是1下一行放特征多项式系数。块间耦合 [0;3] 依然存在但集中到了第一块的最后一列处理反馈增益时可以直接利用友矩阵的性质。4.3 旺纳姆形和龙伯格形的直接对比对比项旺纳姆能控规范形II龙伯格能控规范形II行向量排列降幂A^{μ-1} 在前升幂eᵢᵀ 在前对角块形态友矩阵或块三角友矩阵结构更规整B̄中1的位置块内靠前/靠后均有尽量落到每块最后一行主要用途能控性结构分析、解耦状态反馈极点配置这里想提醒一下有些教材对“II型”的排列方向约定可能跟你手上的教材相反。这不重要重要的是你清楚自己用的约定并在计算反馈增益时保持一致。规范形的核心价值在于把问题“变简单”而不是纠结哪种编号是标准答案。5. 完整算例三阶双输入系统的两种规范形手算全过程5.1 系统与能控性筛选重新整理一遍完整算例数据。系统为A [1 2 0; 0 -1 1; 1 0 2]B [1 0; 0 1; 1 0]已知 b₁[1;0;1]b₂[0;1;0]Ab₁[1;1;3]。检查前三列是否构成基det([b₁, b₂, Ab₁]) det( [1 0 1; 0 1 1; 1 0 3] ) 2 ≠ 0所以基向量为 b₁, b₂, Ab₁能控性指数 μ₁2μ₂1。5.2 构造S和S⁻¹S [b₁, Ab₁, b₂] [1 1 0; 0 1 1; 1 3 0]S⁻¹ [1.5 0 -0.5; -0.5 0 0.5; 0.5 1 -0.5]取对偶向量e₁ᵀ [-0.5, 0, 0.5] e₂ᵀ [0.5, 1, -0.5]计算中间辅助向量e₁ᵀ A [0, -1, 1] e₂ᵀ A [0, 0, 0]e₂ᵀ A 0 不是巧合。这是因为通道2的能控性指数只有1它的对偶向量天然会把 A 方向“杀”掉这也是能控性指数带来的必然结果。5.3 旺纳姆能控规范形IIP_W [0 -1 1; -0.5 0 0.5; 0.5 1 -0.5]P_W⁻¹ [1 -1 1; 0 1 1; 1 1 1]Ā_W P_W A P_W⁻¹ [2 1 3; 1 0 0; 0 0 0]B̄_W P_W B [1 -1; 0 0; 0 1]验证能控性rank([B̄_W, Ā_W B̄_W, Ā_W² B̄_W]) 3说明变换后系统依然能控。规范形变换不会改变能控性这是最基本的检验标准。5.4 龙伯格能控规范形IIP_L [-0.5 0 0.5; 0 -1 1; 0.5 1 -0.5]P_L⁻¹ [-1 1 1; 1 0 1; 1 1 1]Ā_L P_L A P_L⁻¹ [0 1 0; 1 1 3; 0 0 0]B̄_L P_L B [0 0; 1 -1; 0 1]对比两个结果能明显看到同一套构造流程、只是行排列方向不同得到的两类规范形在对角块形态上有差异。旺纳姆形的对角块是 [[2,1],[1,0]]龙伯格形是 [[0,1],[1,1]]后者更接近“标准友矩阵”的观感这也是为什么很多人做极点配置时更偏爱龙伯格形。5.5 手算过程中的常见错误手算这种题目最常见的错误发生在三步一是S矩阵的顺序排错把不同通道的向量混排二是S⁻¹求错尤其是算增广矩阵时某一行的加减乘除搞混三是取对偶向量时取了错误的行。我的经验是每做一步都拿“对偶向量与对应基向量正交”这个性质检验一下。比如 S⁻¹ 的行2与S的列1点乘应为0与列2点乘应为1与列3点乘应为0只要有一项对不上立刻回头查前面的矩阵乘法。6. 拿到规范形之后怎么用状态反馈增益求法与实操注意事项6.1 在龙伯格形下做极点配置规范形最直接的应用就是状态反馈极点配置。假设期望极点对应特征多项式λ³ α₂λ² α₁λ α₀ 0对龙伯格形 Ā_L、B̄_L设反馈 u -K̄z则闭环系统矩阵为 Ā_L - B̄_L K̄。由于 Ā_L 是分块友矩阵、B̄_L 每块只有最后一行非零K̄ 的每一行都可以按“配平特征多项式系数”的思路直接写出来。具体做法是先按期望极点算出需要补进去的系数再用 K̄ K P_L 把反馈增益变换回原坐标。这里特别提醒规范形坐标下的 K̄ 和原坐标下的 K 不能混用否则反馈规律完全失效。6.2 两种规范形的选型建议做能控性分解、验证系统结构时优先用旺纳姆形因为它的块间耦合更小结构分析直接。做完整的极点配置设计时建议用龙伯格形因为友矩阵块的配平步骤更机械、更容易编程实现。如果系统维数很高手算 S⁻¹ 变得非常痛苦。这时可以借助符号计算工具验算中间结果但概念上还是要把本文这套流程理解透。毕竟工具只能帮你算矩阵不能替你做能控性指数筛选和结构判断。6.3 MATLAB实操中的两个坑第一个坑是 ctrb 函数生成的能控性矩阵列顺序未必和你自己按教科书写的顺序一致。用 rref 筛选基向量时要注意列对应关系否则算出来的能控性指数全是错的。第二个坑是矩阵数值病态。能控性矩阵在高维系统里往往条件数很差直接用 inv 求逆可能产生很大误差建议用正交化方法或者先做平衡化处理如 balreal再继续。我个人在实际项目中很少手动去构造这两类规范形更多是用它们帮助理解系统的能控性结构。但面试、考试和论文推导时这套步骤又是绕不开的基本功。把旺纳姆形和龙伯格形当成同一种构造思路的两种排列风格来学比死记硬背公式要轻松得多。
返回列表