Microsoft Excel のインポート、エクスポート、ログ形式
シミュレーション データ インスペクターまたは Simulink® Test™ を使用して、Microsoft® Excel® ファイルからデータをインポートしたり、データを Microsoft Excel ファイルにエクスポートすることができます。Playback ブロックを使用して Excel スプレッドシートからモデルにデータを読み込んだり、Record ブロックを使用して Excel ファイルにデータのログを記録したりすることもできます。シミュレーション データ インスペクター、Simulink Test、Playback ブロック、および Record ブロックはすべて同じファイル形式を使用するため、複数のアプリケーションで同じ Microsoft Excel ファイルを使用できます。
ヒント
Excel ファイルのデータの形式がこのトピックの指定に一致しない場合は、独自のファイル リーダーを記述し、io.reader クラスを使用してデータをインポートできます。
標準ファイル形式
最も簡易な形式では、Excel ファイルの最初の行が、ファイル内の信号の名前を示すヘッダーになります。最初の列は時間です。時間列の名前は time にしなければならず、時間値は単調に増加しなければなりません。信号名の下の行には、各タイム ステップに対応する信号値が示されます。

Excel では Inf 値や NaN 値はサポートされません。このことはインポート操作とエクスポート操作の両方に影響します。Excel ファイルからデータをインポートする場合、シミュレーション データ インスペクターでは次のようになります。
組み込みデータ型はすべてサポートされる
time列に空のセルまたは数値エラー (Inf値やNaN値によって生じるものなど) があるデータのインポートはサポートされない信号値の列の空のセルおよび数値エラーを含むセルは欠損データとして扱われる
Inf 値や NaN 値を含むデータをシミュレーション データ インスペクターから Excel にエクスポートするときは、次のようになります。
NaN値はシミュレーション データ インスペクターによって削除され、それらのセルはエクスポートされたスプレッドシートでは空になる。Infは Excel では数値としてネイティブでサポートされないという制限があるため、Infのデータは Excel ソフトウェアのバージョンに応じてエラー コードまたは数値65535のいずれかに Excel によって変換される。
複数の時間ベクトル
データにさまざまな時間ベクトルをもつ信号が含まれている場合は、ファイルに複数の時間ベクトルを含めることができます。すべての時間列の名前を time にしなければなりません。時間列は、次の時間ベクトルまで右側の信号に対するサンプル時間を指定します。たとえば、時間列は最初に signal1 と signal2 の時間を定義し、2 番目に signal3 のタイム ステップを定義します。

信号列は、関連付けられた時間ベクトルと同じ数のデータ点がなければなりません。
信号メタデータ
ファイルには、データ型、単位、内挿法などの信号のメタデータを含めることができます。メタデータは、データのプロット方法、単位およびデータ変換の適用方法、比較結果の計算方法を決定するために使用されます。メタデータが比較でどのように使用されるかの詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。
各信号のメタデータは、信号名と信号データの間の行にリストされます。各信号のメタデータの任意の組み合わせを指定できます。指定したメタデータがない場合、信号を空白セルのままにします。

