MATLAB有限元应用-四边形八节点梁受力弯曲

MATLAB在处理平面有限元问题和梁弯曲问题上有很强的能力,主要体现在以下几个方面:

建模与网格划分

MATLAB内置了方便的图形界面工具(pdetoolbox等),可以快速对几何模型进行二维三维网格划分,生成有限元分析需要的网格。

求解器

MATLAB内置了多种求解偏微分方程的有限元求解器,如:适用于线性和非线性问题的有限元求解器assembler,适用于时间依赖问题的时间自适应求解器timestepper等。这些求解器可以自动组装刚度矩阵并求解。

后处理

MATLAB支持多种后处理,可以方便的进行解的可视化,绘制云图、矢量图、剪切面;也可以计算量化解的误差与收敛性,绘制相关曲线。

应用程序接口

MATLAB提供了应用程序接口,允许自定义复杂几何模型,加载网格,实现自定义的有限元运算与后处理。

梁弯曲分析

对于梁的弯曲问题,MATLAB提供了专门的梁挠度计算与绘制工具beamCrippling,可以快速获得梁的弯矩与切力图,并自动检查其强度。

总的来说,利用MATLAB强大的工具箱与API,可以高效的对平面及梁挠问题进行预处理、求解与后处理,得到定量结果及直观的可视化。

主程序:

%% ---------------四边形八节点等参元 matlab计算程序----------------------------

clear all;clc; close all;

format short e ;

%%读入控制数据

E=1E5;                  %弹性模量

v=0.25;                  % 泊松比

h=1;                  %厚度

NumberElement=4;              %单元数

NumberNode=23;              % 总结点数

ElementNode=8;              %单元节点数

ForcePoint=1;             %受力结点数

NumberConstraint=3;              %约束结点个数

%% 节点坐标 x  y

% 结点号 x,y坐标(整体坐标下)

gNdt = [0.0000000e+000  -0.5000000e+000;

    1.0000000e+000  -0.5000000e+000;

    2.0000000e+000  -0.5000000e+000;

    3.0000000e+000  -0.5000000e+000;

    4.0000000e+000  -0.5000000e+000;

    5.0000000e+000  -0.5000000e+000;

    6.0000000e+000  -0.5000000e+000;

    7.0000000e+000  -0.5000000e+000;

    8.0000000e+000  -0.5000000e+000;

    0.0000000e+000  0.0000000e+000;

    2.0000000e+000  0.0000000e+000;

    4.0000000e+000  0.0000000e+000;

    6.0000000e+000  0.0000000e+000;

    8.0000000e+000  0.0000000e+000;

    0.0000000e+000  0.5000000e+000;

    1.0000000e+000  0.5000000e+000;

    2.0000000e+000  0.5000000e+000;

    3.0000000e+000  0.5000000e+000;

    4.0000000e+000  0.5000000e+000;

    5.0000000e+000  0.5000000e+000;

    6.0000000e+000  0.5000000e+000;

    7.0000000e+000  0.5000000e+000;

    8.0000000e+000  0.5000000e+000];

%% 单元节点

gElt = [1  2   3  11  17  16  15  10;

    3  4   5  12  19  18  17  11;

    5  6   7  13  21  20  19  12;

    7  8   9  14  23  22  21  13]; % 单元定义: 单元结点号(逆时针)

FPOIN=[9 0 -1];% 节点力:结点号、X方向力(向右正),Y方向力(向上正)

FIXED=[1 1 1;

    10 1 1;

    15 1 1];

%约束信息数组(n,3) n:受约束节点数目, (n,1):约束点号

%(n,2)与(n,3)分别为约束点x方向和y方向的约束情况,受约束为1否则为0

%========平面应力问题的求解==============

%  刚度矩阵的生成

%计算刚度矩阵,并对约束条件进行处理

Ke=zeros(2*ElementNode,2*ElementNode);   % 单元刚度矩阵并清零

HK=zeros(2*NumberNode,2*NumberNode);   % 总刚矩阵并清零

%调用子程序 生成单元刚度矩阵

for m=1:NumberElement                %m为单元号

    Ke=K(E,v,h,...

        gNdt(gElt(m,1),1),gNdt(gElt(m,1),2),...

        gNdt(gElt(m,3),1),gNdt(gElt(m,3),2),...

        gNdt(gElt(m,5),1),gNdt(gElt(m,5),2),...

        gNdt(gElt(m,7),1),gNdt(gElt(m,7),2));    %调用单元刚度矩阵

   

    a=gElt(m,:);   %临时向量,用来记录当前单元的节点编号

   

    % 对总刚度矩阵的处理

    for j=1:8

        for k=1:8

            HK((a(j)*2-1):a(j)*2,(a(k)*2-1):a(k)*2)=HK((a(j)*2-1):a(j)*2,(a(k)*2-1):a(k)*2)+...

                Ke(j*2-1:j*2,k*2-1:k*2);

        end

    end

