OptiStruct输出结构的刚度与质量矩阵
资料
- https://help.altair.com/hwsolvers/os/topics/solvers/os/param_post_bulk_r.htm
- https://help.altair.com/hwsolvers/os/topics/solvers/os/output_io_r.htm
- https://help.altair.com/hwsolvers/os/topics/solvers/os/full_mat_file_r.htm
概述
已知,OptiStruct 有三种方法可以输出结构的刚度矩阵与质量矩阵。
方法 1:使用下面的参数可以生成稀疏格式的或者稠密格式的刚度矩阵与质量矩阵,结果存储在.full.mat
文件,这是一个 ASCII 文件
1 | $ 只能选一种 |
方法 2:使用参数PARAM, POST, -5
,这样会生成.k.op2
与 .m.op2
文件,里面含有刚度矩阵与质量矩阵信息,但是目前暂无读取该 op2 文件的方法。
方法 3:使用超单元方法。
方法 1 OUTPUT
获得.full.mat 文件
- 在 HyperMesh 中完成特征值分析设置,附件是一个特征值分析的 fem,设置方法可参考 https://19970622.xyz/posts/57316/
- 在 fem 第 1 行添加
OUTPUT,MATRIX,FULL,SPARSE
- 使用 OptiStruct 求解,获得
.full.mat
文件 - 需要指出 OptiStruct 不会对矩阵进行半带宽优化,文件也给出了刚度矩阵每个自由度含义;如果设置约束,导出的矩阵将是划行划列后的
读取.full.mat 文件
文件格式见:https://help.altair.com/hwsolvers/os/topics/solvers/os/full_mat_file_r.htm
读取函数:Read_KM_From_Optistruct.m
优化后的函数:Read_KM_From_Optistruct_Fast.m
优化后的函数:3993
DOFs 需要 1.5 秒,336633
DOFs 需要 143 秒
优化方向是使用sparse(i,j,v)
下面给出 Read_KM_From_Optistruct.m,注意waitbar
会耗费一定时间
1 | function Model = Read_KM_From_Optistruct(filName) |
方法 2 POST
获得 op2 文件
- 在 HyperMesh 中完成特征值分析设置
- 在 fem 文件的
BEGIN BULK
后面添加PARAM,POST,-5
- 使用 OptiStruct 求解,获得
.k.op2
与.m.op2
文件
读取 op2 文件
暂时没有办法。
pyNastran
最新版本v1.4.1
也不能读取这个 op2 文件,输出如下:
方法 3 超单元法
- 划分网格—设置材料—设置单元属性
- 右键创建 Load Collectors—Analysis—constraints—node—all—load types=ASET—creat
- 右键创建 Load Step—Analysis type=Generic,注意不要配置 SPC
- Analysis—OptiStruct—export options=all—run options=analysis—OptiStruct
- 刚度矩阵在文件
*_AX.pch
中
附:OptiStruct 特征值分析 fem
1 | OUTPUT,MATRIX,FULL,SPARSE |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 有限元分析与编程!
评论