【ANSYS APDL】提取结构刚度矩阵完整过程--附Python代码实现

这篇具有很好参考价值的文章主要介绍了【ANSYS APDL】提取结构刚度矩阵完整过程--附Python代码实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 引言

结构刚度矩阵是什么

在这里简要回顾一下结构力学知识,可参考朱慈勉老师的《结构力学》

结构刚度矩阵来源于矩阵位移法,其中包括单元刚度矩阵,总刚度矩阵,结构刚度矩阵。在二维问题求解过程中,依次计算三者,最后求解可得到所有的节点位移U。该过程也称为直接刚度法,分析步骤如下:
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵
第一步,首先介绍单元刚度方程的基本表达形式,单元刚度矩阵由材料力学表达,同理可加入转角,形成完整单元刚度矩阵。
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵
第二步,将得到的所有单元刚度矩阵(注意需要经过局部系到整体系的转换)拼接,得到总刚度方程。
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵
第三步,结合位移边界条件外力,修正总刚度方程。位移约束用来修正U,若完全约束,则将对应行列删除。外力用来修正F,在相应节点的力定义为外力,其余力均为0。此时的刚度矩阵为非奇异,可以直接进行矩阵求解。

为什么要提取结构刚度矩阵

ANSYS用到的基本原理,就是上面提到的直接刚度法。在一些二维的问题中,将ANSYS的结构刚度矩阵提取出来,进行求解,得到的位移结果和ANSYS运行结果完全一样。因此采用刚度矩阵可以更直观地展示计算过程,提升运行效率。对于一些需要多次求解变化约束变化外力条件等情况,刚度矩阵的优势尤为明显。

1 ANSYS APDL如何导出结构刚度矩阵

导出步骤

