Main Content

マージされたシミュレーション範囲に対するデータ型の推奨

この例では、固定小数点ツールを使用して、複数のシミュレーションから取得した最小値と最大値に基づいてモデルの小数部の長さを推奨する方法を示します。この例では、ベース ワークスペースまたはモデル ワークスペースで Simulink.SimulationInput オブジェクトを定義して、範囲の収集に使用するシミュレーション シナリオを指定します。固定小数点ツールが 2 つのシミュレーション実行の結果をマージして、マージされた範囲に基づいてデータ型を推奨します。結果をマージすると、完全なシミュレーション範囲全体でモデルをオートスケールできます。

複数のシミュレーション シナリオに基づいてシステムを変換する場合、変換プロセス中に設計対象システムのコンテンツを構造的に変更すると、エラーが発生する場合があります。シミュレーション シナリオを定義するときに、設計対象のシステムに対して次のいずれかの変更を行うことは避けてください。

  • 設計対象のシステムでブロックを追加または削除する

  • 設計対象のシステムに別の入力を追加する

  • 設計対象のシステムでブロック タイプを変更する

モデルの設定

この例は、ex_merge_ranges モデルを使用します。モデルには 1 つの入力正弦波入力と 2 つの代替ノイズ源、帯域幅制限付きホワイト ノイズと一様なランダム ノイズが含まれます。この例では、Simulink.SimulationInput オブジェクトを定義し、Band-Limited White Noise ソースと Random Number 1 ソースを使用して範囲を収集します。マージされたシミュレーション範囲に基づいて、モデルのデータ型を推奨します。

モデルを開きます。

model = 'ex_merge_ranges';
open_system(model);

Simulink.SimulationInput オブジェクトを定義します。最初のオブジェクトは Manual Switch ブロックを Band-Limited White Noise ソースに設定し、2 番目の SimulationInput オブジェクトは Manual Switch ブロックを Random Number ソースに設定します。

simIn(1) = Simulink.SimulationInput(model);
simIn(2) = Simulink.SimulationInput(model);
simIn(1) = simIn(1).setBlockParameter('ex_merge_ranges/Manual Switch', 'sw', '0');
simIn(2) = simIn(2).setBlockParameter('ex_merge_ranges/Manual Switch', 'sw', '1');

固定小数点ツールを開いて、変換するシステムを準備

  1. ex_merge_ranges モデルの [アプリ] ギャラリーで、[固定小数点ツール] を選択します。

  2. 固定小数点ツールで、[新規] をクリックし、[固定小数点の反復的変換] を選択します。

  3. [設計対象のシステム] で、[サブシステム] を選択します。

  4. [範囲の収集モード] で、範囲の収集方法として [シミュレーション範囲] を選択します。

  5. [シミュレーション入力] で、ベース ワークスペースで定義した Simulink.SimulationInput オブジェクトの simIn を選択します。

  6. Subsystem: 1 信号の絶対許容誤差を 0.1 (つまり 10%) に設定します。

  7. ツールストリップで、[準備] ボタンをクリックします。

範囲の収集と固定小数点への変換

  1. [範囲の収集] ボタンの矢印を展開して [倍精度] を選択します。[範囲の収集] をクリックします。

    Simulink®ex_merge_ranges モデルのシミュレーションを 2 回実行します。1 回は Band-Limited White Noise ソース ブロックを使用し、もう 1 回は Random Number ソース ブロックを使用します。

    [ワークフロー ブラウザー] でシミュレーションを選択することで、各シミュレーションの範囲を個別に確認できます。この例で実行する BaselineRun_Scenario_1 のシミュレーションでは、[シミュレーションの最小値] の値は -3.5821[シミュレーションの最大値] の値は 2.7598 です。BaselineRun_Scenario_2 のシミュレーションでは、[シミュレーションの最小値] の値は -2.5317[シミュレーションの最大値] の値は 3.1542 です。

    [ワークフロー ブラウザー]BaselineRun ノードを選択すると、2 つのシミュレーション シナリオからマージした範囲が表示されます。

  2. ツールストリップの [変換] セクションで、[データ型を推定] ボタン をクリックします。

    固定小数点ツールはマージされた最小値と最大値を使用して各ブロックの小数部の長さを推奨します。これらの値によってシミュレーション値の全範囲をスパン中に最高精度を確保できます。ツールのスプレッドシートには推奨されたデータ型が表示されます。

  3. [データ型を適用] ボタン をクリックし、推奨されたデータ型をモデルに書き込みます。

固定小数点の動作の検証

  1. ツールストリップの [検証] セクションで、[組み込み型によるシミュレーション] ボタン をクリックします。固定小数点ツールは、範囲の収集に使用されたのと同じ Simulink.SimulationInput シナリオを使用してモデルをシミュレートし、各シナリオが指定された許容誤差を満たしていたかどうかを検証します。

    [ワークフロー ブラウザー] は、検証実行が許容誤差を満たしていたかどうかを示します。この例では、どちらのシミュレーション シナリオも指定された許容誤差を満たしていました。

  2. 個々の実行のシミュレーション データを表示するには、[ワークフロー ブラウザー] で実行を右クリックします。

関連するトピック