主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ルートレベルの入力端子へのデータの読み込み

データをワークスペースから次のいずれかのブロックを使用してモデル化されたルートレベルの入力端子に読み込むことができます。

  • 轮廓尺寸ブロック

  • 启用ブロック

  • エッジベース(立ち上がり,立ち下がり,または両方)のトリガータイプをもつ触发ブロック

これらのブロックは,[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターの値に基づいたワークスペースからデータをインポートします。

ヒント

多くの信号をルートレベルの入力端子にインポートする場合は,ルート尺寸マッパーツールの使用を検討してください。詳細については,ルート尺寸信号データのマッピングを参照してください。

また,从工作空间ブロックを使用して,ワークスペースからデータをインポートすることができます。詳細は,从工作空间のドキュメンテーションと入力テストケース用データの読み込みを参照してください。

入力データの指定

入力データは[入力]コンフィギュレーションパラメーターを使用して手動で指定できます。ルートレベルの入力端子に多数の信号を読み込む場合は、ルート Inport マッパー ツールを使用を検討してください。これにより、このツールを使用してマップするデータが[入力]パラメーターに自動的に指定されます。詳細については,ルート尺寸マッパーツールを使用したデータのマッピングを参照してください。

  1. [コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターを選択します。

    メモ

    [入力]コンフィギュレーションパラメーターの使用は,ログデータを保存する際の[形式]コンフィギュレーションパラメーターの設定とは無関係です。

  2. 隣のエディットボックスに外部入力仕様を入力して,[適用]をクリックします。指定できるデータの形式の一覧については,入力データの形式を参照してください。

[入力]ボックスに,以下のいずれかの方法で信号入力を指定します。

  • MATLAB®関数(文字列として表現)またはMATLAB式の入力u = UT (t)を使用して,シミュレーションのタイムステップごとに実行時のデータを作成します。

  • 入力データの形式で説明するいずれかの入力データ形式を使用して,直接データを指定します。

コンマ区切りリスト

数据集データを指定する場合,[入力]パラメーターには1つの数据集オブジェクトのみを指定します。このオブジェクトをコンマ区切りのリストに含めないでください。

各変数または式は,モデル内の特定のルートレベルの入力端子に対応した,該当するオブジェクトとして評価されなければなりません。リストの各変数または式は,該当するオブジェクトとして評価されなければなりません。このオブジェクトは,モデルのルートレベルの入力端子のいずれかに対応します。最初の項目は,最初のルートレベルの入力端子に対応し,2番目の項目は,2番目のルートレベルの入力端子に対応します(以下同様)。各データサンプルは入力ブロックパラメーターで指定したデータの次元と一致しなければなりません。

启用または触发ブロックでは,イネーブル端子またはトリガー端子を駆動する信号は,コンマ区切りリストの最後の項目でなければなりません。イネーブル端子とトリガー端子の両方をもつ場合は,以下のように指定します。

  • イネーブル端子をリストの最後から2番目の項目として

  • トリガー端子を最後の項目として

空の行列を使用して,端子に対してグラウンド値を指定します。たとえば,入力端子三机一体およびin3のデータを読み込み,端子in2にグラウンド値を使用して,[入力]パラメーターに次を入力します。

in3 in1, []

入力データの形式

入力データは,次の形式で提供できます。

メモ

読み込む时间表データを指定するとき,时间表には1つの信号のみのデータを含めなければなりません。

バスデータのインポートの詳細については,ルートレベルの入力端子へのバスデータの読み込みを参照してください。

入力パラメーターの時間値

[入力]パラメーターで指定する時間値は,ソルバーが使用する時間を制御しません。ソルバーには時間を伝播するための独自のロジックがあり,任意の時間値で入力データが必要になる場合があります。ルートレベルの入力ブロックの[内挿]パラメーター設定(たとえば,ルートレベルの轮廓尺寸ブロック)は対応するワークスペースデータが存在しないタイムステップでの出力の処理方法を指定します。

[入力]パラメーターに指定する時間値をスパースにすることはできません。また,またはの値を含めることもできません。

データの読み込み

対応する轮廓尺寸启用または触发ブロックに対して[データを内挿する]オプションを選択すると,金宝app仿真软件®は,必要に応じて入力値を線形に内挿または外挿します。

金宝app仿真软件は,記号の解釈の説明のとおりに外部入力仕様で使用される記号を解決します。sim卡コマンドは,プログラミングによるシミュレーションでのみ使用できる一部のデータインポート機能を提供します。

matlab.io.datastore.SimulationDatastoreオブジェクトを要素として含む金宝appSimulink.SimulationData.Datasetオブジェクトを使用する場合,永続ストレージに格納されるデータがファイルからストリーミングされます。詳細については,シミュレーションのためのビッグデータの読み込みを参照してください。

データセットデータのルートレベル入力への読み込み

数据集オブジェクトを[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターの値として使用できます。数据集オブジェクトを1つのみ指定し,コンマ区切りリストには含めないでください。数据集の要素の数は,ルートレベルの入力端子の数と一致しなければなりません。

データセット要素

数据集オブジェクトには,さまざまなデータ型の要素を含めることができます。

個々の非バス信号データでは,数据集要素に対して次のデータ型を指定できます。

  • timeseries

  • 时间表

  • matlab.io.datastore.SimulationDatastore

  • データのベクトルまたは構造体

  • 金宝appSimulink.SimulationData.Signal金宝appSimulink.SimulationData.Stateまたは金宝appSimulink.SimulationData.DataStoreMemoryオブジェクト

  • 次のいずれかの要件を満たす配列

  • 構造体-データ構造体のルートレベル入力への読み込みを参照してください。

バス信号の場合は,次のいずれかの形式を使用して,各リーフ信号のデータ要素をもつ構造体を使用します。

  • MATLABtimeseriesオブジェクト

  • MATLAB时间表オブジェクト

  • matlab.io.datastore.SimulationDatastoreオブジェクト

  • 空行列

  • バスデータの構造体に対するこれらの要件と一致する各信号のデータ要素をもつ別の構造体

メモ

読み込む时间表データを指定するとき,时间表には1つの信号のみのデータを含むことができます。

轮廓尺寸ブロックに数据集オブジェクトを作成

モデル内のルートレベルの轮廓尺寸ブロックから金宝appSimulink.SimulationData.Datasetオブジェクトを生成するには,関数createInputDatasetを使用できます。生成されたデータセットの信号は,モデルの開始時間と停止時間における轮廓尺寸ブロックのプロパティと対応するグラウンド値をもちます。読み込む信号の時間と値のために,timeseriesオブジェクトと时间表オブジェクトを作成できます。他の信号はグラウンド値を使用します。各时间表オブジェクトには1つの信号のみのデータを含めなければなりません。

ワークスペース内に存在するMATLABtimeseriesオブジェクトで指定したルートレベルの入力端子データに読み込むことができます。

メモ

MATLAB時系列データのインポートについて,このドキュメンテーションには,ルートの轮廓尺寸ブロックの例が含まれています。特に指定がない限り,この例はルートレベルの启用ブロック,触发ブロックおよび从工作空间ブロックに適用できます。

MATLAB時系列データのルートレベル入力への読み込み

時間の次元

データを仿金宝app真软件にインポートするMATLABtimeseriesオブジェクトを作成する場合,時間の次元(時間サンプルの数)は信号データの次元とタイプによって異なります。

信号のデータ次元またはデータ型 時間の次元の配置 時系列コンストラクターの例

スカラーまたは1次元ベクトル

1 次

スカラー信号のコンストラクター。時間は最初の次元に整合されます。

t =(0:10)”;Ts = timeseries(sin(t), t);

2次元(行ベクトルと列ベクトルを含む)以上

最後

行列信号のコンストラクター。時間は最後の次元に整合されます。

t = 0;Ts = timeseries([1 2;3 4], t);

2次元行ベクトル,タイムステップが1つだけ存在

最後

“InterpretSingleRowDataAs3D”,真的
以下に例を示します。
t = 0;t = timeseries([1 2],“InterpretSingleRowDataAs3D”,真正的);

Enumデータ

时间表データに枚举を指定する場合,対応する轮廓尺寸ブロックの[データを内挿する]パラメーターをオフにします。

MATLAB时间表データのルートレベル入力への読み込み

一般に,MATLAB时间表データはMATLABtimeseriesデータの読み込みと同じ方法で読み込むことができます。各时间表には1つの信号のみのデータを含めなければなりません。

データ構造体のルートレベル入力への読み込み

データ構造体

ルートレベルの入力端子データをワークスペースから構造体の形で読み込むことができます。この構造体の名前は,[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターで指定します。MATLAB構造体の定義の詳細については、構造体配列を参照してください。

モデルの構造体を全体として,または端子ベースで指定することができます。[入力]パラメーター用の端子単位の構造体の指定の詳細は,すべての端子用の構造体または各端子用の構造体を参照してください。

この構造体には,常に値フィールドと次元フィールドを含む信号のサブ構造体が含まれています。実行するモデリングタスクに応じて,構造体に時間フィールドを含めることができます。使用する構造体の形式は,データをインポートしている以下の信号のタイプによって異なります。

  • 離散信号(信号が時間の等間隔値で定義されている)——空の時間ベクトルをもつ構造体を使用します。サブ構造体の配列を含む信号フィールドを指定し,サブ構造体はそれぞれモデル入力端子に対応しています。

  • 連続信号(信号が時間のすべての値に定義されている)——データが滑らかな曲線(連続)を表すか,データの範囲全体(離散)にわたって不連続(ジャンプする)かによって,方法が異なります。サブ構造体の配列を含む信号フィールドを指定し,サブ構造体はそれぞれモデル入力端子に対応しています。時間ベクトルを含む时间フィールドを指定できます。時間データの指定を参照してください。

離散信号と連続信号のデータをインポートする例については,次を参照してください。

すべての端子用の構造体または各端子用の構造体

モデル内のすべてのルートレベルの入力端子への入力を提供する1つの構造体を指定するか,端子ごとに別々の構造体を指定することができます。

端子別の構造体形式は,各端子に対する独立した時間付き構造体1個または時間なし構造体1個で構成されます。それぞれの入力データ構造体は1つの信号フィールドのみをもちます。このオプションを指定するには,[入力]テキストフィールドに構造体の名前をコンマ区切りリスト三机一体,in2,…,酒店として入力します。値三机一体はモデルの1番目の入力端子用のデータです。in2は2番目の入力端子用で,その後も同様です。

すべての端子に1つの構造体を指定するには,次のようにします。

  • フィールドには,対応する入力端子用の入力の配列を含まなければなりません。時間ベクトルを指定する場合,各入力は时间フィールドで指定した時間値に対応しなければなりません。

    端子の入力がスカラー値またはベクトル値である場合,フィールドはm×n的配列でなければなりません。時間ベクトルを指定する場合,时间フィールドで指定される時間点の数値でなければならず,Nは各ベクトル値の長さです。

    端子の入力が行列(2次元配列)の場合,フィールドは,M x N Tの配列でなければなりません。Nは各行列入力の次元であり,Tは時間点の数です。たとえば,4 行 5 列の行列信号の 51 個の時間サンプルをモデルの入力端子の 1 つに入力するとします。このとき、ワークスペース構造体の対応するフィールドは,5 [4]に等しくなり,配列の次元は4 × 5 × 51になります。

  • フィールドは,入力の次元を指定します。各入力がスカラーまたはベクトル (1 次元配列) 値である場合、フィールドは,ベクトルの長さ(スカラーの場合は1)を指定するスカラー値でなければなりません。各入力が行列(2次元配列)の場合,フィールドは,次の要素をもつ2要素ベクトルでなければなりません。

    • 1番目の要素は行列の行数を指定する

    • 2番目の要素は列数を指定する

    メモ:

    轮廓尺寸ブロックまたは触发ブロックの(端子の次元)パラメーターには,対応する入力構造体のフィールドと同じ値を設定します。値が異なる場合、モデルをシミュレーションしようとするとエラー メッセージが表示されます。

時間データの指定

インポートするデータ構造体の一部として双の時間ベクトルを指定できます。たとえば,信号データをインポートするときに時間ベクトルを指定して、連続プラントを表現したりテスト ケースを作成したりできます。離散アルゴリズムをテストするには、空の時間ベクトルをもつ構造体を使用します。次の表は、読み込む信号データの種類を基にした、時間値の指定に関する追加の推奨事項を示しています。

信号データ 時間データの推奨値

離散サンプル時間のある轮廓尺寸または触发ブロック

時間ベクトルを指定しないでください。金宝app仿真软件はタイムステップごとに1つの信号値を読み込みます。

等間隔離散信号

次の形式の式を使用します。

timeVector = timeStep * [startTime:numSteps-1]'

ベクトルは転置されます。開始時間はタイムステップであるため,必要なステップ数から1を引いた数を指定する必要があります。たとえば,0.2のタイムステップで50個の時間値を指定するには,次のようにします。

T1 = 0.2 * [0:49]'

メモ

次の形式の式を使用”“しないでください。

timeVector =(开始时间:步伐:endTime) '

たとえば,次は使用しないでください。

T2 = (0:0.2:10) '

コンピューターによって使用される倍精度の丸めのため,この時間ベクトルの形式は,タイムステップで乗算される形式(T1)とは等しくありません。金宝app仿真软件は倍精度の丸めのない正確な値を必要とします。T2の形式を使用すると,提供される時間ベクトルと仿金宝app真软件が使用するタイムステップの間で不一致が生じる可能性があり,予期しないシミュレーション結果になる可能性があります。

等間隔ではない値

有効なMATLAB配列式を使用します。たとえば,(1:5 5:10)(1 6 10 15)などです。

从工作空间ブロック,从文件ブロック,信号编辑器ブロックはゼロクロッシング検出をサポートしています。ルートレベルの入力端子がこれらのブロックのいずれかに接続されている場合、重複した時間エントリを使用してゼロクロッシング時間を指定できます。

信号および時間データの指定の例

1番目の例では,単一の入力端子がある次のモデルを検討します。

  1. int8型の2要素信号ベクトルの11個の時間サンプルを読み込む入力構造体を作成します。

    N = 10 Ts = 0.1 a.time = Ts*[0:N]';c1 = int8([0:1:10]”);c2 = int8([0:10:100]”);a.signals(1)。值= [c1 c2]; a.signals(1).dimensions = 2;
  2. [コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターのエディットボックスで,変数一个を指定します。

  3. 轮廓尺寸ブロックのダイアログボックスの[信号属性]タブで,(端子の次元)2に設定し,[データ型)(int8)に設定します。

もう1つの例として,2つの入力のあるモデルを検討します。

1番目の端子に正弦波,2番目の端子に余弦波を入力するとします。MATLABワークスペースに次のような構造体一个を定義します。

a.time = 0.1 * (0:1);a.signals(1)。值= sin(a.time); a.signals(1).dimensions = 1; a.signals(2).values = cos(a.time); a.signals(2).dimensions = 1;

[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターのエディットボックスに構造体名(一个)を入力します。

メモ

このモデルでは,次元とデータ型を指定する必要はありません。これは既定値が1およびであるためです。

データ配列のルートレベル入力への読み込み

ルートレベルの入力端子データは,ワークスペースからデータ配列の形式で読み込むことができます。この形式は,[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターで指定します。

このインポート形式は,データ型の実数(非複素数)行列で構成されます。行列の最初の列は,昇順の時間ベクトルでなければなりません。残りの列は,入力値を指定します。

  • 各列は異なる轮廓尺寸ブロック信号または触发ブロック信号に対する入力を表します(シーケンス順)。

  • 各行は対応する時間点の入力値です。

触发ブロックでは,トリガー端子を駆動する信号は,最後のデータ項目でなければなりません。

入力行列の列の総数は,n + 1と等しくなければなりません。ここで,nはモデルの入力端子に入力する信号の総数です。

入力式の指定

モデルの既定の入力表現は(t, u)であり,既定の入力形式は配列です。tuをMATLABワークスペースで定義する場合,単純に[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターでモデルワークスペースからの入力データを選択します。

2次のつの轮廓尺寸ブロックを含むモデルがあると仮定します。

  • 三机一体ブロックは2つの信号を受け入れます(このブロックでは(端子の次元)パラメーターが2に設定されています)。

  • In2ブロックは1つの信号を受け入れます(このブロックでは(端子の次元)パラメーターに既定値を使用します)。

tuをMATLABワークスペースで定義します。

numSteps = 9;步伐= 0.1;t =(步伐* (0:numSteps)) ';u =[罪(t),因为(t) 4 * cos (t));

シミュレーションを実行すると,信号データ罪(t)cost三机一体に代入され,信号データ4 * costIn2に代入されます。100 個の時間点の信号データが入力されます。

メモ:

配列入力形式では,データ型の実数(非複素数)のスカラーデータまたはベクトルデータのみを読み込むことができます。複素数データ,行列(二次元)データおよび以外のデータ型を入力するには,構造体形式を使用してください。

函数调用子系统を駆動する入力端子の配列

配列を使用して,ルートレベルの入力端子を通して函数调用子系统を駆動することができます。配列または数据集オブジェクトの要素である配列を使用できます。配列はn行1列の配列でなければなりません。ルートレベルの轮廓尺寸ブロックで[関数呼び出しの出力)パラメーターを選択します。

たとえば,次の数据集オブジェクトは配列要素xを含んでいます。

ds = 金宝appSimulink.SimulationData.Dataset;X = [1 3 7 8]';ds = ds.addElement (x,“theElementName”);

このモデルはdsデータセットを[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターで使用します。

このモデルのシミュレーションを実行すると,函数调用子系统のログに記録された信号データの時間値によって,dsに格納されている配列で指定された時間にのみ函数调用子系统がトリガーされたことが示されます。

> > logsout {1} . values。时间ans = 1 3 7 8

MATLAB時間表現のルート入力端子への読み込み

入力式の指定

MATLAB時間表現を使用して,ワークスペースからルートレベルの入力端子にデータを読み込むことができます。時間表現を使用するには,[データのインポート/エクスポート]ペインの[入力]フィールドに文字列で表した表現を一重引用符で囲んで入力します。時間表現は,長さがモデルの入力端子に入力する信号の数と等しい行ベクトルとして評価されるMATLAB式です。1つのモデルに2つの信号を受け入れる1つのベクトル入力があると仮定します。また,timefcnは,長さが2要素の行ベクトルを返すユーザー定義関数であると仮定します。このようなモデルに有効な入力時間表現は次のとおりです。

(3 * sin (t),因为(2 * t)]”“4 * timefcn (w * t) + 7”

この表現は,シミュレーションの各ステップで評価され,結果の値がモデルの入力端子に適用されます。金宝app仿真软件がシミュレーションを実行するときに変数tを定義します。また,変数が 1 つしかない関数の場合、表現の時間変数を省略することができます。たとえば、表現罪(t)と解釈されます。

参考

ブロック

クラス

関連する例

詳細