018_FEA_Structure_Static_in_Matlab结构静力学分析

刹车变形分析
本示例展示了如何使用 MATLAB® 软件进行刹车变形分析。
这个例子是Matlab官方PDE工具箱的第一个例子,所需要的数据文件都由Matlab提供,包括CAD模型文件。
步骤 1: 导入 CAD 模型
导入 CAD 模型,这里使用的是一个带有孔的支架模型。
model = femodel(AnalysisType="structuralStatic", ...Geometry="BracketWithHole.stl");
这个是Matlab Unified Modeling的新写法,而不是以前pdemodel的写法。
这里的Geometry参数是一个STL文件,这个文件是Matlab提供的,包含了支架的几何形状。
figure
pdegplot(model,FaceLabels="on");
view(30,30);
title("Bracket with Face Labels")
exportgraphics(gcf, "BracketWithHole.png", Resolution=600)

不知道怎么回事,切换到后面的视图,整个图形都变黑了……不知道是什么魔法要素。
view(-134, -32)
title("Bracket with Face Labels, Rear View")
exportgraphics(gcf, "BracketWithHoleRear.png", Resolution=600)

步骤 2: 材料属性
设置材料属性。
model.MaterialProperties = ...materialProperties(YoungsModulus=200e9, ...PoissonsRatio=0.3);
这也是新的写法,model是一个类。
>> whos modelName Size Bytes Class Attributesmodel 1x1 5766 femodel
步骤 3: 产生网格
产生网格,这里使用的是默认的网格参数。Matlab教程里面喜欢把产生网格放在设置边界条件之后,我喜欢放在之前,因为我通常要做边界条件的变化,而网格是基本不变的。
model = generateMesh(model);figure
pdemesh(model);
title("Mesh of the Bracket")
exportgraphics(gcf, "BracketWithHoleRearMesh.png", Resolution=600)

步骤 4: 边界条件和加载条件
model.FaceBC(4) = faceBC(Constraint=“fixed”);
这里设置了支架的底部固定,不允许移动。这种设置参数的方式其实也兼容原先的参数对的方式,比如
faceBC('Constraint', 'fixed')。
这里的4是支架的底部的面的编号,这个编号是在pdegplot函数中显示的F4。
载荷也是一样的设置方式,注意这里载荷是一个向量,方向是z轴负方向,大小是1e4。
model.FaceLoad(8) = faceLoad(SurfaceTraction=[0;0;-1e4]);
步骤 5: 求解模型
求解模型。
tic;result = solve(model);toc
这样一个静态问题,7780个节点,求解的时间很短,在我的笔记本上大概是1秒左右。
步骤 6: 结果可视化
先看看result的结构。
result =StaticStructuralResults - 属性:Displacement: [1x1 FEStruct]Strain: [1x1 FEStruct]Stress: [1x1 FEStruct]VonMisesStress: [7780x1 double]Mesh: [1x1 FEMesh]
result是一个结构体,里面包含了位移、应变、应力、等效应力、网格等信息。
z方向的最大位移直接用max函数就可以得到。
max(abs(result.Displacement.uz))
4.4621e-05,也就是0.0446mm,这个位移是在z方向的,也就是垂直于支架底部的方向。
位移大小(位移向量的膜哦不模)的结果的可视化,可以用pdeplot3D函数,这个函数是Matlab的PDE工具箱的函数,用来绘制三维的PDE模型的结果。
figure
pdeplot3D(result.Mesh, ColorMapData=result.Displacement.uz)
title("Displacement in z-direction")
exportgraphics(gcf, "BracketWithHoleDisplacement-z.png", Resolution=600)

以此类推,可以绘制应力、应变、范氏等效应力等的结果。
figure
pdeplot3D(result.Mesh, ColorMapData=result.VonMisesStress)
title("Von Mises Stress")
exportgraphics(gcf, "BracketWithHoleVMS.png", Resolution=600)

