本文通过Isight在集成MATLAB进行优化分析的简单实例,讲述下述遇到的一些问题,第一次学习的可参考《isight参数优化理论与实例详解》第二章matlab部分。
一、sim-flow中添加组件
二 .双击MATLAB组件,建立参数变量映射
三.点击窗口中的option,选择Java Socket;选择MATLA.Exe程序所在路径;“Use Isight JRE for Matlab application:“不要勾选;选择MATLAB自带java库路径, D:\Program Files\Polyspace\R2019b\sys\java\jre,(其实调用的是jvm.dll 文件,但是MATLAB会自动会补充\bin\server\,所以路径只能写到\jre。jvm.dll 文件所在路径 D:\Program Files\Polyspace\R2019b\sys\java\jre\win64\jre\bin\server\jvm.dll;);点击OK。
四.双击optimization组件。
勾选变量
勾选约束条件,设定上下限
勾选目标函数,点击OK
5.运行Model。结果如下。
Matlab 代码
pi =3.14159;
gamma = 0.285;
Diam=3;
P = 10.0;
G = 12000000.0;
Q = 2.0;
g = 366.4;
rho = gamma/g;
SpringDeflection = 8*P*(Diam^3)*n/((d^4)*G);
ShearStress = (8*P*Diam/(pi*(d^3)))*((((4*Diam)-d)/((4*Diam)-(4*d)))+(0.615*d/Diam));
SurgeFrequency = (d/(2*pi*Diam*Diam*n))*((G/(2*rho))^0.5);
SizeLimit = Diam+d;
SpringMass = (n+Q)*pi*pi*Diam*d*d*rho/4;
SpringWeight = SpringMass*g;
以下常见错误,都与上述第三步中的Java路径有关。
~~警告:找不到Java库:D\Program Files\Polyspace\R2019b\sys\javavjre\win64jirbin\serverjvm.dI请检查您是否具有MATLAB JAVA环境变星。请注意,MATLAB需要Java 1.8或更高版本。
~~Cannot locate or initialize class com/mathworks/jmi/OpaqueJavaInterface. java.lang.NoClassDefFoundException: com.mathworks.jmi.OpaqueJavaInterface at java.net.URLClassLoader$1.run(UnknownSource) at ava.net.URLClassLoader$1.run(UnknownSource) at java.security.AcessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source)
~~isight中遇到 This job encountered errors during execution.Would you like to view the details?