我正在尝试用MATLAB实现一个模型系统。
我的模型由2个子系统组成,如下图所示:
简而言之:第一个子系统获取角加速度并输出绝对角度(Phi
,Theta
和Psi
)给定输入{{1 },U2
,U3
。
现在必须将角度值输入第二个子系统,该子系统计算位置和各自的速度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函数......
如果我不清楚,我会更新我的问题 此致