当前位置: 首页 > news >正文

自研有限元软件与ANSYS精度对比-Bar3D2Node三维杆单元模型-央视大裤衩实例

目录

1、“央视大裤衩”自研有限元软件求解

1.1、选择单元类型

1.2、导入“央视大裤衩”工程

1.3、节点坐标定义

1.4、单元连接关系、材料定义

1.5、约束定义

1.6、外载定义

1.7、矩阵求解

1.8、变形云图展示

1.9、节点位移

1.10、单元应力

1.11、节点支反力

2、“央视大裤衩”Ansys软件求解

2.1、变形云图

2.2、节点位移

2.3、单元应力

2.4、节点支反力

3、结果对比

3.1、节点位移对比

3.2、单元应力对比

3.3、节点支反力对比


本系列文章致力于实现“手搓有限元,干翻Ansys的目标”,基本框架为前端显示使用QT实现交互,后端计算采用Visual Studio C++。

基于前文的准备工作,已具备初步的有限元分析的全流程计算,为了验证计算的准确性,将自研的有限元软件与商业软件ANSYS的计算结果进行对比。

手搓有限元 干翻Ansys-央视大裤衩有限元分析

(也可以点击此处进行视频跳转)

1、“央视大裤衩”自研有限元软件求解

使用自研有限元软件对“央视大裤衩”进行求解。模型中所有单元的杨氏模量E = 7e10Pa,横截面积A = 2e-4m^2。模型状态如下图所示(这里借用了Ansys的模型展示状态):

在模型底端全部使用铰支座进行X、Y、Z三个方向固定,除与地面接触的节点外,所有节点受到X正方向大小为1000N的力,模拟为风荷载。

1.1、选择单元类型

这里选择Bar_3D2Node单元(点击这里跳转到Bar3D2Node介绍)。

1.2、导入“央视大裤衩”工程

这里导入提前准备好的“央视大裤衩”模型。

1.3、节点坐标定义

这里显示的是模型中节点的ID、X坐标、Y坐标、Z坐标。

1.4、单元连接关系、材料定义

这里显示的是单元的ID、起始点ID、结束点ID、杨氏模量E、横截面积A。

1.5、约束定义

这里显示的是模型节点X方向是否约束(0为自由,1为约束)、X方向初始位移、Y方向是否约束(0为自由,1为约束)、Y方向初始位移、Z方向是否约束(0为自由,1为约束)、Z方向初始位移。所有方向的初始位移均设置为0.

1.6、外载定义

这里显示的是模型节点X方向初始荷载、Y方向初始荷载、Z方向初始荷载,依照荷载条件,与地面接触的节点无风荷载,除此之外所有的节点均受到X方向大小为1000N的初始荷载。

1.7、矩阵求解

控制台窗口打印的是每个单元的全局刚度矩阵。

1.8、变形云图展示

这里展示的是模型的变形云图,可以调整云图的色阶以及比例缩放。

1.9、节点位移

这里展示的是不同节点的位移。

1.10、单元应力

这里展示的是不同单元的应力。

1.11、节点支反力

这里展示的是不同节点的支反力。

2、“央视大裤衩”Ansys软件求解

2.1、变形云图

2.2、节点位移

这里展示的是局部节点位移。

2.3、单元应力

这里展示的是局部单元应力,由于与地面相连节点没有加风荷载,所以到27号单元应力才不为0.

2.4、节点支反力

在前12号节点均有荷载。

3、结果对比

在自研的有限元软件与Ansys软件的计算结果进行对比。

3.1、节点位移对比

节点位移对比
节点ID(从1开始计数)自研软件节点位移(m)Ansys节点位移(m)
1

X:0.000000e+00

Y:0.000000e+00

Z:0.000000e+00

X:0.000000e+00

Y:0.000000e+00

Z:0.000000e+00

13

X:1.145608e-03

Y:-5.583721e-05

Z:-1.500025e-04

X:0.11456E-02

Y:-0.55837E-04

Z:-0.15000E-03

44

X:3.593812e-02

Y:-1.132481e-02

Z:9.641387e-03

X:0.35938E-01

Y:-0.11325E-01

Z:0.96414E-02

56

X:4.634266e-02

Y:-1.434761e-02

Z:1.284828e-02

X:0.46343E-01

Y:-0.14348E-01

Z:0.12848E-01

80

X:7.366890e-02

Y:-3.727720e-02

Z:2.816048e-02

X:0.73669E-01

Y:-0.37277E-01

Z:0.28160E-01

