2013-08-26 51 views
1

背景:我有一個複雜的機械振盪系統。用類比法將其轉換成電路(每個元件都是RLC振盪器)。計算電路的唯一方法是節點分析,而且手工操作太複雜。基於系統矩陣的自定義傳遞函數

由於符號數學工具箱SimPowerSystems的工具箱不可用,也沒有計算傳遞函數G(s)使用傳送功能塊便捷的方式。

所以我想過使用自定義函數,但在諮詢完文檔後,我仍然很無奈。我希望在這裏找到一些初步想法。

我的系統可以通過矩陣方程描述如下:

A*x = y 

其中A是包含我的電路的RLC-阻抗一個8x8矩陣,所以基本上每一個元素是一個多項式Z(s)例如Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1)其中s是拉普拉斯域變量。矢量x是包含我的8個標量輸出的8x1行向量。 y是一個8x1行向量,其元素是我的4個輸入信號之一或0.

最後,我需要一個帶有4個輸入和8個輸出的Simulink塊,它解決了線性方程系統,其中s爲變量。

替代方案我可以想象使用4塊,每個輸入只有一個輸入(將其他輸入設置爲'零')併疊加它們。只有一個輸出的選擇也是可以想象的。

有什麼辦法可以實現這個嗎?我如何創建一個在拉普拉斯域而不是在時域中工作的塊?

回答

1

n x n系統矩陣需要與傳遞函數來定義:

W = minreal([ tf(...) ... tf(...) ; ... ; tf(...) ... tf(...) ]; 

例如爲:

Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1) 

- >

Z_11 = tf([1 2 0] , [1 3 -1]); 

一般的反轉是必需的

H = inv(W); 

該矩陣可以直接包含在控制系統工具箱的LTI-Sytem塊中。 使用多路複用器和多路分解器嵌入輸入和輸出向量。

LTI系統內部使用n * n個建議的狀態空間模型,因此對於大系統來說手動創建它們會很複雜。

1

您可以按照您的建議使用4 Transfer Function(SISO)模塊,但對於諸如您的MIMO系統,我建議您將系統轉換爲狀態空間表示並將其重新寫入,並使用State-Space取而代之。

+0

它並不能真正解決我的問題。我目前正在使用控制系統工具箱的「LTI-System」塊來解決這個問題,該解決方案允許我評估填充了傳輸函數的系統矩陣。如果它終於有效,我會在這裏發佈。 – thewaywewalk

+0

它以什麼方式不能解決您的問題?我建議的兩種方法(我之前已經使用過),狀態空間表示是模擬MIMO系統的更好方法。 – am304

+0

有幾個原因。 1)不熟悉我的代碼的人也需要使用該模型,我相信他們可以創建方形系統矩陣,但我懷疑他們可以創建狀態空間系統。由於一些微分方程是四階或甚至更高,我也有我的問題。一個單一的矩陣是最透明的。 2)我聽說轉換爲ss matlab可以做的並不總是可靠的。 3)我使用幾個SISO塊的第一個想法似乎很複雜,因爲系統大小必須相同,我不想爲每個特定問題添加塊。 – thewaywewalk