主要内容

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

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

[入力]コンフィギュレーションパラメーターでデータを手動で指定するか,ルート尺寸マッパーツールを使用することで,バスデータを最上位の入力端子にインポートできます。ルート尺寸マッパーツールを使用したバスデータのインポートの詳細については,バスデータのインポートを参照してください。

インポートされたバスデータの要件

バス(バーチャル,非バーチャル,バス配列)データをバスオブジェクトで定義した最上位レベルの入力端子にインポートできます(金宝app仿真软件。公共汽车を参照)。最上位の轮廓尺寸ブロックで,[データ型)[バス]に設定し,バスオブジェクトの名前を指定します。バス信号のデータ値を指定するには,次の構造体を使用します。

  • MATLAB®timeseriesオブジェクト

  • MATLAB时间表オブジェクト

  • timeseriesオブジェクトと时间表オブジェクトの組み合わせ

構造体のフィールドに含めないバス要素は,グラウンド値を使用します。空行列を使用して,グラウンド値を使用するように指定できます。

メモ

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

timeseriesオブジェクトまたは时间表オブジェクト(または両方)の構造体は,以下についてバス要素と一致しなければなりません。

  • 階層

  • 構造体の名前は,バス要素名と一致しなければなりません。timeseriesオブジェクトの的名字プロパティは,バス要素名と一致する必要はありません。

  • データ型

  • 次元

  • 実数/複素数

構造体フィールドの順序は,バス要素の順序と一致する必要はありません。

構造体を数据集オブジェクトの要素として含めることができます。構造体はコンマ区切りのリストで使用できます。コンマ区切りのリストには空の行列を指定できます。空の行列は,バス信号にグラウンド値を使用します。

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

in3 in1, []

バス信号の初期化

初期化データの部分仕様の使用を含む,バス信号を初期化できます。詳細については,バス要素の初期条件の指定を参照してください。

バス配列のデータをルートの轮廓尺寸ブロックにインポートする場合の詳細については,バス配列のデータのインポートを参照してください。

最上位の入力へのバスデータのインポートの制限

ルート尺寸マッパーツールを使用した最上位の轮廓尺寸ブロックへのインポートおよびマッピングを行う信号データには,バスデータを含めることができます。このツールを使用して,バス信号を最上位の启用ブロックまたは触发ブロックにマッピングすることはできません。

エクスターナルモードで入力端子を使用してバスをインポートすることはできません。ラピッドアクセラレータモードでバスデータをインポートするには,数据集形式を使用します。

最上位の尺寸へのバスデータのインポート

このモデルには,范围ブロックに接続された2つの轮廓尺寸ブロックがあります。三机一体ブロックのデータ型は継承(非バスデータ)であり,In2ブロックのデータ型はバスオブジェクトBusObjectによって定義されます。モデルにはBusObjectとそのサブバスBusObject1を読み込むコールバックがあります。