这里只选取了部分节点进行数据对比。可以看出计算结果几乎一致,除了舍入误差保留精度之外。

3.2、单元应力对比

单元应力对比
单元ID(从1开始计数)自研软件单元应力(Pa)Ansys单元应力(Pa)
10.000000e+00

0.0000

273.000622e+060.30006E+07
88-2.147518e+07-0.21475E+08
1254.148358e+070.41484E+08
2665.679809e+060.56798E+07

这里只选取了部分单元进行数据对比。可以看出计算结果几乎一致,除了舍入误差保留精度之外。

3.3、节点支反力对比

节点支反力对比
节点ID(从1开始计数)自研软件节点支反力(N)Ansys节点支反力(N)
1

X:-1.598386e+04

Y:1.061466e+03

Z:7.351554e+03

X:-15984.

Y:1061.5

Z:7351.6

2

X:-7.255753e+03

Y:-2.371771e+04

Z:-1.842327e+04

X:-7255.8        

Y:-23718.

Z:-18423.

3

X:-4.658990e+03

Y:-1.039396e+04

Z:-4.412918e+03

X:-4659.0        

Y:-10394.

Z:-4412.9

4

X:-1.697886e+04

Y:-1.189124e+04

Z:-6.063854e+02

X:-16979.        

Y:-11891.

Z:-606.39

5

X:-1.135751e+04

Y:-5.277917e+04

Z:-1.239206e+04

X:-11358.        

Y:-52779.

Z:-12392.

6

X:4.755060e+02

Y:3.057443e+04

Z:1.210375e+04

X:475.51          

Y: 30574.

Z:12104.

7

X:-7.595668e+03

Y:-4.415977e+04

Z:9.528992e+03

X:-7595.7          

Y:-44160.

Z:9529.0

8

X:-2.386487e+03

Y:5.215669e+04

Z:-4.339480e+03

X:-2386.5            

Y:52157.

Z:-4339.5

9

X:-3.410433e+03

Y:-2.099796e+04

Z:-4.992923e+03

X:-3410.4        

Y:-20998.

Z:-4992.9

10

X:-2.388713e+03

Y:-9.652879e+03

Z:5.519742e+03

X:-2388.7          

Y:-9652.9

Z:5519.7

11

X:3.610844e+03

Y:3.707225e+04

Z:1.442215e+04

X:3610.8            

Y:37072.

Z:14422.

12

X:-7.007064e+01

Y:5.272786e+04

Z:-3.759157e+03

X:-70.071          

Y:52728.

Z: -3759.2

这里选取了全部固定节点进行数据对比。可以看出计算结果几乎一致,除了舍入误差保留精度之外。

相关文章:

自研有限元软件与ANSYS精度对比-Bar3D2Node三维杆单元模型-央视大裤衩实例

目录 1、“央视大裤衩”自研有限元软件求解 1.1、选择单元类型 1.2、导入“央视大裤衩”工程 1.3、节点坐标定义 1.4、单元连接关系、材料定义 1.5、约束定义 1.6、外载定义 1.7、矩阵求解 1.8、变形云图展示 1.9、节点位移 1.10、单元应力 1.11、节点支反力 2、“…...

kubernetes 高可用集群搭建

在生产环境中部署 Kubernetes 集群时,确保其高可用性(High Availability, HA)是至关重要的。高可用性不仅意味着减少服务中断时间,还能提高系统的稳定性和可靠性。本文将详细介绍如何搭建一个高可用的 Kubernetes 集群&#xff0c…...

【C++】STL——vector底层实现

