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)であることを考えると、関数から入力インデックスniを指定する必要がありますss2tf()。この場合、

[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 に答える