微信公众号:CAE技术分享

结构有限元最后的求解过程总是归结到求解一个大型矩阵方程Ax=b,对于一些情况还需要考虑质量矩阵M和阻尼矩阵C。有限元程序在组装完所有单元的刚度矩阵后,考虑模型所施加的约束和载荷,最终将刚度矩阵进行一些处理,例如乘大数法,变成Ax=b的形式,其中A是刚度矩阵,b是节点载荷,x为待求的节点位移,A和b全为已知量。

基本上各类有限元软件均能够提取模型的刚度矩阵,此次针对刚度矩阵的提取与解析做一个例子,采用的软件是ANSYS经典。

在ANSYS中建立一个简单的模型,划分网格后共12个节点,定义材料参数,施加约束和载荷后求解。有限元模型如下所示。

图1

待求解结束后,会在工作目录下生成一个后缀为full的文件,之后即可进行刚度矩阵的提取。

通过主菜单,如下所示。

图2

选择Matrix后,弹出如下所示的界面。

图3

其中,File to be

read需要指定工作目录下生成的full文件,Name

of file to write为所导出刚度矩阵的文件名称;Output

matrix file format表示文件格式,还有Binary,生成的是文档文件,选择Ascii即可;Matrix

to write表示输出的是刚度矩阵/质量矩阵还是阻尼矩阵;RHS选项表示是否同时输出右端项,也即是Ax=b中的b。

打开生成的刚度矩阵文档,如下所示。

图4

该文件的第1行:格式A72,解释性文字。

第2行:一共5个数值,格式5I14,其中585表示文件的总行数(不包括头文件,也即是前面5行不算);25表示矩阵列指针的总行数,通常是矩阵的阶数+1,其具体的数值位置是从第6行到30行;268表示矩阵行索引的总行数;第二个268表示矩阵元素的总行数;24表示右端项的数值总行数。

第3行:RSA表示矩阵的形式,其中R表示实数矩阵,S表示为对称矩阵,A表示为组装的矩阵;后面的两个24分别表示矩阵行数、矩阵列数,268表示矩阵的元素。

第4行:格式说明

第5行:几个数表示右端项的输出说明,F表示全部存储。

搞清楚头文件中的各个参数的实际意义,再结合各行的内容,能够清楚地知道矩阵的所有元素的数值。

通过简单的程序就可以将该文件进行解析,生成自己想要的格式。

这里补充说明一下,对于对称稀疏矩阵,在储存的时候只保留下三角非零元素。

本次解析所用的语言为python.

#!user/bin/python

#-* -coding:UTF-8

-*-

#打开矩阵文件

inpfile =

open("E:\CAE_Tech\process_files\232Files\matrix.txt")

#读取所有内容

lines = inpfile.readlines()

inpfile.close()

#打开输出文件

outfi;e =

open("E:\CAE_Tech\process_files\232Files\outmatrix.txt")

#解析矩阵文件的第二行

row_second = lines[1].split()

#得到矩阵的总行数(扣除头文件),此次实例中为585

Tol_content = int(row_second[0])

#得到列指针的总行数

Col_tol = int(row_second[1])

#得到矩阵元素总数

Row_tol = int(row_second[3])

#得到右端项的行数

Rhs_tol = int(row_second[4])

#初始化矩阵每列非零元素的起始行数

Star_row_num = [1] * Col_tol

#获取行起始数组

for i in range (Col_tol):

temp = lines[i+5].split()

Star_row_num[i] = int(temp[0])

for i in range (Rhs_tol):

temp_len = Star_row_num[i+1] - Star_row_num[i]

temp_len1 = Star_row_num[1] - Star_row_num[0]

temp_len2 = Star_row_num[i] - Star_row_num[0]

row_start_num = 5 + Col_tol + temp_len2

Each_col_num = i + 1

Each_col_num_str = str(Each_col_num)

for j in range (temp_len):

Each_row_num_str = lines[row_start_num + j].split()

Each_row_num = int(Each_row_num_str[0])

Each_row_num_str = str(Each_row_num)

Each_ele_num = Row_tol +5 + Col_tol + temp_len2 + j

Each_ele_str = lines[Each_ele_num].split()

Each_ele_value = Each_ele_str[0]

#得到每一行应该输出的列号,行号以及元素值

Each_row_list =

Each_row_num_str,Each_col_num_str,Each_ele_value,'\n'

a = ' '

Each_line = a.join(Each_row_list)

outfile.write(Each_line)

#输出右端项

for i in range (Rhs_tol):

Rhs_num = Tol_content + 5 -Rhs_tol +i

Rhs_each_row = lines[Rhs_num]

#去掉字符串前面的空格

Rhs_each_row = Rhs_each_row.lstrip()

outfile.write(Rhs_each_row)

outfile.close()

