主要内容

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

从电子表格

スプレッドシートからのデータの読み取り

  • ライブラリ:
  • 金宝app模型/来源

  • 从电子表格块

説明

从电子表格ブロックは微软®Excel®(すべてのプラットフォーム)またはCSV (微软办公软件のみインストールされたMicrosoft Windows®プラットフォーム)スプレッドシートからデータを読み取り,データを信号として出力します。从电子表格ブロックではMicrosoft Excelスプレッドシートのチャートはサポートされません。

从电子表格アイコンには,ブロックの[ファイル名)および[シート名)パラメーターで指定されたスプレッドシートのファイル名とシート名が表示されます。

格納形式

从电子表格ブロックがスプレッドシートから読み取るデータは,適切な形式でなければなりません。

Microsoft Excelスプレッドシートの場合

  • 从电子表格ブロックは最初の行を信号名と解釈します。信号名を指定しないと,从电子表格ブロックは信号の形式の既定の信号名を割り当てます。ここでは,無名の信号が追加されるたびにインクリメントする値です。

  • 从电子表格ブロックは,最初の列を時間として解釈します。この列では,時間値が単調増加しなければなりません。

  • 从电子表格ブロックは,残りの列を信号として解釈します。

この例は,正しい形式のMicrosoft Excelスプレッドシートを示しています。最初の列は時間で1行目には信号名が含まれます。各ワークシートに1つの信号グループが含まれます。

CSVテキストファイルの場合(微软办公软件のみがインストールされた微软プラットフォーム):

  • 从电子表格ブロックは,最初の列を時間として解釈します。この列では,時間値が増加しなければなりません。

  • 从电子表格ブロックは,残りの列を信号として解釈します。

  • 各列には,同じ数の項目が含まれなければなりません。

  • 从电子表格ブロックは,各ファイルを1つの信号グループとして解釈します。

この例は,正しい形式のCSVファイルを示しています。内容は1つの信号グループを表しています。

5 0, 0, 0, 0 - 1, 0, 1, 5 0 2 0, 1, 5 0 3 0, 1, 5 0 4、5、1、5 0 5、5、1、5、5、1 0 6日5 0 7,0、1、5、8 0,0,1,5,1 9 0,1、5、10 1,0,1,5 0

シミュレーション時のブロックの動作

从电子表格ブロックは,シミュレーション中にスプレッドシートからデータをインクリメンタルに読み取ります。

[サンプル時間]パラメーターは,从电子表格ブロックがスプレッドシートからデータを読み取るために使用するサンプル時間を指定します。詳細については,パラメーターを参照してください。ファイルのタイムスタンプは単調非減少でなければなりません。

一致するタイムスタンプがスプレッドシートに含まれないシミュレーション時間ヒットごとに仿真金宝app软件®ソフトウェアによって内挿または外挿が行われ,選択した方法を使って必要なデータが得られます。詳細については,対応するスプレッドシートタイムスタンプがない場合のシミュレーション時間ヒットを参照してください。

対応するスプレッドシートタイムスタンプがない場合のシミュレーション時間ヒット

シミュレーション時間ヒットに対応するスプレッドシートのタイムスタンプがない場合,从电子表格ブロックの出力は次の条件によって異なります。

  • シミュレーション時間ヒットが最初のタイムスタンプより前,最初と最後のタイムスタンプの間,最後のタイムスタンプより後のいずれであるか

  • 選択した内挿法または外挿法

  • スプレッドシートデータのデータ型

内挿オプションおよび外挿オプションの詳細については,次のパラメーターの説明を参照してください。

スプレッドシートで2つ以上のデータ値が同一のタイムスタンプになることがあります。そのような場合,从电子表格ブロックのアクションはスプレッドシートの重複するタイムスタンプに対するシミュレーション時間ヒットのタイミングで決まります。

たとえば,スプレッドシートに次のデータが含まれているとします。3つのデータ値に,2のタイムスタンプ値が含まれています。

时间戳:02 2 23 4数据值:26 4 91 5

次の表で,从电子表格ブロックの出力を説明します。

シミュレーション時間,スプレッドシートでの重複するタイムスタンプとの位置関係 从电子表格ブロックのアクション
重複するタイムスタンプの前

タイムスタンプが異なる場合と同じアクションを実行する。最初の重複するタイムスタンプ値を内挿の基礎として使用する(この例では,タイムスタンプの値は6)。

重複するタイムスタンプと同じ位置かその後

タイムスタンプが異なる場合と同じアクションを実行する。最後の重複するタイム スタンプ値を内挿の基礎として使用する(この例では、そのタイム スタンプの値は9)。

端子

出力

すべて展開する

指定したスプレッドシートからのインクリメンタルなデータ。

