网站建设销售在哪找客户/东莞网站定制开发
目录
1、四连杆工程实例以及手算求解
2、四连杆的自研有限元软件求解
2.1、选择单元类型
2.2、导入四连杆工程
2.3、节点坐标定义
2.4、单元连接关系、材料定义
2.5、约束定义
2.6、外载定义
2.7、矩阵求解
2.8、变形云图展示
2.9、节点位移
2.10、单元应力
2.11、节点支反力
3、四连杆ANSYS软件求解
3.1、变形云图
3.2、节点位移
3.3、单元应力
3.4、节点支反力
4、结果对比
4.1、节点位移对比
4.2、单元应力对比
4.3、节点支反力对比
本系列文章致力于实现“手搓有限元,干翻Ansys的目标”,基本框架为前端显示使用QT实现交互,后端计算采用Visual Studio C++。
基于前文的准备工作,已具备初步的有限元分析的全流程计算,接下来终于能够进行实例显示啦,为了验证计算的准确性,将自研的有限元软件与商业软件ANSYS的计算结果进行对比。
1、四连杆工程实例以及手算求解
(以上计算与实例来自于《有限元分析基础教程 曾攀 2008》p38~p42)
2、四连杆的自研有限元软件求解
根据前文的基础,具备了QT操作界面(点击此处跳转软件操作界面)与C++求解功能(点击此处跳转求解类),现在按照四连杆工程实例进行求解计算。
2.1、选择单元类型
在软件操作界面中选择二维杆模型Bar_2D2Node(点击此处跳转Bar2D2Node类的介绍)
2.2、导入四连杆工程
这里导入提前设置好的四连杆模型,在软件操作界面中可以显示模型的节点位置与单元连接状态。
2.3、节点坐标定义
在四连杆实例中,一共有四个节点,上面的表格展示的是四个节点的ID以及坐标,ID其实就是节点编号,与第一节的节点编号不同的是,这里的起始节点编号是0,而第一节的起始节点是1。其它坐标均与第一节保持一致。
2.4、单元连接关系、材料定义
这里展示的是单元的ID、起始节点ID、结束节点ID、杨氏模量和横截面积,注意这里的单元ID指的是单元编号,与第一节不同的是,这里的单元起始编号是从0开始的,而第一节是从1开始的。杨氏模量E与横截面积A的单位与第一节是保持一致的。
2.5、约束定义
这里表示的是节点的约束,在0号节点与3号节点是X、Y方向的位移约束,1号节点是Y方向位移约束。在表格中,HorizontalFix与VerticalFix为1代表为约束状态,0代表自由状态。InitalHorizontalDistance与InitalVerticalDistance代表初始位移量,均为0。与第一节的工程实例保持一致。
2.6、外载定义
这里表示的是不同节点外载数值,1号节点存在水平向右大小为20000N的集中力,2号节点存在竖直向下大小为25000N的集中力。与第一节的工程实例保持一致。
2.7、矩阵求解
这里直接点击求解器进行数值求解。
2.8、变形云图展示
这里可以直观的展示四连杆的变形状态,并且可以调整不同的图像色阶,通过调整缩放比例可以查看不同程度的变形。
2.9、节点位移
这里展示的是不同节点的位移数值。在第四节有详细的对比。
2.10、单元应力
这里展示的是不同单元的应力数值。在第四节有详细的对比。
2.11、节点支反力
这里展示的是不同节点的支反力数值。在第四节有详细的对比。
3、四连杆ANSYS软件求解
这里操作流程略去,直接查看结果:
3.1、变形云图
3.2、节点位移
红色方框内的就是每个节点的位移数值。注意节点编号是从1开始的,这里与第一节保持一致。
3.3、单元应力
红色方框内的就是每个单元的应力数值。注意节点编号是从1开始的,这里与第一节保持一致。
3.4、节点支反力
红色方框内的就是存在约束的节点支反力信息。
4、结果对比
综合三种计算过方法进行数据对比(手算、自研有限元软件、Ansys软件)
4.1、节点位移对比
节点ID(按照手算ID) | 手算(mm) | 自研有限元软件(mm) | Ansys软件(mm) |
1 | X:0 Y:0 | X:0 Y:0 | X:0 Y:0 |
2 | X:0.2712 Y:0 | X:2.711864e-01 Y:0 | X:2.7119e-1 Y:0 |
3 | X:0.0565 Y:-0.2225 | X:5.649718e-02 Y:-2.224576e-01 | X:5.6497e-2 Y:-2.22246e-1 |
4 | X:0 Y:0 | X:0 Y:0 | X:0 Y:0 |
可以看出三种不同方式计算出的节点位移结果是很相近的,只不过是由于保持精度位数不同的原因,存在一些舍入误差。
4.2、单元应力对比
节点ID(按照手算ID) | 手算(N/mm^2) | 自研有限元软件(N/mm^2) | Ansys软件(N/mm^2) |
1 | 200 | 2.000000e+02 | 2.0000e+02 |
2 | -218.8 | -2.187500e+02 | -2.1875e+02 |
3 | -52.08 | -5.208333e+01 | -5.2083e+01 |
4 | 41.67 | 4.166667e+01 | 4.1667e+01 |
可以看出三种不同方式计算出的单元应力结果是很相近的,只不过是由于保持精度位数不同的原因,存在一些舍入误差。
4.3、节点支反力对比
节点ID(按照手算ID) | 手算(N) | 自研有限元软件(N) | Ansys软件(N) |
1 | X:-15833.0 Y:3126.0 | X:-1.583333e+04 Y:3.125000e+03 | X:-15833 Y:3125.0 |
2 | Y:21879.0 | Y:2.187500e+04 | Y:21875 |
4 | X:-4167.0 Y:0 | X:-4.166667e+03 Y:0 | X:-4166.7 Y:0 |
可以看出三种不同方式计算出的节点支反力结果是很相近的,只不过是由于保持精度位数不同的原因,存在一些舍入误差。注意只有存在约束的节点才会存在支反力。
相关文章:

