共18页第1页一、ModeFrontier安装与运行(v3.2.0)用虚拟光驱加载镜像文件,双击install安装,除设置安装路径外,其余均默认即可。之后,将crack文件夹下的crack程序复制到frontier程序安装目录并运行crack程序。运行modeFrontier之前,先打开FLEXlmUtilities,在里面点StartServer,如上图所示。然后就可以进入modeFrontier了。二、ModeFrontier界面上图中区域1包括一些常见的windows菜单,如打开、保存文件,剪切、复制、粘贴,do、undo等。区域2的几个按钮依次是开始计算,中断计算,刷新计算过程中的显示,后面的时间是自动刷新的时间间隔,上图的模型还没有建立,所以这几个按钮都是暗的,不能使用。区域3包括3个主要窗口,当前显示是WorkFlow,计算模型就建立在这里;RunLogs将会在运行程序的时候实时显示当前计算状态、变量、结果等;DesignSpace用于分析结果。共18页第2页上图是WorkFlow窗口。区域1是一些辅助命令,比如将模块按顺序排列,放大缩小视窗等。区域2是模块库,包括Frontier中编程所需的所有模块,有些模块右下角有个黑色的小三角,表示该类型下还有其他模块,用鼠标点击黑三角可将其他模块弹出。区域3是编程的主界面,用鼠标左键单击左侧的模块,再到主界面中单击左键,即可将该模块放入主界面。区域4包括若干个界面:LogicLog显示当前程序有无错误,如前一幅图,由于是一个空白的程序,图中显示错误为EMPTYWORKFLOW;InputVariables显示程序中用到的所有输入变量,如上图主界面中的两个输入变量SPKTIME和FARATIO均出现在下图中,这些参数可在主界面中修改,也可以在这一栏中修改;后面的几个窗口有输出变量、转换变量、目标、约束等,其作用和输入变量窗口类似。完成模型后,点击右上角的计算开始按钮,RunLogs窗口将实时显示当前计算的进程。共18页第3页DesignSpace用于分析计算结果,和WorkFlow类似,上部是一些辅助功能按钮,左侧的按钮可用来绘制各式各样的图表,中间是主界面。三、模块库1.DOENode&SchedulerNode上图是DOENode的设置界面,所有的模块均可通过左键双击图标,或在图标上单击右键,再选EditNodeProperties进入其设置界面。上图中区域1里可以选择实验设计所需的变量的生成方式,区域2具体设置各种方式的参数,点击AddDOESequence,变量就会在区域3中生成。共18页第4页SchedulerNode的设置与DOENode类似,左侧选择优化算法,右侧设置算法的具体参数。2.InputVariableNode上图是InputVariableNode设置界面。Name变量名;Description注释,可通过点击右侧的图标来编辑;Format变量格式;VariableType变量类型;LowerBound变量下限;UpperBound变量上限;Base变量在上下限之间的数目;Step非连续变量之间的步长,自动算出,当非连续变量均匀分布时,Step=(UpperBound-LowerBound)/(Base-1);若Base设为0,则变量在上下限之间连续分布;Distribution变量的分布方式。各个模块的下设置界面的下方都有一个*Connector,上图在Tut1_61.dat后面的方框打上勾,就表示当前模块与所勾选的模块有连接,一旦勾选,连线将自动生成。3.OutInputVariableNode共18页第5页OutputVariableNode可设置的参数较少,其意义同Input模块一致。4.TransferVariableNodeTransferVariable是间接变量,由其它直接变量根据UserExpression转换而来,单击UserExpression一栏右侧的小图标可编辑计算公式,见下图,左侧是一些直接变量,右侧是数学和逻辑符号,用鼠标依次点选,构成的计算公式显示在Expression一栏。5.ObjectiveNode上图是目标模块的设置界面。Enabled后的方框如不选,则该模块将在程序中显示暗灰色,不起任何作用;通过UserExpression的编辑,目标变量既可以是直接变量,也可以是共18页第6页若干直接变量的组合;Type目标变量类型,上图中表示程序的目标是使得变量TORQUE最大。6.ObjectiveTargetNodeObjectiveTargetNode需要勾选直接的输出变量并设置TargetValue,以上图为例,程序的优化目标是Minimize{(o1-3.0)^2+(o2-2.0)^2}。7.ConstraintNode约束模块中UserExpression编辑约束变量;Type设置约束类型;Limit是约束限值;Tolerance为0表示略微超出一点约束也是不允许的,如果设的值稍大一些,则将允许超出一点限值。8.InputFileNode上图是InputFileNode的设置界面。界面下方都表示的是和别的模块的连接,点击右上方的Open,选择相应的文件并打开。共18页第7页之后出现右上图,上部是所打开的文件的内容,下部是各输入变量。点中变量r1这一栏,在文件内容中拖动鼠标选中COEFF1后的数字,单击鼠标右键,选择InsertVariable,就将出现下图的情况,以后Frontier中r1这个变量的值是多少,所选文件中COEFF1后的数字就将是多少。9.OutputFileNode与InputFileNode类似,对变量的几种设置方法如下。如上图所示,可用与InputFileNode同样的方法将文件中的“220”赋给输出变量Cost。共18页第8页也可以将字符串“var_x”设为RelativePosition,再将后面的数字选中后选择SelectRelative。如上图所示,字符串“var_x”后的第二个数字将被赋给变量Weight。图中的文本里GROUPA和GROUPB下均有var_a,在这种情况下,可将“GROUPA”设为BlockVariable,其后的设置同上一种情况。10.SupportFileNode允许对文件进行复制或删除的操作。11.ScriptNode上图是脚本模块的设置界面。ScriptLanguage选择所编辑的脚本的种类,在Windows系统下可以选择DOSBatch。点击右上角的EditScript可编辑脚本命令。脚本模块的主要作用是在Frontier和其它程序间构成通讯。对于一些常用的软件,如Excel、Catia、AMESim、ProE、Matlab等,Frontier中有专门的模块。12.SynchronizerNode该模块可以允许程序的并行计算。共18页第9页13.LogicEndNode该模块用于判断外部程序的运行状态,比方说外部程序完成一次计算,就可以读出一组输出结果。该部分介绍了ModeFrontier中一些常用的模块,对于没有详细介绍的以及这里没有提到的模块,可以参考英文的用户手册第4章。四、算例(与GT-POWER耦合)对于一单缸四冲程气道喷射汽油机,优化某一转速下点火提前角和燃空比参数,以得到最大输出扭矩和最小比油耗。约束条件是输出扭矩必须大于48N·m,比油耗必须小于0.24kg/kWh,同时点火提前角和燃空比满足如下关系SPKTIME-749.63*FARATIO-59.970。共18页第10页1.由GT-POWER模型生成dat文件2.设置输入变量3.设置输出变量4.选取其它模块共18页第11页除了输入输出变量外,最上面的两个模块是试验设计和优化算法;InputFile6是输入文件,通过它将变量赋给GT;OutputFile7是输出文件,通过它从GT的out文件中读出变量;Objective8、9是目标模块;10、11是判断外部程序运行状态的模块(LogicEnd);Constraint12、13、14是三个约束模块;Script15是调用外部程序的模块。5.设置输入文件设置时,选中FARATIO和SPKTIME这两个变量,程序将把它们连接在一起(下图),已正确连接的模块,其红色边框将消失。点Open,并选中前面生成的dat文件,打开后点击下方的变量FARATIO,在文件的内容中找到对应FARATIO的位置,拖动鼠标选中其数值(下图中为8.333E-2),点右键,在下拉菜单中选InsertVariable;用同样的方法处理变量SPKTIME。共18页第12页6.设置LogicEnd共需要两个LogicEnd,判断外部程序运算是否结束。7.设置脚本命令共18页第13页勾选上图中红色部分,点击右上角EditScript,进入脚本编辑,输入如下命令:%GTIHOME%\v6.1.0\GTsuite\bin\GTsuite.exeGTpowerGTpowerTut1_61.dat要检验该命令是否正确,可进入dos模式,输入上面的命令,如正确无误,应可运行GT程序。8.设置输出文件在上一步验证脚本命令的同时,运行了一次GT,生成了结果文件Tut1_61.out。对输出共18页第14页文件的设置同输入文件类似。9.设置约束10.设置目标共18页第15页11.设置DOE和优化算法选择好DOE的类型、数目后点AddDOESequence,不同的变量的组合将在下方的DOEDesignTable中生成。12.最终模型共18页第16页13.运行共18页第17页共18页第18页本算例遵循的是Frontier中比较基本的一种流程,即输入变量-〉运行外部程序(GT)-〉输出变量-〉根据优化算法输入新的变量-〉…-〉最终分析计算结果。对于其他更复杂的流程,可参考英文用户手册第5章。