matlab提取刚度矩阵,ANSYS刚度矩阵的提取与解析相关推荐

  1. matlab从fig图文件中提取数据

    matlab从fig图文件中提取数据 lh=findall(gca,'type','line'); cell_l = cellfun('length',get(lh,'xdata')); i_lh=f ...

  2. 基于matlab得图像感兴趣区域提取

    对于图像感兴趣区域(ROI)的提取,一般从来两个方面着手解决:一是利用图像分割技术提取ROI:二是从人眼得视觉特征出发,通过模拟人眼得视觉特点,寻找特定得视觉敏感区域,并将这些视觉敏感区域排序作为RO ...

  3. Selenium提取数据之标签对象提取文本内容和属性值

    Selenium提取数据之标签对象提取文本内容和属性值 find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法 对元素执行点击操作element.clic ...

  4. PDF如何提取其中一页,PDF提取页面的方法

    如何提取PDF文件中的其中一页呢?对于PDF文件很多人了解的不是很多,更不要说PDF提取其中一页的方法了,想要进行这种操作就需要使用到PDF编辑器来操作,接下来小编就为大家分享一下PDF提取页面的方法 ...

  5. Excel中提取单元格中的部分内容或单元格中的数字公式大全(提取数字,提取前几位,提取指定文字之间的内容等等)

    Excel如何提取单元格中的部分文字或单元格中的数字 Excel如何提取单元格中的部分文字或单元格中的数字,整理了Excel中所有的提取要求,写成了一个公式翻译工具. 支持以下提取方式,输入提取要求, ...

  6. excel提取html字段文字,excel提取字符串中的特定字符串

    在表格处理中,有时会需要从字符串中提取特定的字符串,我们利用常用的两个函数:left()和find(),就能轻松完成,下面我们一起操作演示一下吧. 打开表格 将地址这一列中的字符串,提取出'区'之前的 ...

  7. 视频提取音频 - 手机视频在线提取音频提取器

    怎样将视频中的音频提取出来?一刀工具箱提供一键可将手机相册中的视频提取音频,便捷的快速获取到视频中的音频文件,视频提取音频的软件,免费转换 mp3 格式的工具. 代码片段 buildVideo(){l ...

  8. 怎么把视频里的音乐提取成音频,怎么提取视频中的音频

    视频的音频提取,可以使用王者剪辑中的"音频提取"功能,导入需要提取音频的视频,如果多个视频的话则批量导入,然后确定就可以一键将多个视频中的音频分别提取出来了.

  9. 图片文字提取,清华图片文字提取工具,wrod怎么提取图片文字,怎么把图片里面的文字提取?

    在学习工作生活中,我们会遇到一些只能查看却无法下载的文档,如果想要使用里面的文本内容怎么办,我们只能一边看文档一边打字,但是这样的效率太低了.有没有其他的好的方式呢?比如将文档拍照或者干脆截图,再把图 ...

  10. 方格网提取高程点lisp_CAD中高程点提取横断面数据的方法

    使用CAD或CASS里提取高程的插件啊,我有本回答被网友采纳,用软件 CSSD 6,优酷上有视频教程,进入优酷后 搜索 路线横断面数据处理软件 CSSD6 使用教程www.mh456.com防采集. ...

最新文章

  1. 指针也是一种数据类型
  2. python如何输出多个星号_如何将 Python 的一个类方法变为多个方法?
  3. pyecharts应用1 词云
  4. 记一次webpack4+react+antd项目优化打包文件体积的过程
  5. and型变量哲学家问题C语言,利用AND型信号量解决哲学家进餐问题,要windows下的C/C++的完整源代码程序。(五个哲学家五只筷子)...
  6. 黑盒测试策略及测试范围
  7. 关于updatepanel回传之后JS失效问题
  8. box-shadow用法;http://riny.net/lab/css3/box-shadow.html
  9. 管理感悟:衡量境界的差异
  10. 一个Keil工程包含的内容
  11. 展望:2021年程序员业界趋势与生存指南
  12. shp文件显示 c语言,上传并在地图中显示Shp文件
  13. 【转】大河报重要版面刊登署名永春文章:观猴有感 原始社会平均分配食物的问题 关于母系社会问题 关于人与动物关系的问题...
  14. 使用Spark和Pig统计每秒钟微博数量
  15. Android自动播放U盘视频
  16. Codeforces Round #809 (Div. 2)。D2. Chopping Carrots (Hard Version)
  17. 半导体物理 第七章 金属半导体接触及其能级图
  18. 文件服务器做raid,曙光服务器做RAID步骤.pdf
  19. linux命令:at 命令
  20. 《深度学习入门P72》显示mnist图像

热门文章

  1. STM8S103f单片机的开发(1)LED灯的点亮
  2. 【Axure报错】-Unable to connect to Axure Share. Please make sure you have an internet connection and try
  3. 穿越计算机的迷雾总结
  4. MyBatis拦截器实现原理
  5. Oracle密码过期
  6. 手机远程连接服务器工具:RD client远程桌面使用教程
  7. [数据挖掘案例]逻辑回归LR模型实现电商商品个性化推荐
  8. Qgis 3.18 的安装步骤
  9. 接口测试及常用接口测试工具
  10. 【单片机仿真】(二)keil 安装教程