BusObjectバスオブジェクトには以下の2つの要素があります。

  • c

  • s1。2次のつの要素を含む入れ子にされたバスです。

    • 一个

    • b

  1. 模型を開きます。

  2. 非バスデータをインポートするための,三机一体のMATLABtimeseriesオブジェクトを作成します。

    次に例を示します。

    t1 = (1:10) ';d1 =罪(t1);三机一体= timeseries (d1, t1);
  3. MATLABtimeseriesオブジェクト,MATLAB时间表オブジェクト,またはこれらのオブジェクトのタイプの組み合わせで構成できる入力構造体を作成します。グラウンド値を使用しないリーフバス要素ごとに1つのtimeseriesまたは时间表オブジェクトを作成します。この例ではbバス要素のグラウンド値を使用するため,この要素のtimeseriesまたは时间表オブジェクトは必要ありません。

    t2 = (1:5) ';d2 = cos (t2);in2.c = timeseries (d1, t1);in2.s1。一个= timetable(seconds(t2),d2);

    作成したMATLABtimeseriesオブジェクトは,インポートされたバスデータの要件で説明されているように,対応するバス要素と一致しなければなりません。

  4. 数据集オブジェクトを作成し,三机一体およびin2をデータセットに追加します。

    ds = 金宝appSimulink.SimulationData.Dataset;ds = ds.addElement(三机一体,“in1_signal”);ds = ds.addElement (in2,“in2_signal”);
  5. [コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターのエディットボックスに,数据集オブジェクトdsを入力します。

  6. モデルのシミュレーションを実行します。In2に接続された Scope ブロックは、インポートされたバス データを表示します。

バスオブジェクトの情報の取得

バスからtimeseriesオブジェクトの構造体を作成するために必要なMATLABtimeseriesオブジェクトの数とデータ型,実数/複素数,次元を判断するには,以下のメソッドを使用します。

  • 金宝appSimulink.Bus.getNumLeafBusElements

  • 金宝appSimulink.Bus.getLeafBusElements

たとえば,バスオブジェクトBusObjectの場合,以下のようにします。

num_el = BusObject.getNumLeafBusElements
num_el = 3
el_list = BusObject.getLeafBusElements
el_list = 3x1 BusElement数组的属性:Min Max DimensionsMode SampleTime Description Units Name DataType Complexity Dimensions
el_list(1)。维
ans = 1

Timeseriesオブジェクトの構造体のバスからの作成

定義されたtimeseriesオブジェクトがある場合,これを使用して,バスオブジェクトに基づいてtimeseriesオブジェクトの構造体を作成できます。関数金宝appSimulink.SimulationData.createStructOfTimeseriesを使用します。たとえば,timeseriesオブジェクト壹空间ts2およびts3を定義して,バスオブジェクトMyBusObjectを定義している場合,次のコマンドを使用して,timeseriesオブジェクトの構造体を作成できます。

输入= Simu金宝applink.SimulationData.createStructOfTimeseries (...“MyBusObject”, {ts1, ts2, ts3});

细胞配列内のtimeseriesオブジェクトの数は,バスオブジェクト内のリーフ要素の数と一致しなければなりません。各timeseriesオブジェクトのデータ型,次元および実数/複素数は,対応するバスオブジェクトのリーフノードの各属性と一致しなければなりません。

バス配列のデータのインポート

ルート轮廓尺寸ブロックを使用してバス配列のデータをインポート(読み込み)するには,MATLABtimeseriesオブジェクトの構造体の配列を使用します。

メモ

启用触发从工作空间または从文件ブロックを使用して,バス配列のデータをインポートすることはできません。

データのフル仕様

以前のシミュレーションで取得したバス配列の信号のログデータを後続のシミュレーション実行でルートレベルの尺寸へのラウンドトリップ入力として使用できます。ログデータは,轮廓尺寸ブロックのデータのフル仕様に該当します。

MATLABtimeseriesオブジェクトの構造体の配列を作成して,インポートするデータを完全に指定する場合,以下のようにします。

  • バス信号内の信号と同じ順序で構造体のフィールドを指定してください。

  • バス内の信号よりも多くのフィールドを構造体に含めないでください。

    リーフフィールドについては,バス内の対応する信号のデータ型,次元および複雑度と正確に一致させてください。

データの部分的仕様

バス配列の部分データを指定するには,リーフノードでMATLABtimeseriesオブジェクトを使用して構造体のMATLAB配列を作成します。

部分データを指定する目的で作成する構造体は,以下のルールに従わなければなりません。

  • リーフノードやサブ分岐など,フィールドを省略できます。次元も省略できます。フィールドを指定しない場合,金宝app仿真软件®はそのフィールドのグラウンド値を使用します。

  • 入れ子にされたバスのノードについては,バス配列の対応するノードの次元以下に各フィールドの次元を設定します。

この例は,データ型がバスオブジェクトMyBusとして定義されたルート轮廓尺寸ブロックを使用して,インポート対象の部分データを指定する方法を示します。モデル(ex_partial_loading_aob_model)とインポートするデータを定義するMATLABコード(ex_partial_loading_aob_data.m)を開くことができます。

ex_partial_loading_aob_modelのシミュレーションを実行すると,以下が表示されます。

输入轮廓尺寸ブロックは,MyBusバスオブジェクトをデータ型として使用します。

バスのMyBus配列には,MyBus (1)MyBus (2)が含まれます。バス配列に含まれる2つのバスを反映するため,端子の次元は2に設定されて,(非バーチャルバスとして出力)が有効になります。

MyBus (1)MyBus (2)を含む,バス配列の要素を以下に示します。強調色は,データがインポートされるバス配列のノードを強調表示します。

インポートするデータを定義するMATLABコードを以下に示します。コードを強調表示する色は,バス配列の対応するノードの色と一致します。このモデルで使用されたコードを表示するには,MATLABコードファイルex_partial_loading_aob_data.mを開きます。

インポートデータを定義するコードは,以下のように規定されます。

  • timeseriesオブジェクトMyBusValueは,強調表示されたノードのデータを指定します。

  • MyBus (2)timeseriesオブジェクト英国电信は,英国电信がリーフノードに該当するので,対応するバス要素の次元,データ型および複雑度と正確に一致しなければなりません。

  • 構造体は,Y (2)のデータを指定します。Yの入れ子にされた最初のバスと最後のバス(つまり,Y (1)Y (3))は省略できます。

この例では,Y (2)のデータを指定します。Yの入れ子にされた最初のバスと最後のバス(つまり,Y (1)Y (3))は省略できます。

インポートデータのMyBusValue変数を指定したら,[コンフィギュレーションパラメーター][データのインポート/エクスポート][入力]パラメーターをMyBusValueに設定します。

参考

関連するトピック