| |
基于TCL编程实现尺寸优化设计变量自动创建 | |
altair | |
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版 | |
概述
设计变量是优化设计的三要素之一,是优化模型定义的基础。对于飞机整体粗有限元模型,长桁、框等间隔区域即一个单元。建立尺寸优化设计模型时,要对每一个单元建立一个设计变量。对于蒙皮需要建立二维单元的设计变量,设计变量需要关联单元的初始厚度,单元的属性,单元的偏置量。对于长桁一般为杆单元,设计变量需要关联单元的初始面积,单元的属性。对于框等结构一般为梁单元,设计变量需要关联单元的初始面积、初始惯性矩、扭矩、单元属性、单元的偏置量,且要反映优化过程中梁单元的惯性矩的变化。对于大型尺寸优化设计模型,例如机翼翼盒、机身等结构,这些内容如果通过手动创建,效率低、易出错。HyperMesh提供了其二次开发工具TCL\TK,并且也提供了已经开发好的基于TCL的函数库。通过二次开发工具,可以快速的实现设计变量的自动创建,效率高、正确性高、易于修改、移植、维护。
1 自动创建尺寸优化设计变量的功能实现
首先建立一个命名空间组织整个程序的框架。通过界面指定所有的已知输入信息,方便数据正确输入及修改;建立杆、梁、壳单元的过程;通过界面指定所有的已知输入信息。
##关联HyperWorks GUI Toolkit (HWT)
package require hwt;
##建立命名空间,定义相关变量,相关过程。
namespace eval ::ALTAIRPD::Aero {
variable DLL 3.5;
variable DUL 12.0;
variable SIFW 22;
variable SWH 60;
variable SOFW 67;
variable WTR 0.95;
variable IFTR 1.4;
proc GUI {args } {
}
proc create_dv_for_PROD {args} {
......
}
proc create_dv_for_PBAR {args} {
......
}
proc create_dv_for_PSHELL {args} {
......
}
}
::ALTAIRPD::Aero::GUI;
1.1 输入界面
定义输入界面,方便用户输入、修改相关信息。相关代码如下所示。
proc GUI {args } {
variable frm_mainWnd .createcube
# 创建主界面窗口
catch {destroy .createcube}
::hwt::CreateWindow createcube \
windowTitle "Create Desvar For PBAR" \
geometry 350x250 \
minSize 100 100 \
-noGeometrySaving \
-acceptButton "Create" \
-acceptFunc "::ALTAIREPM::Aero::create_dv_for_PBAR" \
-noCancel
::hwt::PostWindow createcube
##创建框架
set frm_v1 [::hwt::WindowRecess $frm_mainWnd]
pack $frm_v1 -side top -fill both -expand yes -anchor nw
set n_labelWidth 26
set n_entryWidth 20
##创建输入框
AddEntry $frm_v1.ety0 \
-label "Desvar Lower Limit:" \
-labelWidth $n_labelWidth \
-entryWidth $n_entryWidth \
-validate real \
-textvariable "::ALTAIREPM::Aero::DLL" \
-afterFunc "" \
-state normal
}
相关代码产生效果如图1 所示。 (图片) (图片) (图片) | |
电脑版 | 客户端 | 关于我们 |
佳工机电网 - 机电行业首选网站 |