以下の表に従って各メタデータにラベル付けします。表には、各メタデータをサポートするツールと操作も示します。インポートされたファイルで信号メタデータが指定されない場合、double データ型、zoh (ゼロ次ホールド) 内挿、および union 同期が使用されます。
| 信号プロパティ | ラベル | 値 | シミュレーション データ インスペクターでのインポート | Record ブロックのログおよびシミュレーション データ インスペクターでのエクスポート | Simulink Test でのインポートとエクスポート |
|---|---|---|---|---|---|
| データ型 | Type: | 組み込みデータ型。 | サポートあり | サポートあり | サポートあり |
| 単位 | Unit: | サポートされる単位。たとえば、 サポートされている単位のリストについては、MATLAB® コマンド ラインで | サポートあり | サポートあり | サポートあり |
| 内挿法 | Interp: | linear、zoh (ゼロ次ホールド)、または none。 | サポートあり | サポートあり | サポートあり |
| 同期メソッド | Sync: | union または intersection。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| 相対許容誤差 | RelTol: | 小数で表されるパーセンテージ。たとえば、RelTol: 0.1 は 10% の相対許容誤差を指定します。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| 絶対許容誤差 | AbsTol: | 数値。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| 時間の許容誤差 | TimeTol: | 数値 (秒数)。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| リード許容誤差 | LeadingTol: | 数値 (秒数)。 | サポートあり "Simulink Test にのみ表示できます"。 | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| ラグ許容誤差 | LaggingTol: | 数値 (秒数)。 | サポートあり "Simulink Test にのみ表示できます"。 | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| ブロック パス | BlockPath: | 信号を生成したブロックへのパス。 | サポートあり | サポートあり | サポートあり |
| 端子インデックス | PortIndex: | 整数。 | サポートあり | サポートあり | サポートあり |
| 名前 | Name: | 信号名 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
ユーザー定義データ型
組み込みのデータ型に加え、DataType: ラベルの代わりに他のラベルを使用して、固定小数点データ型、列挙データ型、エイリアス データ型、およびバスデータ型を指定できます。
| データ型 | ラベル | 値 | シミュレーション データ インスペクターでのインポート | Record ブロックのログおよびシミュレーション データ インスペクターでのエクスポート | Simulink Test でのインポートとエクスポート |
|---|---|---|---|---|---|
| 列挙 | Enum: | 列挙クラスの名前。 | サポートあり "列挙クラス定義は MATLAB パス上に保存しなければなりません。" | サポートあり "列挙クラス定義は MATLAB パス上に保存しなければなりません。" | サポートあり "列挙クラス定義は MATLAB パス上に保存しなければなりません。" |
| エイリアス | Alias: | MATLAB ワークスペースでの | サポートあり "行列または複素信号の場合は、最初のチャネルでエイリアスデータ型を指定します。" | サポートなし | サポートあり "行列または複素信号の場合は、最初のチャネルでエイリアスデータ型を指定します。" |
| 固定小数点 | Fixdt: |
| サポートあり | サポートなし | サポートあり |
| バス | Bus: | MATLAB ワークスペースでの | サポートあり | サポートなし | サポートあり |
Simulink.Bus オブジェクトの名前を使用して型を指定し、オブジェクトが MATLAB ワークスペース内にない場合でも、データはファイルからインポートされます。ただし、バス内の個々の信号は、Simulink.Bus オブジェクトで定義されたデータ型ではなく、ファイルに記述されたデータ型を使用します。
複素信号、多次元信号、バス信号
Excel ファイルを使用して、複素信号、多次元信号、バス信号をインポートおよびエクスポートできます。データの列の信号名は、そのデータが複素信号、多次元信号、またはバス信号の一部であるかどうかを示します。Excel ファイルのインポートとエクスポートでは、バスの配列はサポートされません。
メモ
可変サイズの信号をもつ非バーチャル バスのデータを Excel ファイルにエクスポートする場合は、可変サイズの信号データが個々のチャネルに展開され、データの階層構造は失われます。このファイルからインポートしたデータはフラット リストとして返されます。
多次元信号名には、小かっこで囲まれたインデックス情報が含まれます。たとえば、列の信号名は signal1(2,3) などになります。多次元信号データを含むファイルからデータをインポートすると、ファイルに含まれていないデータの要素はゼロのサンプル値を取り、その他の要素と同じデータ型と、実数/複素数が使用されます。
複素信号のデータは常に実数-虚数形式を取ります。複素信号データを含む列の信号名には、各列に含まれるデータを示す (real) および (imag) が含まれます。虚数の信号データを含むファイルからデータをインポートするとき、信号の実数成分の値が指定されていなければ、実数成分の信号値は既定でゼロになります。
多次元信号は、複素数データを含むことができます。信号名には、多次元信号内のインデックスと実数または虚数のタグを示す指標を含みます。たとえば、signal1(1,3)(real) のようになります。
信号名に含まれるドットは、バスの階層を指定します。以下に例を示します。
bus.y.abus.y.bbus.x

