私は実装されたこのチュートリアルに従おうとしています
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 チュートリアルと同じ結果をもたらす最小限の実装は何ですか?