【Matlab】求解复合材料层合板刚度矩阵及柔度矩阵
1. matlab文件结构

2. main.m代码
clc
clear;
warning off;
%%
%铺层角度数组
angles=[0 90 0]; % °
%单层厚度
ply_thickness=0.125; %mm
%lamina 性能参数
E11=1000 ;%Mpa
E22=1000 ;
nu12=0.3 ;
G12=1500 ;
%%
% 铺层数量
ply_num=size(angles);
ply_num=max(ply_num);
% 求zlist,wQij等矩阵
% z坐标数组
zlist=Get_zlist(ply_thickness,angles);
% 所有ply的偏轴刚度矩阵(3 X 3 X k)
Q=Get_Qij(E11,nu12,E22,G12);
wQij=Get_wQij(Q,angles);
%%
% 求A B D刚度矩阵
%A Matrix
A=zeros(3,3);
for i=1:ply_num
temp=wQij(:,:,i).*(zlist(i+1)-zlist(i));
A=A+temp;
end
%A Matrix
B=zeros(3,3);
for i=1:ply_num
temp=0.5*wQij(:,:,i).*(zlist(i+1)^2-zlist(i)^2);
B=B+temp;
end
%A Matrix
D=zeros(3,3);
for i=1:ply_num
temp=(wQij(:,:,i).*(zlist(i+1)^3-zlist(i)^3))/3.0;
D=D+temp;
end
%%
% show result
disp('A=')
disp(A)
disp('B=')
disp(B)
disp('D=')
disp(D)
%%
% 求柔度矩阵
% A' matrix—>S1
% B' matrix—>S2
% H' matrix—>S3
% D' matrix—>S4
S1=inv(A)-(-inv(A)*B)*inv(D-B*inv(A)*B)*(B*inv(A));
S2=(-inv(A)*B)*inv(D-B*inv(A)*B);
S3=-1*inv(D-B*inv(A)*B)*B*inv(A);
S4=inv(D-B*inv(A)*B);
%%
disp('S1=')
disp(S1)
disp('S2=')
disp(S2)
disp('S3=')
disp(S3)
disp('S4=')
disp(S4)
3. TMats.m代码
function Ts=TMats(arr_angles)
% 返回3X3X3的数组,demension 3 表示第K层的T矩阵
ply_num=size(arr_angles);
ply_num=max(ply_num); % get ply's total number
Ts=[];
for i=1:ply_num
TempT=TMat(arr_angles(i));
Ts=cat(3,Ts,TempT);
end
end
function T = TMat( angle )
% TMat--input: angles of ply unit:degree -return coordinate transfer Matrix
T=zeros(3,3);
T(1,1)=cosd(angle)*cosd(angle);
T(1,2)=sind(angle)*sind(angle);
T(1,3)=2*sind(angle)*cosd(angle);
T(2,1)=sind(angle)*sind(angle);
T(2,2)=cosd(angle)*cosd(angle);
T(2,3)=-T(1,3);
T(3,1)=-sind(angle)*cosd(angle);
T(3,2)=-T(3,1);
T(3,3)=cosd(angle)^2-sind(angle)^2;
end
4. Get_zlist.m代码
function zlist = Get_zlist( ply_thickness,angles )
%返回 Z坐标的数组
%total number of plys
ply_num=size(angles);
ply_num=max(ply_num);
% total thickness
t=ply_num*ply_thickness;
%z0坐标
zlist=0;
for i=1:ply_num
zlist=cat(2,zlist,i*ply_thickness);
end
%整体下移0.5个laminate thickness
zlist=zlist-0.5*t;
end
5. Get_wQij.m代码
function wQij=Get_wQij(Q,angles)
% 输入 材料主方向的Q矩阵和铺层角度数组(1 X n)
plynum=size(angles);
plynum=max(plynum);
wQij=[];
%得到所有铺层的坐标变换矩阵
Ts=TMats(angles);
for i= 1:plynum
Ti=Ts(:,:,i);
invT=inv(Ti);
temp_wQ=invT*Q*(invT');
%追加到维度3上
wQij=cat(3,wQij,temp_wQ);
end
end
6. Get_Qij.m代码
function Qij = Get_Qij(E11,nu12,E22,G12)
%输入材料参数 E11 nu12 E22 G12 ,返回ply的折减刚度矩阵Q
% 此处显示详细说明
Q=zeros(3,3);
nu21=(E11*nu12)/(E22);
Q(1,1)=E11/(1-nu12*nu21);
Q(2,2)=E22/(1-nu12*nu21);
Q(1,2)=(E11*nu12)/(1-nu12*nu21);
Q(2,1)=Q(1,2);
Q(3,3)=G12;
Qij=Q;
end
7. 求解结果展示

【Matlab】求解复合材料层合板刚度矩阵及柔度矩阵的更多相关文章
- fslove - Matlab求解多元多次方程组
fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...
- matlab中元胞数组(cell)转换为矩阵
matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...
- Matlab中矩阵的平方和矩阵中每个元素的平方介绍
该文章讲述了Matlab中矩阵的平方和矩阵中每个元素的平方介绍. 设t = [2 4 2 4] 则>> t.^2 ans = 4 164 16 而>> t^2 ans = ...
- matlab 求解线性规划问题
线性规划 LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为: minf(x):待最小化的目标函数(如果问题本 ...
- MATLAB小函数:将列向量转化为0-1矩阵
MATLAB小函数:将列向量转化为0-1矩阵 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 将列向量转化为0-1矩阵,例如 A = 1 2 1 5 3 ...
- MATLAB矩阵处理—特殊矩阵
需要掌握 MATLAB语言中特殊矩阵 MATLAB语言中矩阵的变幻 MATLAB语言矩阵如何求值 MATLAB语言中特征值与特征向量 MATLAB语言中稀疏矩阵 2.1 特殊矩阵 如何建立矩阵? 逐 ...
- 用Matlab求解微分方程
用Matlab求解微分方程 解微分方程有两种解,一种是解析解,一种是数值解,这两种分别对应不同的解法 解析解 利用dsolve函数进行求解 syms x; s = dsolve('eq1,eq2,.. ...
- matlab 求解 f(x)=x(x+1)(x+2)(x+3)(x+4)...(x+n-2)(x+n-1)(x+n)的导数;
matlab 求解 f(x)=x(x+1)(x+2)(x+3)(x+4)...(x+n-2)(x+n-1)(x+n)的导数; matlab diff() 问题的提出 问题 代码求解 clc; clea ...
- Jacobian矩阵、Hessian矩阵和Newton's method
在寻找极大极小值的过程中,有一个经典的算法叫做Newton's method,在学习Newton's method的过程中,会引入两个矩阵,使得理解的难度增大,下面就对这个问题进行描述. 1, Jac ...
- 三维重建面试4:Jacobian矩阵和Hessian矩阵
在使用BA平差之前,对每一个观测方程,得到一个代价函数.对多个路标,会产生一个多个代价函数的和的形式,对这个和进行最小二乘法进行求解,使用优化方法.相当于同时对相机位姿和路标进行调整,这就是所谓的BA ...
随机推荐
- 【C#】【平时作业】习题-12-事件
目录 1. 什么是事件? 2. 事件与委托的关系是什么? 3. 事件发生的类(事件发生器)的主要内容与作用? 4. 事件接收处理的类的主要内容与作用? 5. 什么是订阅事件 ? 6. 如何引发事件? ...
- rsync+ssh同步备份文件
定期对web代码或重要的文件做同步异地服务器备份,防止服务器故障严重磁盘损坏时文件丢失的问题. 备份服务器:192.168.200.134 目标服务器:192.168.201.65 rsync同步命令 ...
- 工具大全-dirsearch探测Web目录
dirsearch介绍 dirsearch是一款开源的.基于Python开发的命令行工具,主要用于对Web服务器进行目录和文件的扫描,以发现潜在的安全漏洞. dirsearch下载地址: https: ...
- Qt编写地图综合应用41-在线轮廓图
一.前言 轮廓图也叫行政区划,这里的轮廓图是指百度地图的区域轮廓图,不是之前文章中提到的echart专用的轮廓图,百度地图的轮廓图就是一个不规则的多边形区域,只不过这个区域的坐标点一般是特别多的,比如 ...
- Qt编写地图综合应用40-覆盖物弧线
一.前言 弧线可以用来指示某几个点直接弧形的方式绘制线条,尤其是飞机轨迹,起点到终点弧形曲线展示,更美观.百度地图的折线图.矩形图.圆形图等,都统称覆盖物,都是作为覆盖物绘制上去的,这样的好处是速度很 ...
- Qt编写安防视频监控系统47-基本设置
一.前言 一个系统中肯定有不少的配置参数存储在配置文件中,配置文件可以是ini文件,也可以是json文件,还可以是自定义格式的文本文件,本人比较推荐ini文件,读写节点极其方便,支持中文内容,各种Qt ...
- [转]CLion安装及无限试用
Clion安装及无限试用:链接:https://pan.baidu.com/s/1mreUx5QyS4nkVQMOhdjf7g提取码:ylqw 翻译 搜索 复制
- IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
[来源申明]本文引用了微信公众号"鲜枣课堂"的<坐高铁手机没信号?原因远比你想的要复杂!>文章内容.为了更好的内容呈现,本文在引用和收录时内容有改动,转载时请注明原文来 ...
- IM消息ID技术专题(六):深度解密滴滴的高性能ID生成器(Tinyid)
1.引言 在中大型IM系统中,聊天消息的唯一ID生成策略是个很重要的技术点.不夸张的说,聊天消息ID贯穿了整个聊天生命周期的几乎每一个算法.逻辑和过程,ID生成策略的好坏有可能直接决定系统在某些技术点 ...
- 字节二面:你怎么理解信道是golang中的顶级公民
1. 信道是golang中的顶级公民 goroutine结合信道channel是golang中实现并发编程的标配. 信道给出了一种不同于传统共享内存并发通信的新思路,以一种通道复制的思想解耦了并发编程 ...