【转载】通过simcode使用isight调用matlab进行优化计算

isight 本身具有深度集成了matlab的组件,但是其应用受到版本限制,比如说isight FD25版本能够与matlab7集成,而不能与2011a集成,因此通过simcode进行集成就成了更通用的办法。使用的简单的优化问题例子:find x & ymin x2+y2s.t -10 所需要的isight组件:simcode,optMATLAB版本:2012a
simcode组件分为三块功能,输入文件、执行命令、可输出文件,其中调用matlab的执行命令语句为:matlab -r input.m(input.m文件必须放入matlab的系统工作路径之内,并且避免重名文件间的干扰)。组件的工作流程为读取输入文件——>通过映射将所需更改的文件字符输入文件,对文件进行更改,以在执行命令过程中调用——>执行调用matlab的命令语句——>从输出文件中得到所需的参数value
在所有工作开始之前,通过拖拽的方式将所需的程序结构搭建好,并定义好相关的输入输出变量。
首先定义matlab的脚本文件:x=1.0 ; y=2.0 ; z=x2+y2;fileID = fopen(‘exp.txt’,‘w’); %这里不要定义绝对位置,会导致错误,因为暂时还不知道output选项如何读绝对路径fprintf(fileID,’%6s %6s %6sn’,‘x’,‘y’,‘z’);fprintf(fileID,’%6.2f %6.2f %6.2fn’,[x y z]);fclose(fileID);%写入输出的txt文件% close allexit %退出并通知isight接收信号,重新运行。
然后,定义simcode组件的输入文件,选择文件为该脚本文件。并定义从isight环境下的变量value到脚本文件字符的映射。如下图,首先选择需要替换的区域(可用空格或0尽量延长其长度,以免目标区间长度小于isight的数值精度),然后在parameter选项卡下选择所需使用的变量名,并点击,完成映射。
接下来定义command,在command选项卡下填入“”
再然后定义输出文件与格式,选择所需的输出文件,并进行变量映射
至此,simcode组件的设置工作完成,下面进行optimization组件的设置。optimization组件的设置比较简单,选择优化算法(如果初次运行提示优化算法的licence错误,在licence文件中添加“FEATURE fiper_rtgateway engswd 2.5 permanent uncounted HOSTID=ID=771982 SIGN=21031E88EE50”绿色字符替换为info中给出的错误组件名称)
选择优化变量,并定义基本约束条件
选择约束项和目标函数项
至此,optimization组件的设置完成。进行variables的mapping,完成所有设置、
运行,检查输出结果

你可能感兴趣的:(【转载】通过simcode使用isight调用matlab进行优化计算)