资源描述:
《MATLAB程序设计实践(第二题).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、2.求其弯矩、转角和挠度。已知L=2m,q=1000N/m,=900N·m,E=200*N/m,I=2*。从材料力学的知识可知道,由弯矩求转角要经过一次不定积分,而由转角求挠度又要经过一次不定积分,通常这是很麻烦而且容易出错的,而在MATLAB中,可用cumsum函数或cumtrapz函数作近似的不定积分,只要x取得足够密,其结果将相当准确,而程序非常简单。由平衡方程可求出支撑反力和:,故各段弯矩方程为:,,,对M/EI作积分,得转角一次积分,得到挠度Y,每次积分都要出现一个待定积分常数:此处设。此处设。两个待定积分常数和可由边界条件Y(0)=0及Y(L)=0确定:于是
2、可得:MATLAB程序如下:L=2;q=1000;M0=900;E=200e9;I=2e-6;Na=(3*q*L^2/8-M0)/L;Nb=q*L/2-Na;x=linspace(0,L,101);dx=L/100;M1=Na*x(1:51)-q*x(1:51).^2/2;%分3段用数组列出M的表达式M2=Nb*(L-x(52:76))-M0;M3=Nb*(L-x(77:101));M=[M1,M2,M3];A0=cumtrapz(M)*dx/(E*I);%由M积分求转角(未记积分常数)Y0=cumtrapz(A0)*dx;%由转角积分求挠度(未记积分常数)C=[0,1
3、;L,1][-Y0(1);-Y0(101)];%由边界条件求积分常数A=A0+C(1);Y=Y0+C(1)*x+C(2);%求转角和挠度的完整值subplot(3,1,1);plot(x,M);gridon;subplot(3,1,2);plot(x,A);gridon;subplot(3,1,3);plot(x,Y);gridon;运行程序:>>L=2;q=1000;M0=900;E=200e9;I=2e-6;Na=(3*q*L^2/8-M0)/L;Nb=q*L/2-Na;x=linspace(0,L,101);dx=L/100;M1=Na*x(1:51)-q*x(
4、1:51).^2/2;%分3段用数组列出M的表达式M2=Nb*(L-x(52:76))-M0;M3=Nb*(L-x(77:101));M=[M1,M2,M3];A0=cumtrapz(M)*dx/(E*I);%由M积分求转角(未记积分常数)Y0=cumtrapz(A0)*dx;%由转角积分求挠度(未记积分常数)C=[0,1;L,1][-Y0(1);-Y0(101)]C=1.0e-003*0.14620>>A=A0+C(1);Y=Y0+C(1)*x+C(2);%求转角和挠度的完整值subplot(3,1,1);%把图形窗口分割成3*1个子窗口,在第一个作图plot(x,
5、M);%做M对x的函数图象gridon;%栅格线subplot(3,1,2);plot(x,A);gridon;subplot(3,1,3);plot(x,Y);gridon结果图片如下: