MATLAB:如何将当前值从一个系统输出作为输入提供给下一个系统?

时间:2014-10-03 22:16:22

标签: matlab

我正在尝试用MATLAB实现一个模型系统。

我的模型由2个子系统组成,如下图所示:

Link to the picture forward-feed-ing system diagram

简而言之:第一个子系统获取角加速度并输出绝对角度(PhiThetaPsi)给定输入{{1 },U2U3

现在必须将角度值输入第二个子系统,该子系统计算位置和各自的速度U4

我如何连接 MATLAB中的两个子系统(不是物理上在Simulink中)来获得一个独特的系统,我可以在其中给出角加速度并获得最终的( X, Y, Z, X', Y', Z' )位置?

现在我写了这行代码(真的很简单,我承认......):

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]); phi theta 变量从第一个子系统计算,存储然后传递给第二个子系统来计算那里的cos和sin函数......

如果我不清楚,我会更新我的问题 此致

1 个答案:

答案 0 :(得分:0)

好的,我用Simulink解决了。 Here可以找到一个非常好的基础教程,很好地解释了如何在simulink中实现这样的等式。

我上面发布的方式真的不是最好的