平面板壳单元刚度与质量矩阵计算程序
项目介绍
本项目是一个基于 MATLAB 环境开发的有限元分析(FEA)底层算法工具,专门用于计算矩形四节点 Mindlin-Reissner 平面板壳单元的单元刚度矩阵(Ke)和一致质量矩阵(Me)。该程序通过耦合平面应力膜单元与薄板弯曲单元,能够模拟结构在平面内受力(拉压、剪切)以及平面外受力(弯曲、扭转)的复合力学行为。该算法适用于航空航天、土木工程及船舶制造等领域的薄壁结构初步设计与模态分析。
功能特性
- 全自由度建模:每个节点包含 6 个自由度,即三个平动位移(u, v, w)和三个转动位移(tx, ty, tz),支持建立完整的空间壳结构模型。
- 剪切变形耦合:采用 Mindlin-Reissner 中厚板理论,考虑了横向剪切变形的影响,适用于从薄板到中厚板的广泛工况。
- 高级数值积分:内置高斯-勒让德(Gauss-Legendre)数值积分技术,支持 1 到 3 点积分方案,确保单元积分的精确性。
- 质量矩阵计算:生成包含平动惯量与转动惯量的一致质量矩阵,为动力学特性分析和瞬态仿真提供基础。
- 奇异性处理:通过对旋转自由度(Drilling Degree)施加数值抑制,解决了平面单元由于缺乏平面内转动刚度导致的全局刚度矩阵奇异问题。
- 可视化反馈:程序自动生成单元几何拓扑图以及单元刚度矩阵的幅值热图,便于直观验证模型正确性。
使用方法
- 配置环境:确保计算机已安装 MATLAB 环境。
- 设置参数:在程序脚本开头的输入参数部分,根据实际需求定义材料属性(弹性模量 E、泊松比 nu、密度 rho)、几何尺寸(厚度 thickness)以及高斯积分点数。
- 定义几何:修改坐标矩阵 coords,输入单元四个节点的 (x, y) 物理坐标,需遵循逆时针排序。
- 运行计算:直接运行脚本,程序将依次执行矩阵计算、控制台结果打印以及图形可视化。
- 查看结果:控制台将输出单元面积、矩阵维度及刚度矩阵的前 6x6 子块;图形窗口将展示单元形状和刚度分布热图。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件环境:无特殊限制,普通办公电脑即可流畅运行。
核心功能与逻辑实现
- 材料本构定义:
程序分别构建了三种力学行为的本构矩阵:
- 膜应变部分:采用平面应力本构矩阵 Dm。
- 弯曲部分:基于 Mindlin 理论构建弯曲本构矩阵 Db。
- 剪切部分:引入剪切修正系数(kappa = 5/6),构建横向剪切本构矩阵 Ds。
- 形状函数与雅可比映射:
采用受标准单位空间限制的双线性四边形形函数。利用雅可比矩阵(Jacobian)将天然坐标系下的形函数导数映射到物理坐标系(x, y),并计算微元面积 det(J)。
- 应变-位移矩阵 (B 矩阵) 构造:
在每个高斯积分点上,程序构造了三个关键矩阵:
- Bm:关联平面内位移 (u, v) 与膜应变。
- Bb:关联转角自由度 (tx, ty) 与弯曲应变。
- Bs:关联横向位移 (w) 和转角与剪切应变。
- 矩阵集成:
- 单元刚度矩阵:通过 Bm'DmBm*t(膜)、Bb'DbBb(弯曲)与 Bs'DsBs(剪切)三部分累加求和实现。
- 单元质量矩阵:构造包含 6 个分量的形函数矩阵 Nm,并结合包含质量密度和转动惯量修正的密度矩阵进行积分。
- 数值稳定性逻辑:
针对平面单元普遍存在的 Drilling DOF(即绕 Z 轴转动)无刚度问题,程序在每个节点的第 6 个自由度对角线上添加了一个极其微小的刚度惩罚项,以消除数值计算中的病态特征。
关键函数与算法分析
- 核心求解函数:
负责统筹整个计算流程。它通过双重循环遍历高斯点,分别调用形函数子函数,计算并累加刚度与质量矩阵,是整个程序的逻辑心脏。
- 形函数与导数计算:
通过标准双线性插值算法实现,确保了在四节点单元内的位移连续性。导数计算直接为雅可比矩阵的构建提供输入。
- 高斯积分点获取算法:
支持 1-3 点高斯积分。2x2 积分点设置在提供足够计算精度的同时,平衡了计算效率,是处理四边形单元的主流选择。
- 可视化逻辑:
利用 patch 函数绘制单元几何,并通过热图(imagesc)展示刚度矩阵的耦合特性,这对于调试自由度之间的强弱耦合关系具有重要参考价值。