[サンプル時間]パラメーターは,从电子表格ブロックがスプレッドシートからデータを読み取るために使用するサンプル時間を指定します。詳細については,パラメーターを参照してください。ファイルのタイムスタンプは単調非減少でなければなりません。

一致するタイムスタンプがスプレッドシートに含まれないシミュレーション時間ヒットごとに仿真金宝app软件ソフトウェアによって内挿または外挿が行われ,選択した方法を使って必要なデータが得られます。詳細については,対応するスプレッドシートタイムスタンプがない場合のシミュレーション時間ヒットを参照してください。

从电子表格ブロックは,ブロックレベルでのデータ型の指定を受け入れます。信号ごとに異なるデータ型を指定する場合は,(出力データ型)(继承:汽车)を選択することを検討してください。このオプションでは,逆伝播を使用して信号のデータ型を元に戻します。たとえば,从电子表格ブロック内にIn1とIn2の2つの信号があり,このブロックがint8データ型と布尔データ型をもつ端子にその信号を送信するとします。逆伝播により,ブロックはIn1をint8として,In2を布尔として再キャストします。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举

パラメーター

すべて展開する

スプレッドシートファイルの絶対パスとファイル名を,拡張子を含めて入力します。ファイル拡張子を含めないと,ブロックは拡張子を.xlsxと仮定します。

このブロックは,微软プラットフォームでのみ英語以外の絶対パスとファイル名をサポートします。

プログラムでの使用

ブロックパラメーター文件名
:文字ベクトル
:絶対パスとファイル名
既定の設定:“untitled.xlsx”

スプレッドシートにシートの名前を入力します。このエディットボックスにシート名を入力するか,シートを開いてからシート名を選択します。

スプレッドシートがCSV形式である場合,ブロックによってこのパラメーターにCSVファイルの名前(拡張子なし)が設定されます。この値は変更しないでください。

シートを開くには,をクリックします。シートでは,目的の値の範囲をドラッグしてデータの範囲を選択できます。

あるいは,[範囲]パラメーターで値の範囲を指定して,データの範囲を選択できます。

プログラムでの使用

ブロックパラメーターSheetName
:文字ベクトル
:シート名
既定の設定:“Sheet1”

範囲を指定するには,形式を使用して,複数の指定をコンマで区切ります。たとえば,A1: B3, D1: D3, A7: B9, D7: D9とします。指定しない場合,または空の場合,ブロックは使用されている範囲,すなわちシート内のすべてのデータを自動的に検出します。

選択がオーバーラップする場合,ブロックは選択情報を適切に解決します。たとえば,A1: B4, B1: E7のようにオーバーラップする複数の範囲を指定している場合,ブロックはA1からE7までの選択(A1とE7も含む)と解決します。

[範囲]パラメーターの使用に代わる代替方法は,をクリックしてシートを開くことです。シートでは,目的の値の範囲をドラッグしてデータの範囲を選択できます。

プログラムでの使用

ブロックパラメーター范围
:文字ベクトル
:セル範囲
既定の設定:''

从电子表格ブロック出力のデータ型。从电子表格ブロックは,多くのデータ型を含むスプレッドシートを受け入れます。ただし,ブロックはスプレッドシートのデータ型を双として読み取ります。その後,(出力データ型)の値に従ってデータ型を出力します。

信号ごとに異なるデータ型を指定する場合は,(出力データ型)(继承:汽车)を選択することを検討してください。このオプションでは,逆伝播を使用して信号のデータ型を元に戻します。たとえば,从电子表格ブロック内にIn1とIn2の2つの信号があり,このブロックがint8データ型と布尔データ型をもつ端子にその信号を送信するとします。逆伝播により,ブロックはIn1をint8として,In2を布尔として再キャストします。

ブロックが受信ブロックの出力データ型と一致するように出力データ型のキャストを可能にするには,(继承:汽车)を使用します。

詳細については,信号のデータ型の制御を参照してください。

プログラムでの使用

ブロックパラメーターOutDataTypeStr
:文字ベクトル
'继承:auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: ' | ''
既定の設定:“继承:汽车”

スプレッドシートの最初の列をブロックでどのように扱うかを選択します。

  • 時間——最初の列を時間として扱います。

  • データ——最初の列をデータとして扱います。

依存関係

[データ]を選択すると,このブロックでは次が無効になります。

  • 最初のデータ点前のデータ外挿

  • 時間範囲内のデータ内挿

  • 最後のデータ点後のデータ外挿

また,次が有効になります。

  • 最後のデータ点後の出力

プログラムでの使用

ブロックパラメーターTreatFirstColumnAs
:文字ベクトル
“时间”|“数据”
既定の設定:“时间”

サンプリング周期とオフセット。

从电子表格ブロックは,次のいずれかのサンプル時間を使用してスプレッドシートからデータを読み取ります。

  • 从电子表格ブロックに対して指定したサンプル時間

  • 从电子表格ブロックがデータのフィード先のブロックから継承したサンプル時間

既定値は0で,これは連続サンプル時間の指定となります。スプレッドシートはモデルの基本レート (最速) で読み取られます。詳細については、サンプル時間の指定を参照してください。

プログラムでの使用

パラメーター:SampleTime
型:文字ベクトル
値:スカラー|ベクトル
既定の設定:' 0 '

金宝app仿真软件がスプレッドシートの最初のタイムスタンプ前のシミュレーション時間ヒットに使用する外挿法。次のいずれかの外挿法を選択します。

メソッド 説明
線形外挿

(既定)

スプレッドシートにサンプルが1つしか含まれていない場合,从电子表格ブロックは対応するデータ値を出力します。

スプレッドシートに1つを超えるサンプルが含まれる場合,从电子表格ブロックは最初の2つのサンプルを使用して次のように線形外挿を実行します。

  • データの場合,最初の2つのサンプルを使用して値を線形外挿します

  • 布尔データの場合,最初のデータ値を出力します

  • または布尔以外の組み込みデータ型の場合は次のようになります。

    • データをにアップキャストする

    • 線形外挿を実行する(データの説明を参照)

    • 外挿データ値を元のデータ型にダウンキャストする

列挙型 (枚举)データでは,[線形外挿]オプションは使用できません。

最初の値をホールド

ファイル内の最初のデータ値を使用します

グラウンド値

スプレッドシートのサンプルデータ値のデータ型によって異なる値を使用します。

  • 固定小数点データ型——グラウンド値を使用します

  • 固定小数点以外の数値型-0を使用します

  • 布尔- - - - - -を使用します

  • 列挙データ型——既定値を使用します

依存関係

このパラメーターを有効にするには,(最初の列の扱い][時間]に設定します。

プログラムでの使用

パラメーター:ExtrapolationBeforeFirstDataPoint
型:文字ベクトル
値:'线性外推' | '保持第一值' | '底值'
既定の設定:线性外推的

金宝app仿真软件がスプレッドシートの2つのタイムスタンプ間のシミュレーション時間ヒットに使用する内挿法。次の内挿法のいずれかを選択します。

メソッド 説明
線形内挿

(既定)

从电子表格ブロックは2つの対応するスプレッドシートサンプルを使用して内挿します。

  • データの場合2つの対応するサンプルを使用して値を線形内挿します

  • 布尔データの場合,シミュレーション時間が異なる値を持つ2つのスプレッドシートデータ点の間にある場合,从电子表格ブロックはスプレッドシートデータ点の中間に値の遷移を配置します。たとえば,スプレッドシートデータがtrue から false に遷移する場合、从电子表格データは,スプレッドシートデータ点の間隔の前半にあるシミュレーション時間に対して出力値真正を提供します。間隔の後半にあるシミュレーション時間に対して出力値假を提供します。

  • または布尔以外の組み込みデータ型の場合は次のようになります。

    • データをにアップキャストする

    • 線形内挿を実行する(データの説明を参照)

    • 内挿値を元のデータ型にダウンキャストする

列挙型 (枚举)データでは,[線形内挿]オプションは使用できません。

ゼロ次ホールド

2つのサンプルのうち最初のサンプルのデータを使用します

依存関係

このパラメーターを有効にするには,(最初の列の扱い][時間]に設定します。

プログラムでの使用

パラメーター:InterpolationWithinTimeRange
型:文字ベクトル
値:'线性插值' | '零阶保持'
既定の設定:线性插值的

金宝app仿真软件がスプレッドシートの最後のタイムスタンプ後のシミュレーション時間ヒットに使用する外挿法。次の外挿法のいずれかを選択します。

メソッド 説明
線形外挿

(既定)

スプレッドシートにサンプルが1つしか含まれていない場合,从电子表格ブロックは対応するデータ値を出力します。

スプレッドシートに1つを超えるサンプルが含まれる場合,从电子表格ブロックは最後の2つのサンプルのデータ値を使用して線形外挿を実行します。

  • データの場合,最後の2つのサンプルを使用して値を線形外挿します

  • 布尔データの場合,最後のデータ値を出力します

  • または布尔以外の組み込みデータ型の場合は次のようになります。

    • データをにアップキャストする。

    • 線形外挿を実行する(データの説明を参照)。

    • 外挿値を元のデータ型にダウンキャストする。

列挙型 (枚举)データでは,[線形外挿]オプションは使用できません。

最後の値をホールド

ファイル内の最後のデータ値を使用します

