ゼロクロッシング アルゴリズム
Simulink® ソフトウェアには、非適応アルゴリズムと適応アルゴリズムの 2 つのアルゴリズムが提供されています。
アルゴリズムを選択するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインの [アルゴリズム] オプションを使用するか、ZeroCrossAlgorithm
コマンドを使用します。コマンドは 'Nonadaptive'
か 'Adaptive'
のいずれかに設定できます。
非適応アルゴリズムは、Simulink の前のバージョンとの下位互換性を取るために提供されており、既定の設定です。これはゼロクロッシング イベントを一括りにし、タイム ステップの数を徐々に減らしてゼロクロッシングの発生時間を特定します。非適応アルゴリズムは多くのタイプのシミュレーションに適しますが、高度な「チャタリング」(ゼロクロッシング点周辺の高周波数の振動) が存在する場合、シミュレーション時間が長くなることがあります。
適応アルゴリズムでは囲い込みのオンとオフが動的に切り替わり、次のような場合に適しています。
システムに大量のチャタリングが含まれている。
ゼロクロッシング検出周辺に保護周波数帯 (許容誤差) を指定したい。
適応アルゴリズムは、次のいずれかが満たされた場合、ゼロクロッシングの囲い込みをオフにします (反復を停止) します。
ゼロクロッシング誤差を超えた場合。これは [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインの [信号のしきい値] オプションの指定値によって決定されます。
ZCThreshold
コマンドを使用して設定することもできます。既定の設定はAuto
ですが、許容誤差には 0 よりも大きい任意の実数を入力できます。システムが [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインの [連続的なゼロクロッシングの許可数] オプションで指定された連続ゼロクロッシングの値を超えた場合。これは
MaxConsecutiveZCs
コマンドを使用して設定することもできます。
適応ゼロクロッシング検出の信号しきい値
適応アルゴリズムでは、ゼロクロッシング検出の許容誤差が自動設定されます。または、[コンフィギュレーション パラメーター] の [ソルバー] ペインの [Signal threshold
] プルダウンに 0 以上の実数を入力して許容誤差を設定することもできます。このオプションは、ゼロクロッシング アルゴリズムが [適応
] に設定されている場合にのみアクティブになります。
この図は、信号のしきい値がゼロクロッシング点周辺のウィンドウ領域を設定する状況を示しています。このウィンドウ内に収まる信号はゼロになると見なされます。
ゼロクロッシング イベントは、Tn-1 と Tn のタイム ステップで囲い込まれています。ソルバーは、状態変数が信号のしきい値で設定された帯域内に収まる、または連続ゼロクロッシングの数が [コンフィギュレーション パラメーター] の [ソルバー] ペインの [Number of consecutive zero crossings
] プルダウンの値以上になるまでタイム ステップを繰り返し減らし続けます。
信号のしきい値を増やすことで、実行されるタイム ステップ間の距離が増えることがこの図からわかります。こうするとシミュレーション時間は高速化されますが、精度は低下する可能性があります。