從SISO到MIMO:傳遞函數(shù)矩陣的核心原理、計(jì)算與MATLAB實(shí)踐
1. 從“單輸入單輸出”到“多輸入多輸出”為什么我們需要傳遞函數(shù)矩陣如果你是從經(jīng)典控制理論比如拉普拉斯變換、伯德圖、奈奎斯特判據(jù)一路學(xué)過(guò)來(lái)的那么“傳遞函數(shù)”這個(gè)概念對(duì)你來(lái)說(shuō)應(yīng)該像呼吸一樣自然。一個(gè)輸入一個(gè)輸出一個(gè)函數(shù)關(guān)系清晰明了。我們分析系統(tǒng)的穩(wěn)定性、動(dòng)態(tài)性能都圍繞著這個(gè)單一的G(s)展開(kāi)。但現(xiàn)實(shí)世界的系統(tǒng)尤其是現(xiàn)代工程系統(tǒng)很少有這么“單純”的。想想看一臺(tái)無(wú)人機(jī)你需要同時(shí)控制它的俯仰、橫滾、偏航和高度。你的操縱指令四個(gè)電機(jī)的轉(zhuǎn)速是多個(gè)輸入它的姿態(tài)和位置是多個(gè)輸出。一個(gè)化工反應(yīng)釜你需要控制溫度、壓力、pH值和進(jìn)料流量。加熱功率、冷卻水閥、酸堿泵和進(jìn)料泵是你的輸入傳感器讀數(shù)是你的輸出。一臺(tái)機(jī)械臂每個(gè)關(guān)節(jié)的電機(jī)扭矩是輸入末端執(zhí)行器的位置和姿態(tài)是輸出。這些系統(tǒng)都有一個(gè)共同點(diǎn)多輸入多輸出英文簡(jiǎn)稱MIMO。在經(jīng)典控制里我們可能會(huì)嘗試為每一個(gè)輸出單獨(dú)設(shè)計(jì)一個(gè)控制器去調(diào)節(jié)某一個(gè)輸入這叫做“單回路控制”。但問(wèn)題很快就來(lái)了——這些回路之間是耦合的。你調(diào)節(jié)無(wú)人機(jī)第一個(gè)電機(jī)想讓它抬頭結(jié)果它可能不僅抬頭還開(kāi)始往左偏航。你加大反應(yīng)釜的加熱功率想升溫壓力可能也跟著飆升。這種耦合意味著你不能把系統(tǒng)簡(jiǎn)單地拆成幾個(gè)獨(dú)立的單變量系統(tǒng)來(lái)處理。它們是一個(gè)整體牽一發(fā)而動(dòng)全身。這時(shí)沿用單個(gè)傳遞函數(shù)的思路就捉襟見(jiàn)肘了。我們需要一個(gè)數(shù)學(xué)工具能夠同時(shí)描述所有輸入對(duì)所有輸出的影響關(guān)系。這個(gè)工具就是傳遞函數(shù)矩陣。你可以把它想象成一張關(guān)系網(wǎng)或者一個(gè)表格。假設(shè)系統(tǒng)有p個(gè)輸入q個(gè)輸出那么這個(gè)傳遞函數(shù)矩陣G(s)就是一個(gè)q x p的矩陣。矩陣中的每一個(gè)元素G_ij(s)都是一個(gè)傳遞函數(shù)它單獨(dú)地描述了第j個(gè)輸入對(duì)第i個(gè)輸出的影響而此時(shí)其他所有輸入都為零這是線性系統(tǒng)疊加原理的前提。所以當(dāng)我們從“現(xiàn)控理論”的視角重新審視系統(tǒng)時(shí)傳遞函數(shù)矩陣就是我們連接系統(tǒng)外部描述輸入輸出關(guān)系和內(nèi)部狀態(tài)描述狀態(tài)空間方程的一座關(guān)鍵橋梁也是處理MIMO系統(tǒng)分析與設(shè)計(jì)問(wèn)題的起點(diǎn)。它保留了傳遞函數(shù)直觀的頻率域特性又將系統(tǒng)的多變量特性用矩陣這一強(qiáng)大的數(shù)學(xué)語(yǔ)言清晰地表達(dá)了出來(lái)。2. 傳遞函數(shù)矩陣的核心定義與數(shù)學(xué)表達(dá)理解了為什么需要它我們來(lái)看看它具體是什么。我們從最通用的線性時(shí)不變系統(tǒng)的狀態(tài)空間描述出發(fā)這是現(xiàn)代控制理論的基礎(chǔ)模型狀態(tài)方程 ?(t) A x(t) B u(t) 輸出方程 y(t) C x(t) D u(t)其中x(t)是n維狀態(tài)向量。u(t)是p維輸入向量。y(t)是q維輸出向量。A, B, C, D是維數(shù)匹配的常數(shù)矩陣。我們對(duì)上述方程兩邊進(jìn)行拉普拉斯變換并假設(shè)初始狀態(tài)x(0) 0這是為了聚焦于輸入輸出的傳遞特性就像經(jīng)典控制里一樣。得到sX(s) A X(s) B U(s) Y(s) C X(s) D U(s)由第一個(gè)式子解出X(s)(sI - A) X(s) B U(s) X(s) (sI - A)^{-1} B U(s)這里I是n x n的單位矩陣(sI - A)^{-1}就是預(yù)解矩陣它在系統(tǒng)分析中至關(guān)重要。將X(s)代入輸出方程Y(s) C (sI - A)^{-1} B U(s) D U(s) [C (sI - A)^{-1} B D] U(s)于是我們得到了輸入U(xiǎn)(s)和輸出Y(s)在復(fù)頻域的關(guān)系Y(s) G(s) U(s)其中傳遞函數(shù)矩陣G(s)被定義為G(s) C (sI - A)^{-1} B D這是一個(gè)q x p的矩陣。它的每一個(gè)元素G_ij(s)都是一個(gè)關(guān)于復(fù)變量s的有理分式函數(shù)分子分母都是s的多項(xiàng)式。G_ij(s)表示的是當(dāng)只有第j個(gè)輸入U(xiǎn)_j(s)作用時(shí)所產(chǎn)生第i個(gè)輸出Y_i(s)的傳遞函數(shù)。一個(gè)關(guān)鍵的理解點(diǎn)(sI - A)^{-1}包含了系統(tǒng)的所有動(dòng)態(tài)模態(tài)信息極點(diǎn)而矩陣C和B則決定了這些模態(tài)如何被輸入激發(fā)以及如何被輸出觀測(cè)。矩陣D代表了輸入到輸出的直接饋通在很多物理系統(tǒng)中如電路、機(jī)械D常常是零矩陣因?yàn)檩斎胪ǔ2粫?huì)瞬間無(wú)延遲地影響輸出。注意這里假設(shè)了(sI - A)是可逆的這要求s不是系統(tǒng)矩陣A的特征值。系統(tǒng)矩陣A的特征值正是傳遞函數(shù)矩陣G(s)的極點(diǎn)分母為零的點(diǎn)它們決定了系統(tǒng)的穩(wěn)定性。3. 如何計(jì)算與解讀傳遞函數(shù)矩陣一個(gè)詳細(xì)的計(jì)算實(shí)例定義看起來(lái)有點(diǎn)抽象我們通過(guò)一個(gè)具體的、簡(jiǎn)化的雙輸入雙輸出系統(tǒng)來(lái)親手算一遍感受一下這個(gè)過(guò)程??紤]一個(gè)耦合的彈簧-質(zhì)量塊系統(tǒng)或者一個(gè)簡(jiǎn)單的電路網(wǎng)絡(luò)我們可以抽象出如下?tīng)顟B(tài)空間模型為了計(jì)算方便數(shù)字是假設(shè)的設(shè)系統(tǒng)方程為A [ -2 1 0; 1 -3 1; 0 1 -1 ]; B [ 1 0; 0 1; 1 0 ]; C [ 1 0 0; 0 1 0 ]; D [ 0 0; 0 0 ];這里狀態(tài)x是3維輸入u是2維輸出y是2維。D矩陣為零表示沒(méi)有直接饋通。我們的目標(biāo)是求出G(s) C (sI - A)^{-1} B。第一步構(gòu)造 (sI - A)sI - A [ s2 -1 0; -1 s3 -1; 0 -1 s1 ];第二步求 (sI - A) 的逆矩陣求一個(gè)3x3矩陣的逆我們可以用伴隨矩陣法(sI - A)^{-1} adj(sI - A) / det(sI - A)。 先求行列式Δ(s) det(sI - A)Δ(s) (s2)*[(s3)(s1) - (-1)(-1)] - (-1)*[(-1)(s1) - (0)(-1)] 0*... (s2)[(s3)(s1) - 1] 1*[-(s1)] (s2)(s^2 4s 3 - 1) - (s1) (s2)(s^2 4s 2) - s - 1 s^3 4s^2 2s 2s^2 8s 4 - s - 1 s^3 6s^2 9s 3所以系統(tǒng)的特征多項(xiàng)式是s^3 6s^2 9s 3它的根就是系統(tǒng)的極點(diǎn)。再求伴隨矩陣adj(sI - A)。這需要計(jì)算所有代數(shù)余子式過(guò)程略這是基本功練習(xí)。假設(shè)我們算得adj(sI - A) [ (s3)(s1)-1 (s1) 1; (s1) (s2)(s1) (s2); 1 (s2) (s2)(s3)-1 ] [ s^24s2 s1 1; s1 s^23s2 s2; 1 s2 s^25s5 ]因此(sI - A)^{-1} (1 / Δ(s)) * [ s^24s2, s1, 1; s1, s^23s2, s2; 1, s2, s^25s5 ]第三步計(jì)算 C (sI - A)^{-1} B這是一個(gè)連續(xù)的矩陣乘法。C是 2x3逆矩陣是 3x3B是 3x2。所以結(jié)果G(s)是 2x2。 我們先計(jì)算中間結(jié)果T(s) (sI - A)^{-1} B。B矩陣有兩列我們分別計(jì)算。 令B1 [1; 0; 1](B的第一列)B2 [0; 1; 0](B的第二列)。計(jì)算T1(s) (sI - A)^{-1} * B1T1(s) (1/Δ(s)) * [ s^24s2, s1, 1; * [1; (1/Δ(s)) * [ (s^24s2)*1 (s1)*0 1*1; s1, s^23s2, s2; 0; (s1)*1 (s^23s2)*0 (s2)*1; 1, s2, s^25s5 ] 1] 1*1 (s2)*0 (s^25s5)*1 ] (1/Δ(s)) * [ s^24s2 1; s1 s2; 1 s^25s5 ] (1/Δ(s)) * [ s^24s3; 2s3; s^25s6 ]同理計(jì)算T2(s) (sI - A)^{-1} * B2T2(s) (1/Δ(s)) * [ s^24s2, s1, 1; * [0; (1/Δ(s)) * [ (s^24s2)*0 (s1)*1 1*0; s1, s^23s2, s2; 1; (s1)*0 (s^23s2)*1 (s2)*0; 1, s2, s^25s5 ] 0] 1*0 (s2)*1 (s^25s5)*0 ] (1/Δ(s)) * [ s1; s^23s2; s2 ]所以T(s) [T1(s), T2(s)] (1/Δ(s)) * [ s^24s3, s1; 2s3, s^23s2; s^25s6, s2 ]現(xiàn)在左乘C矩陣。C矩陣只取前兩行因?yàn)檩敵鰕只對(duì)應(yīng)前兩個(gè)狀態(tài)所以G(s) C * T(s)相當(dāng)于取T(s)的前兩行。G(s) (1/Δ(s)) * [ s^24s3, s1; 2s3, s^23s2 ]其中Δ(s) s^3 6s^2 9s 3。解讀G(s) 這個(gè) 2x2 的傳遞函數(shù)矩陣G(s)告訴我們G_11(s) (s^24s3) / (s^36s^29s3)輸入u1對(duì)輸出y1的傳遞函數(shù)。G_12(s) (s1) / (s^36s^29s3)輸入u2對(duì)輸出y1的傳遞函數(shù)。G_21(s) (2s3) / (s^36s^29s3)輸入u1對(duì)輸出y2的傳遞函數(shù)。G_22(s) (s^23s2) / (s^36s^29s3)輸入u2對(duì)輸出y2的傳遞函數(shù)。關(guān)鍵觀察共同分母所有四個(gè)傳遞函數(shù)都有相同的分母多項(xiàng)式Δ(s)。這個(gè)多項(xiàng)式正是矩陣A的特征多項(xiàng)式。這意味著整個(gè)MIMO系統(tǒng)的極點(diǎn)決定穩(wěn)定性和基本動(dòng)態(tài)是由矩陣A決定的是所有輸入輸出通道所共享的。這是MIMO系統(tǒng)與多個(gè)獨(dú)立SISO系統(tǒng)本質(zhì)不同的地方。耦合體現(xiàn)非對(duì)角線元素G_12(s)和G_21(s)不為零。這說(shuō)明輸入u1會(huì)影響輸出y2輸入u2也會(huì)影響輸出y1。系統(tǒng)是耦合的。相對(duì)階G_11和G_22的分子是二階分母是三階相對(duì)階為1。G_12和G_21的分子是一階相對(duì)階為2。不同通道的動(dòng)態(tài)特性可能不同。實(shí)操心得對(duì)于維數(shù)高于3的系統(tǒng)手工計(jì)算逆矩陣會(huì)非常繁瑣且容易出錯(cuò)。在實(shí)際工程或?qū)W習(xí)中我們強(qiáng)烈依賴數(shù)學(xué)工具。在MATLAB/Octave中計(jì)算傳遞函數(shù)矩陣極其簡(jiǎn)單。假設(shè)你已經(jīng)定義了A, B, C, D矩陣只需一行命令G ss(A, B, C, D); G_tf tf(G);。ss創(chuàng)建狀態(tài)空間模型tf將其轉(zhuǎn)換為傳遞函數(shù)矩陣形式。對(duì)于我們的例子在MATLAB中驗(yàn)證上述計(jì)算是很好的練習(xí)。手工推導(dǎo)的目的在于深刻理解其數(shù)學(xué)本質(zhì)和耦合關(guān)系的來(lái)源而不是用于解決大規(guī)模問(wèn)題。4. 傳遞函數(shù)矩陣的性質(zhì)與在系統(tǒng)分析中的核心作用得到了傳遞函數(shù)矩陣我們能用它做什么它不僅僅是狀態(tài)空間模型的一種等價(jià)表示更是我們分析MIMO系統(tǒng)特性的強(qiáng)大工具。4.1 極點(diǎn)與零點(diǎn)MIMO系統(tǒng)的擴(kuò)展定義對(duì)于SISO系統(tǒng)極點(diǎn)就是傳遞函數(shù)分母多項(xiàng)式的根零點(diǎn)就是分子多項(xiàng)式的根。對(duì)于MIMO系統(tǒng)由于G(s)是一個(gè)矩陣極點(diǎn)和零點(diǎn)的定義需要擴(kuò)展。極點(diǎn)如前所述傳遞函數(shù)矩陣G(s)的所有元素的分母多項(xiàng)式在約去公因子后的根就是系統(tǒng)的極點(diǎn)。更本質(zhì)地說(shuō)系統(tǒng)的極點(diǎn)就是系統(tǒng)矩陣A的特征值。這一定義從狀態(tài)空間模型出發(fā)更為根本。所有輸入輸出通道共享同一組極點(diǎn)這決定了系統(tǒng)的穩(wěn)定性所有極點(diǎn)均具有負(fù)實(shí)部則漸近穩(wěn)定和基本響應(yīng)模態(tài)如振蕩頻率、衰減速度。傳輸零點(diǎn)這是一個(gè)MIMO系統(tǒng)特有的、非常重要的概念。它不是單個(gè)元素分子為零的點(diǎn)。傳輸零點(diǎn)的定義是存在一個(gè)非零的復(fù)頻率z和一個(gè)非零的輸入向量U_0使得在零初始狀態(tài)下系統(tǒng)的輸出Y(s)恒為零。即G(z) U_0 0。這意味著在頻率z處存在某種特定的輸入信號(hào)組合其效果被系統(tǒng)內(nèi)部完全“抵消”了無(wú)法在輸出端被觀測(cè)到。計(jì)算對(duì)于D0的系統(tǒng)傳輸零點(diǎn)z是使得復(fù)合矩陣P(s) [sI-A, -B; C, 0]降秩的s值。在MATLAB中可以使用tzero或zero函數(shù)直接計(jì)算。物理意義傳輸零點(diǎn)反映了系統(tǒng)輸入輸出之間的阻塞特性。例如在飛機(jī)控制中某些特定的舵面偏轉(zhuǎn)組合可能無(wú)法引起飛機(jī)姿態(tài)的變化在某個(gè)頻率下這個(gè)頻率就是傳輸零點(diǎn)。傳輸零點(diǎn)會(huì)影響系統(tǒng)的可控制性、可觀測(cè)性以及控制性能的極限例如非最小相位系統(tǒng)的右半平面零點(diǎn)會(huì)限制控制帶寬。4.2 穩(wěn)定性分析基于極點(diǎn)的穩(wěn)定性判據(jù)在MIMO系統(tǒng)中依然直接適用線性時(shí)不變系統(tǒng)漸近穩(wěn)定的充要條件是其傳遞函數(shù)矩陣的所有極點(diǎn)即矩陣A的所有特征值都具有負(fù)實(shí)部。通過(guò)傳遞函數(shù)矩陣G(s)我們可以計(jì)算其特征多項(xiàng)式即行列式det(sI-A)或G(s)各元素分母的最小公倍式然后應(yīng)用勞斯判據(jù)、赫爾維茨判據(jù)或直接求根來(lái)判斷穩(wěn)定性。在MATLAB中使用pole(G)或eig(A)直接獲取極點(diǎn)。注意對(duì)于MIMO系統(tǒng)不能僅僅通過(guò)觀察G(s)某個(gè)對(duì)角元比如G_11(s)的穩(wěn)定性來(lái)判斷整個(gè)系統(tǒng)的穩(wěn)定性。因?yàn)榉菍?duì)角元的耦合可能引入不穩(wěn)定的隱藏模態(tài)與狀態(tài)空間中的能控性/能觀性相關(guān)。必須檢查系統(tǒng)矩陣A的全部特征值。4.3 頻域分析從伯德圖到奇異值圖這是傳遞函數(shù)矩陣威力巨大的地方。在SISO系統(tǒng)中我們繪制單個(gè)傳遞函數(shù)G(jω)的伯德圖幅頻和相頻特性。在MIMO系統(tǒng)中G(jω)是一個(gè)復(fù)數(shù)矩陣。我們?nèi)绾卫L制它的頻率響應(yīng)逐個(gè)元素法可以為G(s)的每一個(gè)元素G_ij(jω)繪制伯德圖。這能讓我們看清每一對(duì)輸入輸出通道在頻域的特性。這對(duì)于理解耦合的強(qiáng)度比如G_21相對(duì)于G_22的幅值大小很有幫助。在MATLAB中bode(G)命令會(huì)自動(dòng)為所有通道生成伯德圖。奇異值分析法更強(qiáng)大的工具對(duì)于MIMO系統(tǒng)更本質(zhì)的頻域分析工具是奇異值。對(duì)于每個(gè)頻率點(diǎn)ω我們計(jì)算復(fù)數(shù)矩陣G(jω)的奇異值。奇異值總是非負(fù)的實(shí)數(shù)。假設(shè)G是q x p矩陣那么它在每個(gè)頻率點(diǎn)有min(p, q)個(gè)奇異值記為σ_1(ω) ≥ σ_2(ω) ≥ ... ≥ σ_min(p,q)(ω) ≥ 0。最大奇異值σ_max(ω)可以理解為系統(tǒng)在頻率ω處對(duì)所有可能輸入方向向量的最大增益。最小奇異值σ_min(ω)可以理解為系統(tǒng)在頻率ω處對(duì)所有可能輸入方向的最小增益。繪制σ_max(ω)和σ_min(ω)隨頻率變化的曲線就得到了MIMO系統(tǒng)的奇異值伯德圖。為什么重要在魯棒控制和系統(tǒng)性能分析中奇異值提供了關(guān)鍵的洞察。例如σ_min在低頻段的大小反映了系統(tǒng)抗干擾和解耦的能力σ_max在高頻段的衰減速率反映了系統(tǒng)對(duì)噪聲和未建模動(dòng)態(tài)的魯棒性。閉環(huán)系統(tǒng)的穩(wěn)定裕度也可以用開(kāi)環(huán)傳遞函數(shù)矩陣的奇異值來(lái)評(píng)估。在MATLAB中可以使用sigma(G)命令繪制奇異值圖。4.4 能控性與能觀性與傳遞函數(shù)矩陣的關(guān)聯(lián)能控性和能觀性是狀態(tài)空間模型的核心概念它們與傳遞函數(shù)矩陣有著深刻的聯(lián)系。能控性系統(tǒng)是否能在有限時(shí)間內(nèi)通過(guò)合適的輸入u(t)將狀態(tài)從任意初始點(diǎn)驅(qū)動(dòng)到原點(diǎn)。狀態(tài)空間判據(jù)是能控性矩陣[B, AB, A^2B, ..., A^{n-1}B]滿秩。能觀性系統(tǒng)是否能在有限時(shí)間內(nèi)通過(guò)輸出的觀測(cè)y(t)唯一地確定初始狀態(tài)x(0)。狀態(tài)空間判據(jù)是能觀性矩陣[C; CA; CA^2; ...; CA^{n-1}]滿秩。從傳遞函數(shù)矩陣的角度看如果系統(tǒng)是狀態(tài)空間能控且能觀的那么其傳遞函數(shù)矩陣G(s)將是既約的即沒(méi)有零極點(diǎn)對(duì)消。如果發(fā)生了零極點(diǎn)對(duì)消則意味著系統(tǒng)不是完全能控和/或完全能觀的對(duì)消掉的模態(tài)在輸入輸出描述中“消失”了但它們可能隱藏在系統(tǒng)內(nèi)部影響實(shí)際動(dòng)態(tài)甚至穩(wěn)定性。在計(jì)算G(s) C(sI-A)^{-1}B D時(shí)如果最終得到的各元素傳遞函數(shù)有公因子被約去這些被約去的因子就對(duì)應(yīng)著不能控或不能觀的模態(tài)。因此在由傳遞函數(shù)矩陣反推或?qū)崿F(xiàn)狀態(tài)空間模型時(shí)必須非常小心要確保得到的是最小實(shí)現(xiàn)即完全能控且完全能觀。5. 從理論到實(shí)踐在MATLAB/SciPy中操作傳遞函數(shù)矩陣?yán)碚搶W(xué)習(xí)之后我們必須能在工具中實(shí)現(xiàn)它。這里以MATLAB及其開(kāi)源替代品GNU Octave和Python的SciPy庫(kù)為例展示基本操作。5.1 MATLAB/Octave 環(huán)境1. 定義系統(tǒng)與計(jì)算傳遞函數(shù)矩陣% 定義狀態(tài)空間矩陣 (沿用之前的例子) A [-2, 1, 0; 1, -3, 1; 0, 1, -1]; B [1, 0; 0, 1; 1, 0]; C [1, 0, 0; 0, 1, 0]; D zeros(2,2); % 創(chuàng)建狀態(tài)空間模型對(duì)象 sys_ss ss(A, B, C, D); % 轉(zhuǎn)換為傳遞函數(shù)矩陣形式 sys_tf tf(sys_ss); disp(傳遞函數(shù)矩陣 G(s):); disp(sys_tf); % 輸出會(huì)顯示一個(gè)2x2的tf數(shù)組每個(gè)元素都是tf對(duì)象。 % 例如從輸入 1 到輸出 1: s^2 4 s 3 / s^3 6 s^2 9 s 3 % 從輸入 2 到輸出 1: s 1 / s^3 6 s^2 9 s 3 ... 等等2. 提取特定通道的傳遞函數(shù)% 提取輸入1到輸出1的SISO傳遞函數(shù) G11 sys_tf(1, 1); % 提取輸入2到輸出2的SISO傳遞函數(shù) G22 sys_tf(2, 2);3. 計(jì)算極點(diǎn)和零點(diǎn)% 計(jì)算系統(tǒng)極點(diǎn) (即A的特征值) poles pole(sys_ss); % 或 pole(sys_tf) disp(系統(tǒng)極點(diǎn)); disp(poles); % 計(jì)算系統(tǒng)傳輸零點(diǎn) zeros tzero(sys_ss); % 或 zero(sys_tf) disp(系統(tǒng)傳輸零點(diǎn)); disp(zeros);4. 頻域分析繪圖% 繪制所有通道的伯德圖 (4個(gè)子圖) figure; bode(sys_ss); % 或 bode(sys_tf) grid on; title(各通道伯德圖); % 繪制奇異值圖 (MIMO系統(tǒng)頻域分析利器) figure; sigma(sys_ss); % 或 sigma(sys_tf) grid on; title(系統(tǒng)奇異值圖);5. 時(shí)域仿真% 定義時(shí)間向量 t 0:0.01:10; % 定義輸入信號(hào)u1是階躍u2是正弦波 u [ones(size(t)); sin(2*t)]; % 注意維度是 2 x length(t) % 進(jìn)行仿真 [y, t_out, x] lsim(sys_ss, u, t); % 繪制輸出響應(yīng) figure; subplot(2,1,1); plot(t_out, y(:,1)); ylabel(y1); grid on; legend(輸出1); subplot(2,1,2); plot(t_out, y(:,2)); ylabel(y2); xlabel(時(shí)間 (s)); grid on; legend(輸出2);5.2 Python (SciPy Matplotlib) 環(huán)境Python在科學(xué)計(jì)算領(lǐng)域應(yīng)用廣泛控制庫(kù)雖不如MATLAB專業(yè)但基礎(chǔ)功能完備。import numpy as np import matplotlib.pyplot as plt from scipy import signal # 1. 定義狀態(tài)空間矩陣 A np.array([[-2, 1, 0], [1, -3, 1], [0, 1, -1]]) B np.array([[1, 0], [0, 1], [1, 0]]) C np.array([[1, 0, 0], [0, 1, 0]]) D np.array([[0, 0], [0, 0]]) # 2. 創(chuàng)建狀態(tài)空間系統(tǒng) sys_ss signal.StateSpace(A, B, C, D) # 3. 轉(zhuǎn)換為傳遞函數(shù)形式 (注意scipy.signal 的 tf 表示是針對(duì)SISO的) # 對(duì)于MIMO我們需要逐個(gè)元素計(jì)算或使用專門的庫(kù)如 control需安裝pip install control # 這里演示使用 control 庫(kù) (如果已安裝) try: import control as ct # 創(chuàng)建控制系統(tǒng)庫(kù)的狀態(tài)空間對(duì)象 sys_ct ct.ss(A, B, C, D) # 計(jì)算傳遞函數(shù)矩陣 (返回一個(gè) TransferFunction 對(duì)象列表的列表) sys_tf ct.tf(sys_ct) print(傳遞函數(shù)矩陣:) print(sys_tf) except ImportError: print(control 庫(kù)未安裝。對(duì)于MIMO傳遞函數(shù)建議安裝 control 庫(kù)。) # 手動(dòng)計(jì)算其中一個(gè)通道作為示例 (例如 G11) # G(s) C(sI-A)^-1 B D, 我們計(jì)算第一個(gè)元素 # 這里省略手動(dòng)計(jì)算逆矩陣的代碼較為復(fù)雜。 # 作為替代我們可以直接進(jìn)行時(shí)域/頻域仿真。 # 4. 計(jì)算極點(diǎn)和零點(diǎn) (使用 scipy.signal 或 control) # 極點(diǎn)就是 A 的特征值 poles np.linalg.eigvals(A) print(\n系統(tǒng)極點(diǎn) (A的特征值):) print(poles) # 傳輸零點(diǎn)計(jì)算較復(fù)雜control庫(kù)有提供 try: import control as ct zeros ct.zero(sys_ct) print(\n系統(tǒng)傳輸零點(diǎn) (來(lái)自 control 庫(kù)):) print(zeros) except: print(\n傳輸零點(diǎn)計(jì)算需要 control 庫(kù)。) # 5. 時(shí)域仿真 (使用 scipy.signal) t np.arange(0, 10, 0.01) # 輸入u1 階躍 u2 正弦波 u np.vstack([np.ones_like(t), np.sin(2*t)]) # 形狀 (2, len(t)) # lsim 需要輸入 u 的形狀為 (len(t), num_inputs) t_out, y, x signal.lsim(sys_ss, Uu.T, Tt) # 注意 u.T 轉(zhuǎn)置 # 繪制結(jié)果 fig, (ax1, ax2) plt.subplots(2, 1, figsize(10, 6)) ax1.plot(t_out, y[:, 0]) ax1.set_ylabel(y1) ax1.grid(True) ax1.legend([輸出1]) ax2.plot(t_out, y[:, 1]) ax2.set_ylabel(y2) ax2.set_xlabel(時(shí)間 [s]) ax2.grid(True) ax2.legend([輸出2]) plt.suptitle(系統(tǒng)時(shí)域響應(yīng)) plt.tight_layout() plt.show() # 6. 頻域分析 - 伯德圖 (scipy.signal 的 bode 是 SISO 的) # 我們可以循環(huán)繪制每個(gè)通道 try: import control as ct plt.figure() ct.bode_plot(sys_ct) # control庫(kù)可以繪制MIMO伯德圖 plt.suptitle(各通道伯德圖 (control庫(kù))) plt.tight_layout() plt.show() except: print(繪制MIMO伯德圖需要 control 庫(kù)。)實(shí)操心得與避坑指南工具選擇對(duì)于嚴(yán)肅的控制系統(tǒng)分析與設(shè)計(jì)MATLAB及其控制系統(tǒng)工具箱仍然是行業(yè)標(biāo)桿文檔齊全、函數(shù)豐富。Python的control庫(kù)功能日益完善對(duì)于學(xué)習(xí)、研究和輕量級(jí)應(yīng)用是完全足夠的且免費(fèi)開(kāi)源。SciPy.signal更側(cè)重于信號(hào)處理對(duì)MIMO支持較弱。維度匹配在定義矩陣A, B, C, D時(shí)務(wù)必反復(fù)檢查維度。(n x n), (n x p), (q x n), (q x p)。一個(gè)常見(jiàn)的錯(cuò)誤是B或C矩陣的維度定義反了。仿真輸入使用lsim或signal.lsim進(jìn)行仿真時(shí)輸入矩陣U的維度容易出錯(cuò)。在MATLAB中U的列數(shù)等于輸入數(shù)行數(shù)等于時(shí)間點(diǎn)數(shù)量。在SciPy的signal.lsim中U的形狀是(len(t), num_inputs)。務(wù)必查閱文檔或打印矩陣形狀來(lái)確認(rèn)。最小實(shí)現(xiàn)如果你是從物理方程推導(dǎo)或系統(tǒng)辨識(shí)得到的傳遞函數(shù)矩陣在轉(zhuǎn)換為狀態(tài)空間模型時(shí)使用minreal函數(shù)MATLAB或minreal方法control庫(kù)來(lái)獲取最小實(shí)現(xiàn)消除不能控或不能觀的模態(tài)避免后續(xù)分析與設(shè)計(jì)出現(xiàn)問(wèn)題。6. 傳遞函數(shù)矩陣的局限性與狀態(tài)空間法的優(yōu)勢(shì)盡管傳遞函數(shù)矩陣是分析MIMO系統(tǒng)的有力工具但它并非萬(wàn)能也存在固有的局限性。理解這些局限性正是我們深入學(xué)習(xí)現(xiàn)代控制理論狀態(tài)空間法的動(dòng)力。1. 僅適用于線性時(shí)不變系統(tǒng)傳遞函數(shù)建立在拉普拉斯變換的基礎(chǔ)上其核心是疊加原理和常系數(shù)線性微分方程。對(duì)于非線性系統(tǒng)、時(shí)變系統(tǒng)傳遞函數(shù)矩陣的定義不再成立。而狀態(tài)空間方程? f(x, u, t), y g(x, u, t)在形式上可以描述更廣泛的系統(tǒng)。2. 丟失內(nèi)部狀態(tài)信息只反映輸入輸出關(guān)系這是傳遞函數(shù)方法最根本的局限。G(s)描述的是“黑箱”的外部特性。如果系統(tǒng)不是完全能控和完全能觀的那么傳遞函數(shù)矩陣就無(wú)法反映系統(tǒng)的全部動(dòng)態(tài)。那些不能控或不能觀的模態(tài)在G(s)中會(huì)被對(duì)消掉。但從內(nèi)部看這些隱藏模態(tài)可能是不穩(wěn)定的會(huì)導(dǎo)致實(shí)際系統(tǒng)出現(xiàn)問(wèn)題。狀態(tài)空間法通過(guò)直接研究狀態(tài)向量x(t)能完整揭示系統(tǒng)的內(nèi)部行為。3. 難以處理非零初始條件傳遞函數(shù)分析通常假設(shè)零初始條件。對(duì)于非零初始狀態(tài)的系統(tǒng)響應(yīng)傳遞函數(shù)方法處理起來(lái)比較麻煩。而狀態(tài)空間方程結(jié)合初始狀態(tài)x(0)可以非常自然地求解全響應(yīng)。4. 多變量系統(tǒng)分析與綜合的復(fù)雜性雖然傳遞函數(shù)矩陣將多變量關(guān)系封裝了起來(lái)但在進(jìn)行控制器設(shè)計(jì)時(shí)如經(jīng)典的頻域設(shè)計(jì)法直接處理一個(gè)矩陣函數(shù)仍然非常復(fù)雜。例如如何為MIMO系統(tǒng)設(shè)計(jì)一個(gè)PID控制器每個(gè)通道單獨(dú)設(shè)計(jì)往往會(huì)因?yàn)轳詈隙?。而狀態(tài)空間法通過(guò)狀態(tài)反饋u -Kx和觀測(cè)器設(shè)計(jì)提供了系統(tǒng)化的多變量控制器設(shè)計(jì)框架如線性二次型調(diào)節(jié)器LQR、極點(diǎn)配置等概念上更統(tǒng)一。5. 對(duì)系統(tǒng)結(jié)構(gòu)的洞察較弱狀態(tài)空間表示法通過(guò)A, B, C, D矩陣清晰地分離了系統(tǒng)動(dòng)態(tài)(A)、輸入影響(B)、輸出測(cè)量(C)和直接傳遞(D)。這種結(jié)構(gòu)化的表示更容易與物理模型對(duì)應(yīng)也便于進(jìn)行能控性、能觀性等結(jié)構(gòu)性質(zhì)的分析。那么為什么我們還要學(xué)習(xí)傳遞函數(shù)矩陣因?yàn)樗沁B接經(jīng)典控制與現(xiàn)代控制的橋梁。它保留了頻域分析的直觀性伯德圖、奈奎斯特圖為理解系統(tǒng)的頻率響應(yīng)、帶寬、魯棒穩(wěn)定性提供了圖形化工具。許多先進(jìn)的多變量頻域設(shè)計(jì)方法如H∞魯棒控制也是建立在傳遞函數(shù)矩陣的基礎(chǔ)之上。在實(shí)際工程中常常是頻域方法基于傳遞函數(shù)矩陣和時(shí)域方法基于狀態(tài)空間結(jié)合使用取長(zhǎng)補(bǔ)短。因此傳遞函數(shù)矩陣是現(xiàn)代控制理論工具箱中不可或缺的一部分。它讓我們能夠用熟悉的頻域語(yǔ)言去理解和分析復(fù)雜的多變量系統(tǒng)同時(shí)又提醒我們其邊界所在引導(dǎo)我們走向更深刻、更強(qiáng)大的狀態(tài)空間分析領(lǐng)域。掌握了它你就拿到了理解和處理現(xiàn)實(shí)世界中耦合、多變量系統(tǒng)的第一把鑰匙。