end

%—————————————————————————————————

% 对荷载向量进行处理

FORCE=zeros(2*NumberNode,1);      % 张成总荷载向量并清零

for i=1:ForcePoint

    b1=FPOIN(i,1)*2-1;b2=FPOIN(i,1)*2;     %FPION(i,1)为作用点

    FORCE(b1)=FPOIN(i,2);                 %FPION(i,2)为x方向的节点力

    FORCE(b2)=FPOIN(i,3);                 %FPION(i,3)为y方向的节点力

end

%—————————————————————————————————

%将约束信息加入总刚,总荷载

for i=1:NumberConstraint

    if FIXED(i,2)==1

        c1=2*FIXED(i,1)-1;

        HK(c1,:)=0;      %将一约束序号处的总刚列向量清0

        HK(:,c1)=0;      %将一约束序号处的总刚行向量清0

        HK(c1,c1)=1;     %将行列交叉处的元素置为1

        FORCE(c1)=0;

    end

    if FIXED(i,3)==1

        c2=2*FIXED(i,1);

        HK(c2,:)=0;

        HK(:,c2)=0;

        HK(c2,c2)=1;

        FORCE(c2)=0;

    end

end

%—————————————————————————————————

HK

Displacement=HK\FORCE;%计算节点位移向量

%% 转换

Displacement2=reshape(Displacement,2,length(Displacement)/2)';

gNdt2=gNdt+Displacement2*100;

figure;

gNdt;

for i=1:size(gElt,1)

    for j=1:8

        %画点

        plot(gNdt(gElt(i,:),1),gNdt(gElt(i,:),2),'b-');

        hold on;

        %画线

        plot(gNdt2(gElt(i,:),1),gNdt2(gElt(i,:),2),'r-');

        hold on;

    end

end

axis equal;

xlabel('x(m)');

ylabel('y(m)');

title('八节点四边形等参单元:梁位移(放大100倍)');

%———————————求解单元应力————————————————

stress=zeros(3,NumberElement);

for m=1:NumberElement

    u(1:16)=0;

    d=gElt(m,:);    %临时向量,用来记录当前单元的节点编号

    for i=1:ElementNode

        u(i*2-1:i*2)=Displacement(d(i)*2-1:d(i)*2);

        %从总位移向量中取出当前单元的节点位移

    end

    D=(E/(1-v*v))*[1 v 0;v 1 0;0 0 (1-v)/2];%弹性矩阵

    %形成应变矩阵BM

    BM=zeros(3,16);

    for i=1:ElementNode

        J=Jacobi(gNdt(gElt(m,1),1),gNdt(gElt(m,1),2),...

            gNdt(gElt(m,3),1),gNdt(gElt(m,3),2),...

            gNdt(gElt(m,5),1),gNdt(gElt(m,5),2),...

            gNdt(gElt(m,7),1),gNdt(gElt(m,7),2),0,0);

        [N_s,N_t]=DHS(0,0);

        B1i=J(2,2)*N_s(i)-J(1,2)*N_t(i);

        B2i=-J(2,1)*N_s(i)+J(1,1)*N_t(i);

        BM(1:3,2*i-1:2*i)=[B1i 0;0 B2i;B2i B1i]/det(J);

    end

    stressm=D*BM*u';

    stress(:,m)=stressm;

end

stress      %输出应力

程序结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/359566.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型重塑车载语音交互:赛道巨头如何引领新周期?

车载语音交互赛道正进入新一轮竞争周期。 高工智能汽车注意到,传统车载语音交互赛道当前基本已进入成熟期,主要为任务型助手,包括从单轮对话到多轮对话,单音区到多音区,从单一的导航、多媒体娱乐等座舱功能扩展智能驾…

钢材表面缺陷YOLOV8,OPENCV调用

【免费】钢材表面缺陷YOLOV8资源-CSDN文库 钢材表面缺陷YOLOV8NANO,训练得到PT模型,然后转换成ONNX,OPENCV的DNN调用,支持C,PYTHON,ANDROID

VScode中使用Xdebug调试PHP

君衍. 一、下载VScode与PHPstudy二、配置PHP环境变量三、PHPstudy中启用xdebug扩展四、打开php.ini,修改配置五、修改vscode配置六、VScode安装相关插件七、配置launch.json八、设置断点,开始调试 一、下载VScode与PHPstudy 首先我们自然是需要搭建环境…

C++ 数论相关题目 博弈论 Nim游戏

给定 n 堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。 问如果两人都采用最优策略,先手是否必胜。 输入格式…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)

文章目录 第5章 决策树—python 实践书上题目5.1利用ID3算法生成决策树,例5.3scikit-learn实例 《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树 第5章 决策树—python 实践 import numpy as np import pand…

