0

这个问题之后,我试图将本教程中的状态空间模型转换回它的传递函数形式。我试过了

R = 2.0;                % Ohms
L = 0.5;                % Henrys
Km = 0.1;               % torque constant
Kb = 0.1;               % back emf constant
Kf = 0.2;               % Nms
J = 0.02;               % kg.m^2/s^2
Td = 1;                 % models load disturbances

h1 = tf(Km, [L R]);            % armature
h2 = tf(1, [J Kf]);            % eqn of motion
dcm = ss(h2) * [h1 , Td];      % w = h2 * (h1 * Va + Td)

[b, a] = ss2tf(dcm.A, dcm.B, dcm.C, dcm.D);
dcm_tf = tf(b, a);

但是,我收到错误消息:

必须为具有多个输入的系统指定 IU。

4

1 回答 1

1

根据Reddit 上的评论,鉴于上述系统是多输入多输出 (MIMO),我们需要从函数中指定输入索引。niss2tf()在这种情况下

[b, a] = ss2tf(dcm.A, dcm.B, dcm.C, dcm.D, 1);

返回w / Va传递函数和

[b, a] = ss2tf(dcm.A, dcm.B, dcm.C, dcm.D, 2);

返回那个w / Td

或者,可以简单地使用tf(dcm)将状态空间模型直接转换为两个输入的传递函数。

于 2022-02-21T21:42:03.813 回答