相關(guān)新聞

YOLOv5 口罩目標(biāo)檢測(cè)實(shí)戰(zhàn)(一):項(xiàng)目整體介紹與數(shù)據(jù)準(zhǔn)備

YOLOv5 口罩目標(biāo)檢測(cè)實(shí)戰(zhàn)(一):項(xiàng)目整體介紹與數(shù)據(jù)準(zhǔn)備

前言 在公共場(chǎng)所佩戴口罩已成為常態(tài)化防護(hù)措施,但人工監(jiān)督耗時(shí)費(fèi)力且存在盲區(qū)。利用計(jì)算機(jī)視覺(jué)技術(shù)對(duì)攝像頭畫(huà)面進(jìn)行實(shí)時(shí)檢測(cè),能夠有效輔助安防和防疫管理。 本項(xiàng)目使用早期YOLOv5 2.0版本中的YOLOv5s模型,實(shí)現(xiàn)端到端的口罩佩戴檢測(cè)。與圖像…

2026/8/1 1:49:38 閱讀更多
DAQ-GP-CT485電流互感器自動(dòng)化測(cè)試方案與RS485通信實(shí)戰(zhàn)

DAQ-GP-CT485電流互感器自動(dòng)化測(cè)試方案與RS485通信實(shí)戰(zhàn)

