1. matlab文件结构

2. main.m代码
| clc |
| clear; |
| warning off; |
| |
| |
| angles=[0 90 0]; |
| |
| ply_thickness=0.125; |
| |
| E11=1000 ; |
| E22=1000 ; |
| nu12=0.3 ; |
| G12=1500 ; |
| |
| |
| |
| ply_num=size(angles); |
| ply_num=max(ply_num); |
| |
| |
| |
| zlist=Get_zlist(ply_thickness,angles); |
| |
| Q=Get_Qij(E11,nu12,E22,G12); |
| wQij=Get_wQij(Q,angles); |
| |
| |
| |
| |
| A=zeros(3,3); |
| for i=1:ply_num |
| temp=wQij(:,:,i).*(zlist(i+1)-zlist(i)); |
| A=A+temp; |
| end |
| |
| |
| 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 |
| |
| |
| 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 |
| |
| |
| disp('A=') |
| disp(A) |
| |
| disp('B=') |
| disp(B) |
| |
| disp('D=') |
| disp(D) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 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) |
| |
| ply_num=size(arr_angles); |
| ply_num=max(ply_num); |
| Ts=[]; |
| for i=1:ply_num |
| TempT=TMat(arr_angles(i)); |
| Ts=cat(3,Ts,TempT); |
| end |
| end |
| |
| function T = TMat( angle ) |
| |
| 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 ) |
| |
| |
| ply_num=size(angles); |
| ply_num=max(ply_num); |
| |
| t=ply_num*ply_thickness; |
| |
| zlist=0; |
| for i=1:ply_num |
| zlist=cat(2,zlist,i*ply_thickness); |
| end |
| |
| zlist=zlist-0.5*t; |
| end |
5. Get_wQij.m代码
| function wQij=Get_wQij(Q,angles) |
| |
| 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'); |
| |
| wQij=cat(3,wQij,temp_wQ); |
| end |
| end |
6. Get_Qij.m代码
| function Qij = Get_Qij(E11,nu12,E22,G12) |
| |
| |
| 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. 求解结果展示

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