ISIGHT应用培训
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISIGHT应用培训
1 ISIGHT主要功能
集成
自动化
优化
2 iSIGHT集成过程
集成的几个概念:
1parameter 参数:即变量
2calculation 块:用于在iSIGHT中做一些简单的数据处理
3simcode块:用于定义被集成到iSIGHT中的可执行程序
下面举一个例子说明问题
现在有一个程序a.exe,这个程序从一个文件ain.dat中读取两个数据x1、x2,并进行一系列的计算,并输出一个数据y到一个文件aout.dat中。
其中x1和x2的变化范围分别是
0<x1<100 0<x2<50
现希望得到在x1和x2的变化范围内y的最小值。
如果结合本所的具体题目,可以说现在有一个CFX程序,这个程序从一个文件ain.dat中读取数据x1为隔板偏转角度,x2为隔板宽度,并进行一系列计算,并输出一个数据y为压力损失系数到一个文件aout.dat中。
其中隔板偏转角度为10~40度,隔板宽度为10~20mm。
现希望得到在给定的隔板偏转角度x1和隔板宽度x2的变化范围内压力损失系数y的最小值。
如果手工完成这个工作,其流程为:
1选定x1和x2的初始值
2在ain.dat文件中按要求的格式把x1和x2的值写入并保存文件
3运行a.exe程序
4打开aout.dat文件,并从中读出y的数值。
5判断y的变化趋势,如果可以判断出y已经是最小值,则设计过程结束。
如果无法判断y 是最小值,则根据经验重新选定x1和x2的值,并从第2步再次循环。
在iSIGHT中同样需要这个过程:
在iSIGHT中,首先需要进行软件的集成和设置自动化流程,这样iSIGHT才能知道应该用怎样的顺序调用哪些软件。
这里只有一个a.exe程序。
下面看看如何在iSIGHT中集成一个程序。
首先打开iSIGHT
2打开iSIGHT中的集成窗口,通过单击左上角的integrate图标。
在集成窗口中,上部是工具栏,其中有simcode和calculation。
一般的集成工作,仅仅用这两个图标的功能即可完成。
因此是最常用的工具。
窗口的左半部分是一个集成结果列表,将来我们定义的任务以同文件夹类似的结构显示在这里。
右半部分是用流程图方式显示集成结果,可以使我们更加直观的观察到集成后的结果。
对于我们这个题目来说,由于要集成一个可执行程序(包括exe/com/bat),因此需要集成进来一个simcode。
3单击simcode图标,在下面的流程图窗口中就出现了一个simcode图标。
我们称之为一个simcode块。
在simcode块的图标上,有两个按钮。
先单击中间按钮,注意,这个按钮的颜色是粉色的。
这个按钮是用来修改simcode块的名称的。
这里我们把他的名称改为abc。
这时,可以看到原来的粉色变成了绿色。
在iSIGHT的集成界面中,需要改动的部分都是粉色的,而改动后,颜色变为绿色。
接着单击左边的加号“+”按钮,这时可以进入simcode块
的内部。
4我们可以看到,simcode块的内部默认有三个子块:input子块、output子块、program子块。
其中program子块对应着需要被集成的可执行程序,而input子块和output子块分别对应着一个输入文件和一个输出文件。
在iSIGHT中,什么样的文件是输入文件:一个输入文件同时满足两个特征:1这个文件是可执行程序执行时需要用到的文件。
2这个文件中是由iSIGHT生成的。
在iSIGHT中,什么样的文件是输出文件:同样需要满足2个特征:1这个文件是可执行程序执行后生成的文件。
2iSIGHT需要从该文件中读取某些数据。
就我们这个问题为例,program子块对应的可执行程序是a.exe程序。
a.exe程序运行前需要从ain.dat文件中读取x1和x2的数值,那么它满足了第一个条件。
而x1和x2都是需要由iSIGHT来改变的,a.exe每运行一次,都需要iSIGHT重新生成一次这个文件,那么它满足了第二个条件。
因此,它是一个输入文件。
a.exe程序运行后生成了aout.dat文件,那么它满足第一个条件。
而aout.dat文件中的一个数据y是iSIGHT需要读取的数据,因此它叶满足第二个条件,因此它是一个输入文件。
5首先指定program子块。
单击左边按钮,则进入指定可执行程序的界面。
在这里,指定需要集成的可执行程序的路径和文件名即可。
6定义input子块。
单击中间图标,在这里需要指定模板文件和输入文件。
那么什么是模板文件呢?iSIGHT需要改变ain.dat文件中的两个参数,那么如何修改呢?我们需要告诉iSIGHT。
在这里我们就需要一个模板文件。
这个文件定义了生成ain.dat所用的格式。
我们先看看ain.dat文件的格式:在同一行中有两个数据,分别是x1和x2。
现在我把这两个数值用两个字符串来代替,写为x1 x2。
以后就可以告诉iSIGHT打开这个文件,并在x1处写上x1的具体数值,在x2处写上x2的具体数值,并另存为一个文件ain.dat,这样就可以为a.exe准备了一个输入文件。
在模板文件中输入模板文件的路径和文件名,在输入文件中输入最后将生成的文件的文件名。
接着,就要告诉iSIGHT如何对模板文件中的相应位置进行替换并生成新的文件。
这个过程叫做file parse 即文件解析。
单击input子块左边图标,可以进入一个窗口,叫做file parser,即文件解析器。
这时,右半部分就是我们刚才生成的模板文件,而左半部分将显示我们定义的文件解析过程。
上部的工具栏上是一系列文件解析的动作,包括replace、find等等。
现在我们要做的就是把x1和x2这两个字符串替换成两个具体的数值。
那么我们首先要先定义两个变量,iSIGHT通过改变这两个变量,并把更改后的值写入ain.dat中,以达到改变输入参数的目的。
这时,我们先退出文件解析器,回到集成界面。
单击左上角的parameter图标。
这时弹出一个定义参数(变量)的窗口。
单击add,增加变量x1和x2。
再进入input子块的文件解析器。
单击工具栏上的replace图标,x1,选中string,在with后单击下拉箭头,在变量列表中选择x1。
然后ok。
这时,可以看到,x1这个模板文件中的字符串被x1这个iSIGHT 变量的当前值0.0所代替了。
接着x2。
通过模板文件和两个replace的动作,我们定义了如何生成ain.dat。
以后运行时,iSIGHT就会执行这些动作,并把文件另存为ain.dat。
7定义output子块。
单击中间图标,这里仅仅需要指定输出文件的文件名,而不需要模板文件。
ISIGHT将来需要从这个文件中读取数据y,因此,同样需要用文件解析器,告诉iSIGHT 如何从文件中读取y。
单击左边图标,进入文件解析器。
此时,文件只有一个数据。
红色光标表示目前文件指针的位置是文件头。
我们需要从该文件中读取这是数值并存到变量y中。
现在我们还没有在iSIGHT中定义y变量。
因此退出文件解析器,进入parameter窗口。
单击add,增加变量y。
现在可以看到在变量表的第二列是变量的类型,默认为input。
Input 变量是指iSIGHT可以改变的变量。
而y变量不是iSIGHT改变的量,而是iSIGHT读入的、
并需要进行判断的量,在这里需要定义为output类型。
单击ok退出。
再次进入文件解析器。
此时的动作是读取数据,因此用read命令。
单击read,在弹出的对话框中,可以看到,需要指明将读入的数据存储到哪个变量中。
选择y。
在默认状态下,iSIGHT的read命令读入的是光标当前位置后的一串数据,直到遇到了空格、制表符、回车等分隔符。
现在整个集成过程全部完成了。
8退出集成,此时系统提示存盘。
9此时开始设置优化。
在iSIGHT主界面中,单击parameter图标,此时可以看到两个input 类型的变量,显示为蓝色,一个output类型变量,显示为黑色。
三个系统变量,显示为红色。
我们要改变x1和x2,因此,在其后的第一栏中打勾,指明这两个变量是优化变量。
接着定义他们的变化范围。
大于号和小于号。
接着定义我们的优化目标,就是y值最小。
10此时退出parameter界面,我们需要选择一个优化算法来进行优化。
选择tools→optimization plans。
在弹出的对话框中单击new,可以新建一个优化模式。
在这里,我们选择NLPQL方法进行优化。
单击ok。
11在主界面右侧栏中,单击run mode下的下拉菜单,选择optimization→newplan,即选中了我们刚才定义的优化模式。
此时,只要单击excute图标,即可进行优化的过程了。
但此时,我们不忙进行优化,先设置一个monitor,监视一下优化的过程。
12单击monitor图标,在弹出的窗口中,单击graph图标,并选择parameter标签,选中x1,x2,y,ok,则出现三个监视图。
一会优化时,这三个图会实时变化。
13,单击excute图标,开始优化。
我们可以看到优化的全过程。
14验证结果。
在monitor中,file→open,选择task1.db,整个优化过程的数据全部存储在这个文件中。
我们可以看到优化的结果了。
第二个例子
再增加一个程序b,该程序从a程序的输出文件aout.dat中读取数据,并经过一系列计算,得到一个结果z。
现在希望z最小。