首页/文章/ 详情

Simlab二次开发-基于Python的支架线性分析前后处理

8小时前浏览4
最初,SimLab以其四面体网格划分技术出道,才开始出来的时候推广就是以能够高效地处理复杂的几何结构为介绍。随着技术的不断进步和多个版本的迭代,SimLab的功能模块得到了极大的扩展和增强。不再是以前只会画四面体的工具,现在simlab的多物理场仿真能力也是不可小觑。

一、功能模块的扩展

目前SimLab现已集成了结构、流体、电磁、电机等多种功能,成为一个一站式的多物理场仿真平台。用户可以在一个界面内完成有限元前处理、求解以及后处理整个流程。SimLab能够查看结构及流体分析的动画、云图等结果,为用户提供了直观的数据分析方式。

二、多领域解决方案

SimLab中集成了Altair的OptiStruct™、Radioss™、AcuSolve™以及Flux™等求解器的部分功能,也支持第三方求解器。目前SimLab的求解能力包括线性静力学、非线性分析、稳态传热分析、瞬态热分析、热固耦合、模态分析、频响分析、疲劳分析、跌落分析、流体稳态分析、流体瞬态分析、流固耦合、静电分析以及模流分析等。这些功能的集成,使得SimLab能够为工程师提供全面的解决方案,覆盖了从电磁到流体,从热分析到电机等多个领域。

三、二次开发

随着SimLab功能的不断增强,二次开发的需求也提上日程。SimLab支持多种语言二次开发,我使用的是Python,同时支持Python脚本录制和回放,方便脚本开发。通过二次开发,用户可以根据自己的特定需求定制SimLab的功能,提高工作效率,优化分析流程。
为展示SimLab的二次开发,以一个支架模型为例,展示支架线性分析的全流程效果。在视频中,您将看到SimLab如何导入模型,从最初的四面体网格划分,工况开创建,求解,计算,报告生成,展示通过二次开发实现个性化定制的全过程。

目前simlab功能还能继续优化,比如报错的时候不会有信息提示,需要去翻日志文件。

来源:TodayCAEer
RADIOSSOptiStructAcuSolveFluxSimLab静力学疲劳非线性二次开发电机
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-04
最近编辑:8小时前
TodayCAEer
本科 签名征集中
获赞 18粉丝 32文章 254课程 0
点赞
收藏
作者推荐

使用超单元进行拓扑优化-OS-T:2070

您的每一次点赞和在看,都是对我工作的认可和鼓励,更是激励我不断前行、持续更新内容的强大动力。您的支持是我不懈追求卓越和创新的源泉。在产品开发中,我们经常面临需要对复杂结构进行优化设计的挑战。这时,使用超单元(Superelement)技术就显得非常必要,使用超单元的必要性有以下几点:1.复杂结构简化:对于包含数百万甚至更多自由度的复杂结构,直接进行优化分析计算代价高昂,超单元可以将复杂结构中的指定部分预先计算并简化,从而简化整个优化过程。2.计算效率:在进行拓扑优化时,需要进行多次迭代计算。超单元技术通过减少每次迭代所需的计算量,显著提高了计算效率。3.设计灵活性:超单元允许设计师专注于关键区域的设计,而不必从头开始处理整个结构,这增加了设计的灵活性。使用超单元的优势:1.减少计算时间:通过减少模型的自由度,超单元可以显著减少所需的计算时间。2.降低硬件要求:较小的模型尺寸意味着需要的计算资源更少,降低了对硬件的要求。3.提高设计迭代速度:设计师可以更快地测试不同的设计概念,加速产品开发流程。4.优化复杂区域:超单元使得对复杂或关键区域进行详细的优化成为可能,而不必担心整个模型的计算负担。5.更好的设计洞察:通过超单元技术,设计师可以更深入地了解结构性能,从而做出更明智的设计决策。超单元技术为复杂结构的优化设计提供了一种高效、灵活且实用的解决方案。在本教程中,我们将通过一个简单的悬臂梁有限元模型示例,展示如何应用静态缩减法(staticReduction)来简化有限元模型。此外,您还将学习如何对这一简化后的模型进行拓扑优化。在开始之前,请将本教程中使用的文件复制到您的工作目录。http://majorv.help.altair.com/minorv/simulation/tutorials/hwsolvers/optistruct/OS-T-2070/cantilever_full.zip图1.无缩减的全悬臂梁模型优化问题可以表示为:Objective:最小化柔度。Constraints:可设计体积的上限限制为40%。Designvariables:设计空间中每个Element的密度。图2.全悬臂梁模型的拓扑优化结果在这个过程中,我们将会使用静态缩减方法,它允许我们从整体模型中提取并简化特定的部分,这些部分在OptiStruct中被称为超单元。为了定义这些超单元的边界自由度,我们需要使用ASET或ASET1关键字。这些关键字指定了超单元与模型其余部分连接的自由度集合,也就是那些将被直接矩阵输入所替代的自由度。值得注意的是,随着ASET定义数量的增加,静态缩减的准确性会提高,但同时计算成本也会增加。例如,尽管静态缩减可以减小需要求解的矩阵的规模,但如果缩减后的矩阵(DMIG)非常稠密,那么求解时间可能会超过求解原始模型的稀疏矩阵的时间。因此,合理选择ASET定义对于利用DMIG进行有效分析至关重要。为了防止缩减矩阵过于密集,应仔细选择ASET条目(见下图),而不是为设计空间和非设计空间之间的所有边界节点创建ASET条目。由于本教程使用的问题体积较小,因此选择ASET条目可能不会影响求解时间。图3.ASET用于悬臂梁模型一、启动HyperMesh并设置OptiStruct用户配置文件1.启动HyperMesh。此时将打开UserProfile对话框。2.选择OptiStruct,然后单击OK。这将加载用户配置文件。它包括相应的模板、宏菜单和导入阅读器,将HyperMesh的功能缩减为与生成OptiStruct模型相关的功能。二、打开模型1.单击File>Open>Model。2.选择保存到工作目录的cantilever_full.hm文件。3.单击Open。cantilever_full.hm数据库将加载到当前HyperMesh会话中,替换任何现有数据。三、生成超单元3.1创建ASETLoadCollector1.创建LoadCollector。a)在ModelBrowser中,右键单击并从上下文菜单中选择Create>LoadCollector。默认LoadCollector显示在EntityEditor中。b)对于Name,输入Asets。c)将CardImage设置为None。2.创建约束。a)在Analysis页面中,单击constraints面板。b)选择create子面板。c)使用节点选择器,选择边界节点。图4.d)选择所有dof。选择到的Dof将被分配给ASET。dof1、2和3是x、y和z平移dof。dof4、5和6是x、y和z旋转dof。e)点击LoadType=并选择ASET。f)单击create。3.单击return转到主菜单。3.2删除后续优化中保留的Element将仅为那些将被折减的单元(超单元)生成折减刚度矩阵和载荷矢量。因此,需要创建一个新模型,该模型仅引用超单元零件以及直接应用于该零件的载荷和边界条件。1.按F2打开Delete面板。2.将实体选择器设置为elems,然后单击elems>bywindow。3.在图5中指示的Element周围绘制一个窗口。图5.4.单击deleteentity。5.单击return转到主菜单。3.3定义一个参数以将约简矩阵写出到外部文件激活矩阵保存过程需要PARAM,EXTOUT批量数据输入。如果没有此参数,运行将照常进行。此参数有两个选项:DMIGPCH,它将ASCII格式的矩阵保存到.pch文件,以及DMIGBIN,它将矩阵以二进制格式保存到.dmg文件。DMIGPCH用于本教程。1.在Analysis页面上,单击controlcards面板。2.在CardImage对话框中,单击PARAM。3.选择EXTOUT。4.在卡片图像顶部的EXTOUT下,选择DMIGPCH。5.单击return退出PARAM。6.单击return返回主菜单。四、保存数据库1.在菜单栏中,单击File>SaveAs>Model。2.在SaveAs对话框中,输入cantilever_dmig.hm作为文件名,并将其保存到您的工作目录中。五、提交作业1.在Analysis页面中,单击OptiStruct面板。图6.访问OptiStruct面板2.单击saveas。3.在SaveAs对话框中,指定写入OptiStruct模型文件的位置,并在文件名中输入cantilever_dmig。对于OptiStruct求解器模型,建议使用.fem扩展名。4.单击Save。inputfile字段显示在SaveAs对话框中指定的文件名和位置。5.将导出选项切换设置为all。6.将runoptions切换设置为analysis。7.将内存选项切换设置为memorydefault。8.单击OptiStruct启动OptiStruct作业。如果作业成功,则新的结果文件应位于写入cantilever_dmig.fem的目录中。cantilever_dmig.out文件是查找错误消息的好地方,如果存在任何错误,这些错误消息可以帮助调试输入模型。写入目录的默认文件为:cantilever_dmig.out:OptiStruct输出文件,包含有关文件设置的特定信息、优化问题的设置、运行所需的RAM和磁盘空间量的估计值、每次优化迭代的信息以及计算时间信息。查看此文件是否有警告和错误。cantilever_dmig.stat:分析过程摘要,提供分析过程中每个步骤的CPU信息。cantilever_dmig_AX.pch:缩减矩阵(DMIG)文件。矩阵以与DMIG批量数据输入相同的格式写入.pch文件。它们由单个标题条目和一个或多个列条目定义。默认情况下,刚度矩阵的名称为KAAX,质量为MAAX,载荷为PAX。由于本教程中未使用质量矩阵,因此不会将其写入.pch文件。I/O选项条目DMIGNAME提供对矩阵名称的控制。六、清除数据库在菜单栏中,单击File>New。现有HyperMesh数据库将被清除。七、在模型中引用超单元7.1打开模型1.单击File>Open>Model。2.选择保存到工作目录的cantilever_full.hm文件。3.单击Open。cantilever_full.hm数据库将加载到当前HyperMesh会话中,替换任何现有数据。7.2删除SuperelementReduced部分DMIGout由于超单元部分的矩阵将被DMIG替换,因此应删除节点和单元的批量数据条目,以及超单元中的所有荷载和边界条件。1.按F2打开Delete面板。2.将实体选择器设置为elems,然后单击elems>bywindow。3.在图7中指示的Element周围绘制一个窗口。图7.4.单击deleteentity。5.单击return转到主菜单。7.3使用DMIG设置拓扑优化1.在Analysis页面上,单击controlcards面板。2.定义INCLUDE_BULK控制卡。a)在CardImage对话框中,单击INCLUDE_BULK。b)在Include字段中,输入文件名cantilever_dmig_AX.pch。简化矩阵(DMIG)将包含在OptiStruct求解器模型中。这里假设您假设拓扑优化将在与cantilever_dmig_AX.pch文件相同的文件夹中运行。如果您计划在其他文件夹中运行它,请定义此文件的完整路径。c)单击return退出INCLUDE_BULK控制卡。3.定义K2GG控制卡。a)单击K2GG。b)在K2GG=字段中,输入KAAX。这指定了必须使用名为KAAX的折减刚度矩阵(存储在cantilever_dmig_AX.pch文件中)。c)单击return退出K2GG控制卡。4.定义P2G控制卡。a)单击P2G。b)在P2G=字段中,输入PAX。c)点击return退出P2G控制卡。5.单击return转到主菜单。八、设置优化8.1创建TopologyDesignvariables1.在Analysis页面中,单击optimization。2.单击topology。3.选择create子面板。4.在desvar=字段中,输入topo。5.将type:设置为PSHELL。6.使用props选择器,选择design。7.单击create。8.更新设计变量的参数。a)选择parameters子面板。b)将minmemb关闭为mindim=,然后输入1.2。c)单击update。9.单击return。8.2创建优化响应1.在Analysis页面中,单击optimization。2.单击Responses。3.创建体积分数响应。a)在responses=字段中,输入Volfrac。b)在响应类型下方,选择volumefrac。c)将区域选择设置为total和noregionid。d)单击create。4.创建柔度响应。1)在response=字段中,输入Compl。2)在响应类型下方,选择compliance。3)将区域选择设置为total和noregionid。4)单击create。5.单击return返回Optimization面板。8.3创建设计约束1.单击dconstraints面板。2.在constraint=字段中,输入VFrac。3.单击response=并选择Volfrac。4.选中upperbound旁边的框,然后输入0.4。5.单击create。6.单击return返回Optimization面板。8.4定义目标函数1.单击objective面板。2.验证是否选择了min。3.单击response=并选择Compl。4.使用loadsteps选择器,选择step。5.单击create。6.单击return两次以退出Optimization面板。九、保存数据库1.在菜单栏中,单击File>SaveAs>Model。2.在SaveAs对话框中,输入cantilever_opti.hm作为文件名,并将其保存到您的工作目录中。十、运行优化1.在Analysis页面中,单击OptiStruct。2.单击saveas。3.在SaveAs对话框中,指定写入OptiStruct模型文件的位置,并在文件名中输入cantilever_opti。对于OptiStruct求解器模型,建议使用.fem扩展名。4.单击Save。inputfile字段显示在SaveAs对话框中指定的文件名和位置。5.将导出选项切换设置为all。6.将runoptions切换设置为optimization。7.将内存选项切换设置为memorydefault。8.单击OptiStruct运行优化。作业完成时,窗口中会显示以下消息:OPTIMIZATIONHASCONVERGED.FEASIBLEDESIGN(ALLCONSTRAINTSSATISFIED).如果存在错误消息,OptiStruct还会报告错误消息。文件cantilever_opti.out可以在文本编辑器中打开,以查找有关任何错误的详细信息。此文件将写入与.fem文件相同的目录。9.单击Close。写入run目录的默认文件包括:cantilever_opti.hgdata:包含目标函数数据、百分比约束违例和每次迭代的约束的HyperGraph文件。cantilever_opti.HM.comp.tcl:HyperMesh命令文件,用于根据元件的密度结果值将元件组织成元件。此文件仅用于OptiStruct拓扑优化运行。cantilever_opti.HM.ent.tcl:HyperMesh命令文件,用于根据Element的密度结果值将Element组织成实体集。此文件仅用于OptiStruct拓扑优化运行。cantilever_opti.html:HTML报告,给出问题表述的摘要和最终迭代的结果。cantilever_opti.oss:OSSmooth文件,默认密度阈值为0.3。您可以编辑文件中的参数以获得所需的结果。cantilever_opti.out:OptiStruct输出文件,包含有关文件设置的特定信息、优化问题的设置、运行所需的RAM和磁盘空间量的估计值、所有优化迭代的信息以及计算时间信息。查看此文件,了解在处理cantilever_opti.fem文件时标记的警告和错误。cantilever_opti.res:HyperMesh二进制结果文件。cantilever_opti.sh:Shape文件进行最终迭代。它包含分析中每个单元的材料密度、空隙尺寸参数和空心方向角。此文件可用于重新启动运行。cantilever_opti.stat:包含有关用于完整运行的CPU时间的信息,以及用于读取输入模型、组装、分析、收敛等的CPU时间的分解。cantilever_opti_des.h3d:包含优化结果的HyperView二进制结果文件。cantilever_opti_s#.h3d:包含线性static分析的HyperView二进制文件,依此类推。十一、查看结果对于所有迭代,单元密度结果将从OptiStruct输出到cantilever_opti_des.h3d文件。此外,默认情况下,第一次和最后一次迭代的每个SUBCASE的位移和应力结果将输出到cantilever_opti_s#.h3d文件中,其中#指定SUBCASEID。11.1查看密度结果的云图1.在OptiStruct面板中,单击HyperView。2.在Results工具栏中,单击以打开Contour面板。3.将Resulttype设置为ElementDensities[s]和Density。4.将Averagingmethod设置为Simple。5.单击Apply以显示密度云图。6.在Animation工具栏上,单击以从Simulation列表中选择最后一个迭代。生成的云图表示由施加的载荷和边界条件产生的单元密度字段。图8.11.2查看单元密度的ISO值图等值图解提供有关单元密度的信息。Iso值保留等于和高于特定密度阈值的所有Element。对于具有实体设计区域的模型,此特征成为分析密度结果的重要工具。1.在Results工具栏中,单击以打开ISOValue面板。2.将Resulttype设置为ElementDensities。3.将Showvalues设置为Above。4.单击Apply。5.在Clippedgeometry下,选择Features和Transparent。6.更改密度阈值。a).在Currentvalue字段中,输入0.3。b).在Currentvalue下,移动滑块。当您更新密度阈值时,模型视窗中显示的Iso值会以交互方式更新。使用此工具可以更好地了解OptiStruct中的材料布局和载荷路径。图9.来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