自研有限元软件与ANSYS精度对比-Bar2D2Node二维杆单元模型-四连杆实例
目录 1、四连杆工程实例以及手算求解 2、四连杆的自研有限元软件求解 2.1、选择单元类型 2.2、导入四连杆工程 2.3、节点坐标定义 2.4、单元连接关系、材料定义 2.5、约束定义 2.6、外载定义 2.7、矩阵求解 2.8、变形云图展示 2.9、节点位移 2.10、单元应力 2.11、…...

04树 + 堆 + 优先队列 + 图(D1_树(D11_伸展树))
目录 一、基本介绍 二、伸展操作 1. 左右情况的伸展 2. 左左情况的伸展 3. 右左情况的伸展 4. 右右情况的伸展 三、其它操作 1. 插入 2. 删除 四、代码实现 一、基本介绍 伸展树是一种二叉搜索树,伸展树也是一种平衡树,不过伸展树并不像AVL树那…...

c语言练习题【数据类型、递归、双向链表快速排序】
练习1:数据类型 请写出以下几个数据的数据类型 整数 a a 的地址 存放a的数组 b 存放a的地址的数组 b的地址 c的地址 指向 printf 函数的指针 d 存放 d的数组 整数 a 的类型 数据类型是 int a 的地址 数据类型是 int*(指向 int 类型的指针) …...

SliverAppBar的功能和用法
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverGrid组件相关的内容,本章回中将介绍SliverAppBar组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverAppBar和普通的AppBar类似,它们的…...

