2017-11-03 12 views
0

私は微分方程式:dx/dt = a * xを持っています。 Matlab Simulinkを使って、この方程式を解いてScopeブロックを使って出力する必要があります。Simulinkインテグレータループの初期条件t = 0の設定方法

問題は、初期条件値t = 0の指定方法がわかりません。

これまでのところ、私はこのようになりますソリューションを作成するために管理している:

Model

私は、積分器の内側に、「初期条件」を設定するためのpossiblityがあることを知っているが、私は把握することはできませんどのように最終的な結果に影響を与えますか? xの値を単にt = 0に設定するにはどうすればよいですか。 e.i. x(0) = 6

+0

なぜあなたは1の値とGainブロックを使用していますか?これは何もしません... 1回のタイムステップでフィードバックループを延期するには、メモリブロックが必要です。なぜブロック内の初期条件を設定しても、あなたが望むものが得られないのですか? – Wolfie

+0

私はゲインを値1で使うことは、aを1に設定することを意味します。e.i.ゲイン= 5 <=> = 5.私は間違っていましたか? 2番目の質問:初期条件を5に設定すると、x(0)= 5を意味しますか?あなたは、あなたの積分器の出力を取り出す1を乗じて、あなたのインテグレータに戻って、それを供給しているので、 – Mark

+0

ゲインは、乗数です。メモは、フィードバックを中断するためにメモリブロックを使用していないので、瞬時出力を入力としても使用しようとしていますが、これは動作しません。そして、はい、それは、このモデルでは、メモリブロックの必要がない、初期条件は – Wolfie

答えて

1

この問題を分析的に最初に処理して、モデルが正しいかどうかを確認しましょう。

dx/dt = a*x  % Seperable differential equation 
=> (1/x) dt = a dt % Now we can integrate 
=> ln(x) = a*t + c % We can determine c using the initial condition x(0) 
=> ln(x0) = a*0 + c 
=> ln(x0) = c 
=> x = exp(a*t + ln(x0)) % Subbing into 3rd line and taking exp of both sides 
=> x = x0 * exp(a*t) 

これでわかりました。さんはt = 0 .. 1x0 = 6a = 5のためにこれを見てみましょう:

% Plot x vs t using plain MATLAB 
x0 = 6; a = 5; 
t = 0:1e-2:1; x = x0*exp(a*t); 
plot(t,x) 

figure


今度は、数値積分器として動作し、Simulinkモデルを作成してみましょう。このアプリケーションではIntegratorブロックは実際には必要ありません。各時間ステップで変更を追加するだけです!

model

これを実行するには、我々は物事のカップルを最初に設定する必要があります。 Simulation> Model Configuration Parametersで、dx/dtdx(第2ゲインブロック)の間で切り替えるために使用した時間ステップに合わせてタイムステップを設定する必要があります。

config

最後に、我々はx0のための初期条件を設定する必要があり、これは

initial

は1秒に終了時間を設定し、モデルを実行しているメモリブロックで行うことができ、我々が表示さスコープの期待される結果。私たちの分析ソリューションに適合しているので、正しいことが分かります。

scope


今、我々は、モデルがより柔軟にするために、統合ブロックを再導入することができ、何が起こっているか理解しています。インテグレータを使用すると、dtが自動的に計算され、実際には取り除くことができるため、ゲインブロックをマイクロ管理する必要はありません。しかし、まだメモリブロックが必要です。積分器とメモリブロックの両方で初期条件も必要になります。スコープを別の場所に配置し、最初のいくつかのタイムステップを完了して、その理由を理解してください。

simple

積分ブロックを使用する場合、初期条件はそれほど明確であることに留意されたいです。

+0

このモデルにはメモリブロックを持つ理由はありません。これを含めると、不必要にダイナミクスがわずかに変化します。 –

+0

私の元の解決策は正しいですか? – Mark

+0

はい、 '初期条件 'と' a'の値を設定することができます。 –

関連する問題