其他可以自己查看的细节
result结构体的其他属性,比如Strain、Stress等。model结构体的其他属性,比如MaterialProperties、FaceBC、FaceLoad等。pdeplot3D函数的其他参数,比如FaceAlpha、EdgeAlpha等。generateMesh函数的其他参数,比如Hmax、Hmin等。faceBC和faceLoad函数的其他参数,比如Temperature、Heat等。
其实比较麻烦的不是这种比较简单的加载,如果加载是一个函数,或者需要增加一个非常量的载荷,就需要自己编一个函数,然后传给faceLoad函数。
这个函数的输入参数是位置和状态,输出是载荷的大小。这个函数的编写就需要一些编程的技巧了。
其实也非常简单,现整一个函数function ret = boundaryFcn(location, state),然后一步一步地调试到运行到这个函数,
在函数里面就能看到location和state的结构,然后就可以写出这个函数了。
基本上,location对应就是几何,三个坐标,或者面的方向,state对应就是状态,统一用u表示求解变量,对于静力学问题,就是位移,对于热传递问题,就是温度。
总结
- 总的来说,这个新的Matlab的PDE工具箱的写法更加面向对象,更加符合现代的编程风格,但是对于老的写法,还是兼容的。
- 求解静力学问题的过程比较清晰,对于处理非常简单相对偏理论的问题,是很容易拿到结果的,并且,各个数据结构相对透明,比如
Mesh,节点、单元等信息都可以直接访问。 - 如果要变更边界条件、载荷,来研究灵敏度,也是非常方便的,只需要修改
model结构体的属性,然后重新求解就可以了。相应的,如果要做一些优化,也是非常方便的。例如,要进行最大变形的控制,上面的例子中就给出了如何从结果中提取最大位移的方法。 - 从2016b开始STL文件的导入就慢慢变好,2022b开始STEP文件也开始支持,基本上这个工具的可用性就相应变得比较强了。
- 上面这个例子要运行,大概至少需要2023a版本,最好是2023b版本。
相关文章:
018_FEA_Structure_Static_in_Matlab结构静力学分析
刹车变形分析 本示例展示了如何使用 MATLAB 软件进行刹车变形分析。 这个例子是Matlab官方PDE工具箱的第一个例子,所需要的数据文件都由Matlab提供,包括CAD模型文件。 步骤 1: 导入 CAD 模型 导入 CAD 模型,这里使用的是一个带有孔的支架模…...
网页打不开、找不到服务器IP地址
现象:网络连接ok,软件能正常使用,当网页打不开。 原因:DNS 配置错误导致网站域名无法正确解析造成。 影响DNS设置的:VPN软件、浏览器DNS服务选择、IPv4属性被修改。 1、VPN代理未关闭 2、浏览器DNS解析选择 3、以太…...
RUM性能优化之图片加载
作者:三石 在现代Web开发中,图片作为内容表达的核心元素,其加载效率直接影响到页面的整体性能和用户体验。随着高清大图和动态图像的普及,优化图片加载变得尤为重要。RUM作为一种主动监测技术,能够帮助开发者从真实用户…...
【Java】—— 泛型:泛型的理解及其在集合(List,Set)、比较器(Comparator)中的使用
目录 1. 泛型概述 1.1 生活中的例子 1.2 泛型的引入 2. 使用泛型举例 2.1 集合中使用泛型 2.1.1 举例 2.1.2 练习 2.2 比较器中使用泛型 2.2.1 举例 2.2.2 练习 1. 泛型概述 1.1 生活中的例子 举例1:中药店,每个抽屉外面贴着标签 举例2&…...
【Python】selenium遇到“InvalidArgumentException”的解决方法
在使用try……except 的时候捕获到这个错误: InvalidArgumentException: invalid argument (Session info: chrome112.0.5614.0) 这个错误代表的是,当传入的参数不符合期望时,就会抛出这个异常: InvalidArgumentException: invali…...
RT-DETR改进策略:BackBone改进|CAFormer在RT-DETR中的创新应用,显著提升目标检测性能
摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入RT-DETR模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…...
【YOLOv11】ultralytics最新作品yolov11 AND 模型的训练、推理、验证、导出 以及 使用
目录 一 ultralytics公司的最新作品YOLOV11 1 yolov11的创新 2 安装YOLOv11 3 PYTHON Guide 二 训练 三 验证 四 推理 五 导出模型 六 使用 文档:https://docs.ultralytics.com/models/yolo11/ 代码链接:https://github.com/ultralytics/ult…...
动态规划——多状态动态规划问题
目录 一、打家劫舍 二、打家劫舍 II 三、删除并获得点数 四、粉刷房子 五、买卖股票的最佳时机含冷冻期 六、买卖股票的最佳时机含手续费 七、买卖股票的最佳时机III 八、买卖股票的最佳时机IV 一、打家劫舍 打家劫舍 第一步:确定状态表示 当我们每次…...
leetcode-10/9【堆相关】
1.数组中的第K个最大元素【215】 思路: 1.1.要使得时间复杂度为O(n),自己实现大顶堆,通过K次调整,顶部元素就是想要的第K个最大元素 1.2.实现大顶堆的过程中,先建堆,建堆是利用递归,本…...
自然语言处理问答系统:技术进展、应用与挑战
自然语言处理问答系统:技术进展、应用与挑战 自然语言处理(NLP)作为人工智能领域的一个重要分支,旨在使计算机能够理解和生成人类语言。问答系统(Q&A System),作为NLP的一个重要应用&#…...
向量数据库!AI 时代的变革者还是泡沫?
向量数据库!AI 时代的变革者还是泡沫? 前言一、向量数据库的基本概念和原理二、向量数据库在AI中的应用场景三、向量数据库的优势和挑战四、向量数据库的发展现状和未来趋势五、向量数据库对AI发展的影响 前言 数据是 AI 的核心,而向量则是数…...
vue中css作用域及深度作用选择器的用法
Vue中有作用域的CSS 当< style>标签有scoped属性时,它的css只作用于当前组建中的元素。vue2和vue3均有此用法; 当使用scoped后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受父组件有作用域的css和子组件有作用…...
LLM - 使用 ModelScope SWIFT 测试 Qwen2-VL 的 LoRA 指令微调 教程(2)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/142827217 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 SWIFT …...
2024 年热门前端框架对比及选择指南
在前端开发的世界里,框架的选择对于项目的成功至关重要。不同的框架有着不同的设计理念、生态系统和适用场景,因此,开发者在选框架时需要权衡多个因素。本文将对当前最流行的前端框架——React、Vue、Angular、Svelte 和 Solid——进行详细对…...
map_server
地图格式 此软件包中的工具处理的地图以两个文件的形式存储。YAML 文件描述地图的元数据,并命名图像文件。图像文件编码了占用数据。 图像格式 图像文件描述世界中每个单元格的占用状态,并使用相应像素的颜色表示。在标准配置中,较白的像素…...
无人机航拍视频帧处理与图像拼接算法
无人机航拍视频帧处理与图像拼接算法 1. 视频帧截取与缩放 在图像预处理阶段,算法首先逐帧地从视频中提取出各个帧。 对于每一帧图像,算法会执行缩放操作,以确保所有帧都具有一致的尺寸,便于后续处理。 2. 图像配准 在图像配准阶段,算法采用SIFT(尺度不变特征变换)算…...
搬砖11、Python 文件和异常
文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…...
24.6 监控系统在采集侧对接运维平台
本节重点介绍 : 监控系统在采集侧对接运维平台 服务树充当监控系统的上游数据提供者在运维平台上 可以配置采集任务 exporter改造成探针型将给exporter传参和修改prometheus scrape配置等操作页面化 监控系统在采集侧对接运维平台 服务树充当监控系统的上游数据提供者在运…...
refresh-1
如果设置了刷新标志(refreshFlag): - 如果CAT(配置文件管理代理)未初始化,eUICC应返回一个错误代码commandError。 - 对于MEP-A2,eUICC可以返回一个错误代码commandError。 - 如果目标端口上正…...
如何写好一篇计算机应用的论文?
计算机应用是一个广泛的领域,涵盖了从软件开发到数据分析、人工智能、网络安全等多个方向。选择一个合适的毕业设计题目,不仅要考虑个人兴趣和专业技能,还要考虑项目的可行性、创新性以及对未来职业发展的帮助。以下是一些建议,帮…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...