目录 💕 1.vector三个核心 💕2.begin函数,end函数的实现(简单略讲) 💕3.size函数,capacity函数的实现 (简单略讲) 💕4.reserve函数实现 (细节…...

数据结构初探:链表之单链表篇

本文图皆为作者手绘,所有代码基于vs2022运行测试 系列文章目录 数据结构初探:顺序表篇 文章目录 系列文章目录前言一、链表基础概念二、链表的分类简化边界条件处理使代码更清晰简洁提高程序稳定性 1.单链表(不带头不循环的单链表);1.1存储结构;1.2准备工作1.3链表增删查改的实…...

介绍一下Mybatis的底层原理(包括一二级缓存)

表面上我们的就是Sql语句和我们的java对象进行映射,然后Mapper代理然后调用方法来操作数据库 底层的话我们就涉及到Sqlsession和Configuration 首先说一下SqlSession, 它可以被视为与数据库交互的一个会话,用于执行 SQL 语句(Ex…...

Linux基础 ——tmux vim 以及基本的shell语法

Linux 基础 ACWING y总的Linux基础课,看讲义作作笔记。 tmux tmux 可以干嘛? tmux可以分屏多开窗口,可以进行多个任务,断线,不会自动杀掉正在进行的进程。 tmux – session(会话,多个) – window(多个…...

64位的谷歌浏览器Chrome/Google Chrome

64位的谷歌浏览器Chrome/Google Chrome 在百度搜索关键字:chrome,即可下载官方的“谷歌浏览器Chrome/Google Chrome”,但它可能是32位的(切记注意网址:https://www.google.cn/...., 即:google.cn&#xff…...

jetson编译torchvision出现 No such file or directory: ‘:/usr/local/cuda/bin/nvcc‘

文章目录 1. 完整报错2. 解决方法 1. 完整报错 jetson编译torchvision,执行python3 setup.py install --user遇到报错 running build_ext error: [Errno 2] No such file or directory: :/usr/local/cuda/bin/nvcc完整报错信息如下: (pytorch) nxnx-desktop:~/Do…...

多线程创建方式三:实现Callable接口

实现Callable第三种方式存在的原因 作用:可以返回线程执行完毕后的结果。 前两种线程创建方式都存在的一个问题:假如线程执行完毕后有一些数据需要返回,他们重写的run方法均不能直接返回结果。 如何实现 ● JDK 5.0提供了Callable接口和FutureTask类来…...

Linux下的编辑器 —— vim

目录 1.什么是vim 2.vim的模式 认识常用的三种模式 三种模式之间的切换 命令模式和插入模式的转化 命令模式和底行模式的转化 插入模式和底行模式的转化 3.命令模式下的命令集 光标移动相关的命令 复制粘贴相关命令 撤销删除相关命令 查找相关命令 批量化注释和去…...

Docker技术相关学习二

一、Docker简介 1.Docker之父Solomon Hykes形容docker就像传统的货运集装箱。 2.docker的特点和优势: 轻量级虚拟化:Docker容器相较于传统的虚拟机更加的轻量和高效,能够快速的启动和停止来节省系统资源。 一致性:确保应用程序在不…...

【人工智能】多模态学习在Python中的应用:结合图像与文本数据的深度探索

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 多模态学习是人工智能领域的一个重要研究方向,旨在通过结合多种类型的数据(如图像、文本、音频等)来提高模型的性能。本文将深入探讨多模…...

【MySQL】常用语句

目录 1. 数据库操作2. 表操作3. 数据操作(CRUD)4. 高级查询5. 索引管理6. 用户与权限7. 数据导入导出8. 事务控制9. 其他实用语句注意事项 如果这篇文章对你有所帮助,渴望获得你的一个点赞! 1. 数据库操作 创建数据库 CREATE DATA…...

Docker网络基础

一、Docker网络基础 1.docker安装后会自动创建3中网络,分别为bridge host none docker network ls 2.docker原生bridge网络: docker安装时会创建一个名为docker0的linux bridge,新建的容器会自动桥接到这个接口 bridge模式下没有公有ip,只有宿主机可以…...

重新刷题求职2-DAY2

977. 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后…...

[STM32 标准库]EXTI应用场景 功能框图 寄存器

一、EXTI 外部中断在嵌入式系统中有广泛的应用场景,如按钮开关控制,传感器触发,通信接口中断等。其原理都差不多,STM32会对外部中断引脚的边沿进行检测,若检测到相应的边沿会触发中断,在中断中做出相应的处…...

Slint的学习

Slint是什么 Slint是一个跨平台的UI工具包,支持windows,linux,android,ios,web,可以用它来构建申明式UI,后端代码支持rust,c,python,nodejs等语言。 开源地址:https://github.com/slint-ui/slint 镜像地址:https://kkgithub.com/…...

STM32 DMA+AD多通道

接线图 代码配置 ADC单次扫描DMA单次转运模式 uint16_t AD_Value[4]; //DMAAD多通道 void DMA_Config(void) {//定义结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量 ADC_InitTypeDef ADC_InitStructure; //定义ADC结构体变量 DMA_InitTypeDef DMA_In…...

如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?

如何构建ObjC语言编译环境? 除了在线ObjC编译器,本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说,ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…...

【C语言】指针详解:概念、类型与解引用

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 💯前言💯指针的基本概念1. 什么是指针2. 指针的基本操作 💯指针的类型1. 指针的大小2. 指针类型与所指向的数据类型3. 指针类型与数据访问的关系4. 指针类型的实际意…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...