簡體   English   中英

是否可以在 Matlab simulink 中找到用於多輸入單輸出傳輸 function 的模塊?

[英]Is it possible to find a block for multi-input single-output transfer function in Matlab simulink?

我有一個帶有兩個輸入和一個通用 output 的系統。

讓輸入為 in1、in2 和 output - out。

所以我有兩個傳遞函數:out/in1,out/in2。

使用 simulink,我可以對每個傳輸 function 使用傳輸 fcn 塊,然后將它們的輸出相加以獲得所需的 output。

但是是否有可能以某種方式將傳遞函數 out/in1、out/in2 連接在一起並使用一些 simulink 塊來避免傳遞函數輸出的求和?

提前感謝您的時間和幫助!

% in symbolic

syms Ht s D K Hg

TF1 = tf([D K],[4*Hg*Ht (2*Hg*D+2*Ht*D) (2*Hg*K+2*Ht*K) 0]);

TF2 = tf([-2*Ht -D -K],[4*Hg*Ht (2*Hg*D+2*Ht*D) (2*Hg*K+2*Ht*K) 0]);

% or in numerical way

Ht = 2.2667;
Hg = 0.92952;
D = 2.29;
K = 1.0216;

TF1 = tf([D K],[4*Hg*Ht (2*Hg*D+2*Ht*D) (2*Hg*K+2*Ht*K) 0]);

TF2 = tf([-2*Ht -D -K],[4*Hg*Ht (2*Hg*D+2*Ht*D) (2*Hg*K+2*Ht*K) 0]);

有一個非常簡單的解決方案。 給定兩個傳遞函數TF1=tf(num1,den1)TF2=tf(num2,den2)TF1+TF2之和可以表示為單個傳遞 function tf(num1*den2+num2*den1,den1*den2)

對於實際實現,您將需要使用conv從分量傳遞函數的多項式系數向量中計算分子和分母多項式。

num = polyadd(conv(num1,den2),conv(num2,den1));
den = conv(den1,den2);

注意polyadd不是內置的 Matlab function 但您可以自己編寫或使用https://stackoverflow.com/a/5588

如果您已經在 Matlab 中有單輸入單輸出 (SISO) 傳輸 function 對象tf1tf2 ,您還可以使用tf1+tf2或使用parallel(tf1,tf2,1,1,1,1) (請參閱https://www.mathworks.com/help/control/ref/parallel.html )。

為什么這行得通?

您有兩個傳遞函數:

Y_1=\frac{N_1(s)}{D_1(s)}\cdot U
Y_2=\frac{N_2(s)}{D_2(s)}\cdot U

並且您對組合系統感興趣:
Y=Y_1+Y_2=\bigg(\frac{N_1(s)}{D_1(s)}+\frac{N_2(s)}{D_2(s)}\bigg)\cdot U

其中有轉移function:

\frac{N_1(s)}{D_1(s)}+\frac{N_2(s)}{D_2(s)}=\frac{N_1(s) \cdot D_2(s) + N_2(s) \cdot D_1(s)}{D_1(s) \cdot D_2(s)}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM