このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
generateSimulationEnsemble
Simulink モデルを実行してアンサンブル データを生成
構文
説明
[
は、status
,E
] = generateSimulationEnsemble(simin
)simin
で指定された Simulink® モデルを実行してシミュレーション アンサンブルのデータを生成します。この入力引数は、アンサンブルを生成するためにシミュレーションごとに変更する他のパラメーターも指定する Simulink.SimulationInput
オブジェクトのベクトルです。関数はシミュレーション データ ログ ファイルを現在のフォルダーに書き込みます。各ファイルには、対応する Simulink.SimulationInput
オブジェクトとシミュレーション用にログに記録するようにモデルで構成されているすべての変数が格納されます。出力引数は、エラーを生成するシミュレーションがあるかどうかを示し、ある場合はそのエラーを返します。シミュレーション データを操作するためのアンサンブル データストアを作成するには、simulationEnsembleDatastore
を使用します。
データ アンサンブルの一般的な情報については、状態監視と予知保全のためのデータ アンサンブルを参照してください。
[
は、1 つ以上の status
,E
] = generateSimulationEnsemble(simin
,location
,Name,Value
)Name,Value
のペアの引数で指定された追加のオプションを使用します。
例
故障データのアンサンブルの生成
故障パラメーターを変化させながら機械の Simulink® モデルをシミュレートすることにより、故障状態下での機械の動作を表すデータのシミュレーション アンサンブル データストアを生成します。
Simulink モデルを読み込みます。このモデルは、Simulink を使用した故障データの生成で説明されているギアボックス モデルの簡易版です。この例では、故障モードがギア歯の故障の 1 つだけモデル化されています。
mdl = 'TransmissionCasingSimplified';
open_system(mdl)
ギア歯の故障は Gear Tooth fault
サブシステムでの外乱としてモデル化されます。外乱の大きさは、モデル変数 ToothFaultGain
によって制御されます。ここで、ToothFaultGain = 0
はギア歯の故障がない状態 (健全動作) に対応します。故障データのアンサンブルを生成するには、generateSimulationEnsemble
を使用して、モデルを -2 ~ 0 の範囲にある異なる ToothFaultGain
値でシミュレートします。この関数は、Simulink.SimulationInput
オブジェクトの配列を使用してアンサンブルの各メンバーの Simulink モデルを構成します。各シミュレーションで別個のアンサンブル メンバーがそれぞれのデータ ファイルに生成されます。こうした配列を作成し、setVariable
を使用して実行ごとにギア歯の故障のゲイン値を割り当てます。
toothFaultValues = -2:0.5:0; % 5 ToothFaultGain values for ct = numel(toothFaultValues):-1:1 simin(ct) = Simulink.SimulationInput(mdl); simin(ct) = setVariable(simin(ct),'ToothFaultGain',toothFaultValues(ct)); end
この例では、モデルが Vibration
と Tacho
の特定の信号値をログに記録するよう既に構成されています (信号ログを使用した信号データの保存 (Simulink)を参照)。generateSimulationEnsemble
は、モデルをさらに次のように構成します。
ログ データを指定のフォルダー内のファイルに保存する。
信号のログに
timetable
形式を使用する。各
Simulink.SimulationInput
オブジェクトを対応するログ データとともに保存ファイル内に格納する。
生成されるデータの場所を指定します。この例では、現在のフォルダー内の Data
というフォルダーにデータを保存します。シミュレーションがすべてエラーなしで完了した場合、インジケーター status
が 1 (true) になります。
mkdir Data location = fullfile(pwd,'Data'); [status,E] = generateSimulationEnsemble(simin,location);
[12-Feb-2024 23:25:52] Running simulations... [12-Feb-2024 23:26:11] Completed 1 of 5 simulation runs [12-Feb-2024 23:26:13] Completed 2 of 5 simulation runs [12-Feb-2024 23:26:15] Completed 3 of 5 simulation runs [12-Feb-2024 23:26:17] Completed 4 of 5 simulation runs [12-Feb-2024 23:26:19] Completed 5 of 5 simulation runs
Data
フォルダー内でファイルの 1 つを確認します。各ファイルは次の MATLAB® 変数を含む MAT ファイルです。
SimulationInput
— ファイル内のデータを生成するためにモデルの構成に使用されたSimulink.SimulationInput
オブジェクト。これを使用して、このシミュレーションが実行された状態 (故障か健全かなど) に関する情報を抽出できます。logsout
— Simulink モデルがログに記録するよう構成されている対象データをすべて含むDataset
オブジェクト。PMSignalLogName
— ログ データを含む変数の名前 (この例では'logsout'
)。simulationEnsembleDatastore
コマンドはこの名前を使用してファイル内のデータを解析します。SimulationMetadata
— ファイル内に記録されたデータを生成したシミュレーションに関するその他の情報。
これで、生成されたデータを使ってシミュレーション アンサンブル データストアを作成することができます。結果の simulationEnsembleDatastore
オブジェクトは生成されたデータを指します。オブジェクトはアンサンブル内のデータ変数をリストし、既定ではすべての変数が読み取り対象として選択されています。アンサンブルの DataVariables
プロパティと SelectedVariables
プロパティを確認して、それらの指定を確定します。
ensemble = simulationEnsembleDatastore(location)
ensemble = simulationEnsembleDatastore with properties: DataVariables: [4x1 string] IndependentVariables: [0x0 string] ConditionVariables: [0x0 string] SelectedVariables: [4x1 string] ReadSize: 1 NumMembers: 5 LastMemberRead: [0x0 string] Files: [5x1 string]
ensemble.DataVariables
ans = 4x1 string
"SimulationInput"
"SimulationMetadata"
"Tacho"
"Vibration"
ensemble.SelectedVariables
ans = 4x1 string
"SimulationInput"
"SimulationMetadata"
"Tacho"
"Vibration"
これで、アンサンブル データストア内の生成データを ensemble
を使用して読み取り、解析することができます。詳細については、simulationEnsembleDatastore
を参照してください。
入力引数
simin
— シミュレーションの構成
Simulink.SimulationInput
オブジェクトのベクトル
シミュレーションの構成。Simulink.SimulationInput
(Simulink) オブジェクトのベクトルとして指定します。シミュレーションの構成では、生成される各アンサンブル メンバーの次のようなパラメーターを指定します。
実行する Simulink モデル
モデル変数の値
ブロック パラメーター
モデルの初期状態
これにより、たとえば、システムにおける故障の有無と重大度をモデル化するパラメーターを除き、それ以外のシミュレーションの構成がすべて同じ Simulink.SimulationInput
オブジェクトのベクトルを作成できます。その後、そのベクトルを使用して、健全と故障の動作状態の範囲を表すシミュレーション データのアンサンブルを生成できます。
location
— フォルダーのパス
pwd
(既定値) | string | 文字ベクトル
シミュレーション データを格納するフォルダーのパス。string または文字ベクトルとして指定します。location
を指定しない場合、関数は現在のフォルダー (pwd
で返されるパス) を使用します。
関数は、指定されたフォルダー内にシミュレーションごとに 1 つの MAT ファイルを書き込みます。各ファイルには次の変数が含まれます。
SimulationInput
— このファイル内のデータを生成するためにモデルの構成に使用されたSimulink.SimulationInput
オブジェクト。このオブジェクトを使用して、このシミュレーションが実行された状態 (故障か健全かなど) に関する情報を抽出できます。SimulationMetadata
— ファイル内のログ データを生成したシミュレーションに関するその他の情報。ログに記録するように Simulink モデルで構成されているすべての信号と状態のデータを含む
Dataset
オブジェクト。この変数の名前は既定ではlogsout
ですが、モデルで構成可能です。PMSignalLogName
— ログ データを含む変数の名前 (既定では'logsout'
)。simulationEnsembleDatastore
コマンドはこの名前を使用してファイル内のデータを解析します。
データ ログの詳細については、信号ログを使用した信号データの保存 (Simulink)を参照してください。
例: pwd + "\simResults"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペア自体は順不同で構いません。
R2021a 以前は、名前と値をそれぞれコンマで区切り、 Name
を引用符で囲みます。
例: 'UseParallel',true
UseParallel
— シミュレーションを並列実行するかどうか
false
(既定値) | true
シミュレーションを並列実行するかどうか。'UseParallel'
と以下で構成されるコンマ区切りのペアとして指定します。
false
— シミュレーションを並列実行しません。true
— 並列プールを使用して複数のシミュレーションを並列実行します (Parallel Computing Toolbox™ が必要)。
ShowProgress
— シミュレーションの進行状況を表示するかどうか
true
(既定値) | false
MATLAB® コマンド ウィンドウにシミュレーションの進行状況を表示するかどうか。'ShowProgress'
と以下で構成されるコンマ区切りのペアとして指定します。
true
— 個々のシミュレーションの実行が完了するたびにシミュレーションの進行状況の行を表示します。false
— シミュレーションの進行状況を表示しません。
出力引数
status
— シミュレーション エラー ステータス
logical
シミュレーション エラー ステータス。logical 値として返されます。
すべてのシミュレーションがエラーなしで最後まで実行された場合は 1 (true)
それ以外の場合は 0 (false)
E
— シミュレーション エラー
構造体配列
シミュレーション エラー。次のフィールドをもつ構造体配列として返されます。
'SimulationInput'
— エラーを生成したシミュレーション実行のSimulink.SimulationInput
'ErrorDiagnostic'
— エラーを含む文字列
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、'UseParallel'
オプションを true に設定します。
バージョン履歴
R2018a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)