以下のSimulinkモデルに関していくつか質問があります。
In1の入力が与えられた場合、赤でタグ付けされた1の初期入力は何ですか?
赤で2
1/s
でタグ付けされたブロックの意味は何ですか?
これらの質問に逆に答える方が簡単な場合があります。
2)赤で21/s
でタグ付けされたブロックの意味は何ですか?
回答:これはIntegratorブロックです。現在のタイムステップでの入力の積分を出力します。最初のタイムステップでは、初期条件として指定したものがすべて出力されることに注意してください。デフォルトでは、初期条件は0であると思います(初期条件を含む、このブロックのさまざまなパラメーターの設定の詳細については、上記のリンクされたドキュメントを参照してください)。
1)の入力が与えられた場合、赤でタグ付けされた1In1
の最初の入力は何ですか?
回答: 1での初期入力は、実際には完全に独立していIn1
ます。これは、特定のタイムステップでフィードするブロックの初期条件にのみ依存します。
ブロックの実行順序を考慮する必要があります。このモデルでは、最初に実行するブロックは、おそらく2でマークしたインテグレーターブロックになります。これに続いて、次の積分器ブロックとそれらが供給するゲインブロックがあります。実行する最後のブロックの1つは、実際にはIn1
フィードインするSubtractブロックになります。これは、このSubtractブロックが何らかの計算を実行する前に、その入力が何であるかを知る必要があるためです。したがって、他のブロックを最初に実行する必要があります。
ここにループがあることを考えると、これは少し混乱するかもしれません。したがって、SubtractブロックはIntegratorブロックにフィードインすることになります。Integratorブロックには直接フィードスルーがないため、これは問題になりません。これは、積分器の現在の出力が現在の入力の直接の関数ではないことを意味します。むしろ、それは積分器ブロックの現在の状態に基づいて計算されます(これは主に前のタイムステップでの入力によって決定されます)。これは、Integratorブロックが現在の出力を計算するために、現在の入力を知る必要がないことを意味します。
したがって、最初のタイムステップでは、積分器ブロックの出力は、設定した初期条件(またはデフォルトの初期条件0)にすぎません。したがって、ほとんどの場合、1の初期値は0です。
(このリンクには、代数ループと直接フィードスルーに関する詳細情報があります)。
Simulinkでの実行順序の詳細については、ここを参照してください。このリンクは、モデルで実行順序を表示する方法も示しています。これは、知っておくと非常に役立つ場合があります。