2014-10-03 112 views
0

我想用MATLAB來實現一個模型系統。MATLAB:如何將一個系統輸出中的當前值作爲輸入饋入下一個系統?

我的模型在以下圖組成的2個子系統爲:

Link to the picture forward-feed-ing system diagram

在短:第一子系統取角加速度,並輸出絕對角度(PhiThetaPsi)給出輸入U2,U3,U4

角度值現在必須送入第二個子系統,它計算位置和相應的速度(X, Y, Z, X', Y', Z')

我怎樣才能連接兩個子系統在MATLAB(未在Simulink物理),以獲得一個獨特的系統中,我給角加速度,並獲得最終X, Y, Z位置?

現在,我寫了這個代碼行(真正簡化我承認...):

M = 1.477; 
Jxx = 0.01152; 
Jyy = 0.01152; 
Jzz = 0.0218; 

% tf transfer function for the angles 
s = tf('s'); 
G_phi = tf([1],[Jxx 0 0]); 
G_theta = tf([1],[Jyy 0 0]); 
G_psi = tf([1],[Jzz 0 0]); 

% tf transfer function for the positons 
a = (sin(psi)*sin(phi) + cos(psi)*sin(theta)*cos(phi)); 
b = (-cos(psi)*sin(phi) + sin(psi)*sin(theta)*cos(phi)); 
c = (cos(theta)*cos(phi)); 
G_x = tf([a], [M 0 0]); 
G_y = tf([b], [M 0 0]); 
G_z = tf([c], [M 0 0]); 

其中phithetapsi變量計算形成第一子系統,存儲然後傳遞給第二個子系統來計算那裏的cos和sin函數...

如果我不清楚我會更新我的問題 Regards

+0

從你的圖,似乎有'U1'是也輸入到您的TF2('U1','phi','theta','PSI ')。這是你最終的代碼示例嗎? – user3666197 2014-10-03 23:21:13

+0

是的...我已經糾正它。 U1只是我第二個子系統的輸入 – Dave 2014-10-04 06:53:11

回答

0

好吧,我解決了使用Simulink。 Here能找到一個非常好的基本教程,很好地解釋了這樣的方程將如何在simulink中實現。

我上面貼的方式真的不是最好的一個

相關問題