附件1:计算所用的程序代码。
PROGRAM COMPOSITE !Coded by James Wilson IMPLICIT NONE
REAL(8)::A(3,3),B(3,3),D(3,3),MC(5),TEMP,ROT(3,3) !A拉伸刚度;B耦合刚度;D弯曲刚度; !MC读入材料常数;ROT旋转矩阵
REAL(8)::TOTAL_TH,HALF_TH !总厚度;半厚度
REAL(8),ALLOCATABLE::Q(:,:,:),AL(:),T(:),Z(:),Z1(:),Z2(:),Z3(:) !Q每层板相应刚度;AL转角;T每层板的厚度;Z坐标量 INTEGER(4)::N,I,J,K,SEQ,L
!____IJK循环变量;N板的层数;SEQ序数
CHARACTER(50)::CHR(8),TEMPC,filename1,filename2 !CHR、TEMPC:character variables
WRITE(*,*)\READ(*,*)filename1
OPEN(8,file=filename1)!Open data file !Read in data
READ(8,*)TEMPC,N
ALLOCATE(Q(3,3,N),AL(N),T(N),Z(N+1),Z1(N),Z2(N),Z3(N)) READ(8,*)CHR(1:8) DO I=1,N
READ(8,*)SEQ,T(I),MC(1:5),AL(I)
Q(:,:,I)=0!Calculate stiffness of each layer for the principal axis TEMP=1./(1-MC(3)*MC(4)) Q(1,1,I)=MC(1)*TEMP Q(2,2,I)=MC(2)*TEMP Q(3,3,I)=MC(5)
Q(1,2,I)=MC(4)*MC(2)*TEMP Q(2,1,I)=Q(1,2,I)
AL(I)=AL(I)*3.1415926535898/180
ROT(1,1)=(cos(AL(I)))**2!Work out Rot Matrix ROT(2,2)=ROT(1,1) ROT(3,3)=cos(2*AL(I)) ROT(2,1)=1-ROT(1,1) ROT(1,2)=ROT(2,1)
ROT(3,1)=0.5*sin(2*AL(I)) ROT(3,2)=-ROT(3,1) ROT(1,3)=-2*ROT(3,1) ROT(2,3)=-2*ROT(3,2)
Q(:,:,I)=MATMUL(MATMUL(ROT,Q(:,:,I)),TRANSPOSE(ROT)) ENDDO
TOTAL_TH=sum(T) HALF_TH=TOTAL_TH/2 Z(1)=-HALF_TH !Work out Z DO I=1,N
Z(I+1)=Z(I)+T(I) ENDDO
!calculate tensor A、B and D DO K=1,N
Z1(K)=(Z(K+1)-Z(K))
Z2(K)=(Z(K+1)-Z(K))*(Z(K+1)+Z(K))/2 Z3(K)=(Z(K+1)**3-Z(K)**3)/3 ENDDO
A=0;B=0;D=0
WRITE(*,*)\
READ(*,*)filename2 OPEN(9,file=filename2)
!Write in stiffness tensor for each single ply DO K=1,N
WRITE(9,100)K
100 FORMAT(\DO I=1,3
WRITE(9,200)Q(I,:,K)
200 FORMAT(ES12.4,6X,ES12.4,6X,ES12.4) ENDDO
WRITE(9,\A=A+Q(:,:,K)*Z1(K) B=B+Q(:,:,K)*Z2(K) D=D+Q(:,:,K)*Z3(K) ENDDO
!Output the actual stiffness of the laminate WRITE(9,\
WRITE(9,*)\WRITE(9,\
WRITE(9,*)\DO I=1,3
WRITE(9,200)A(I,1:3) ENDDO
WRITE(9,\
WRITE(9,*)\DO I=1,3
WRITE(9,200)B(I,1:3) ENDDO
WRITE(9,\
WRITE(9,*)\DO I=1,3
WRITE(9,200)D(I,1:3) ENDDO
!Normalised tensor output WRITE(9,\
WRITE(9,*)\WRITE(9,\
WRITE(9,*)\DO I=1,3
WRITE(9,200)A(I,1:3)/TOTAL_TH ENDDO
WRITE(9,\
WRITE(9,*)\DO I=1,3
WRITE(9,200)A(I,1:3)/TOTAL_TH-12*D(I,1:3)/TOTAL_TH**3 ENDDO
WRITE(9,\
WRITE(9,*)\DO I=1,3
WRITE(9,200)12*D(I,1:3)/TOTAL_TH**3 ENDDO
WRITE(*,*)\successfully,please press any key to end program!\READ(*,*)
END PROGRAM COMPOSITE
附2
杨涛同学的MATLAB(GUI)计算程序。
主要程序:(编了个小界面,程序略长,删掉一些程序自带解释语句,添加了一些对关键语句的解释。)界面是:
第 6 页 共 6 页
作的一个算例如下:
该算例结果与组内同伴James Wilson同学基本一致,其余算例结果也基本一致,仅仅在趋近于零时有略微差异,在此不赘于。 后边附上源代码:
function varargout = composit_plate(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @composit_plate_OpeningFcn, ... 'gui_OutputFcn', @composit_plate_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
function composit_plate_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles);
ha=axes('units','normalized','position',[0 0 1 1]);%嵌入坐标,为嵌入背景图片准备 uistack(ha,'down')%作为背景
II=imread('武汉大学.jpg');%读入图片信息 image(II)
第 7 页 共 7 页
colormap hsv
set(ha,'handlevisibility','off','visible','off')
function varargout = composit_plate_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles) function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit2_Callback(hObject, eventdata, handles) function edit2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit3_Callback(hObject, eventdata, handles) function edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit4_Callback(hObject, eventdata, ~)
function edit4_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function pushbutton1_Callback(hObject, eventdata, handles) syms e1e2v21g12ang%本程序采用符号运算 v12=v21*e2/e1;
q=[e1/(1-v12*v21),v21*e2/(1- v12*v21),0 v21*e2/(1-v12*v21),e2/(1-v12*v21),0 0,0,g12];
tran=[ cos(ang)^2, sin(ang)^2, -sin(2*ang) sin(ang)^2, cos(ang)^2, sin(2*ang)
sin(2*ang)/2, -sin(2*ang)/2, cos(2*ang)]; q1=tran*q*tran';%得到Q
n=str2num(get(handles.edit2,'string'));%读入层数 n=floor(n);nn=0; A=0;B=0;D=0;
t=str2num(get(handles.edit3,'string'));%读入每层厚度 t1=zeros(1,n+1);t1(1)=0; for nn=1:n
t1(nn+1)=t1(nn)+t(nn); end
ang1=str2num(get(handles.edit4,'string'));%读入每层角度 const=str2num(get(handles.edit1,'string'));%读入材料系数 t0=sum(t)/2; t1=t1-t0;
e1=const(1);e2=const(2);v21=const(3);g12=const(4); q11=subs(q1); for nn=1:n ang=ang1(nn); nn=nn+1;
A=A+subs(q11*(t1(nn)-t1(nn-1)));
B=B+subs(0.5*q11*(t1(nn)^2-t1(nn-1)^2)); D=D+subs(1/3*q11*(t1(nn)^3-t1(nn-1)^3)); end%累加计算
set(handles.edit5,'string',num2str(A(1,:)));%以下为输出结果 set(handles.edit6,'string',num2str(A(2,:))); set(handles.edit7,'string',num2str(A(3,:))); set(handles.edit8,'string',num2str(B(1,:))); set(handles.edit9,'string',num2str(B(2,:))); set(handles.edit10,'string',num2str(B(3,:))); set(handles.edit11,'string',num2str(D(1,:))); set(handles.edit12,'string',num2str(D(2,:)));
第 8 页 共 8 页
set(handles.edit13,'string',num2str(D(3,:)));
function edit5_Callback(hObject, eventdata, handles) function edit5_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit6_Callback(hObject, eventdata, handles) function edit6_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit7_Callback(hObject, eventdata, handles) function edit7_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit8_Callback(hObject, eventdata, handles) function edit8_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit9_Callback(hObject, eventdata, handles) function edit9_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit10_Callback(hObject, eventdata, handles) function edit10_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit11_Callback(hObject, eventdata, handles) function edit11_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit12_Callback(hObject, eventdata, handles) function edit12_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit13_Callback(hObject, eventdata, handles) function edit13_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
第 9 页 共 9 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库复合材料力学上机编程作业(计算层合板刚度)(2)在线全文阅读。
相关推荐: