暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python随朕出征记——Python在产品的多目标优化和灵敏度分析中的应用

AICaer 2021-12-17
781

        产品的多目标优化和灵敏度分析,现在有很多参数化的建模方法以及工程应用软件,比如AltairMorph和Hyperstudy,比如ANSA和Opitimus,再比如Meshworks和iSight等

        下面以一个白车身结构的刚度、模态以及质量为目标,其关键断面尺寸以及其关键厚度作为参数,应用ANSA和Opitimus搭载整个流程,如下图所示:

        如果这个流程能够顺利的进行下去,好吧,皆大欢喜,如果不行

        比如,你的本机的求解器,比如Nastran罢工了,服务器的端口又出现问题呢?

        好,小样的,不信离了你我都不转了,我手动输入总行吧,打开,粘贴复制,再打开再复制粘贴……

        我的天啊,一上午过去了,上百个样本点,才敲了三分之一,这可怎么办呀,我的爱妾,你快回来吧!

        爱妾是已经彻底弃我而去,任务还是得完成啊,求人不如求己,我就不信这个邪!

        小Python ,准备好,随朕一起出征!

        Python :陛下,我该往哪打?

        问题描述:

        1、模态上百个样本点计算完成后,得到了上百个样本点模态的结果,并且这些结果都储存在F06文件中,如何把这些结果文件都从f06文件中拎出来,然后自动写在DOE矩阵中要求的位置呢?

        2、刚度上百个样本点计算完成后,得到了上百个样本点刚度的结果,并且这些结果都储存在pch文件中,如何把这些结果文件都从pch文件中拎出来,然后自动写在DOE矩阵中要求的位置呢?

        先来看下第一个问题,这个略微简单一丢丢,为什么呢,因为只要定位,提取数值,然后写入就可以了,让我们一起来试一下。

        先看下f06文件需要提取的内容:

        1、 标记提取内容的关键字,比如REAL EIGENVALUES。

        2、 然后寻找需要提取的阶数,因为本身问题的需求,这里要提取的是扭转模态和弯曲模态,如上图中红色线框标识的内容。

        废话不多说,上代码。


        要打开各种文件,又读又写的,先导入各种函数库吧。

        找路径:

        一个是f06文件的路径,一个是写入的DOE矩阵的路径。

        方便起见,我们选取上百f06文件里的5个示例说明文件从MODE_dv002.f06MODE_dv006.f06

        有人问我,你的001号文件呢,就当被我吃了吧。。。(命名只要数字连续自己知道就可以,这里是因为1号文件出了点错误,所以就没有选择其当做案例说明了)

        下面就要上循环了,这里总共有两个循环,第一个是大循环,即如何把上面的f06文件ONE-BY-ONE的打开;第二个子循环是读取单一的f06文件,如何把单一的文件中的内容读取出来并且写入想要写入的位置。

        先来看第一个大循环:

        看到了吧,这样文件就一个一个的打开了。

        再来看第二个子循环,这个就有点意思了。

        首先定义了一个list1,用来存放从f06文件里读出的结果,然后再将这些结果写入到指定的EXCEL里面去,这里值得一提的是,如何把一个矩阵转置后存放在EXCLE中呢,难点来了:

        这两个红框的内容缺一不可,有了这两个内容,我们一起看看结果:

        完美吧,f06文件里的模态值,依次写入了DOE矩阵的mode_b和mode_t中。


        至于刚度呢?

        欲知刚度如何,请听下回分解。


文章转载自AICaer,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论