1

System Identification Toolbox (SIT) 内で作成された伝達関数を Simulink にインポートしてテストしようとすると、何か根本的に間違っていると思います。

私がやっていることの簡単な例を挙げます。振幅が 1、周波数が 1.5rad/s の 12 秒から 25 秒までのオフセット正弦波である入力があり、測定された出力が得られます。

SIT を使用して、次の一致を与える単純な 2 極 1 ゼロ伝達関数を作成しました。 SITフィット

次に、周波数 1.5rad/s の正弦波入力と開始 t=12 を持つ次の構成で調査するために、この伝達関数を Simulink にインポートしようとしました。LTI システム ブロックは、ワークスペース内の伝達関数変数を参照します。 Simulink 回路図

このシミュレーションを 13 秒間実行すると、ブロックへの入力は期待どおりですが、伝達関数後の信号は期待されるものとほとんど一致せず、桁違いです。

前: PRE信号

役職: POST信号

私が間違っている場所と、tfin simulink からの出力が SIT に表示されるモデル出力とほとんど似ていない理由について、誰かが洞察を与えることができますか? 私は制御理論の基本的な理解を持っていますが、これを理解するのに苦労しています.

4

1 に答える 1

1

これは、SimuLink と SI Toolbox で使用される異なる初期条件が原因である可能性があります。後者は、モデルで初期条件を推定する必要がありますが、Simulink は、ユーザーが指定しない限り、初期条件に対して特別なことは何もしません。

出力もほぼ正弦波のように見えるため、元の信号は周期的な体制にあるようです。周期的なレジームでは、初期条件はほとんど影響しません。モデルを長時間シミュレートすることで、私の仮定を検証できます。最終的に、信号がデータのように正しい振幅と位相遅れに達する場合、初期条件が間違っていたことがわかります。InitialStateいずれにせよ、ツールボックスから推定された初期状態を取得できます。結果のオブジェクトのプロパティを使用すると思います。

もう 1 つ間違っている可能性があるのは、連続時間モデルを推定した場合に Simulink で使用する時間の離散化です (またはsではなく、ラプラス変数)。zq

editc2d : その場合、MATLAB で使用し、Simulink で以下のようなセットアップを使用して、Simulink が CT モデルを離散化するために使用するものを確認することをお勧めします。lsimMATLAB では、離散化方法を指定する必要がある を使用して、CT モデルへの応答を「シミュレート」することもできます。

ここに画像の説明を入力

この設定により、CT モデルと離散化されたバリアント (この場合は状態空間表現) を読み込むことができます。信号を比較することで、使用する離散化方法が SimuLink が使用するものと同じであるかどうかを確認できます (これは、設定で設定した積分方法によって異なります)。

于 2014-02-25T15:37:57.907 に答える