線形化の方法
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
状態及び入力を以下のように定義します。
syms a e i omega Omega theta ur ut un
x = [a e i omega Omega theta];
u = [ur ut un];
そのダイナミクスをとして、以下のように定義します。
mu = 398600.5*10^9;
p = a*(1-e^2);
h = (mu*p)^(1/2);
r = p/(1+e*cos(theta));
f = [...
(2*(a^2)*e*sin(theta)/h)*ur + (2*p*(a^2)/h/r)*ut;
(p*sin(theta)/h)*ur + (((p+r)*cos(theta)+r*e)/h)*ut;
(r*cos(omega+theta)/h)*un;
(-p*cos(theta)/h/e)*ur + ((p+r)*sin(theta)/h/e)*ut - (r*sin(omega+theta)*cos(i)/h/sin(i))*un;
(r*sin(omega+theta)/h/sin(i))*un;
h/(r^2) + (p*cos(theta)*ur-(p+r)*sin(theta)*ut)/h/e;
];
このを以下のように線形化します。
a1 = jacobian(f,x);
b1 = jacobian(f,u);
c1 = f(x,u)-a1*x-b1*u;
linear_f = a1*x + b1*u + c1;
これらのとのステップ応答を比較した際、が動かなくなってしまいました。何か問題がありましたら、教えていただけると幸いです。以下にシミュレーションのファイルを添付しておきます。
共に引数にxがありダイナミクスを持つので、逐一更新されたxを用いて計算しています。
0 Kommentare
Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!