基本的に、Simulink で k*(T*s+1) 伝達関数ブロックを作成する必要があります。Matlabでは、分母を分子よりも小さくするだけで簡単にできます。すべて問題ありません。しかし、Simulink のブロックで同じことをしようとすると、エラーが発生します。[分母は分子より小さくすべきではありません。それで、あなたはどう思いますか?
4101 次
1 に答える
3
あなたが説明しているのは、純粋な導関数コンポーネント ( kTs
) が含まれていることです。数値ソルバーはこれらのコンポーネントを扱うことができず、自然はそれらを実現できません。直観的には、Simulink の純粋な導関数ブロックは、非常に小さなタイム ステップでの数値誤差に対して不当に大きな応答を示します。ボード線図に慣れている場合、微分成分は高周波数で任意に大きな応答を示します。
微分コンポーネントを使用する場合、通常は応答曲線でブレーク周波数を選択します。これは、微分演算の前にローパス フィルターを入力に適用することと同じです。ローパス フィルターの周波数がシステム ダイナミクスよりも十分に速い場合、関心のある周波数で微分動作が得られますが、システムは実現可能です。
そのため、Simulink でこれを処理するには、伝達関数を自分で変更するか、微分を認識する Simulink ブロックの 1 つ ("微分" ブロックや "PID コントローラー" ブロックなど) を使用できます。(その後、Simulink はこれを機能させるために舞台裏で動作する必要があります)。
たとえば、方程式を次のように書き換えます。
kTs + k
そして、次のように 4 つのブロックを使用します。
---+---GAIN=kT----DERIVATIVE----SUM--
| |
+---GAIN=K--------------------+
于 2013-05-30T21:32:12.513 に答える