Docusaurus 文档侧边栏增加 New 标识

在使用 Docusaurus 搭建文档站点的时候,我们经常要给某个侧边栏菜单增加一些醒目的标识,比如针对新创建的文档给它一个 New 的标识, 以提醒过来看文档的用户这是一个新增加项或者新特性(阅读的时候不要遗漏)。 然而这个…

C#: form 添加窗体最小化事件,添加系统托盘图标,点击后可以打开、最小软件窗口

说明: 1.实现窗体在最小化后触发一个事件,可以去实现需要的功能。 2.最小化后软件图标出现在系统右下角的托盘串口。 3.点击托盘口的图标可以实现软件弹出窗口和最小化的切换。 1.参考办法 以下是判断C#窗体最小化到状态栏的状态的方法:…

[AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…

Redis核心技术与实战【学习笔记】 - 7.Redis GEO类型 - 面向 LBS 应用的数据类型

前言 前面,介绍了 Redis 的 5 大基本数据类型:String、List、Hash、Set、Sorted Set,它们可以满足绝大多数的数据存储需求,但是在面对海里数据统计时,它们的内存开销很大。所以对于一些特殊的场景,它们是无…

计算机网络-物理层设备(中继器 集线器)

文章目录 中继器中继器的功能再生数字信号和再生模拟信号同一个协议 集线器(多口中继器)不具备定向传输的原因集线器是共享式设备的原因集线器的所有接口都处于同一个碰撞域(冲突域)内的原因 小结 中继器 中继器的功能 中继器的…

JVM 内存模型

1 什么是 JVM 内存模型 JVM 需要使用计算机的内存,Java 程序运行中所处理的对象或者算法都会使用 JVM 的内 存空间,JVM 将内存区划分为 5 块,这样的结构称之为 JVM 内存模型。 2 JVM 为什么进行内存区域划分 随着对象数量的增加&#xff…

基于二值化图像转GCode的单向扫描实现

基于二值化图像转GCode的单向扫描实现 什么是单向扫描单向扫描代码示例 基于二值化图像转GCode的单向扫描实现 什么是单向扫描 在激光雕刻中,单向扫描(Unidirectional Scanning)是一种雕刻技术,其中激光头只在一个方向上移动&a…

【Vue】二、Vue 组件展示控制的优雅解决方案

vue项目中展示的组件,我平常都是通过v-show进行展示控制,类似这样 通常情况下,一个正常展示组件的流程,是通过前端用户点击触发函数,在函数中对data数据进行操作,从而展示不同的页面 showWork: false, sho…

如何用Docker+jenkins 运行 python 自动化?

1.在 Linux 服务器安装 docker 2.创建 jenkins 容器 3.根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境) 4.运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目 5.执行完成之后删除容器 前言 环境准备 Linux 服务器一台(我的是 CentOS7)…

GitHub工作流的使用笔记

文章目录 前言1. 怎么用2. 怎么写前端案例1:自动打包到新分支前端案例2:自动打包推送到gitee的build分支案例3:暂时略 前言 有些东西真的就是要不断的试错不断地试错才能摸索到一点点,就是摸索到凌晨两三点第二天要8点起床感觉要…

通过例子说明-动态规划

选择>行动>思考,好像是个死循环 -song。 动态规划(Dynamic Programming,简称DP)是一种解决问题的数学优化方法,通常用于解决具有重叠子问题和最优子结构性质的问题。它的基本思想是将问题拆分成小的子问题&#…

革新性技术:基于搜索操作的存内计算

文章目录 革新性技术:基于搜索操作的存内计算CSDN首个存内计算开发者社区NVALT:近似查找表的艺术MAP:存内计算的未来SQL-PIM:数据库的未来内存计算架构与技术小结从NVALT到NVQuery:存内计算的探索与前景NVQuery&#x…

242. 有效的字母异位词(力扣)(C语言题解)

✨欢迎来到脑子不好的小菜鸟的文章✨ 🎈创作不易,麻烦点点赞哦🎈 所属专栏:刷题 我的主页:脑子不好的小菜鸟 文章特点:关键点和步骤讲解放在 代码相应位置 题目链接: 242. 有效的字母异位词 …

UE5 C++ 读取本地图片并赋值到UI上

目录 结果图 节点样式 主要代码 调试代码 结果图 节点样式 主要代码 (注释纯属个人理解,可能存在错误) // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h&q…

Mysql进阶篇

1.Mysql服务架构 连接层: 处理客户端连接请求,对用户进行认证 服务层: 可以接收sql,调用存储过程,优化sql,缓存数据.... 引擎层: 负责实际与文件层进行交互操作的,可以有不同的引擎选择. 物理文件层: 存储表数据 以及 各种日志文件. 2.Mysql引擎 存储引擎就是存储数据&…