グラウンド値

スプレッドシートのサンプルデータ値のデータ型によって異なる値を使用します。

  • 固定小数点データ型——グラウンド値を使用します

  • 固定小数点以外の数値型-0を使用します

  • 布尔- - - - - -を使用します

  • 列挙データ型——既定値を使用します

依存関係

このパラメーターを有効にするには,(最初の列の扱い][時間]に設定します。

プログラムでの使用

パラメーター:ExtrapolationAfterLastDataPoint
型:文字ベクトル
値:'线性外推' | '保持最后值' | '底值'
既定の設定:线性外推的

最後のデータ点後のアクションを選択します。

  • 反復列- - - - - -[範囲]で指定した範囲の最初の行からデータを読み取ることで,シーケンスを繰り返します。

  • 最終値をホールド-残りのシミュレーションで最後に定義した値を出力します。

  • グラウンド値- - - - - -(出力データ型)で指定したデータ型の値に応じたグラウンド値を出力します。

依存関係

このパラメーターを有効にするには,(最初の列の扱い][データ]に設定します。

プログラムでの使用

パラメーター:OutputAfterLastPoint
型:文字ベクトル
値:'重复序列' | '保持最终值' | '接地值'
既定の設定:重复序列的

ゼロクロッシング検出を有効にする場合は選択します。

ゼロクロッシング検出パラメーターは,サンプル時間パラメーターが0(連続)に設定されている場合のみ適用されます。

金宝app仿真软件はゼロクロッシング検出という手法を使用して,過度に小さいタイムステップを取ることなくタイムスタンプの不連続点を特定します。このコンテキストでは,ゼロクロッシングは不連続点を表すために使用されます。

从电子表格ブロックの場合,ゼロクロッシング検出はファイル内のタイムスタンプのみで発生します。金宝app仿真软件はタイムスタンプのみを調べ,データ値は調べません。

入力配列に重複するタイムスタンプが含まれている(同一のタイムスタンプのエントリが1つを超える)場合,仿真软件はそ金宝appのタイムスタンプのゼロクロッシングを検出します。たとえば,入力配列に次のようなデータがあるとします。

时间:0 1 2 2 3信号:2 3 4 5 6

時間2に入力信号の不連続によるゼロクロッシングがあります。

重複しないタイムスタンプのあるデータの場合,ゼロクロッシング検出は次のパラメーターの設定によって変わります。

  • 最初のデータ点前のデータ外挿

  • 時間範囲内のデータ内挿

  • 最後のデータ点後のデータ外挿

ブロックはゼロクロッシングが発生するタイミングを決定する際に以下のルールを適用します。

  • 最初のタイムスタンプの場合

  • 最初と最後のタイムスタンプの間のタイムスタンプの場合

  • 最後のタイムスタンプの場合

タイムスタンプ ゼロクロッシング検出が発生するタイミング

1 次

(最初のデータ点前のデータ外挿][グラウンド値)に設定されます。

最初と最後の間

[時間範囲内のデータ内挿][ゼロ次ホールド]に設定されます。

最後

次の設定の両方またはどちらかが発生します。

  • (最後のデータ点後のデータ外挿][グラウンド値)に設定されます。

  • [時間範囲内のデータ内挿][ゼロ次ホールド]に設定されます。

次の図は,次の設定になっている从电子表格ブロックによってアクセスされるデータのゼロクロッシング検出を示しています。

  • 最初のデータ点前のデータ外挿- - - - - -線形外挿

  • 時間範囲内のデータ内挿(内部点の場合)ゼロ次ホールド

  • 最後のデータ点後のデータ外挿- - - - - -線形外挿

次の図は,从电子表格ブロックによってアクセスされるデータのゼロクロッシング検出の別の例を示します。ブロックには,タイムスタンプ(点)用の次の設定があります。

  • 最初のデータ点前のデータ外挿- - - - - -最初の値をホールド

  • 時間範囲内のデータ内挿- - - - - -ゼロ次ホールド

  • 最後のデータ点後のデータ外挿- - - - - -最後の値をホールド

プログラムでの使用

ブロックパラメーターZeroCross
:文字ベクトル
“关闭”|“上”
既定の設定:“关闭”

ブロックの特性

データ型

布尔||枚举|不动点一个|整数|

直接フィードスルー

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

はい

一个32ビットまでの固定小数点データ型をサポートします。

アルゴリズム

すべて展開する

从电子表格ブロックがスプレッドシートからデータを読み取る際,すべての信号が倍精度で読み取られ,(出力データ型)パラメーターで指定された出力信号のデータ型にキャストされます。キャスト中に,ブロックは次で説明する丸めモードと整数オーバーフローでの飽和を使用します。

拡張機能

R2015bで導入