メインコンテンツ

ログ間隔

以下の例では、ログ間隔の指定方法を説明します。Simulink® では、データ ログを指定の間隔に制限します。

モデル例を開く

IterativeCounter プロジェクトを開きます。プロジェクトの起動時に CounterSystem モデルが開きます。

openProject("IterativeCounter");

ライン スタイルを更新するには、モデルを更新します。Simulink ツールストリップの [モデル化] タブで [モデルの更新] をクリックします。ライン スタイルを使用してバスを視覚的に識別できます。あるいは、MATLAB® コマンド ウィンドウで次のコマンドを入力します。

mdl = "CounterSystem";
set_param(mdl,SimulationCommand="update")

Model CounterSystem

ログ間隔の設定

ログ データの量を削減するには、データのログを特定のシミュレーション時間間隔に制限します。この例では、2 つの間隔を指定して、Controls バスの Increment 信号および Reset 信号によってトリガーされる 2 つのシステム イベントのデータのログを作成します。最初の間隔は、最初の Reset イベントを取得します。2 番目の間隔は、Increment イベントが発生して信号が飽和の下限に達した後のシステムの動作を取得します。間隔は、Increment 信号値と Reset 信号値に基づきます。

[ログ間隔] コンフィギュレーション パラメーターを設定するには、Simulink ツールストリップの [モデル化] タブで [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] タブで、[単一のシミュレーション出力] を選択することで [ログ間隔] パラメーターを有効にします。

[ログ間隔] パラメーター値は、2 列の double の実数行列でなければなりません。行列要素に NaN を使用してはなりません。各列は、間隔の開始時間と終了時間を定義します。間隔は互いに重ならず、正しい順序でなければなりません。この例では、[ログ間隔][9,10.5;14.5,30] に設定します。

あるいは、シミュレーションの構成をモデルとは別に保存するには、目的のモデル設定で Simulink.SimulationInput オブジェクトを作成します。

simIn = Simulink.SimulationInput(mdl);
simIn = setModelParameter(simIn,ReturnWorkspaceOutputs="on", ...
    LoggingIntervals="[9,10.5;14.5,30]");

モデルのシミュレーションと結果の表示

Simulink.SimulationInput オブジェクトに保存されている simIn という名前の構成を使用してモデルをシミュレートします。

out = sim(simIn);

ログ間隔は、すべてのログ手法に適用されるわけではありません。たとえば、シミュレーション データ インスペクターにストリーミングされるデータには、指定されたログ間隔は適用されません。

The OuterCount signals plotted in the Simulation Data Inspector.

[ログ間隔] パラメーターは次のようなログ手法に適用されます。

  • 時間、状態、出力のログ

  • 信号のログ

  • To Workspace ブロックを使用して記録されるデータ

  • To File ブロックを使用して記録されるデータ

  • Record ブロックを使用してワークスペースに記録されるデータ

たとえば、信号ログを使用してワークスペースに記録されるデータには、指定されたログ間隔が適用されます。OuterCount は 2 つの要素をもつ幅の広い信号です。信号ログの一部として取得された OuterCount のログの値を表示するには、stem関数を使用します。この関数はデータの内挿設定を無視します。

time = out.get("logsout").get("OuterCount").Values.Time;
data = out.get("logsout").get("OuterCount").Values.Data;
stem(time,data,":.");
xlabel("Simulation Time");
xlim([0 35]);
ylabel("OuterCount");
ylim([0 45]);

Figure contains an axes object. The axes object with xlabel Simulation Time, ylabel OuterCount contains 2 objects of type stem.

参考

トピック