了解如何在RADIOSS有限元模型上执行同时具有大小和形状Inputs Variable的高级研究。
在开始之前,请将本教程中使用的模型文件从 /HS-4420/ 复 制到您的工作目录。
本教程中采取的步骤演示了如何分析Inputs Variable以识别最重要的变量以及如何进行优化。优化的目标是最小化冲击器的最大加速度,同时保持最大位移低于16 mm。
此模型模拟具有初始速度的球体对长方体的动态影响。有八个变量:四个大小变量(即4个框厚度)和4个shapes变量。
1.启动HyperMesh Desktop。
2.在User Profiles对话框中,将用户配置文件更改为RADIOSS。
3.打开模型。
a)在菜单栏中,单击File>Open>Model。
b)在Open Model对话框中,打开impactor.hm文件。
impactor.hm数据库具有RADIOSS分析设置,并且形状已经创建。您必须导出shapes变量,以便它们包含在模板文件中。
4.创建形状。
a)在Tool页面中,单击shape。
b)转到desvar子面板,并将单个desvars切换到multiple desvars。
c)输入以下值:
初始值:0
下限:-1
上限:1 d)单击shapesCollector。
e)选择所有形状。
f)单击select。
g)单击create。
将为每个形状创建一个形状设计变量。
a)单击animate。
b)在Deformed面板中,点击linear或modal以动画形式呈现模型视窗中的形状变量。
c)在为形状设置动画时,您可以通过移动滑块来调整动画速度,如下图所示。
6.导出和保存形状。
a)转到export子面板。
b)对于分析代码,选择HyperStudy。
c)对于sub-code,请选择Radioss51。
d)在File字段中,输入impactor.shp。
e)单击export as。
f)在Save As对话框中,导航到您的工作目录并将文件另存为impactor.shp。
HyperMesh写入以下文件:
oimpactor.radioss51.node.tpl:网格坐标模板
oimpactor.shp:impactor.radioss51.node.tpl读取的网格扰动向量数据
7.退出HyperMesh桌面。
在此步骤中,在HyperStudy中创建基本输入模板。
1.启动HyperStudy。
2.在菜单栏中,单击Tools>Editor。
此时将打开Editor。
3.在File字段中,打开impactor_0000.rad文件。
4.右键单击编辑器中的任意位置,然后从上下文菜单中选择Select Nodes>/NODE。
impactor_0000.rad文件中的所有/NODE卡都将突出显示。
5.右键单击突出显示的卡片,然后从上下文菜单中选择Include Shape。
6.在Shape Template对话框中,打开impactor.radioss51.node.tpl文件。
创建形状变量,并将网格替换为在从HyperMesh导出形状参数化步骤期间导出的参数文件(其中包含由形状参数化的网格)。
7.Create参数。
a)选择prop_external_skin的厚度值。
在RADIOSS卡组中,卡片中的每个字段长度为20个字符。
Tip:要帮助您选择20个字符的字段,请按Control键激活选择器(设置为20个字符),然后单击value。
b)右键单击突出显示的字段,然后从上下文菜单中选择Create Parameter。
此时将打开Parameter: varname_1对话框。
c)在Label字段中,输入th_external_skin。
d)修改边界。
下限:1.0
初始值:1.0
上限:2.0 e)在Format字段中,输入%20.5f。
f)单击OK。
8.使用表1 中提供的信息为厚度定义另外三个Inputs Variable:
9.单击OK关闭Editor。
10.在Save Template对话框中,导航到您的工作目录并将文件另存为impactor.tpl。
1.通过以下方式开始新研究:
在菜单栏中,单击**File**>**New**。
在功能区上,单击。 2.在Add Study对话框中,输入研究名称,选择研究的位置,然后单击OK。
3.转到Define Models步骤。
4.添加Parameterized File模型。
a)从Directory中,将impactor.tpl文件拖放到工作区中。
b)在Solver input file列中,输入impactor_0000.rad。
这是HyperStudy在评估期间写入的求解器输入文件的名称。
c)在Solver execution script列中,选择RADIOSS。
d)在Solver input arguments列中,在${file} 后输入-nproc 4。
5.定义模型依赖关系
a)单击Model Resources。
此时将打开Model Resource对话框。
b)选择Model 1(m_1)。
c)单击Resource Assistant>Add File。
d)在Select File对话框中,导航到您的工作目录并打开impactor_0001.rad文件。
e)将Operation设置为Copy。
f)单击Close。
6.单击Import Variables。
从impactor.tpl资源文件导入了8个Inputs Variable。
7.转到Define Input Variables步骤。
8.查看Inputs Variable的下限和上限范围。
1.转到Test Models步骤。
2.单击Run Define。
在study Directory中创建approaches/setup_1-def/ 目录。approaches/setup_1-def/run__00001/m_1目录包含输入文件,该文件是试运行的结果。
在本研究中,您需要分析箱体观察到的最大加速度和最大位移。这项研究是时代的功能;您需要提取每个输出响应向量随时间变化的最大值。
1.转到Define Output Responses步骤。
2.创建时间的文件源。
a)单击Data Sources选项卡。
b)从目录中,将位于approaches/setup_1-def/run__00001/m_1中的impactorT01文件拖放到工作区中。
此时将打开Data Source Builder对话框。
c)对于Tool ,选择File Source。
d)定义以下选项:
Type:**Time**
Request:**Time**
component:**Time** e)单击OK。
3.通过重复步骤2 并进行以下更改,为沿Z轴的撞击器加速创建第二个文件源:
Type:**Node/TH_node_sphere**
Request:**4206 rigid_sphere_4206**
component:**AZ-Z Acceleration** 4.通过重复步骤2 并进行以下更改,为沿Z轴的撞击器位移创建第三个文件源:
Type:**Node/TH_node_sphere**
Request:**4206 rigid_sphere_4206**
component:**DZ-Z Displacement** 将创建Max_Acceleration输出响应的所有结果向量。图14 中的左图有一些噪声。为了消除噪声,您将使用滤波器并处理滤波后的输出响应,如图14所示的右图所示。
5.添加两个输出响应。
a)单击Define Output Responses步骤。
b)单击Add Output Response两次。
c)在工作区中,将输出响应的标签更改为Max_Acceleration和Max_Displacement。
6.定义Max_Acceleration输出响应。
a)在输出响应Max_Acceleration的Expression列中,单击 (...) 的。
b)在Expression Builder中,单击Functions选项卡。
c)从函数列表中,选择saefilter。
此函数将对加速度矢量应用过滤器。
d)单击Insert varname。
函数saefilter(,,) 将显示在Evaluate Expression字段中。现在,您可以将时间向量和加速度向量作为参数添加到函数中,类参数为180。
e)在Evaluate Expression字段中,输入(ds_1,ds_2,180) 中的saefilter functions。
f)要计算表达式的max,请将max functions添加到表达式的开头。
表达式应为:max(saefilter(saefilter(ds_1,ds_2,180)0))。
g)要用G表示结果,请将表达式的最大值除以9810。
表达式应为:max(saefilter(ds_1,ds_2,180)/9810)。
h)单击OK。
7.定义Max_Displacement输出响应。
a) Optional: 绘制位移相对于时间的关系,得到下图所示的曲线:
b)在输出响应Max_Displacement的Expression列中,单击 (...) 的。
c)在Expression Builder中,单击Functions选项卡。
d)从函数列表中,选择abs。
e)单击Insert varname。
函数abs() 将显示在Evaluate Expression字段中。
f)从函数列表中,选择min。
g)单击Insert varname。
表达式现在应为abs(min())。
h)在Evaluate Expression字段中,输入min functions中的ds_3。
i)单击OK。
8.单击Evaluate以提取响应值。
通过运行筛选实验来减少Inputs Variable的数量。
该模型有8个变量,这可能会导致直接优化甚至创建响应曲面的计算时间较长。在2个水平上具有8个因子的全因子试验将需要28(256) 次运行,而在3个水平中,它将增加到6561次运行。您将尝试通过首先进行部分因子筛查DOE来筛选出一些Inputs Variable。
1.添加DOE。
a)在Explorer中,右键单击并从上下文菜单中选择Add。
此时将打开Add对话框。
b)对于Definition from ,选择一种方法。
c)选择DOE,然后单击OK。
2.转到DOE 1>Specifications步骤。
3.在工作区中,将Mode设置为Fractional Factorial。
4.在Settings选项卡中,将Resolution设置为IV。
Note: 分辨率IV能够估计主效应,而不会受到双因素交互作用的混淆。它还支持估计双因子交互作用效应,这可能会与其他双因子交互作用相混淆。
5.验证Number of Runs是否设置为16。
6.单击Apply。
7.转到DOE 1>Evaluate步骤。
8.单击Evaluate Tasks。
9.转到DOE 1>Post-Processing步骤。
10.单击Linear Effects选项卡以查看线性效果。
观察Inputs Variable对两个输出响应的主要影响。
11.单击Pareto Plot选项卡,然后使用Channel选择器选择两个输出响应。
启用Linear Effects选项的线性效应图和帕累托图(如图21 所示)提供相同的信息。但是,使用帕累托图,您可以使用统计度量(即80-20规则)来确定哪些Inputs Variable更重要,哪些Inputs Variable可以忽略。
在本教程中,您将使用80/20规则来消除对研究不重要的Inputs Variable。80/20法则是一种帕累托法则,它提出80% 的总效应仅来自20% 的变量。
Note: 你还应该使用其他做法来消除你认为应该考虑的Inputs Variable。
出于筛选目的,您可以查看哪些Inputs Variable对给定输出响应的80% 或更多做出贡献。在图22 中,您可以看到以下内容:
o对于Max_Acceleration,Inputs Variable length_internal、th_internal_skin和th_external_skin贡献了80% 的线性效果。
o对于Max_Displacement,Inputs Variable length_internal和th_internal_skin属于80/20规则。
对于n个响应,您可以列出遵循80/20规则的Inputs Variable,并采用集 合的并集。在这种情况下,遵循80/20规则的Inputs Variable包括:length_internal、th_internal_skin和th_external_skin。这会将您的列表缩小到三个重要的Inputs Variable。
由于此优化基于响应面,因此将使用中央复合实验,该实验将创建二阶响应面。
1.添加DOE。
a)在Explorer中,右键单击并从上下文菜单中选择Add。
此时将打开Add对话框。
b)对于Definition from ,选择一种方法。
c)选择DOE,然后单击OK。
2.转到DOE 2>Definition>Define input variables步骤。
3.在活动列中,仅保持三个有效Inputs Variable处于活动状态(在步骤:后处理筛选DOE研究中建立),并清除所有其他Inputs Variable的相应复选框。
4.转到DOE 2>Specifications步骤。
5.在工作区中,将Mode设置为Central Composite。
6.单击Apply。
7.转到DOE 2>Evaluate步骤。
8.单击Evaluate Tasks。
其他点将用于检查近似的质量。
这些点将由新的DOE定义。在这项DOE研究中,将使用10次运行的拉丁HyperCube。
重复步骤Run DOE Study for Approximation 以添加第三个DOE。
1.在Specifications步骤中,将Mode设置为Latin HyperCube。
2.在Settings选项卡中,将Number of Runs更改为10。
1.添加Fit。
a)在Explorer中,右键单击并从上下文菜单中选择Add。
b)在Add对话框中,选择Fit,然后单击OK。
2.导入矩阵。
a)转到Fit>Specifications步骤。
b)单击Add Matrix两次。
c)通过选择图24 中指示的选项来定义Fit Matrix 1和Fit Matrix 2。
d)单击Apply。
3.查看Inputs Variable。
a)转到Fit>Definition>Define Input Variables步骤。
b)只有length_internal、th_internal_skin和th_external_skin Inputs Variable应处于活动状态。
4.定义规范。
a)转到Fit>Specifications步骤。
b)在工作区的Fit Type列中,为所有输出响应选择Moving最小二乘法(MLSM)。
c)在Settings选项卡中,验证所有输出响应的Regression Model 是否设置为Linear。
Note: 建议从最低阶开始,并在模型Residuals和Diagnostics看起来不可行的情况下增加它。
d)单击Apply。
5.转到Fit>Evaluate步骤。
6.单击Evaluate Tasks。
7.要评估回归方程的准确性,请转到Fit>Post-Processing步骤,然后单击Residuals和Diagnostics选项卡。
8.要查看输出响应曲线和曲面,请单击Trade-Off选项卡。
在Trade-Off 3D选项卡中,使用Channel选择器绘制Inputs Variable和输出响应。未绘制的Inputs Variable的值将在顶部框架(Inputs) 中修改。移动Value列中的滑块以修改其他Inputs Variable,同时研究整个设计空间的输出响应。
1.添加优化。
a)在Explorer中,右键单击并从上下文菜单中选择Add。
b)在Add对话框中,选择Optimization。
c)对于Definition from,选择一种方法,然后单击OK。
2.修改Inputs Variable。
a)转到Optimization>Definition>Define Input Variables步骤。
b)在Active列中,清除除length_internal、th_internal_skin和th_external_skin之外的所有Inputs Variable的复选框。
3.转到Optimization>Definition>Define Output Responses步骤。
4.单击Objectives/Constraints - Goals选项卡。
5.在Max Acceleration输出响应上应用目标。
a)单击Add Goal。
b)在Apply On列中,选择Max Acceleration。
c)在Type列中,选择Minimize。
6.对Max_Displacement输出响应应用约束。
a)单击Add Goal。
b)在Apply On列中,选择Max_Displacement。
c)在Type列中,选择Constraint。
d)在第1列中,选择 <= 。
e)在第2列中,输入16。
7.修改评估源。
a)单击Define Output Responses选项卡。
b)在Evaluate From列中,为两个输出响应选择Fit 1(fit_1)。
8.转到Optimization>Specifications步骤。
9.在工作区中,将Mode设置为Genetic Algorithm(GA)。
10.单击Apply。
11.转到Optimization>Evaluate步骤。
12.单击Evaluate Tasks。
该程序将优化设计,使最大加速度最小化,同时保持节点35527的位移小于16。
13.点击Iteration Plot选项卡以监控Optimization迭代。
14.单击Iteration History选项卡以查看每个迭代的表。
不遵守约束的迭代显示为红色,最优设计显示为绿色。
在此步骤中,您将运行Verification来检查近似找到的解是否接近求解器结果。
1.添加验证。
a)转到Optimization>Evaluate步骤。
b)单击Verify。
2.转到Verification>Specifications步骤。
3.在工作区中,将Mode设置为Verify Optimal。
4.单击Apply。
5.转到Verification>Evaluate步骤。
6.单击Evaluate Tasks。
7.转到Verification>Post-Processing步骤。
8.单击Delta Summary选项卡。
9.将光标悬停在Max-Displacement列的值上,以查看拟合预测值(原始值)和求解器运行结果(验证值)之间的差异。
如图33 所示,位移差异很小。