如果你在工業(yè)自動(dòng)化、電力監(jiān)測(cè)或能源管理領(lǐng)域工作,電流互感器的測(cè)試和校準(zhǔn)可能是你日常工作中既基礎(chǔ)又關(guān)鍵的一環(huán)。傳統(tǒng)測(cè)試方法往往依賴笨重的標(biāo)準(zhǔn)設(shè)備、復(fù)雜的接線和手動(dòng)記錄數(shù)據(jù),整個(gè)過(guò)程耗時(shí)且容易出錯(cuò)。而今天要介紹的 DAQ-GP-CT485 電流互感器測(cè)試…

2026/8/1 1:49:38 閱讀更多
寫(xiě)作反饋循環(huán):如何通過(guò)第一讀者提升內(nèi)容質(zhì)量

寫(xiě)作反饋循環(huán):如何通過(guò)第一讀者提升內(nèi)容質(zhì)量

1. 寫(xiě)作困境的本質(zhì):為什么改8遍還是不滿意? 每次打開(kāi)文檔修改時(shí),我都感覺(jué)自己像個(gè)強(qiáng)迫癥患者。第八次保存文件后,我突然意識(shí)到一個(gè)可怕的事實(shí):我根本分不清哪些是真正需要修改的問(wèn)題,哪些只是我的主觀臆斷。…

2026/8/1 14:21:09 閱讀更多
基于雙層優(yōu)化的冷熱電多微網(wǎng)儲(chǔ)能配置Matlab實(shí)現(xiàn)

基于雙層優(yōu)化的冷熱電多微網(wǎng)儲(chǔ)能配置Matlab實(shí)現(xiàn)

1. 項(xiàng)目背景與核心價(jià)值 冷熱電多微網(wǎng)系統(tǒng)是當(dāng)前能源互聯(lián)網(wǎng)領(lǐng)域的前沿研究方向,它通過(guò)整合分布式能源、儲(chǔ)能設(shè)備和負(fù)荷需求,實(shí)現(xiàn)區(qū)域內(nèi)能源的高效利用與優(yōu)化調(diào)度。而儲(chǔ)能電站作為系統(tǒng)中的關(guān)鍵緩沖環(huán)節(jié),其配置策略直接影響整個(gè)系統(tǒng)的經(jīng)濟(jì)性和可…

2026/8/1 14:21:09 閱讀更多
僅剩47份!《AI無(wú)縫紋理生產(chǎn)標(biāo)準(zhǔn)白皮書(shū)》V2.3內(nèi)部版泄露:涵蓋PBR材質(zhì)合規(guī)性檢測(cè)、Mipmap級(jí)邊緣衰減公式及ISO/IEC 23004-8適配條款

