私は実装されたこのチュートリアルに従おうとしています
function transfer_function = tf(numerator, denominator)
transfer_function = syslin('c', poly(numerator, "s", "coeff") / poly(denominator, "s", "coeff"));
endfunction
// physical constants:
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
// state-space model:
h1 = tf(Km, [L R]); // armature
h2 = tf(1, [J Kf]); // eqn of motion
dcm = tf2ss(h2) * [h1, 1]; // w = h2 * (h1 * Va + Td)
それが返す
--> DCM dcm = dcm(1) (状態空間システム:) 「lss」「A」「B」「C」「D」「X0」「dt」 dcm(2)= 行列 = -0.1 0.5 0. -0.25 dcm(3)= B 行列 = 0.2.236068 0.2236068 0. dcm(4)= C 行列 = 2.236068 0. dcm(5)= D 行列 = 0.0. dcm(6)= X0 (初期状態) = 0. 0. dcm(7)= 時間領域 = "c"
これは、MATLAB が生成するものとは異なります。
>> DCM dcm = A = x1 x2 x1 -10 3.2 x2 0 -4 B = u1 u2 x1 0 8 x2 0.5 0 C = x1 x2 年1 6.25 0 D = u1 u2 y1 0 0 連続時間状態空間モデル。
今私の質問は:
- 最小限の
tf()
機能を正しく実装しましたか、それともより完全な/標準的なバージョンが利用可能/可能ですか? tf2ss()
MATLAB と同等のものですss()
か、それとも別の組み込み関数が利用可能ですか?- 同等のものがない場合
ss()
、上記の MATLAB チュートリアルと同じ結果をもたらす最小限の実装は何ですか?