五、定时器实现呼吸灯
5.1 定时器与计数器简介 定时器是一种通过对内部时钟脉冲计数来测量时间间隔的模块。它的核心是一个递增或递减的寄存器(计数器值)。如果系统时钟为 1 MHz,定时器每 1 μs 计数一次。 计数器是一种对外部事件(如脉冲信号ÿ…...

Elasticsearch的索引生命周期管理
目录 说明零、参考一、ILM的基本概念二、ILM的实践步骤Elasticsearch ILM策略中的“最小年龄”是如何计算的?如何监控和调整Elasticsearch ILM策略的性能? 1. **监控性能**使用/_cat/thread_pool API基本请求格式请求特定线程池的信息响应内容 2. **调整…...

【大模型理论篇】最近大火的DeepSeek-R1初探系列1
1. 背景介绍 这一整个春节,被DeepSeek-R1刷屏。各种铺天盖地的新闻以及老板发的相关信息,着实感受到DeepSeek-R1在国外出圈的震撼。 DeepSeek推出了新的推理模型:DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一个在没有经过监督微调…...

【数据结构】(4) 线性表 List
一、什么是线性表 线性表就是 n 个相同类型元素的有限序列,每一个元素只有一个前驱和后继(除了第一个和最后一个元素)。 数据结构中,常见的线性表有:顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…...

【C++ STL】vector容器详解:从入门到精通
【C STL】vector容器详解:从入门到精通 摘要:本文深入讲解C STL中vector容器的使用方法,涵盖常用函数、代码示例及注意事项,助你快速掌握动态数组的核心操作! 一、vector概述 vector是C标准模板库(STL&am…...

OpenAI推出Deep Research带给我们怎样的启示
OpenAI 又发新产品了,这次是面向深度研究领域的智能体产品 ——「Deep Research」,貌似被逼无奈的节奏… 在技术方面,Deep Research搭载了优化后o3模型并通过端到端强化学习在多个领域的复杂浏览和推理任务上进行了训练。因没有更多的技术暴露…...

洛谷[USACO08DEC] Patting Heads S
题目传送门 题目难度:普及/提高一 题面翻译 今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏。 贝茜让 N N N ( 1 ≤ N ≤ 1 0 5 1\leq N\leq 10^5 1≤N≤105) 头奶牛坐成一个圈。除了 1 1 1 号与 N N N 号奶牛外࿰…...

CSS 溢出内容处理:从基础到实战
CSS 溢出内容处理:从基础到实战 1. 什么是溢出?示例代码:默认溢出行为 2. 使用 overflow 属性控制溢出2.1 使用 overflow: hidden 裁剪内容示例代码:裁剪溢出内容 2.2 使用 overflow: scroll 显示滚动条示例代码:显示滚…...

Spring Boot项目如何使用MyBatis实现分页查询
写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…...

飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用
重点:无刷外转子电机与无框力矩电机:技术解析与应用对比 在现代工业自动化和精密机械领域,无刷电机因其高效、低噪音和高可靠性而备受青睐。其中,无刷外转子电机和无框力矩电机更是以其独特的结构和性能特点,成为众多应用场景中的…...

FreeRTOS学习 --- 队列集
队列集简介 一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以使用队列集 ! 作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可让…...

【R语言】R语言安装包的相关操作
一、管理R语言安装包 1、安装R包 install.packages() 2、查看已安装的R包 installed.packages() 3、更新R包 update.packages() 4、卸载R包 remove.packages() 二、加载R语言安装包 打开R语言时,基础包(base包)会自动被加载到内存中…...

15.[前端开发]Day15-HTML+CSS阶段练习(网易云音乐四)
完整代码 01_网易云-header <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录
🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯1.登录-持久层 &…...

测试方案和测试计划相同点和不同点
在软件测试领域,测试方案与测试计划皆为举足轻重的关键文档,尽管它们有着紧密的关联,但在目的与内容层面存在着显著的差异。相同点: 1.共同目标:测试方案和测试计划的核心目标高度一致,均致力于保障软件的…...

c++提取矩形区域图像的梯度并拟合直线
c提取旋转矩形区域的边缘最强梯度点,并拟合直线 #include <opencv2/opencv.hpp> #include <iostream> #include <vector>using namespace cv; using namespace std;int main() {// 加载图像Mat img imread("image.jpg", IMREAD_GRAYS…...

Unity Shader Graph 2D - 角色身体电流覆盖效果
在游戏中,通常会有游戏角色受到“电击”的效果,此时游戏角色身体上会覆盖有电流,该效果能表明游戏角色的当前状态,让玩家能够获得更直观更好的体验。 那么如何实现呢 首先创建一个ShaderGraph文件,命名为Current,再创建对应的材质球M_Current。 基础的资源显示 老规矩,…...

【LLM-agent】(task4)搜索引擎Agent
note 新增工具:搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件…...

携程Java开发面试题及参考答案 (200道-下)
insert 一行数据的时候加的是什么锁?为什么? 在 MySQL 中,当执行 INSERT 操作插入一行数据时,加锁的情况会因存储引擎和具体的事务隔离级别而有所不同。一般来说,在 InnoDB 存储引擎下,INSERT 操作加的是行级排他锁(Row Exclusive Lock),以下详细说明原因。 行级排他…...

GWO优化SVM回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO),是由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出的群智能优化算法。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是对灰狼社会的结构与行为模式进行模仿。 …...

QMK启用摇杆和鼠标按键功能
虽然选择了触摸屏,我仍选择为机械键盘嵌入摇杆模块,这本质上是对"操作连续性"的执着。 值得深思的是,本次开发过程中借助DeepSeek的代码生成与逻辑推理,其展现的能力已然颠覆传统编程范式,需求描述可自动…...

Unity实现按键设置功能代码
一、前言 最近在学习unity2D,想做一个横版过关游戏,需要按键设置功能,让用户可以自定义方向键与攻击键等。 自己写了一个,总结如下。 二、界面效果图 这个是一个csv文件,准备第一列是中文按键说明,第二列…...

基于物联网技术的实时数据流可视化研究(论文+源码)
1系统方案设计 根据系统功能的设计要求,展开基于物联网技术的实时数据流可视化研究设计。如图2.1所示为系统总体设计框图,系统以STM32单片机做为主控制器,通过DHT11、MQ-2、光照传感器实现环境中温湿度、烟雾、光照强度数据的实时检测&#x…...

list容器(详解)
1. list的介绍及使用 1.1 list的介绍(双向循环链表) https://cplusplus.com/reference/list/list/?kwlist(list文档介绍) 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭…...

Elasticsearch基本使用详解
文章目录 Elasticsearch基本使用详解一、引言二、环境搭建1、安装 Elasticsearch2、安装 Kibana(可选) 三、索引操作1、创建索引2、查看索引3、删除索引 四、数据操作1、插入数据2、查询数据(1)简单查询(2)…...

17.3.4 颜色矩阵
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 17.3.4.1 矩阵基本概念 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,类似于数组。 由…...