Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Integrator Limited

  • Integrator Limited block

ライブラリ:
Simulink / Continuous

説明

Integrator Limited ブロックは、Integrator ブロックと基本的には同じですが、ブロックの出力が飽和の上限値と下限値で制限される点が異なります。詳細については、積分の制限を参照してください。

Simulink® は、Integrator ブロックを 1 つの状態を有する動的システムとして扱います。このブロックのダイナミクスは次式で与えられます。

{x˙(t)=u(t)y(t)=x(t)   x(t0)=x0

ここで、

  • u はブロックの入力。

  • y はブロックの出力。

  • x はブロックの状態。

  • x0x の初期条件。

これらの式は、連続時間における厳密な関係を定義しますが、Simulink は、数値近似法を用いてこれらの式を有限精度で評価します。Simulink では、それぞれが特定のアプリケーションで利点をもつ複数の異なる数値積分法を使用してブロックの出力を計算することができます。各数値積分法には、アプリケーションに応じた利点があります。[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペイン ([ソルバー] ペインを参照) を使用してアプリケーションに最も適した技法を選択してください。

選択されたソルバーは、(現在の入力値と前のタイム ステップでの状態の値を使用して) 現在のタイム ステップでの Integrator ブロックの出力を計算します。Integrator ブロックはこの計算モデルをサポートするために、次のタイム ステップでのそのブロックの出力を計算するときにソルバーが使用できるように現在のタイム ステップでの当該ブロックの出力を保存します。このブロックはまた、シミュレーションの実行開始時のそのブロックの初期状態を計算するときに使用する初期条件をソルバーに提供します。初期条件の既定値は 0 です。このブロックのパラメーター ダイアログ ボックスでは、初期条件に別の値を指定したり、ブロック上の初期値入力端子を作成したりすることも可能です。

パラメーターのダイアログ ボックスは、以下に使用できます。

  • 積分の上限と下限を定義します。

  • ブロック出力 (状態) を入力の変化に応じて初期値にリセットするための入力を作成します。

  • ブロックの出力値によってブロック リセットをトリガーできるようにオプションの状態出力を作成します。

純粋な離散システムを作成するには、Discrete-Time Integrator ブロックを使用します。

初期条件の定義

初期条件は、このブロックのダイアログ ボックスでパラメーターとして定義するか、または外部信号から入力できます。

  • ブロック パラメーターとして初期条件を定義するには、[初期条件のソース] パラメーターを 内部 として指定し、[初期条件] フィールドに値を入力します。

  • 外部ソースから初期条件を与えるには、[初期条件のソース] パラメーターを [外部] に設定します。ブロックに追加の入力端子が表示されます。

    An Integrator block configured with an initial condition port has two input ports and one output port.

    メモ

    [出力を制限する] パラメーターを選択する場合、初期条件は飽和制限内でなければなりません。初期条件がブロックの飽和制限内にない場合、このブロックはエラー メッセージを表示します。

巡回状態のラッピング

発振器や回転運動を示す機械など、いくつかの物理的な現象は、巡回的、周期的、または回転的な性質をもちます。これらの現象を Simulink ブロック線図でモデル化するには、周期信号または巡回信号の変化率を積分して運動の状態を取得します。このアプローチでは、シミュレーションの時間範囲が長時間であり、周期信号または巡回信号を表す状態が大きい値に積分される可能性があります。これらの信号の正弦や余弦などの三角関数の値の計算には、角度の減少により値が大きくなるほど時間がかかります。信号の値が大きくなると、ソルバーの性能や精度が低下します。

この欠点に対処するアプローチの 1 つは、2π に達したときに角度の状態を 0 に (または数値の対称性の場合は n に達したときに –π に) リセットすることです。このアプローチによって、正弦および余弦の計算の精度が改善され、角度の減少時間が短縮されます。ただし、このアプローチにはゼロクロッシング検出も必要で、ソルバーのリセットが導入されるため、特に大きいモデルでは可変ステップ ソルバーのシミュレーションが低速になります。

ラップ ポイントでのソルバーのリセットを回避するために、Integrator ブロックはラップした状態をサポートします。これはブロックのパラメーターのダイアログ ボックスで [状態のラップ] をオンにして有効にできます。[状態のラップ] を有効にすると、ブロック アイコンが変化し、ブロックがラッピング状態であることを示します。

An Integrator block configured to wrap state values. The block icon is annotated with a circle with arrows.

Integrator ブロックでは、ラップした状態の上限値と下限値のパラメーターで制限したラッピング状態がサポートされます。ラッピング状態を決定するアルゴリズムは、次の式で示されます。

y={xx[xl,xu)x(xuxl)xxlxuxlotherwise

ここで、

  • xl はラッピングした状態の下限値です。

  • xu はラッピングした状態の上限値です。

  • y は出力です。

ラッピング状態のサポートには、以下の利点があります。

  • モデルが大角度および大きな状態値に近づいたときのシミュレーションの不安定性を回避。

  • シミュレーション中にソルバーのリセット数が削減され、ゼロクロッシング検出の必要性がなくなり、シミュレーション時間が向上。

  • 大角度値が回避され、角度状態の三角関数の計算が高速化。

  • ソルバーの精度とパフォーマンスが向上し、無制限なシミュレーション時間が実現。

積分の制限

出力信号を指定した範囲の値に制限するには、[出力を制限する] を選択し、飽和制限を指定します。出力がいずれかの制限に達すると、積分飽和現象を回避するために積分動作が無効になります。シミュレーション中、制限は変更できますが、出力を制限するかどうかは変更できません。ブロックは次の基準に従って出力信号の値を決定します。

  • 積分値が飽和の下限以下の場合、出力信号の値は飽和の下限になります。

  • 積分値が飽和の下限と飽和の上限の間にある場合、出力は積分値になります。

  • 積分値が飽和の上限以上の場合、出力信号の値は飽和の上限になります。

状態が飽和制限によって制限されているかどうかを示す信号を生成するには、[飽和端子の表示] を選択します。ブロックに 2 つ目の出力端子が表示されます。

An Integrator block configured to limit the output and show the saturation port. The block has two output signals: the first is labeled Output and the second is labeled Saturation.

飽和は、次の 3 つの値のいずれかをもちます。

  • 1 — 飽和の上限で状態を制限

  • 0 — 状態の制限なし

  • –1 — 飽和の下限で状態を制限

Integrator ブロックの出力を制限する場合、ブロックに 3 つのゼロクロッシング信号が含まれます。これらの信号により、積分値が飽和の上限を超えたとき、積分値が飽和の下限を下回ったとき、および積分値が飽和した状態から飽和していない状態に変わったときにそれぞれ検出されます。

メモ

既定では、Integrator Limited ブロックに対しては [出力を制限する] パラメーターが有効になり、[飽和の上限] パラメーターの値は 1[飽和の下限] パラメーターの値は 0 に設定されます。

状態のリセット

このブロックは、そのブロックの状態を外部信号に基づいて指定された初期条件にリセットできます。ブロックが状態をリセットするようにするには、[外部リセット] からいずれかを選択します。ブロックの入力端子の下にトリガー端子が表示されて、トリガー タイプを示します。

An integrator block configured to reset the state. The block has two input signals, labeled Input and Reset, and one output signal, labeled Output.

  • [立ち上がり] を選択すると、リセット信号が負の値または 0 から正の値に立ち上がるときに、状態をリセットします。

  • [立ち下がり] を選択すると、リセット信号が正の値から 0 または負の値に立ち下がるときに、状態をリセットします。

  • [両方] を選択すると、リセット信号が 0 から非ゼロ値に、非ゼロ値からゼロに、または符号が変化するときに、状態をリセットします。

  • レベル を選択すると、リセット信号が現在のタイム ステップで非ゼロであるとき、または以前のタイム ステップでの非ゼロから現在のタイム ステップでの 0 まで変化するときに、状態をリセットします。

  • [レベルを保持] を選択すると、リセット信号が現在のタイム ステップで非ゼロであるときに、状態をリセットします。

リセット端子は直達をもちます。ブロック出力がこの端子に (直接に、または直達のある一連のブロックを介して) フィードバックする場合、代数ループが生成されます (代数ループの概念を参照)。Integrator ブロックの状態端子を使用すると、代数ループを生成せずにこのブロックの出力をフィードバックできます。

メモ

Motor Industry Software Reliability Association (MISRA™) ソフトウェア標準規格に準拠するために、モデルで Boolean 信号を使って Integrator ブロックの外部リセット端子を駆動する必要があります。

状態端子について

Integrator ブロックのパラメーター ダイアログ ボックスの [状態端子の表示] チェック ボックスをオンにすると、この Integrator ブロックの上に追加の出力端子 (状態端子) が表示されます。

An integrator block configured to show the state port. The block has one input signal, labeled Input, and two output signals. The state output port is on the top of the block, and the port that provides the output signal value is on the right of the block.

状態端子の出力は、以下のケースを除きこのブロックの標準出力端子の出力と同じです。このブロックが現在のタイム ステップでリセットされた場合、状態端子の出力はそのブロックがまだリセットされていないときのブロックの標準出力値と一致します。状態端子の出力は、そのタイム ステップにおいて、Integer ブロックの出力端子の出力よりも前に出力されます。状態端子を使用すると、次のモデル化のシナリオで代数ループが発生することを避けることができます。

  • 自己リセット積分器を使用するシステム

  • Enabled Subsystem 間での状態の受け渡し

    メモ

    Simulink はモデルを更新するときに、これら 2 つのシナリオのどちらかで状態端子が適用されていることを確認します。適用されていない場合、エラー メッセージが表示されます。また、アクセラレータ モードで実行する参照モデルにおいて、この端子の出力のログを作成することはできません。この端子に対し、ログが有効な場合、Simulink は、参照されるモデルの実行中に「信号が見つかりません」という警告を発生します。

ブロックの出力の絶対許容誤差を指定する

既定では、Simulink ソフトウェアは [コンフィギュレーション パラメーター] ダイアログ ボックスで指定した絶対許容誤差値 (可変ステップ ソルバーの許容誤差を参照) を使用して、Integrator ブロックの出力を計算します。この値で十分なエラー制御を得られない場合は、より適切な値を、Integrator ブロックのダイアログ ボックスの [絶対許容誤差] フィールドに指定します。指定した値は、ブロックのすべての出力を計算するために使用されます。

すべて展開する

Integrator ブロックをブロックの出力値に基づいてリセットする必要がある場合、状態端子を使用して代数ループの作成を回避できます。

モデル SelfResettingIntegratorAlgLoop を開きます。このモデルの Integrator ブロックは、リセット信号が正の値からゼロまたは負の値に変わるとリセットするように構成されています。出力値が 1 に達するたびにブロック自体をリセットするように、現在のブロックの出力値を 1 から減算してリセット信号が作成されます。

mdl = "SelfResettingIntegratorAlgLoop";
open_system(mdl)

The model SelfResettingIntegratorAlgLoop.

リセット端子は直達をもつため、出力信号を使用してリセット信号の値を計算すると代数ループが作成されます。出力信号の値はリセット信号の値に依存しており、その逆も同様になっています。この相互依存により、どちらの値もソフトウェアで計算できません。

モデルをシミュレートしようとすると、代数ループに関する診断が発行されます。モデル内の代数ループを確認するには、関数 Simulink.BlockDiagram.getAlgebraicLoops を使用します。代数ループ ビューアーが開き、モデルに真の代数ループが 1 つあることが示されます。

Simulink.BlockDiagram.getAlgebraicLoops(mdl);

代数ループはモデル内で強調表示されます。

The model SelfResettingIntegratorAlgLoop has the algebraic loop highlighted from the output port through the sum block and into the reset port.

Integrator ブロックは、各タイム ステップで出力値より先に状態値を計算します。出力値より先に状態値を使用できるため、状態値を使用することで、代数ループを作成することなく自己リセット Integrator ブロックを作成できます。

この解決法を確認するには、モデル SelfResettingIntegrator を開きます。Integrator ブロックで状態端子が有効になっています。リセット信号の値の計算に出力信号を使用する代わりに、このモデルでは状態値が使用されています。

mdl2 = "SelfResettingIntegrator";
open_system(mdl2)

The model SelfResettingIntegrator..

出力の代わりに状態を使用することで代数ループが解消されたことを確認するには、関数 Simulink.BlockDiagram.getAlgebraicLoops をもう一度呼び出します。

Simulink.BlockDiagram.getAlgebraicLoops(mdl2);
No algebraic loops were found.

自己リセット積分器の動作を確認するには、モデルをシミュレートします。

simOut = sim(mdl2);

出力信号とリセット信号をスコープで確認するには、Scope ブロックをダブルクリックします。Integrator ブロックの出力信号は 01 の値の間で振動します。リセット信号の値が 0 になるたびに、出力値が 0 にリセットされています。

The Scope window displays the output and reset signals.

Enabled Subsystem にある Integrator ブロックで別の Enabled Subsystem にある Integrator ブロックの状態を使用する必要がある場合、状態端子を使用して代数ループの作成を回避できます。

モデル EnabledSubsystemStatesAlgLoop を開きます。このモデルには AB の 2 つの Enabled Subsystem が含まれています。各サブシステムへの 1 番目の入力は Constant ブロックから提供されます。サブシステム B のもう 1 つの入力はサブシステム A からの出力です。サブシステム A のもう 1 つの入力はサブシステム B からの出力です。どちらのサブシステムも、Pulse ブロックからイネーブル信号が提供されます。サブシステム B は Pulse ブロックによって直接有効化されます。サブシステム A のイネーブル信号は、Pulse ブロックの出力を Logical Operator ブロックを使用して反転させて作成されます。そのため、Pulse ブロックの出力の値が変わると、Enabled Subsystem の実行がサブシステム A とサブシステム B の間で切り替わります。

mdl = "EnabledSubsystemStatesAlgLoop";
open_system(mdl);

The model EnabledSubsystemStatesAlgLoop.

それぞれの Enabled Subsystem に、入力端子を使用してブロックの初期条件を提供する Integrator ブロックがあります。各サブシステムの Enable ブロックは、そのサブシステムが実行されるたびに状態をリセットするように構成されています。Integrator ブロックの状態がリセットされると、他方のサブシステム内の Integrator ブロックの出力に接続された初期条件入力端子から初期値が取得されます。サブシステムから別のサブシステムに状態を渡すことで、サブシステム間で実行を切り替えながら信号の連続的な積分が可能です。

The contents of subsystem A and subsystem B are shown side by side with a dotted line dividing them.

ただし、ソルバーでサブシステム B の出力値を計算するにはサブシステム A からの出力が必要であり、その逆も同様です。一方の Integrator ブロックの出力をもう一方の Integrator ブロックの入力に接続すると、代数ループが作成されます。モデル内のループを確認するには、関数 Simulink.BlockDiagram.getAlgebraicLoops を使用します。代数ループ ビューアーが開き、モデルに真の代数ループが 1 つあることが示されます。

Simulink.BlockDiagram.getAlgebraicLoops(mdl);

代数ループはモデル内で強調表示されます。

The model EnabledSubsystemStatesAlgLoop has the algebraic loop highlighted.

この代数ループの作成を回避するには、出力端子の代わりに状態端子を使用して、一方のサブシステムの Integrator ブロックの状態をもう一方のサブシステムの Integrator ブロックの初期条件に渡します。ソルバーは各タイム ステップでブロックの状態値を先に計算するため、サブシステム B の出力がサブシステム A からの出力に依存しなくなり、その逆も同様になります。

この解決法を確認するには、モデル EnabledSubsystemStates を開きます。入力信号、イネーブル信号、出力信号は同じですが、サブシステム A からの出力がサブシステム B の 2 番目の入力でなくなり、その逆も同様になっています。

mdl2 = "EnabledSubsystemStates";
open_system(mdl2)

The model EnabledSubsystemStates

Integrator ブロックの状態端子を Enabled Subsystem の出力端子に接続することはサポートされていません。グローバルの可視性をもつ GoTo ブロックと From ブロックを使用して、サブシステム A の Integrator ブロックの状態端子がサブシステム B の Integrator ブロックの初期条件端子に接続されています。同じ手法を使用して、サブシステム B の Integrator ブロックの状態端子がサブシステム A の Integrator ブロックの初期条件端子に接続されています。

The contents of subsystem A and subsystem B displayed side by side, divided by a dotted line and labeled with an A and a B.

状態端子を使用することで代数ループが解決されたことを確認するには、関数 Simulink.BlockDiagram.getAlgebraicLoops をもう一度使用します。

Simulink.BlockDiagram.getAlgebraicLoops(mdl2);
No algebraic loops were found.

モデルをシミュレートします。結果を確認するには、Scope ブロックをダブルクリックします。スコープ ウィンドウに、イネーブル信号と各サブシステムからの出力信号が表示されます。

out = sim(mdl2);

The Scope window displays traces for the three signals.

状態値を Enabled Subsystem 間で渡すシステムの別の例については、クラッチ ロックアップ モデルの作成を参照してください。

拡張例

端子

入力

すべて展開する

統合する必要のある信号。

データ型: double

外部信号に基づいて指定された初期条件に状態をリセットします。状態のリセットを参照してください。

依存関係

この端子を有効にするには、[外部リセット] パラメーターを有効にします。

データ型: Boolean

外部信号からブロックの状態の初期条件を設定します。

依存関係

この端子を有効にするには、[初期条件] パラメーターを [外部] に設定にします。

データ型: double

出力

すべて展開する

統合された状態を出力します。

データ型: double

状態が制限されていることを示します。指定された [飽和の上限] で積分が制限されている場合、信号には 1 の値があります。信号が [飽和の下限] で制限されている場合、信号の値は -1 です。積分値が飽和の制限内にある場合、信号値は 0 です。積分の制限を参照してください。

データ型: double

ブロックの状態を出力します。状態端子についてを参照してください。

依存関係

[状態端子の表示] パラメーターを有効にして、この端子を有効にします。

データ型: double

パラメーター

すべて展開する

外部リセット信号で使用するトリガーのタイプを指定します。

  • [立ち上がり] を選択すると、リセット信号が負または 0 の値から正の値に立ち上がるとき、あるいは負の値から 0 の値に立ち上がるときに状態をリセットします。

  • [立ち下がり] を選択すると、リセット信号が正の値から 0 または負の値に立ち下がるとき、あるいは 0 の値から負の値に立ち下がるときに状態をリセットします。

  • [両方] を選択すると、リセット信号が 0 から非ゼロ値に、非ゼロ値からゼロに、または符号が変化するときに、状態をリセットします。

  • レベル を選択すると、リセット信号が現在のタイム ステップで非ゼロであるとき、または以前のタイム ステップでの非ゼロから現在のタイム ステップでの 0 まで変化するときに、状態をリセットします。

  • [レベルを保持] を選択すると、リセット信号が現在のタイム ステップで非ゼロであるときに、状態をリセットします。

プログラムでの使用

ブロック パラメーター: ExternalReset
型: 文字ベクトル、string
値: 'none' | 'rising' | 'falling' | 'either' | 'level' | 'level hold'
既定の設定: 'none'

初期条件のソースを選択します。

  • 内部[初期条件] パラメーターから状態の初期条件を取得します。

  • 外部 — 外部信号から状態の初期条件を取得します。このオプションを選択すると、ブロックに入力端子が表示されます。

プログラムでの使用

ブロック パラメーター: InitialConditionSource
型: 文字ベクトル、string
値: 'internal' | 'external'
既定の設定: 'internal'

Integrator ブロックの初期状態を設定します。

ヒント

Simulink ソフトウェアでは、このブロックの初期状態を、inf または NaN にすることはできません。

依存関係

[初期条件のソース] を [内部] に設定すると、このパラメーターが有効になります。

[初期条件のソース] を [外部] に設定すると、このパラメーターが無効になります。

プログラムでの使用

ブロック パラメーター: InitialCondition
タイプ: スカラーまたはベクトル
既定の設定: '0'

ブロックの出力が [飽和の下限] パラメーターと [飽和の上限] パラメーターの間の値に制限されます。

  • このチェック ボックスをオンにすると、ブロックの出力が [飽和の下限] パラメーターと [飽和の上限] パラメーターの間の値に制限されます。

  • このチェック ボックスをオフにするとブロックの出力値は制限されません。

依存関係

このパラメーターを選択すると、[飽和の下限] パラメーターと [飽和の上限] パラメーターが有効になります。

プログラムでの使用

ブロック パラメーター: LimitOutput
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

積分の上限をスカラー、ベクトル、または行列として指定します。[出力の最小値] パラメーター値と [出力の最大値] パラメーター値の間の値を指定しなければなりません。

依存関係

このパラメーターを有効にするには、[出力を制限する] チェック ボックスをオンにします。

プログラムでの使用

ブロック パラメーター: UpperSaturationLimit
型: 文字ベクトル、string
値: スカラー | ベクトル | 行列
既定の設定: 'inf'

積分の下限をスカラー、ベクトル、または行列として指定します。[出力の最小値] パラメーター値と [出力の最大値] パラメーター値の間の値を指定しなければなりません。

依存関係

このパラメーターを有効にするには、[出力を制限する] チェック ボックスをオンにします。

プログラムでの使用

ブロック パラメーター: LowerSaturationLimit
型: 文字ベクトル、string
値: スカラー | ベクトル | 行列
既定の設定: '-inf'

[ラップした状態の上限値] パラメーターから [ラップした状態の下限値] パラメーターまでの状態のラッピングを有効にします。状態のラップを有効にすると、ゼロクロッシング検出が必要なくなり、ソルバーのリセットが削減され、ソルバーのパフォーマンスと精度が向上し、回転および巡回状態軌跡のモデリング時のシミュレーションの時間範囲を増やすことができます。

[ラップした状態の上限値]inf[ラップした状態の下限値]-inf に指定すると、ラッピングは実行されません。

依存関係

このパラメーターを選択すると、[ラップした状態の上限値] パラメーターと [ラップした状態の下限値] パラメーターが有効になります。

プログラムでの使用

ブロック パラメーター: WrapState
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

ブロック出力の上限。

依存関係

このパラメーターは [状態のラップ] を選択すると有効になります。

プログラムでの使用

ブロック パラメーター: WrappedStateUpperValue
タイプ: スカラーまたはベクトル
値: '2*pi'
既定の設定: 'pi'

ブロック出力の下限を指定します。

依存関係

このパラメーターは [状態のラップ] を選択すると有効になります。

プログラムでの使用

ブロック パラメーター: WrappedStateLowerValue
タイプ: スカラーまたはベクトル
値: '0'
既定の設定: '-pi'

このチェック ボックスをオンにして、ブロックに飽和出力端子を追加します。このチェック ボックスをオフにすると、ブロックは飽和出力端子をもちません。

依存関係

このパラメーターを選択すると、飽和出力端子が有効になります。

プログラムでの使用

ブロック パラメーター: ShowSaturationPort
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

このチェック ボックスをオンにして、ブロックに状態出力端子を追加します。このチェック ボックスをオフにすると、ブロックは状態出力端子をもちません。

依存関係

このパラメーターを選択すると、状態出力端子が有効になります。

プログラムでの使用

ブロック パラメーター: ShowStatePort
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'
  • auto または –1 を入力した場合、Simulink は [コンフィギュレーション パラメーター] ダイアログ ボックス ([ソルバー] ペインを参照) の絶対許容誤差の値を使用してブロックの状態を計算します。

  • 実数のスカラーを入力した場合、ブロックの状態計算における [コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差は、この値でオーバーライドされます。

  • 実数のベクトルを入力した場合、ベクトルの次元はブロックの連続状態の次元と一致していなければなりません。[コンフィギュレーション パラメーター] ダイアログ ボックスの絶対許容誤差は、これらの値でオーバーライドされます。

プログラムでの使用

ブロック パラメーター: AbsoluteTolerance
型: 文字ベクトル、string、スカラー、ベクトル
値: 'auto' | '-1' | 任意の正の実数のスカラーまたはベクトル
既定の設定: 'auto'

このパラメーターを選択すると、線形化時にこのブロックのリセットと制限のパラメーターが無視され、それらのパラメーターに既定値が使用されます。

ヒント

このパラメーターは、積分器がリセットされるか飽和する操作点の周りでモデルを線形化する場合に有効にします。

プログラムでの使用

ブロック パラメーター: IgnoreLimit
型: 文字ベクトル | string
値: 'off' | 'on'
既定の設定: 'off'

ゼロクロッシング検出を有効にする場合は選択します。詳細については、ゼロクロッシング検出を参照してください。

プログラムでの使用

ブロック パラメーター: ZeroCross
: 文字ベクトル | string
: 'off' | 'on'
既定の設定: 'on'
  • 単一の状態に名前を割り当てる場合は、'velocity' のように一重引用符で囲んで名前を入力します。

  • 複数の状態に名前を割り当てる場合は、中かっこ内にコンマで区切って入力します。たとえば、{'a', 'b', 'c'} のようにします。各名前は固有でなければなりません。

  • 状態名は選択されたブロックに対してのみ適用されます。

  • 状態の数は状態名の数で割り切れなければなりません。

  • 指定する名前の数は状態の数より少なくできますが、その逆はできません。

    たとえば、4 つの状態を含むシステムで 2 つの名前を指定することは可能です。最初の名前は最初の 2 つの状態に適用され、2 番目の名前は最後の 2 つの状態に適用されます。

  • MATLAB® ワークスペース内の変数を状態名に割り当てる場合は、引用符なしで変数を入力します。変数には文字ベクトル、string、cell 配列、構造体が使用できます。

プログラムでの使用

ブロック パラメーター: ContinuousStateAttributes
型: 文字ベクトル、string
値: ' ' | ユーザー定義
既定の設定: ' '

ブロックの特性

データ型

double

直達

はいa

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

はい

a このブロックの端子には異なる直達特性があります。

拡張機能

バージョン履歴

R2006a より前に導入