这里直接给出导出刚度矩阵的命令(前提是前处理结束划分完单元格施加约束和外力

!进行模态分析
/SOLU
/OUTPUT, 'Modal_res',dat
ANTYPE, MODAL
MODOPT, LANB, 20
MXPAND, 20, , ,NO
SOLVE
FINISH

接下来可采用HBMAT命令从“Model_1.full”中提取整体刚度矩阵

/AUX2
FILE,'Model_1',full
HBMAT, 'Stiffness_mat', dat, , ASCII, STIFF, YES, YES
HBMAT, 'Mass_mat', dat, ,ASCII, MASS, YES, YES
FINISH

其中,Model_1需要改为自己路径下的.full文件名。Stiffness代表生成刚度矩阵KMass代表生成结构整体质量矩阵。

文件解释

此时,我们的工作路径下生成了Stiffness_mat.dat文件和Stiffness_mat.mapping文件。文件可直接用记事本打开。
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵
Stiffness_mat.mapping文件中列含义:第一列为方程编号,即带宽优化后矩阵的行/列编号;第二列和第三列分别指定与矩阵某一行/列对应的节点编号和自由度标签。


apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵
Stiffness_mat.dat文件含义。
第一行为文件内容的说明,指出该文件为ANSYS二进制文件导出的刚度矩阵,存储格式为Harwell-Boeing format。
第二行包含五个整数:第一个“98857”说明文件中具有98857个数据行;第二个数字“12961”说明数据的前12961行(文件的6-12966行)给定矩阵非零元素(对角线元素)的列索引指针(注意不是列索引),该数字等于自由度数加1;第三个整数“36468”指出文件中接下来的36468行给定非零元素的行索引;第四个整数“12960”指出文件接下来的12960行给出矩阵非零元素1

预处理

Stiffness_mat.dat文件打开后,它的完整内容从上到下可以划分为三部分,这个很容易就区分出来了。我们要的是第二和第三部分。新建一个xlsx文件,命名为dat文件。按照下面图所示,把Stiffness_mat.dat的内容复制过来。
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵

在运算之前检查一下最后面,数一下有几个数连续,记为count
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵

2制作结构刚度矩阵(python实现)

直接附python代码

import pandas as pd
import numpy as np
df=pd.read_excel(r'\dat文件.xlsx',sheet_name='dat文件',header=None)
def stiffness(p,q,count):
    '''p为`Stiffness_mat.dat`文件第二行第3个数,q为第二行最后一个数'''
    df_list=np.array(df.iloc[:p,0]).squeeze().tolist()
    result=[]
    n=1
    for i in range(1,p,1):
        if df_list[i]>df_list[i-1]:
            result.append(n)
        else:
            result.append(n)
            n=n+1
    result.append(0)
    for i in range(count):     
        result[-i-1]=df_list[-i-1]
            
    df_result=pd.DataFrame(np.zeros((q,q)))
    for i in range(p):
        x=df.iloc[i,0]
        y=result[i]
        df_result.iloc[int(x)-1,int(y)-1]=df.iloc[i,3]
    
    k_full=df_result+df_result.T
    for i in range(q):
        k_full.iloc[i,i]=df_result.iloc[i,i]
    return k_full

stiffness(36468,12960,6).to_csv(r'\结构刚度矩阵.csv',index=False,header=None)

Note

以上方法大多数情况通用。有个别特殊情况,需要对result手动编号。这个时候更改函数输出为result,手动调整最后几个特殊情况的数,再运行后续代码。
apdl得到质量矩阵怎么看,ANSYS APDL刚度矩阵,1024程序员节,矩阵


  1. http://feacat.com/article1/ANSYS%20%E4%B8%AD%E6%95%B4%E4%BD%93%E5%88%9A%E5%BA%A6%E7%9F%A9%E9%98%B5%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%88%E4%B8%80%EF%BC%89%EF%BC%9A%E5%AD%90%E7%BB%93%E6%9E%84%E5%88%86%E6%9E%90.html ↩︎文章来源地址https://www.toymoban.com/news/detail-824024.html

到了这里,关于【ANSYS APDL】提取结构刚度矩阵完整过程--附Python代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab-杆单元整体刚度矩阵组装(有限元基础-曾攀)

    一维杆单元的组装: 二维杆单元组装 三维情况下以此类推。

    2024年02月16日
    浏览(44)
  • 等参元:平面四节点四边形等参元的刚度矩阵的计算

    如图为一个平面3节点四边形等参元, 采用 4 点高斯积分计算该单元刚度矩阵。 ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ [1有限元基础教程-曾攀 

    2024年02月11日
    浏览(44)
  • 【语音识别入门】特征提取(Python完整代码)

    1.1数字信号处理基础 在科学和工程中遇到的大多数信号都是连续模拟信号,例如电压随着时间变化,一天中温度的变化等等,而计算机智能处理离散的信号,因此必须对这些连续的模拟信号进行转化。通过 采样–量化 来转换成数字信号。 以 正弦波 为例: x ( t ) = s i n ( 2 Π

    2024年01月17日
    浏览(41)
  • 数据结构学习记录——如何建立图(邻接矩阵、邻接表-图节点的结构、创建并初始化、插入变、完整图的建立)

    目录 邻接矩阵 图节点的结构 创建并初始化 插入边 完整的图的建立  邻接表 图节点的结构 创建并初始化 插入边  完整的图的建立  定义结构体GNode,其中包含以下成员变量: Nv:表示图中的顶点数。 Ne:表示图中的边数。 二维数组表示图的邻接矩阵。它的大小是MaxVertexN

    2024年02月06日
    浏览(46)
  • chatgpt赋能python:Python中如何遍历矩阵——完整教程

    矩阵是在数学和计算机科学中经常使用的一种数据结构。在Python中,矩阵可以使用列表(list)嵌套列表的方式来表示。对于像图像处理、机器学习、人工智能等领域,矩阵的遍历是一个基本的操作。遍历矩阵(即按行或按列访问它的每一个元素)可以使用Python的循环结构,并

    2024年02月04日
    浏览(48)
  • python取矩阵的某一行_Pythonnumpy提取矩阵的某一行或某一列的实例

    python取矩阵的某一行_Pythonnumpy提取矩阵的某一行或某一列的实例_weixin_39843677的博客-CSDN博客 最全--python取矩阵中的一个元素、某一行、特定位置元素_Mr DaYang的博客-CSDN博客_python获取矩阵中元素  

    2024年02月12日
    浏览(36)
  • python隐藏源码,生成pyd文件并调用的完整过程

    我们知道​ ​windows 系统有许多 DLL 后缀的文件,即动态链接库,在运行时链接到调用程序​​。在运行时链接到 DLL 之类的库的主要优点是,它可以促进代码重用,模块化体系结构和更快的程序启动。结果,DLL 在 Windows 操作系统周围提供了许多功能。​​pyd 这个 d 就是取自

    2024年02月04日
    浏览(52)
  • ANSYS二次开发:Python解析ansys fluent结果文件

    🍺相关文章汇总如下🍺: 🎈ANSYS二次开发:APDL开发入门准备🎈 🎈ANSYS二次开发:后处理使用APDL命令流解析结果文件🎈 🎈ANSYS二次开发:Python解析ANSYS结果文件(PyAnsys库)🎈 🎈ANSYS二次开发:Python和ANSYS进行交互操作(PyAnsys库,PyDPF)🎈 🎈ANSYS二次开发:Python解析ANS

    2024年02月07日
    浏览(45)
  • Steger算法实现结构光光条中心提取(python版本)

    对结构光进行光条中心提取时,Steger算法是以Hessian矩阵为基础的。它的基础步骤如下所示: 从Hessian矩阵中求出线激光条纹的法线方向 在光条纹法线方向上将其灰度分布按照泰勒多项式展开,求取的极大值即为光条在该法线方向上的亚像素坐标。对于二维离散图像来说,He

    2024年02月08日
    浏览(42)
  • 【Python程序开发系列】利用git实现协同开发做开源贡献(完整过程)

    这是我的_ 第221篇 _原创文章。 写在前面 『数据杂坛』以 Python语言 为核心,垂直于 数据科学 领域,专注于(可戳👉) Python程序开发|数据采集|数据分析 |数据可视化| 特征工程| 机器学习 | 时序数据| 深度学习 | 人工智能 等技术栈交流学习,涵盖 数据挖掘 、 计算机视觉 、

    2024年03月24日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包