本帖最后由 獨孤峰yi 于 2013-5-21 11:13 編輯 ; u, z3 Z7 Y) e& }) u' u
( O/ r* I. w3 D材料力學課程設計《左端外伸梁的剪力與彎矩圖》,由于沒有matlab基礎,早上七點半糾結到現在實在是hold不住了。我在書上找到了例題有正確答案卻不知如和用程序表達。以下是題和我寫的程序,不知道哪里錯了,希望了解的能幫幫我,謝謝啊!5 [; a# U6 `" q$ I, d
題:* @* W( c' d9 Z H
如圖所示F=20KN,Me=160KNm,q=20KN/m,試做梁的剪力圖和彎矩圖
2 q4 I T! u7 h' g9 N! v/ d主程序:
1 k" h5 Y4 \1 b* wclear;
) G% c4 C' I, S% E& L/ S; Kclc;/ E" l8 q: t& Z* J8 a
L1=2;
* M2 {5 g4 Z, B8 t7 Fx=[0,2,10,12];
! ~8 C O9 |! o% z1 o) [MPQ = [2 20 0 0
) S1 K: e0 j$ E, h" q& G& S- x 3 20 0 10" U$ Z( n& W9 F9 o2 C( j
1 160 10 0];1 t: Y1 P# p5 Y3 V' _& Q' a
XQM=QMZW(x,L1,MPQ);
9 j+ l" d2 e. z& H第一子程序:1 q. `9 K" j9 }3 O N# [; @, C% G7 Y1 H
function XQM=QMZW(x,L1,MPQ); a( Q- N& R) W" N7 k
[n,m]=size(x);
( i0 \4 y0 J: @5 q8 x. @ L=x(m);
: U" u! B3 O- T" q/ F- A' y L1=2;2 g: i" O7 l& |# T- e" j+ ~! F
x1=[];2 X# M2 d" i* e! q% v! Y
for i = 1: m-12 t" [' H3 Y m
x1 = [x1,linspace(x(i),x(i+1),50)];1 z' n w) p9 {- {8 D) C: M
end 8 ~( J8 g, w; H% ~
MM = zeros(size(x1));
3 I4 b- Y! ?; ]" w! T QQ = zeros(size(x1));- Q( B! E2 k. F& i$ _# g# o
[m,t] = size(MPQ);
[: `; w! G$ \- Z6 q3 U: o [t,n] = size(x1);3 s% i7 {$ v. j
for i=1:m3 ?. T, G" [3 g
switch MPQ(i,1)0 D+ `. y* V3 j) ]# s
case 1
) i$ L: [3 q1 B. p a=MPQ(i,3);+ |0 _% c% R0 D9 e: ]8 M% J
M=MPQ(i,2);
% L8 M j5 i3 b+ b: p" S0 P( Q RA=M/(L-L1);3 b* E/ J C9 h& M0 b, }: z
RB=-RA;
; a! {( b# r" t; C9 J QQ=QQ+RA;% D$ C4 ^, D( _' L8 ?
MM=MM+RA*x1;$ v& O5 f1 f7 ?* Z$ l" l7 H
if a>= 0&&a<L# B0 m* o% a4 s$ A
MM=QMM(n,x1,a,M,MM);
( j7 T. S' d0 {; R' F1 p! p5 L end! b5 b4 Y+ _% z0 R( J G. f4 A
if a==0
) h5 i, T2 ]/ y: ?+ L2 a MM=MM+M;3 i6 H2 r- l3 V+ v2 Z6 Q) N, h
end . H* _$ K/ f8 V& O
[QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM); + w4 B5 A6 v3 t* }5 D
case 25 G! D& m, d- D" Y& u6 z
P=MPQ(i,2);3 t$ Y, v m# y# _
b=MPQ(i,3);2 ?/ P& S0 t8 P" ~4 Q( z
RA=P*(L-b)/(L-L1);
3 |: I' w4 j. C; b/ M4 ^ RB=P+P*(L-b)/(L-L1);, v) r1 e5 I+ |$ z2 M
QQ=QQ+RA;
3 e2 a( g, M1 ?9 W2 d MM=MM+RA*x1; G, i v# S9 F8 N8 Q, E
if b>0&&b<L9 D* w" o# O0 E7 S! d# ^% Z6 t
[QQ,MM]=QMP(n,x1,b,P,QQ,MM); : F$ l2 q3 D( o* \ e
end
\* M7 |' ]* R" H2 E6 T$ | [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);0 @2 T6 @* m! b+ y% |9 B% {7 \ c
case 30 i, V+ b8 n0 D& X! r
q=MPQ(i,2);
6 `' K- o4 f8 d' S" n c=MPQ(i,3);
4 p3 R. u8 a3 Y2 U* X/ `$ K: y; F d=MPQ(i,4);- ~) J$ U2 O2 G( I# {/ m- v; q
RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);
3 v" l& L8 x0 g" c7 z8 m RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);5 D% p0 Y5 Y: u7 g3 s. E J/ _; R
QQ=QQ+RA;
6 I/ x& T1 ~% K- e4 B6 G MM=MM+RA*x1;
. j, H. H4 a1 y [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM); - A' K+ |/ d% r! ~. w9 L/ K; A- @
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
' e- g4 `+ ^4 {( D+ t end9 J s9 Z( |! S4 {
end2 X5 b0 I; D1 p0 ~1 ]5 ]$ A& |: l
[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM); 4 a( G) b0 o/ c/ t) H, j0 w4 u
TU_QM(x1,QQ,MM); " j" e( @: H. B% b$ l( {3 q
第二子程序: D# k7 T; S( V8 U3 o6 L$ Y( ]" D
function [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)) M" ^. x' |+ p! s
XQM=[x1',QQ',MM'];
6 R/ q4 Y, Y) D P' a, j[Qmax,i]=max(QQ);! E, H7 [( y4 v& j' I6 Y
Q1=[x1(i),Qmax];% @- s. n/ @& F0 ~7 R" v, ^
[Qmin,i]=min(QQ);
- R2 |3 _" D* C' K% Z( K; tQ2=[x1(i),Qmin];+ x* n9 K+ N+ O, X" L+ l
[Mmax,i]=max(MM);$ p+ S4 N. b1 `( S1 v" e
M1=[x1(i),Mmax];( w4 `" V# T) q4 M& z
[Mmin,i]=min(MM);9 z2 R; X1 S8 A9 _
M2=[x1(i),Mmin];
; E$ Z+ Q& O; d4 xQDX=[Q1;Q2]. t: x8 J, V) U
MDX=[M1;M2]
0 t3 s6 }. b& x; Y* ~/ w第三子程序:
1 H2 {4 W2 N: zfunction MM=QMM(n,x1,a,M,MM)
5 x7 g& a e& L+ I" c- N" nfor j=1:n) Q6 m' f9 n) P" r6 b
if x1(j)==a- g( b q, `5 D# G/ ^
n1=j;
" l$ i8 Q; w* Z5 t4 Z$ r, G- p end8 r: X; |7 z0 l9 ]: k x
end7 X2 Q: C l0 z4 M
MM(n1:n)=MM(n1:n)+M;
. Z! i( V3 \8 a1 T第四子程序:: {) K1 i% V2 i2 ]+ _( I; o0 C3 T
function [QQ,MM]=QMP(n,x1,b,P,QQ,MM)8 s- e7 F( T5 \7 s
for j=1:n
1 m3 S9 T; D# F3 x1 r if x1(j)==b. n" C4 t5 a1 E6 R% }' e# o9 R- L/ H7 n
n1=j;" N! u2 J) p. H+ V( X
end
( X/ y8 O- ~9 O# b6 M7 Dend9 |4 m' Y8 L0 o0 S2 O
QQ(n1:n)=QQ(n1:n)-P;
2 J, w3 O; f$ A0 vMM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);
% U2 E, j; \' f& Z2 A) j r第五子程序:7 z2 P. O0 I4 a5 D) X/ p6 E4 V
function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)2 k; @# B, I, k! _6 S: R
for j=1:n: o" y' [. V) H7 V' R% f
if x1(j)>c9 _, g7 S2 z; h O/ p1 A* P
QQ(j)=QQ(j)-q*(x1(j)-c);
0 p$ K9 F$ N5 M1 _; Y9 i3 K8 K MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;* k7 D; W! b5 a& z9 `9 T: _
end
& E# N2 l; Z2 ]6 @ if x1(j)>d
; M: ~6 w0 X# o [) b QQ(j)=QQ(j)+q*(x1(j)-d);
r: B' W/ U6 K) E ^ MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;/ t* m* Y; V4 _) c4 v& r+ U. c
end+ y, [+ q& `+ P0 q' y6 U- a
end( L$ W$ D9 X' f- M$ V- W
第六子程序:
& h/ [0 K1 c% z$ V- a2 `function TU_QM(x1,QQ,MM)
5 c7 D. O/ K' M( P; i0 ]" Lsubplot(2,1,1);
3 `( d; f- W9 ^% Z6 x" f8 g7 z6 ?plot(x1,QQ);) l9 K0 ~* E- g2 T p$ z$ O
grid;
2 F# C/ _3 |* l0 S; Ftitle('剪力圖');. Y* t7 t2 D: n8 l6 k
subplot(2,1,2);
. H* u$ O' a: _1 Q: d: ^1 m; Eplot(x1,MM);) q* H- b! s/ }) g; j5 D
grid;
* U: @2 y! F& P8 K' W" Etitle('彎矩圖');
. i- B- z6 q5 Q) b# V8 d# e
0 D t9 q3 G$ Z& \4 c1 v |