僅剩47份!《AI無(wú)縫紋理生產(chǎn)標(biāo)準(zhǔn)白皮書(shū)》V2.3內(nèi)部版泄露:涵蓋PBR材質(zhì)合規(guī)性檢測(cè)、Mipmap級(jí)邊緣衰減公式及ISO/IEC 23004-8適配條款

更多請(qǐng)點(diǎn)擊: https://intelliparadigm.com 第一章:AI圖片無(wú)縫紋理生成的技術(shù)演進(jìn)與行業(yè)挑戰(zhàn) AI驅(qū)動(dòng)的無(wú)縫紋理生成已從早期基于圖像拼接的啟發(fā)式方法,發(fā)展為以擴(kuò)散模型與隱式神經(jīng)表示(INR)為核心的端到端學(xué)習(xí)范式。這…

2026/8/1 14:21:09 閱讀更多
AI寫(xiě)作爆文拆解實(shí)戰(zhàn)手冊(cè)(附23個(gè)真實(shí)失敗案例復(fù)盤):從提示詞失效到平臺(tái)限流的全鏈路歸因

AI寫(xiě)作爆文拆解實(shí)戰(zhàn)手冊(cè)(附23個(gè)真實(shí)失敗案例復(fù)盤):從提示詞失效到平臺(tái)限流的全鏈路歸因

更多請(qǐng)點(diǎn)擊: https://kaifayun.com 第一章:AI寫(xiě)作爆文拆解實(shí)戰(zhàn)手冊(cè)(附23個(gè)真實(shí)失敗案例復(fù)盤):從提示詞失效到平臺(tái)限流的全鏈路歸因 AI寫(xiě)作不是“輸入提示詞→輸出爆款”的黑箱流程,而是由提示工程、內(nèi)容適…

2026/8/1 14:11:08 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/1 0:09:33 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/1 0:09:33 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/1 0:09:33 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/1 0:09:33 閱讀更多