matlab提取刚度矩阵,ANSYS刚度矩阵的提取与解析
微信公众号: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刚度矩阵的提取与解析相关推荐
- matlab从fig图文件中提取数据
matlab从fig图文件中提取数据 lh=findall(gca,'type','line'); cell_l = cellfun('length',get(lh,'xdata')); i_lh=f ...
- 基于matlab得图像感兴趣区域提取
对于图像感兴趣区域(ROI)的提取,一般从来两个方面着手解决:一是利用图像分割技术提取ROI:二是从人眼得视觉特征出发,通过模拟人眼得视觉特点,寻找特定得视觉敏感区域,并将这些视觉敏感区域排序作为RO ...
- Selenium提取数据之标签对象提取文本内容和属性值
Selenium提取数据之标签对象提取文本内容和属性值 find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法 对元素执行点击操作element.clic ...
- PDF如何提取其中一页,PDF提取页面的方法
如何提取PDF文件中的其中一页呢?对于PDF文件很多人了解的不是很多,更不要说PDF提取其中一页的方法了,想要进行这种操作就需要使用到PDF编辑器来操作,接下来小编就为大家分享一下PDF提取页面的方法 ...
- Excel中提取单元格中的部分内容或单元格中的数字公式大全(提取数字,提取前几位,提取指定文字之间的内容等等)
Excel如何提取单元格中的部分文字或单元格中的数字 Excel如何提取单元格中的部分文字或单元格中的数字,整理了Excel中所有的提取要求,写成了一个公式翻译工具. 支持以下提取方式,输入提取要求, ...
- excel提取html字段文字,excel提取字符串中的特定字符串
在表格处理中,有时会需要从字符串中提取特定的字符串,我们利用常用的两个函数:left()和find(),就能轻松完成,下面我们一起操作演示一下吧. 打开表格 将地址这一列中的字符串,提取出'区'之前的 ...
- 视频提取音频 - 手机视频在线提取音频提取器
怎样将视频中的音频提取出来?一刀工具箱提供一键可将手机相册中的视频提取音频,便捷的快速获取到视频中的音频文件,视频提取音频的软件,免费转换 mp3 格式的工具. 代码片段 buildVideo(){l ...
- 怎么把视频里的音乐提取成音频,怎么提取视频中的音频
视频的音频提取,可以使用王者剪辑中的"音频提取"功能,导入需要提取音频的视频,如果多个视频的话则批量导入,然后确定就可以一键将多个视频中的音频分别提取出来了.
- 图片文字提取,清华图片文字提取工具,wrod怎么提取图片文字,怎么把图片里面的文字提取?
在学习工作生活中,我们会遇到一些只能查看却无法下载的文档,如果想要使用里面的文本内容怎么办,我们只能一边看文档一边打字,但是这样的效率太低了.有没有其他的好的方式呢?比如将文档拍照或者干脆截图,再把图 ...
- 方格网提取高程点lisp_CAD中高程点提取横断面数据的方法
使用CAD或CASS里提取高程的插件啊,我有本回答被网友采纳,用软件 CSSD 6,优酷上有视频教程,进入优酷后 搜索 路线横断面数据处理软件 CSSD6 使用教程www.mh456.com防采集. ...
最新文章
- 指针也是一种数据类型
- python如何输出多个星号_如何将 Python 的一个类方法变为多个方法?
- pyecharts应用1 词云
- 记一次webpack4+react+antd项目优化打包文件体积的过程
- and型变量哲学家问题C语言,利用AND型信号量解决哲学家进餐问题,要windows下的C/C++的完整源代码程序。(五个哲学家五只筷子)...
- 黑盒测试策略及测试范围
- 关于updatepanel回传之后JS失效问题
- box-shadow用法;http://riny.net/lab/css3/box-shadow.html
- 管理感悟:衡量境界的差异
- 一个Keil工程包含的内容
- 展望:2021年程序员业界趋势与生存指南
- shp文件显示 c语言,上传并在地图中显示Shp文件
- 【转】大河报重要版面刊登署名永春文章:观猴有感 原始社会平均分配食物的问题 关于母系社会问题 关于人与动物关系的问题...
- 使用Spark和Pig统计每秒钟微博数量
- Android自动播放U盘视频
- Codeforces Round #809 (Div. 2)。D2. Chopping Carrots (Hard Version)
- 半导体物理 第七章 金属半导体接触及其能级图
- 文件服务器做raid,曙光服务器做RAID步骤.pdf
- linux命令:at 命令
- 《深度学习入门P72》显示mnist图像