このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
モデルは次の2の方法で,プログラムによってシミュレトできます。
sim卡
コマンド経由
[実行]ボタン経由
sim卡
コマンドでシミュレーションを実行する場合,コマンドラインを使用してシミュレーションで操作を実行します。[実行]ボタンを使用してシミュレ,ションを実行する場合,金宝appSimulink®UIを使用してシミュレ,ションを操作し,その他の追加操作を実行できることを意味します。次の表は,2の方法の違いを詳しく説明しています。
操作 | sim卡 コマンドによるシミュレ,ション |
[実行]ボタンによるシミュレ.ション |
許可される相互作用レベル | 低 | 高 |
シミュレ,ションの開始 | sim卡 コマンド |
set_param (mdl‘SimulationCommand’,‘开始’) /[実行] |
シミュレ,ションの停止 | コマンドラ@ @ンでのCtrl - C |
|
シミュレ,ションの一時停止 | なし | あり。set_param (mdl“SimulationCommand”、“暂停”) /[一時停止] |
シミュレション実行中に利用可能なmatlabプロンプト | なし | あり |
シミュレ,ション実行中のスコ,プの更新 | ラピッドアクセラレ,タモ,ドを除いて,あり | あり |
シミュレションステッパ | なし | ラピッドアクセラレ,タモ,ドを除いて,あり |
条件付き一時停止 | なし | ラピッドアクセラレ,タモ,ドを除いて,あり |
シミュレ,ション実行中に表示可能な端子の値 | なし | あり |
シミュレ,ションのペ,シングのサポ,ト | あり | あり |
超时 オプションのサポ,ト |
あり | なし |
エラ,の処理 | CaptureErrors がオンの場合を除いて,matlab例外 |
診断ビュ,ア,にレポ,トされる |
sim卡
コマンドによるシミュレ,ション関数sim卡
で指定された手法を使用してパラメ,タ,値を指定し,プログラムによりモデルをシミュレ,トできます。モデルのシミュレ,ションに加えて,sim卡
コマンドを使用して,シミュレーションタイムアウトの有効化,シミュレーションエラーの取得,およびシミュレーション完了時のシミュレーションメタデータへのアクセスを実行できます。
この例では,パラメーターを名前と値のペアとして指定し,モデルをプログラムによってシュミレートする方法を示します。
連続する名前と値のペアとして指定したパラメ,タ,値を使用してvdp
モデルをシミュレ,トします。
simOut = sim(“vdp”,“SimulationMode”,“正常”,“AbsTol”,“1 e-5”,...“SaveState”,“上”,“StateSaveName”,“xout”,...“SaveOutput”,“上”,“OutputSaveName”,“你”,...“SaveFormat”,“数据集”);outputs = simOut.get(“你”)
outputs = 金宝appSimulink. simulationdata . dataset包:Simulink. simulationdata . datasetSimulationData特征:名称:'yout'总元素:2元素:1:'x1' 2: 'x2' -使用get或getElement按索引或名称访问元素。-使用addElement或setElement添加或修改元素。
ソルバ,エラ,の絶対許容誤差を指定して,モデルを正常的
モ,ドでシミュレ,トします。関数sim卡
は,単一の金宝app仿真软件。SimulationOutput
オブジェクトであるSimOut
を返します。これには,シミュレーションのすべての出力(ログが作成された時間,状態および信号)が含まれています。関数sim卡
は,シミュレ,ション値をワ,クスペ,スに返しません。
出力信号値を時間に対してプロットします。
X1 = (output .get(x1的) . values);X2 = (output .get(“x2”) . values);情节(x1);持有在;情节(x2);标题(“VDP州”)包含(“时间”);传奇(x1的,“x2”)
複数のシミュレ:超时
パラメ,タ,でsim卡
を使用することを検討してください。何らかの理由で,シミュレーションが停止したり,予期しない小さいタイムステップの実行を開始した場合,シミュレーションはタイムアウトします。その後,次のシミュレ,ションを実行できます。
N = 100;simOut = repmat(金宝appSimulink。SimulationOutput, N, 1);为i = 1:N simOut(i) = sim(“vdp”,“超时”, 1000);结束
エラーによってシミュレーションが停止した場合は,シミュレーションメタデータでエラーを確認できます。この例では,sim卡
はエラーが発生するまでのシミュレーション出力オブジェクトのシミュレーションデータを取得し,エラーを返さずにシミュレーションのデバッグを実行できます。この機能を有効にするには,関数sim卡
でCaptureErrors
パラメ,タ,を使用します。
simOut = sim(“my_model”,“CaptureErrors”,“上”);simOut.getSimulationMetadata.ExecutionInfo
ans = struct with fields: StopEvent: 'DiagnosticError' StopEventSource: [] StopEventDescription: 'Division by zero in 'my_model/Divide " ErrorDiagnostic: [1×1 struct] WarningDiagnostics: [0×1 struct]
このアプロ:sim卡
が停止しないことです。したがって,为
ルプでsim卡
を使用している場合などでも,ル,プの以降の反復が実行されます。
この例では,シミュレ,ションの完了時にシミュレ,ションメタデ,タにアクセスする方法を示します。任意の種類のシミュレ,ションを実行して,そのメタデ,タにアクセスできます。
この例では,名前と値のペアで指定したパラメ,タ,値を使用してモデルをシミュレ,ションします。シミュレ,ションを実行します。
simOut = sim(“vdp”,“SimulationMode”,“正常”,“AbsTol”,“1 e-5”,...“SaveState”,“上”,“StateSaveName”,“xoutNew”,...“SaveOutput”,“上”,“OutputSaveName”,“youtNew”,...“SaveFormat”,“StructureWithTime”);
ModelInfo
プロパティにアクセスします。このプロパティは,モデルおよびソルバ,に関する基本情報をも,ます。
simOut.getSimulationMetadata.ModelInfo
ans = struct with fields: ModelName: 'vdp' ModelVersion: '1.6' ModelFilePath: 'C:\MyWork' UserID: 'User' MachineName: 'MyMachine' Platform: 'PCWIN64' ModelStructuralChecksum: [4×1 uint32] SimulationMode: 'normal' StartTime: 0 StopTime: 20 SolverInfo: [1×1 struct] 金宝appSimulinkVersion: [1×1 struct] LoggingInfo: [1×1 struct]
ソルバ,情報を検証します。
simOut.getSimulationMetadata.ModelInfo.SolverInfo
ans = struct with fields:类型:'Variable-Step'求解器:'ode45' MaxStepSize: 0.4000
シュミレーションが起動および終了したタイミング,シミュレーションの初期化、実行,終了にかかった時間など,シミュレーションに関するタイミング情報を確認します。
simOut.getSimulationMetadata.TimingInfo
ans = struct with fields: WallClockTimestampStart: '2016-06-17 10:26:58 433686' WallClockTimestampStop: '2016-06-17 10:26:58 620687' InitializationElapsedWallTime: 0.1830 ExecutionElapsedWallTime: 1.0000e-03 TerminationElapsedWallTime: 0.0030 TotalElapsedWallTime: 0.1870
シミュレ,ションにメモを追加します。
simOut = simOut.setUserString (10次模拟1的结果);simOut.getSimulationMetadata
ans = SimulationMetadata with properties: ModelInfo: [1×1 struct] TimingInfo: [1×1 struct] ExecutionInfo: [1×1 struct] UserString: 'Results from simulation 1 of 10' UserData: []
用户数据
プロパティを使用して独自のカスタムデ,タを追加することもできます。
対話型のシミュレ,ションでは,set_param
およびget_param
を使用できます。set_param
およびget_param
を使用して,実行中のシミュレーションのステータスを確認し,ブロックコールバックを使用してシミュレーションの動作を制御できます。
この例では,set_param
を使用してシミュレ,ションのステ,タスを制御および確認する方法を示します。set_param
を使用すると,変数を動的に更新し,デ,タログ変数をワ,クスペ,スに書き込むことができます。
シミュレ,ションを開始します。
set_param (“vdp”,“SimulationCommand”,“开始”)
set_param
引数および“开始”
引数を使用してシミュレ,ションを開始した場合は,“停止”
引数を使用してシミュレ,ションを停止しなければなりません。“停止”
引数を使用しないと,シミュレ,ションは終了後にのみ停止します。
シミュレ,ションを一時停止,続行および停止します。
set_param (“vdp”,“SimulationCommand”,“暂停”) set_param (“vdp”,“SimulationCommand”,“继续”) set_param (“vdp”,“SimulationCommand”,“停止”)
set_param
を使用してシミュレーションの一時停止または停止を行う場合,シミュレーションはコマンドを即時に実行しません。停止
コマンドの後でシミュレーションを開始するため,および暂停コマンドの後でシミュレーションを続行するために,set_param
を使用できます。金宝appSimulinkはまず,set_param
コマンドより前にあるソルバ,ステップやその他のコマンドなどの割り込みできない作業を完了します。それからset_param
コマンドによって指定されたシミュレ,ションの開始,一時停止,続行または停止が行われます。
シミュレ,ションのステ,タスをチェックします。
get_param (“vdp”,“SimulationStatus”)
ソフトウェアから“停止”
、“初始化”
、“奔跑”
、“暂停”
、“编译”
、“更新”
、“终止”
または“外部”
(金宝app仿真软件编码器™製品で使用)が返されます。
シミュレ,ションの実行中に変更されたワ,クスペ,ス変数を動的に更新するには,更新
コマンドを使用します。
set_param (“vdp”,“SimulationCommand”,“更新”)
すべてのデ,タログ変数をベ,スワ,クスペ,スに書き込みます。
set_param (“vdp”,“SimulationCommand”,“WriteDataLogs”)
シミュレーションの開始,一時停止,停止など,モデルでさまざまなアクションを実行すると,コールバックが実行されます。コ,ルバックを使ってmatlab®スクリプトやその他のmatlabコマンドを実行できます。詳細にいては,カスタマ▪▪ズされたモデルの動作のコ▪▪ルバックおよびブロックコルバックパラメタを参照してください。
この例では,モデルのStartFcn
コールバックを使用して,シミュレーションの開始前にMATLABコードを自動で実行する方法を示します。
モデルのシミュレ,ション時にモデル内の范围ブロックを検出してフォアグラウンドで開くmatlabスクリプトを作成します。スクリプトを現在のフォルダ,に保存します。
% openscopes.m在模拟开始时将范围置于最前面。Blocks = find_system(broot,“BlockType”,“范围”);查找您的对象的顶层的所有作用域块%的模型。要查找子系统中的作用域,请提供子系统%的名字。输入help find_system查看该命令的更多信息。为set_param(blocks{I},“开放”,“上”)结束遍历所有作用域块并将它们带出来走在最前面。
モデルがopenscopes
スクリプトを呼び出すようにStartFcn
パラメ,タ,を設定します。
set_param (“my_model”,“StartFcn”,“openscopes”)
金宝app仿真软件。SimulationOutput
|金宝app仿真软件。SimulationMetadata
|getSimulationMetadata
|setUserString
|setUserData