MDOL语言是易擎公司针对iSIGHT软件专门开发的多目标优化描述语言(Multi-Disciplinary Optimization Language)。
MDOL语言通俗易懂,类似于英文文法,以模块化的方式将iSIGHT模型记录在*.desc文件当中。
用户可以通过对*.desc文件使用MDOL语言来加以修改从而方便的实现对iSIGHT的二次开发。
MDOL模块化组织方式
u
模型的所有信息都是用MDOL语言以模块化(block)的方式记录在iSIGHT的desc描述文件中。 u 在desc描述文件中,各个模块并没有指定的顺序。但是,iSIGHT在存储模型文件时,会按照一个默认的顺序来记录各个Block 每一个模块都有如下的结构:
thisBlock taskname
……
End thisBlock taskname
u 在MDOL语言中,对英文字符是区分大小写的。
u 如果不是必须的,没有使用的可选模块是不被记录在desc描述文件中的。
u iSIGHT文档遵循MDOL语言的文法存储模型的内容。
如:desc文件中的数据库存储模块
DataStorage task-name ?(Restore: [yes] | no) DataLog: “filename” ?(Mode: [overwrite] | append) ?(MatchMode: [Exact ] | ) ?(DataLookUp: +(“filename”)) ?(Levels: [all] | none | bestonly | feasibleonly | “[ +(level) ]” # level may be 0,1,2,3,4,5,6,7,8,9, notuseable, infeasible, infeasibletie, # infeasiblebetter, softinfeasible, softinfeasibletie, softinfeasiblebetter, # feasible, feasibletie, feasiblebetter ?(StoreGradRuns: [yes] | no) ?(StoreApproxRuns: [yes] | no) End DataStorage task-name |
DataStorage task-name
?(Restore: [yes] | no)
DataLog: “filename”
?(Mode: [overwrite] | append)
?(MatchMode: [Exact ] | )
?(DataLookUp: +(“filename”))
?(Levels: [all] | none | bestonly | feasibleonly | “[ +(level) ]”
# level may be 0,1,2,3,4,5,6,7,8,9, notuseable, infeasible, infeasibletie,
# infeasiblebetter, softinfeasible, softinfeasibletie, softinfeasiblebetter,
# feasible, feasibletie, feasiblebetter
?(StoreGradRuns: [yes] | no)
?(StoreApproxRuns: [yes] | no)
End DataStorage task-name
为什么要学习MDOL语言?
u 在iSIGHT用户界面,用户可以设置模型的对应信息,点击保存,会生成模型的desc描述文件。
u 但是iSIGHT GUIs界面并不能让用户对iSIGHT享有100%的控制,只能达到90%部分内容的控制。
u 掌握MDOL语言,可以让用户对另外10%的内容进行设置和操作。
u 打开iSIGHT_10/doc/templates目录,查看MDOL_template.desc 文件,该文件中包含了iSIGHT中的各个模块
iSIGHT中通过GUI界面不能控制的内容:
u TaskCleanup:清空数据
u Groups:定义组(参数的集合,如所有输入参数定义为一个组)
u Procedures
u Dialogues
u Custom Parsing
Desc文件模块详细介绍
Task Header Block:定义模型的基本特征
Inputs Block :定义模型的输入参数
Auxiliaries Block:定义Auxiliaries中间参数(既不是输入参数也不是输出参数),中间参数(Auxiliaries parameters)的值将不被保存在数据库db文件当中。
Outputs Block:定义输出参数,这些参数可以被定义为目标函数或者约束
Groups Block:使用方便,但无法在GUI界面进行设置;
Groups AeroTrim Group WdesGrp WingdesOut End Group WdesGrp Group AfitGrp AeroFitData End Group AfitGrp End Groups AeroTrim |
Initialization Block:初始化模块(Initialization block)在模型被导入时运行。
Calculations Block:计算器模块,计算器中的计算可以为TCL语言编写的数据运算,也可以为直接的数据运算公式记录
SimCode Block:定义用以集成仿真代码的Simcode组件的内容,分为三个子模块
SimCode simcode-name
InputFiles simcode-name
¡
End InputFiles simcode-name
OutputFiles simcode-name
End OutputFiles simcode-name
Dialogue simcode-name
End Dialogue simcode-name
SimCodeProcess simcode-name
End SimCodeProcess simcode-name
End SimCode simcode-name
SimCode simcode-name Simcode的名称,而不是Task名称 InputFiles simcode-name ¡ End InputFiles simcode-name OutputFiles simcode-name End OutputFiles simcode-name Dialogue simcode-name End Dialogue simcode-name SimCodeProcess simcode-name End SimCodeProcess simcode-name End SimCode simcode-name |
Approximations Block:近似模型模块,在一个模型中可以定义若干个近似模型
TaskProcess Block:定义模型中的simcodes、calculations和sub-tasks的执行顺序
Optimization Block:定义优化问题:
OptimizationPlan Block:定义可选的优化算法:
l 在iSIGHT中可以定义多种优化算法;
l 每一种算法将以OptimizationPlan模块记录在desc文件中;
TaskPlan Block:与定义优化算法类似,也可以定义用户的任务计划(task plan )
DataStorage Block:定义数据存储和提取的方式和位置
发表于:
2008-04-22 11:22 赛特达 阅读(7627)
评论(3) 收藏 好文推荐
本博客所有内容,若无特殊声明,皆为博主原创作品,未经博主授权,任何人不得复制、转载、摘编等任何方式进行使用和传播。
作者该类其他博文: