主要内容

运行金宝app模拟从Java

MATLAB命令运行仿真

您可以运行仿真软件金宝app®使用MATLAB模拟®引擎API的Java®。下面是运行仿真编程的基本步骤。

  • 创建一个MATLAB引擎对象并启动一个MATLAB会话。

  • 加载在MATLAB金宝app仿真软件模型(load_system(金宝app模型))。

  • 运行仿真与特定的仿真参数(sim卡(金宝app模型))。

  • 使用的方法访问模拟的结果返回金宝appSimulink.SimulationOuput(金宝app模型)对象。

模拟运行的信息从MATLAB编程,明白了运行单个模拟(金宝app模型)

运行vdp模型从Java

的仿真软金宝app件vdp方块图模拟了范德波尔方程,这是一个二阶微分方程。该模型解决了方程使用初始条件和配置参数定义的模型。

MATLAB代码运行仿真

这个MATLAB代码显示了命令来运行仿真编程。的金宝appSimulink.SimulationOuput对象得到方法返回的结果和时间向量。

mdl =“vdp”;load_system (mdl);simOut = sim (mdl,“SaveOutput”,“上”,“OutputSaveName”,“你”,“SaveTime”,“上”,“TimeSaveName”,“兜售”);y = simOut.get (“你”);t = simOut.get (“兜售”);

图表的数据

这个MATLAB代码创建了一个图形仿真图产出和出口的JPEG图像文件。

情节(t、y)打印(“vdpPlot”,“-djpeg”)

Java代码运行仿真

这个Java代码运行仿真软件金宝appvdp模型模拟结果并返回到Java。实现执行这些操作:

  • 创建一个MATLAB引擎对象并启动一个MATLAB会话。

  • 调用MATLABload_system命令开始仿真软件和负载金宝appvdp异步模型。调查任务,直到未来的回报。

  • 调用MATLABsim卡命令设置仿真参数和运行模拟。调查任务,直到未来的回报。

  • 了仿真的结果。的输出sim卡函数是一个MATLAB金宝appSimulink.SimulationOuput(金宝app模型)对象,它是在MATLAB中创建基本工作空间。

    引擎API不支持这种类型的对象。金宝app因此,这个示例使用对象得到方法在MATLAB仿真数据的访问工作区。

  • 创建一个图形仿真数据和出口这个图的一个JPEG文件。

  • 返回向量Java仿真结果和时间数组。

进口com.mathworks.engine。*;进口java.util.concurrent.Future;进口java.util.Arrays;公开课RunSimulation{公共静态空main (String [] args)抛出异常{MatlabEngine eng = MatlabEngine.startMatlab ();未来<空白> fLoad = eng.evalAsync (“load_system (vdp) ");而(! fLoad.isDone ()) {system . out。println(“加载仿真软件模型金宝app…”);thread . sleep (10000);未来}<空白> fSim = eng。evalAsync (“simOut = sim (vdp,“SaveOutput”,“+”‘上’,‘OutputSaveName’,‘你’,“+”“SaveTime”,“上”,“TimeSaveName”,“兜售”);”); while (!fSim.isDone()) { System.out.println("Running Simulation..."); Thread.sleep(10000); } // Get simulation data eng.eval("y = simOut.get('yOut');"); eng.eval("t = simOut.get('tOut');"); // Graph results and create image file eng.eval("plot(t,y)"); eng.eval("print('vdpPlot','-djpeg')"); // Return results to Java double[][] y = eng.getVariable("y"); double[] t = eng.getVariable("t"); // Display results System.out.println("Simulation result " + Arrays.deepToString(y)); System.out.println("Time vector " + Arrays.toString(t)); eng.close(); } }

相关的话题