传递函数矩阵:从SISO到MIMO多变量控制的核心跃迁与工程实践

发布时间:2026/8/3 14:42:10

传递函数矩阵:从SISO到MIMO多变量控制的核心跃迁与工程实践 1. 项目概述从单输入单输出到多变量系统的认知跃迁搞控制的人绕不开“现代控制理论”这座大山。很多人学完经典控制感觉PID玩得挺溜一到现控就懵了状态空间、能控能观、李雅普诺夫一堆新概念扑面而来。其实现控的核心思想之一就是从更高维度、更本质的视角去描述和操控系统。而这个视角转换的起点往往就藏在“传递函数矩阵”这个概念里。你可能熟悉单输入单输出SISO系统的传递函数G(s)它简洁地描述了输入U(s)到输出Y(s)的关系Y(s) G(s)U(s)。但在现实世界中尤其是航空航天、机器人、化工过程等领域系统往往是多输入多输出MIMO的。多个阀门同时调节影响多个温度、压力和流量机器人的多个关节电机协同工作决定末端执行器的位置和姿态。这时候再用一个个孤立的传递函数去描述不仅繁琐更会丢失输入输出之间复杂的耦合关系。传递函数矩阵正是为了优雅地解决这个问题而生。它不是一个标量函数而是一个矩阵其每个元素G_ij(s)都代表第j个输入对第i个输出的动态影响。理解它就等于拿到了打开多变量控制系统分析与设计大门的钥匙。这篇笔记我们就来彻底拆解这个核心工具我会结合自己的工程实践告诉你它不只是书本上的数学更是解决实际耦合控制问题的利器。2. 传递函数矩阵的核心概念与数学描述2.1 从SISO到MIMO思维的扩展我们先回顾一下经典单变量系统。对于一个线性时不变LTI系统传递函数定义为在零初始条件下系统输出拉普拉斯变换与输入拉普拉斯变换之比。它的物理意义清晰比如一个惯性环节1/(Ts1)直接告诉我们系统的响应速度由时间常数T决定。现在假设我们有一个系统有两个控制输入u1, u2和两个被控输出y1, y2。在SISO思维下我们可能会试图建立四个传递函数G11(s)u1-y1G12(s)u1-y2G21(s)u2-y1G22(s)u2-y2。这看起来没问题但当我们想用数学描述整个系统时问题来了。输出y1同时受到u1和u2的影响即Y1(s) G11(s)U1(s) G12(s)U2(s)。同理Y2(s) G21(s)U1(s) G22(s)U2(s)。如何最紧凑地表达这两个方程矩阵运算完美契合。我们可以写成[ Y1(s) ] [ G11(s) G12(s) ] * [ U1(s) ] [ Y2(s) ] [ G21(s) G22(s) ] [ U2(s) ]或者更简洁地Y(s) G(s) * U(s)这里的G(s)那个2x2的矩阵就是传递函数矩阵。它一下子把四个标量传递函数及其之间的耦合关系封装在一个统一的数学对象里。G(s)中的非对角元素G12(s)和G21(s)就表征了耦合强度。如果它们为零说明两个通道独立可以解耦成两个单回路控制如果不为零设计控制器时就必须考虑这种相互影响否则一个回路的调整可能会严重干扰另一个回路导致系统震荡甚至失稳。2.2 从状态空间方程推导传递函数矩阵在现代控制理论中我们更常用状态空间模型来描述系统状态方程 dx/dt A*x B*u 输出方程 y C*x D*u其中x是状态向量n维u是输入向量p维y是输出向量q维。A, B, C, D是相应维度的常数矩阵。对上述方程进行拉普拉斯变换假设零初始状态得到sX(s) A*X(s) B*U(s) (sI - A)X(s) B*U(s) X(s) (sI - A)^(-1) * B * U(s) Y(s) C*X(s) D*U(s)将X(s)代入输出方程Y(s) [ C*(sI - A)^(-1)*B D ] * U(s)因此传递函数矩阵G(s)的表达式为G(s) C * (sI - A)^(-1) * B D这个公式是连接状态空间描述和频域描述的核心桥梁。(sI - A)^(-1)的计算涉及矩阵求逆其元素是s的有理分式函数。最终得到的G(s)是一个q x p的矩阵每个元素都是s的有理函数即分子分母均为s的多项式。注意这里隐含了一个重要条件即矩阵(sI - A)必须可逆这要求s不能是系统矩阵A的特征值即系统的极点。这从另一个角度说明了系统极点决定了传递函数矩阵的固有动态特性。2.3 传递函数矩阵的性质与初步分析维数G(s)是q x p矩阵行数等于输出数列数等于输入数。这在分析系统结构时非常直观。元素形式每个元素G_ij(s)都是s的有理分式函数即两个实系数多项式的比。分子多项式的根称为零点分母多项式的根称为极点。极点传递函数矩阵G(s)的所有元素共享同一个分母多项式即系统矩阵A的特征多项式det(sI - A)。因此整个系统的极点由矩阵A的特征值决定与输入输出点的选择无关前提是系统完全能控能观。这是系统固有的动态特性。零点MIMO系统的零点定义比SISO复杂有传输零点、不变零点等概念。粗略理解零点反映了输入输出之间的阻塞特性即在某些特定频率的输入下输出可能为零。分析零点对理解系统耦合、设计解耦控制器很重要。正则性与真性如果G(s)在每个元素中分子多项式的次数小于或等于分母多项式的次数则称G(s)是真的如果所有元素分子次数都严格小于分母次数则称G(s)是严格真的。物理可实现的系统通常是严格真的D矩阵常为零意味着高频增益衰减为零。3. 传递函数矩阵的求取与实例演练理论说了不少我们来点实际的。如何得到一个具体系统的传递函数矩阵通常有两种路径一是从机理模型微分方程组出发二是从实验数据频域响应辨识。这里我们重点讲第一种也是最考验基本功的。3.1 从机理模型推导双容水箱系统考虑一个经典的双容水箱耦合系统。水箱1的进水阀为u1水箱2的进水阀为u2。水箱1的水可以通过连接阀流入水箱2。我们关心两个水箱的水位h1和h2输出。根据流体力学和物料平衡可以建立非线性微分方程在平衡点附近线性化后得到状态空间模型。假设线性化后的状态方程为这里为了演示给出一个简化的数值例子设状态变量x1 Δh1,x2 Δh2输入u1 Δq1,u2 Δq2。 状态方程dx1/dt -2*x1 1*x2 1*u1 dx2/dt 1*x1 - 3*x2 0*u1 1*u2输出方程假设我们直接测量水位y1 1*x1 0*x2 y2 0*x1 1*x2写成矩阵形式A [ -2, 1; // 注意分号在矩阵中表示换行 1, -3 ] B [ 1, 0; 0, 1 ] C [ 1, 0; 0, 1 ] D [ 0, 0; 0, 0 ] // 通常D矩阵为零现在我们来计算传递函数矩阵G(s) C*(sI-A)^(-1)*B D。第一步求(sI - A)sI - A [ s2, -1; -1, s3 ]第二步求(sI - A)的逆矩阵。对于一个2x2矩阵[a, b; c, d]其逆为(1/(ad-bc)) * [d, -b; -c, a]。 行列式det(sI-A) (s2)(s3) - (-1)*(-1) s^2 5s 6 - 1 s^2 5s 5。 所以(sI-A)^(-1) 1/(s^25s5) * [ s3, 1; 1, s2 ]第三步计算C*(sI-A)^(-1)*B。因为C和B都是单位阵所以结果就是(sI-A)^(-1)本身。G(s) (sI-A)^(-1) 1/(s^25s5) * [ s3, 1; 1, s2 ]因此这个双容水箱系统的传递函数矩阵为G(s) [ (s3)/(s^25s5), 1/(s^25s5); 1/(s^25s5), (s2)/(s^25s5) ]解读这是一个2x2矩阵符合双输入双输出系统。所有四个传递函数元素共享相同的分母s^25s5这意味着系统具有两个共同的极点由det(sI-A)0解得这是系统的固有模态。非对角元素G12(s)和G21(s)都不为零且在此例中相等表明系统存在耦合调节进水阀u1会影响水箱2的水位h2(G21)调节进水阀u2也会影响水箱1的水位h1(G12)。对角元素G11和G22的分子不同说明两个主通道的动态特性略有差异。3.2 使用计算工具辅助求取对于维数更高的系统手工求逆计算量巨大且易错。在实际工程和研究中我们强烈依赖计算工具。以MATLAB/Simulink为例这是控制领域的事实标准。从状态空间模型到传递函数矩阵% 定义系统矩阵 A [-2, 1; 1, -3]; B [1, 0; 0, 1]; C [1, 0; 0, 1]; D zeros(2,2); % 2x2的零矩阵 % 创建状态空间模型对象 sys_ss ss(A, B, C, D); % 直接转换为传递函数矩阵模型 sys_tf tf(sys_ss); % 显示传递函数矩阵 disp(传递函数矩阵 G(s):); sys_tf运行后MATLAB会以分块形式显示G(s)的每个元素清晰直观。从传递函数矩阵到状态空间实现反过来如果已知传递函数矩阵想获得其一个状态空间实现注意实现不唯一有能控标准型、能观标准型、约当型等也可以轻松完成。% 假设已知一个2x2的传递函数矩阵 s tf(s); G11 (s3)/(s^25*s5); G12 1/(s^25*s5); G21 1/(s^25*s5); G22 (s2)/(s^25*s5); G [G11, G12; G21, G22]; % 组装传递函数矩阵 % 转换为状态空间模型最小实现 sys_ss_from_tf ss(G); [A, B, C, D] ssdata(sys_ss_from_tf); % 提取矩阵ssdata函数提取出的(A,B,C,D)通常是一个最小实现即系统是既能控又能观的且状态维数最小。这对于后续进行状态反馈控制器设计至关重要。实操心得在MATLAB中tf对象对于复杂的MIMO系统显示可能不够紧凑。使用zpk零极点增益模型格式有时更能揭示系统结构特别是当存在重极点或零点时。命令sys_zpk zpk(sys_ss)或sys_zpk zpk(G)可以进行转换。另外对于高阶系统直接转换得到的传递函数可能分子分母系数非常小或出现数值误差这时需要关注系统的condition number或考虑使用balreal平衡实现等命令先对状态空间模型进行数值预处理。4. 基于传递函数矩阵的系统分析与设计初步得到了传递函数矩阵我们能用它做什么这比SISO时代要丰富得多也复杂得多。4.1 频域分析奈奎斯特阵列与相对增益阵列对于SISO系统一个伯德图或奈奎斯特图就能判断稳定性、频宽、相角裕度。对于MIMO系统我们需要同时看多个通道的频率响应。一种直观的方法是绘制奈奎斯特阵列即把传递函数矩阵G(jω)的每个元素G_ij(jω)的奈奎斯特图按矩阵位置排列在一个图集中。通过观察这些曲线可以初步判断耦合的强弱和稳定性。但更定量、更著名的工具是相对增益阵列RGA, Relative Gain Array。RGA定义为Λ(ω) G(ω) ⊙ (G(ω)^(-1))^T其中⊙表示哈达玛积对应元素相乘^T表示转置。更常用的是在零频率稳态s0下的RGA即Λ(0) G(0) ⊙ (G(0)^(-1))^T。RGA的元素λ_ij有明确的物理意义它表示在其他回路都开环时u_j对y_i的增益与在其他回路都闭环且完美控制时u_j对y_i的增益之比。RGA的工程指导意义巨大如果λ_ij接近1说明u_j到y_i这个配对是合适的受其他回路影响小。如果λ_ij接近0说明u_j对y_i几乎没影响不适合配对。如果λ_ij远大于1例如5或为负值这是一个危险信号说明系统存在严重耦合采用u_j控制y_i的配对会使系统对模型误差非常敏感甚至可能导致闭环不稳定。这时需要考虑重新选择输入输出配对或者必须使用解耦控制。以前面的双容水箱为例计算其稳态RGAG(0) [3/5, 1/5; 1/5, 2/5] [0.6, 0.2; 0.2, 0.4] G(0)^(-1) inv([0.6,0.2;0.2,0.4]) [2.5, -1.25; -1.25, 3.75] // 计算过程略 (G(0)^(-1))^T [2.5, -1.25; -1.25, 3.75] 因为对称 Λ(0) G(0) ⊙ (G(0)^(-1))^T [0.6*2.5, 0.2*(-1.25); 0.2*(-1.25), 0.4*3.75] [1.5, -0.25; -0.25, 1.5]这个RGA矩阵对角元素为1.5非对角元素为-0.25。对角元素大于1且非对角元素为负表明u1-h1和u2-h2的配对存在一定耦合和负面交互。虽然不一定完全不可用但提示我们在设计单回路PID控制器时需要谨慎并可能需要进行动态解耦。在MATLAB中计算RGA极其简单Lambda rga(sys, omega)其中omega是频率点向量。查看零频率RGALambda0 dcgain(sys); RGA0 Lambda0 .* inv(Lambda0).;4.2 稳定性分析MIMO奈奎斯特稳定判据SISO的奈奎斯特稳定判据广为人知开环传递函数L(s)的奈奎斯特曲线逆时针包围(-1, j0)点的圈数等于开环右半平面极点数P则闭环稳定。对于MIMO系统开环传递函数矩阵是L(s) G(s)K(s)其中K(s)是控制器矩阵。稳定性判据需要用到特征轨迹的概念。定义det(I L(s))闭环系统的稳定性由det(I L(s))的奈奎斯特图包围原点的圈数决定。更实用的是计算L(s)的特征值λ_i(L(jω))随着ω从-∞到∞变化每一条特征轨迹λ_i(jω)的奈奎斯特图也应满足广义的包围条件。虽然理论复杂但现代控制工具箱如MATLAB的nyquist命令可以直接绘制MIMO系统的特征轨迹奈奎斯特图并给出稳定性分析。4.3 控制器结构选择分散控制、集中控制与解耦控制面对一个MIMO系统我们如何设计控制器K(s)分散控制Decentralized Control这是最简单直接的方法。忽略耦合为每个主要的输入输出对单独设计一个SISO控制器如PID即K(s)是一个对角矩阵。这种方法成本低、易于理解和维护。适用于耦合较弱RGA对角元素接近1非对角元素接近0的系统。我们的水箱例子中RGA对角元为1.5非对角元为-0.25耦合不算特别强也许可以尝试分散PID但需要仔细整定并做鲁棒性测试。集中控制Centralized Control将整个MIMO系统视为一个整体直接设计一个全矩阵的控制器K(s)。现代控制理论中的线性二次型调节器LQR、状态反馈、H∞控制等方法都属于此类。它能最优地处理耦合但设计复杂控制器阶次可能较高且对模型精度要求高。解耦控制Decoupling Control一种折中方案。先设计一个解耦器D(s)使得被补偿后的系统G_d(s) G(s)D(s)近似为一个对角阵即各通道独立。然后再为每个独立的通道设计SISO控制器。解耦器D(s)的常见设计有前馈解耦D(s) G(s)^(-1) * diag(G(s))即用逆矩阵抵消耦合但需要精确的模型且可能物理不可实现非因果或高阶。对角优势化通过设计D(s)使G(s)D(s)在奈奎斯特阵列上呈现对角优势从而可以应用分散控制且保证稳定性。选择哪种结构取决于系统耦合的严重程度、模型精度、性能要求以及工程实现的复杂度。传递函数矩阵G(s)及其衍生的分析工具如RGA是做出这个关键决策的首要依据。5. 工程实践中的常见问题与进阶思考5.1 模型降阶与控制器简化从高阶机理模型或系统辨识得到的传递函数矩阵其元素可能非常复杂阶次很高。直接用于控制器设计特别是集中控制会导致控制器阶次同样很高难以实现和调试。因此模型降阶是一个重要步骤。目标是在保证主要动态特性主导极点、稳态增益、关键频率响应匹配的前提下得到一个低阶的近似模型G_r(s)。常用方法有平衡截断法、Hankel范数近似、Pade近似等。MATLAB中的balred、reduce等命令提供了强大支持。降阶后再基于G_r(s)设计控制器会容易得多。5.2 非方系统与输入输出配对传递函数矩阵G(s)不一定是方阵即输入数p不一定等于输出数q。如果p q输入多系统是冗余驱动的这提供了额外的自由度可以用来优化性能如冗余执行器分配。如果p q输出多系统是欠驱动的无法独立控制所有输出需要权衡或选择最重要的输出进行控制。对于非方系统输入输出配对问题更复杂。RGA的概念可以推广到非方系统。一种方法是选取一个最大的非奇异方阵子集进行分析。工程上常常需要根据物理意义和控制目标手动选择最重要的min(p, q)个输入输出对构成一个方系统来进行初步设计和配对选择。5.3 鲁棒性考量奇异值与条件数SISO系统用增益裕度和相角裕度衡量鲁棒性。MIMO系统则用奇异值。对于传递函数矩阵G(jω)其在某一频率ω下的奇异值σ_max(G(jω))和σ_min(G(jω))分别代表了该频率下系统增益的最大和最小可能值针对不同方向的输入。条件数κ(ω) σ_max(ω) / σ_min(ω)衡量了系统增益的方向依赖性。条件数越大说明系统对不同方向的输入响应差异越大即越“病态”。病态的系统对模型误差和扰动非常敏感基于其设计的控制器鲁棒性往往很差。在频域观察G(s)的奇异值Bode图是评估MIMO系统动态特性和鲁棒性的重要手段。% 绘制系统奇异值Bode图 sigma(sys_ss); grid on; title(系统奇异值Bode图);从图中可以读出系统的频带宽度σ_max下降到 -3dB的频率、高频衰减特性以及各频段的条件数最大最小奇异值之比。5.4 从仿真到实现离散化与计算延时最终控制器需要在数字设备PLC、DSP、微控制器上运行。因此连续时间的传递函数矩阵模型G(s)和对应的控制器K(s)必须进行离散化。常用方法有零阶保持ZOH、一阶保持、双线性变换Tustin等。离散化后的模型是z域传递函数矩阵G(z)。采样频率的选择至关重要一般需要高于系统闭环带宽的10倍以上。此外数字控制引入的计算延时、采样延时也必须考虑。这些延时会恶化相位裕度可能需要在控制器设计阶段就予以考虑例如在连续设计时预留更多相位裕度或在离散设计时将延时环节e^(-sT)近似为z^(-1)纳入模型。理解传递函数矩阵是现代控制理论应用于实际工程不可或缺的第一步。它不仅是分析的起点更是连接物理对象、数学模型和控制器的桥梁。当你面对一个多变量系统感到无从下手时不妨从推导或辨识其传递函数矩阵开始计算它的RGA绘制它的奇异值图这些工具会为你指明最初的设计方向。

相关新闻