[英]assigning multiple varables with one call to single-output MATLAB 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 對象tf1
和tf2
,您還可以使用tf1+tf2
或使用parallel(tf1,tf2,1,1,1,1)
(請參閱https://www.mathworks.com/help/control/ref/parallel.html )。
您有兩個傳遞函數:
並且您對組合系統感興趣:
其中有轉移function:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.