2017-05-14 11 views
1

状態空間モデルは、フォーム上にある:線状化され DX =アックス+ Buは Y = Cxと+デュMATLABコマンドlsimは線形化状態空間モデルに適していますか?

非線形状態空間モデルこのフォームである:

dΔx = AΔx + BΔu 
Δy = CΔx + DΔu 

Δx = [x1 - x10; x2 - x20; x3 - x30; .... ; xn - xn0] 
Δu = [u1 - u10; u2 - u20; u3 - u30; .... ; um - um0] 

x10、x20、x30、xn0、u10、u20、u30、um0は線形化の定数/初期値です。

だから!質問は、MATLABコマンド "lsimを" について:この場合

lsim (sys, u, t, x0) 

、sysがlineraized状態空間モデルからA、B、C、D行列です。 uは信号ベクトル、tは時間ベクトルです。しかし、x0 .... x0はx10、x20、x30、....、xn0と言うことができますか?

また、u = u-u0、u0は、u10、u10、u20、u30、...、um0ということができますか?

例:

u = linspace(5, 5, 100); % insignal 5 
t = linspace(0, 100, 100); % 100 seconds 
u0 = [0.2; -1.2; -3]; 
u = u - u0; % 
x0 = [-2; 2; -1] 
lsim (sys, u, t, x0) 

この意志の結果:

Δx = [x1 - 2; x2 + 2; x3 - 1] 
Δu = [u1 + 0.2; u2 - 1.2; u3 - 3] 

は、私は右ですか?

+0

あなたは右ではないかもしれないと思わせる理由はありますか?質問に対する答えは、「このタスクのために特別に設計されたこのタスクは、このタスクに適していますか?私は思うので、本当の質問は何ですか? –

+0

質問は私が上記のように私の線形状態空間モデルをシミュレートすることができます。 –

+0

アプローチは一般的に:試してみてください。それが動作しない場合、あなたはそれについて尋ねる –

答えて

0

Simulink S-Functiondsfunc.mは、State Spaceモデルのシミュレーションであり、含まれる線形化状態空間行列に容易に適合させることができ、各時間ステップで変化します。

Simulinkファイルdsfunc.slxをビルドし、simコマンドsim('dsfunc')コマンドで実行してください。

Sファンクションは状態を適切に処理し、ステートスペースモデルを毎回適応させ、状態をある反復から別の繰り返しに保つだけです。

また、単一のforループでも同じように簡単に実行できます。図示のように、線形化定数が含まれています。

function [t,u,x,y]=example2 
% Start 
dt=0.001; 
N=1000; 
n=2; 
r=1; 
t=(0:N-1)'*dt; 
u=rand(N,r); 
% First 
[A,B,C,D,x0,y0]=ABCD(t(1),zeros(n,1),u(1,:)'); 
x(1,:)=x0'; 
y(1,:)=(C*x(1,:)'+D*u(1,:)'+y0)'; 
% Cycle 
for i=2:N 
    [A,B,C,D,x0,y0]=ABCD(t(i),x(i-1,:)',u(i-1,:)'); 
    x(i,:)=(A*x(i-1,:)'+B*u(i-1,:)'+x0)'; 
    y(i,:)=(C*x(i,:)'+D*u(i,:)'+y0)'; 
end 
plot(t,[u x y]);legend({'u' 'x1' 'x2' 'y'}); 


function [A,B,C,D,x0,y0]=ABCD(t,x,u) 
A=[0.1 -0.9;0 0.1]; 
B=0.5*ones(2,1); 
C=[1 1]; 
x0=[0];y0=[0]; 

enter image description here

+0

ありがとう!しかし、私はlsimコマンドを使用することを好む:) –

+0

ええ、私はいくつかのポイントで線形化したいと思った。行こうとすると線形モデルが必要になります。それは大丈夫です :\。 – hyprfrcb

関連する問題