Main Content

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

Parsimをたシミュレーション:ラピッドラピッドモードでスイープスイープスイープ

この例では,并行计算工具箱™を使用して,モンテカルロ法のシミュレーションを複数並列して実行する方法を示します。並列実行はホスト マシンの複数のコアを活用して多くのシミュレーションの実行を高速化します。これらのシミュレーションは、MATLAB Parallel Server™ を使用し、コンピューター クラスターで並列に実行することもできます。この例は Parallel Computing Toolbox™ または MATLAB Parallel Server™ が利用できない場合でも機能しますが、シミュレーションは逐次実行されます。

モデル例の确认

モデルsldemo_suspn_3dofはさまざま路面に対する路面サスペンションサスペンションの交互作用に基づい车両运动运动运动ののシミュレーションシミュレーションシミュレーションシミュレーションをををししします。。。。このこのこのこのこのこのこのモデルモデルモデルモデルモデルモデルははははは,,,,,,,车両车両车両车両运动运动运动运动运动运动运动运动运动运动运动编辑ブロックは测定左と右右タイヤの路面凹凸凹凸を异なる异なるテストテストテストグループグループとしてとしてとしてとしてとしてとして保存保存保存保存ますますますますますますますますますますますますますますます。ます。。。。。。。。。。。。。グループグループグループ。。。。。。。。。。。。。。Body Dynamicsサブサブサブサブサブでではは,,力力ととその结果ととなるなるピッチモーメントモーメントモーメントおよびおよびロールロールロールモーメントモーメント使用ししててててててててつののの度度度度度度

このモンテカルロ法では、車両の質量を変化させて、車両運動に対するそれらの影響を研究します。下記に示すように、これらの複数のシミュレーションは、Parallel Computing Toolbox の使用によってスピードアップされます。

mdl ='sldemo_suspn_3dof'; isModelOpen = bdIsLoaded(mdl); open_system(mdl);

ラピッドアクセラレータのビルドの设定

モデル用ラピッドアクセラレータ可能ファイルは,金宝appsimulink.blockdiagramパッケージからの関数buildrapidacceleratortargetを使用して SetupFcn の呼び出しでビルドされます。関数buildrapidacceleratortargetから既定时パラメーターセットが返されます。これは,,,,,,,,,でRTPに代入,パラメーターを変更するので使われます。エディターでsldemo_parsim_paramsweep_suspn_raccel_setupを開き、コードを検証します。ビルド ファイルが既に存在していてモデルおよびマシン アーキテクチャに対応している場合は、早く返されるようにビルド プロセスが最適化されていることに注意してください。

SimulationInput オブジェクトを使った複数のシミュレーションの設定

ベース ワークスペースで変数mb_weepにスイープ値を保存します。

mb_weep = mb*(0.5:5:45.5);

実行するを决定ますこれはスイープ値数と同じですです。このこの変数変数変数numSimsに保存し。

numSims = length(Mb_sweep);

为了ループを使用して、次を行います。

  1. モデルの金宝appSimulink.SimulationInputオブジェクトを作成します。シミュレーションにつき 1 つのオブジェクトを作成します。オブジェクトを配列として変数に保存し。

  2. simulationInputオブジェクトでパラメーターをしし。。

为了i = numsims:-1:1 in(i)= s金宝appimulink.simulationInput(mdl);在(i)= in(i).setModelParameter('simulationmode',,,,'迅速的',,,,...“ RapidAcceleratoruptoptatecheck”,,,,'off');在(i).presimfcn = @(x)sldemo_parsim_paramsweep_suspn_raccel_presim(x,mb_weep(i));结尾

