本帖最后由 獨孤峰yi 于 2013-5-21 11:13 編輯
/ d3 Z0 c* h2 a! F1 [5 n& [
0 `6 U" ^) [' p2 b材料力學課程設計《左端外伸梁的剪力與彎矩圖》,由于沒有matlab基礎,早上七點半糾結到現在實在是hold不住了。我在書上找到了例題有正確答案卻不知如和用程序表達。以下是題和我寫的程序,不知道哪里錯了,希望了解的能幫幫我,謝謝啊!
/ b: ?( z# q. M p3 t( y題:8 q2 C# ?0 \2 E8 m
如圖所示F=20KN,Me=160KNm,q=20KN/m,試做梁的剪力圖和彎矩圖
% F. C: w$ L# R ]主程序:
0 p: b6 }7 h3 V% sclear;
3 N7 h# r8 T$ A8 F& nclc;% q8 P- g+ x2 \: Y* W) O+ r, u
L1=2;
# z- Z/ y" r' K/ J! W( f) yx=[0,2,10,12];/ u& I: O1 D( s4 E8 O% Z
MPQ = [2 20 0 0
+ T; t# r+ B, R 3 20 0 109 Q+ V( R+ a, v Z
1 160 10 0];
! T# o% S6 M, m3 _- wXQM=QMZW(x,L1,MPQ);
# e7 _* \- @* {' t第一子程序:
0 ^" X6 S3 N, `0 Ufunction XQM=QMZW(x,L1,MPQ)
) y% N3 t9 k2 q2 s, L1 y2 O [n,m]=size(x);
2 _* {/ X% k8 _# k L=x(m);
( D, x! u& D: y L1=2;
5 |8 q3 p5 u7 p! n8 X; l x1=[];
d& o1 a* K3 C+ g* H0 A for i = 1: m-1, L( W1 L$ z# e$ U
x1 = [x1,linspace(x(i),x(i+1),50)];
1 m; d5 c' k2 i6 @# Rend
! l/ P* d! Y* O8 E7 s5 { MM = zeros(size(x1));
$ M: v# D" O% c& K QQ = zeros(size(x1));
3 [' n+ P$ y) Q [m,t] = size(MPQ);
7 p& m- j8 J6 D! o' ^: v [t,n] = size(x1);
- H# U/ q7 m( }! U3 N for i=1:m
- d/ j8 F* V9 K switch MPQ(i,1)9 B) z9 l* C& _5 @
case 1
: S$ D( n$ u. R& W/ c) s1 u' f a=MPQ(i,3);! D1 @ \' e- O* F( z( K ]
M=MPQ(i,2);! I) O3 f3 d. ` Q
RA=M/(L-L1);. {* L( P7 }8 W# F6 f/ ?
RB=-RA;9 C$ O+ `: f. h) F% D& q% d
QQ=QQ+RA;
( q5 \& k( v; k ] MM=MM+RA*x1;
& y% v/ |" ? d if a>= 0&&a<L6 ]. g2 }0 z8 e2 E
MM=QMM(n,x1,a,M,MM);
9 ]( E0 \9 N3 e# M6 G6 l end, z# ? ^0 |2 U" G3 a- Y
if a==0: ~% B* I/ p. T7 o4 a
MM=MM+M;# k$ u! q4 o8 K5 g
end - Z; A5 W5 e7 N- L- y4 m% B- w" ]
[QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM);
8 o! f, l6 Q3 G3 k* `" ` case 2' C+ {. l2 S. F$ [$ V' X
P=MPQ(i,2);
9 G6 J# f/ L; Y3 A0 g$ d b=MPQ(i,3);
O3 B; n) I7 u, ^5 W+ n# S RA=P*(L-b)/(L-L1);
7 h6 V+ Q& A. @/ p9 N( \ RB=P+P*(L-b)/(L-L1);
% Y% |+ `" z B, ?7 D QQ=QQ+RA;
/ b# O9 p& T) m, a. ]9 M$ d9 S MM=MM+RA*x1;
+ W8 C& Y9 r9 D0 e- s- @0 ^ if b>0&&b<L
* \7 G2 c- Q4 J- I& H* J [QQ,MM]=QMP(n,x1,b,P,QQ,MM);
' O* K7 x8 S7 y% _4 A end1 { d$ ?$ ^$ k. I
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);" \ k- B( h/ O/ q4 {& ~
case 3% @* k" g r7 x& E- _
q=MPQ(i,2);. m9 o7 p. k! s6 V# L0 ~
c=MPQ(i,3);: y( W: I0 p& U6 `2 \) j
d=MPQ(i,4);
2 l$ H) B3 s" F( [ RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);
# L2 X* B* K4 a8 a RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);
0 N( M7 c3 e& i QQ=QQ+RA;- L6 k. B! l3 H, J
MM=MM+RA*x1;
% n8 ?8 \1 u2 i6 C: u [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM); 6 X1 n/ k6 A9 @0 v* P
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
: u H% |; `! j' L1 s end
" {" T* @5 y8 r2 X" a* |; G end# K. _2 X! \+ N5 R( D
[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM); , h; l- Z: k) Z1 H s
TU_QM(x1,QQ,MM); 5 I; l: H2 o* m8 _$ A% k( l( l* J! C
第二子程序:
: j8 A v9 h) V; `8 pfunction [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)
4 |; O( S9 j, c7 aXQM=[x1',QQ',MM'];
1 R$ F# y# `7 F& a[Qmax,i]=max(QQ);
z1 E! B4 H% E& |Q1=[x1(i),Qmax];
5 y2 {3 K# v& d `2 C! U5 c[Qmin,i]=min(QQ);% {- t, n/ o, e6 N$ Y
Q2=[x1(i),Qmin];
+ Z8 y( ~: s% C/ V# @4 V* Y [Mmax,i]=max(MM);" z4 ~* N& p* r4 r N7 P6 N( A6 ^5 H
M1=[x1(i),Mmax];; g" q0 ?1 t5 q0 v7 z' G
[Mmin,i]=min(MM);/ Z4 r3 s: z+ ^' z0 i! s# V
M2=[x1(i),Mmin];& Q+ {: }. U7 ~
QDX=[Q1;Q2]# m# K$ N. V' [8 v% J0 m
MDX=[M1;M2]
1 J2 D8 a" r, Q w第三子程序:7 |2 L& e. q! h/ J1 `1 n# J
function MM=QMM(n,x1,a,M,MM)
" e1 r# U2 J0 W0 w9 K0 `for j=1:n
7 s0 z$ o- j- v. H: b if x1(j)==a
8 F, t' m" ^( x) M n1=j;* K6 @* \% G0 H9 D* `
end
" p' c0 Q: v/ Iend
# N! q5 H' Z( ?) v0 y: [' g MM(n1:n)=MM(n1:n)+M;9 d* c" _" q' M0 Z$ k9 A6 `8 Z! s: `' X
第四子程序:
8 u' ?, ~5 H, v& Tfunction [QQ,MM]=QMP(n,x1,b,P,QQ,MM)
! f3 }/ L* s; h8 y4 N# ]* a$ B0 @4 dfor j=1:n
" W& ^# j- L( D! A6 b4 s9 ^ if x1(j)==b
* G7 n2 X0 d9 o* V3 i3 ~ n1=j;
@# V/ |5 I8 I& a! Q0 _! s G end
5 K4 J9 X# s+ Mend
6 A6 {' [1 o; MQQ(n1:n)=QQ(n1:n)-P;
) t; T( p: p/ j- AMM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);# I( b! T4 J% Y0 ^' o
第五子程序:# |* r2 w o; f A6 S* E
function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)
7 l- C3 ] m0 {" Y: zfor j=1:n" K% \0 J/ O2 d0 @+ O' _* }* [+ ]
if x1(j)>c. M* ^& A; q- o5 }* j$ K" ^0 S) |
QQ(j)=QQ(j)-q*(x1(j)-c);
" N. R% h$ r, D/ I( h! D MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;) W2 ?3 ]! n5 Z- C" u+ d
end) U6 G9 F) P% X$ F3 Q( r2 [' l; k
if x1(j)>d
$ Y2 {: y* ?7 q x; h QQ(j)=QQ(j)+q*(x1(j)-d);2 E, e( i' e5 c- n% L* [
MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;4 A; Q% {! n) G8 g" ]
end
! u& B7 X1 I6 o. Q" zend
2 v( i: E; L" R( c# ^( ? ~2 o! b第六子程序:7 s b) f7 H: g% ?! j
function TU_QM(x1,QQ,MM)9 D0 E# ?+ a, `( d2 l
subplot(2,1,1);) ?0 ^( ~& ], }" H P4 h
plot(x1,QQ);
* A- E- m+ y2 Z4 K- y! D _+ Hgrid;. y1 ]9 l7 H1 f
title('剪力圖');* H& T5 W6 D. {" d
subplot(2,1,2);
. `# F9 w" g" z" y- uplot(x1,MM);- c& Q8 k) e; Z! H/ m
grid;
- `( N8 v' M$ w+ |0 ~title('彎矩圖');
- U" l' e0 \6 s! r0 m; g1 t& W% H/ ~# ~6 u
|