ヒント
信号の名前に含まれる文字が、行列、複素信号、またはバスの一部であるかのように表示される場合、Name メタデータ オプションを使用して、Playback ブロック、シミュレーション データ インスペクター、および Simulink Test で使用するためにインポートした信号に名前を指定します。
関数呼び出し信号
最初の時間列の前に列で指定された信号データは、1 つ以上の関数呼び出し信号としてインポートされます。列のデータは、関数呼び出し信号が有効になった時間を指定します。インポートされた信号には、列で指定された時間を表す 1 の値があります。関数呼び出し信号の時間値は double、スカラー、および real でなければならず、単調に増加しなければなりません。
シミュレーション データ インスペクターからデータをエクスポートすると、関数呼び出し信号が他の信号と同じように、時間列と信号値の列を使用して書式設定されます。
シミュレーション パラメーター
シミュレーションで使用されるパラメーター値のデータをインポートできます。Playback ブロックおよびシミュレーション データ インスペクターでは、パラメーター値は信号として表示されます。Simulink Test は、インポートされたパラメーター値を使用して、インポート データに基づいて実行されるテストでそれらのパラメーターの値を指定します。
パラメーター データは 2 つまたは 3 つの列を使用して指定されます。1 つ目の列ではパラメーター名を指定し、その列のヘッダー行のセルには Parameter: というラベルが付いています。2 つ目の列では各パラメーターに使用される値を指定し、ヘッダー行のセルには Value: というラベルが付いています。パラメーター データには、各パラメーターに関連付けられたブロック パスを含む 3 つ目の列も含まれる場合があり、ヘッダー行のセルには BlockPath: のラベルが付いています。信号メタデータを指定するため使用される行の下で、信号データを含む 1 行目以降のパラメーターに名前、値、およびブロック パスを指定します。たとえば、このファイルでは X および Y の 2 つのパラメーターの値が指定されています。

詳細については、Create External Data Files to Use in Test Cases (Simulink Test)を参照してください。
複数の実行
単一のファイルに複数の実行のデータを含めることができます。シート内で、データにシミュレーション番号と Input または Output などのソース タイプのラベルを付けて、データを実行に分割できます。シミュレーション番号にラベル Simulation: およびソース タイプにラベル Source: を使用して、シミュレーション番号とソース タイプを追加の信号メタデータとして指定します。Playback ブロックおよびシミュレーション データ インスペクターは、どの信号が各実行に属するのかを判定するためにのみ、シミュレーション番号とソース タイプを使用します。Simulink Test はこの情報を使用して、インポート データに基づいて実行されるテストの入力、パラメーター、および受入基準を定義します。
すべての信号のシミュレーション番号と出力タイプを指定する必要はありません。シミュレーション番号とソースをもつ信号の右側にある信号は、別のソースまたはシミュレーション番号をもつ次の信号まで同じシミュレーション番号とソースを使用します。たとえば、このファイルでは、2 つのシミュレーション用のデータを定義し、シミュレーション データ インスペクターの 4 つの実行にインポートします。
[実行 1] には
signal1とsignal2が含まれます。[実行 2] には
signal3、X、およびYが含まれます。[実行 3] には
signal4が含まれます。[実行 4] には
signal5が含まれます。

Microsoft Excel ファイル内のシートを使用して、データを実行とテストに分割することもできます。シミュレーション番号とソース情報を指定しない場合、各シート上のデータがシミュレーション データ インスペクターまたは Playback ブロックの個々の実行にインポートされます。シミュレーション データ インスペクターから複数の実行をエクスポートすると、各実行のデータが個別のシートに保存されます。複数のシートにデータがある Microsoft Excel ファイルを Simulink Test にインポートすると、各シートに対して反復が作成されます。
参考
Simulink.sdi.createRun | Simulink.sdi.exportRun