SimulationInput オブジェクトを使用してモデル パラメーターを変更します。'SimulationMode' はラピッド アクセラレータを使用するように設定され、'RapidAcceleratorUpToDateCheck' モデル パラメーターは最新チェックをスキップするように 'off' に設定されます。これは,间モデル构造的な変更がられずず,ファイルファイルファイルををを使用使用使用できるできるできるできるできるためためですですをsimulationInputInputInputInputInputInputInputInputInputInputInputINp。指定値シミュレーション中にれれシミュレーションの终了后,,可能なな场合场合ははは元元ののの値値値ににに戻さ戻さ戻さsldemo_parsim_paramsweep_suspn_raccel_presimでコードを検証します。Simulink.BlockDiagram パッケージからmodifyTunableParametersを使用して、車両の質量に対応するパラメーターを変更します。PreSimFcn への最初の引数は常に SimulationInput オブジェクトであり、Simulink® によって関数に渡されます。PreSimFunction は別のモデル パラメーターを SimulationInput オブジェクトに追加し、シミュレーションで使用するためにそれを返します。

Parsim を使ったシミュレーションの並列実行

关数Parsimを使用てを并列実行ます。最后の手顺で作成されれれたたたたたたたたたたは,の引数として关数Parsimに渡されます。Parsimコマンドからの出力は、変数outに保存される金宝appsimulink.simulationOutput'on'on'on'ににし,,シミュレーション进行进行状况をををををををををコマンドコマンドコマンドコマンドに出力出力出力ししますますますます。前述前述前述のののの,,,,,,ターゲットを上に作成。。

out = parsim(在“表演”,,,,'上',,,,...'SetupFcn', @()sldemo_parsim_paramsweep_suspn_raccel_setup(mdl));
[13-DEC-2018 12:26:56]检查平行池的可用性...使用“本地”配置文件开始并行池(PARPOOL)...连接到并行池(工人数量:6)。[13-DEC-2018 12:28:03]开始对并行工人开始模金宝app拟...分析和将文件传输给工人...完成。[13-DEC-2018 12:28:03]在并行工人上配置模拟缓存文件夹... [13-DEC-2018 12:28:04]在并行工人上运行SetUpfcn ... [13-DEC-2018 12:29:02]在平行工人上加载模型... [13-DEC-2018 12:29:06]运行模拟... [13-DEC-2018 12:29:13]完成了10个模拟运行中的1个[13--Dec-2018 12:29:14]完成10次模拟运行中的2次[13-DEC-2018 12:29:14]完成了10次模拟运行中的3台[13-DEC-2018 12:29:14]完成了10个仿真的4个跑步[13-DEC-2018 12:29:15]完成了10次模拟运行中的5次[13-DEC-2018 12:29:15]完成了10次模拟运行中的6个[13-DEC-2018 12:29:17]10次​​模拟运行中的7台[13-DEC-2018 12:29:17]完成了10次模拟运行中的8台[13-DEC-2018 12:29:17]完成了10次模拟运行中的9台[13-DEC-2018 12:29:17]完成10个模拟运行中的10台[13-DEC-2018 12:29:17]清理平行工人...

各 SimulationOutput オブジェクトには、ログ信号に加え、SimulationMetadata が含まれています。Parsimを使用して複数のシミュレーションを実行すると、後続のシミュレーションを継続して実行できるようにエラーがキャプチャされます。エラーがあれば SimulationOutput オブジェクトのErrorMessageプロパティにされます。

結果のプロット

さまざまな车両垂直変位をプロットし车両车両の质量の変化変化がが车両车両运动运动にににどのどのどのようようようにに影响影响影响影响しししししししたたgetsimのて,,のの各に含まている时间と信号のデータデータを取得しますます

legend_labels =单元格(1,numsims);为了i = 1:numsims simout = out(i);ts = simout.logsout.get('Vertical_disp')。ts.plot;legend_labels {i} = ['跑 'num2str(i)]; holdall结尾标题(“ 3-DOF悬架模型的响应”) xlabel('Time (s)');ylabel(“车辆垂直位移(M)”);legend(legend_labels,'Location',,,,“东北”);

MATLABワーカーを閉じる

最后に并列とモデルをますます(まだられいない)。

如果(~isModelOpen) close_system(mdl, 0);结尾删除(GCP(GCP)('nocreate');
Parallel pool using the 'local' profile is shutting down.