0

基本的に、Simulink で k*(T*s+1) 伝達関数ブロックを作成する必要があります。Matlabでは、分母を分子よりも小さくするだけで簡単にできます。すべて問題ありません。しかし、Simulink のブロックで同じことをしようとすると、エラーが発生します。[分母は分子より小さくすべきではありません。それで、あなたはどう思いますか?

4

1 に答える 1

3

あなたが説明しているのは、純粋な導関数コンポーネント ( kTs) が含まれていることです。数値ソルバーはこれらのコンポーネントを扱うことができず、自然はそれらを実現できません。直観的には、Simulink の純粋な導関数ブロックは、非常に小さなタイム ステップでの数値誤差に対して不当に大きな応答を示します。ボード線図に慣れている場合、微分成分は高周波数で任意に大きな応答を示します。

微分コンポーネントを使用する場合、通常は応答曲線でブレーク周波数を選択します。これは、微分演算の前にローパス フィルターを入力に適用することと同じです。ローパス フィルターの周波数がシステム ダイナミクスよりも十分に速い場合、関心のある周波数で微分動作が得られますが、システムは実現可能です。

そのため、Simulink でこれを処理するには、伝達関数を自分で変更するか、微分を認識する Simulink ブロックの 1 つ ("微分" ブロックや "PID コントローラー" ブロックなど) を使用できます。(その後、Simulink はこれを機能させるために舞台裏で動作する必要があります)。

たとえば、方程式を次のように書き換えます。

kTs + k

そして、次のように 4 つのブロックを使用します。

---+---GAIN=kT----DERIVATIVE----SUM--
   |                             |
   +---GAIN=K--------------------+
于 2013-05-30T21:32:12.513 に答える