本帖最后由 独孤峰yi 于 2013-5-21 11:13 编辑 & ?9 V& Z5 Q* \' D: M/ }% y, S
& l( V; w& ^8 ?8 s( i0 w7 u- {材料力学课程设计《左端外伸梁的剪力与弯矩图》,由于没有matlab基础,早上七点半纠结到现在实在是hold不住了。我在书上找到了例题有正确答案却不知如和用程序表达。以下是题和我写的程序,不知道哪里错了,希望了解的能帮帮我,谢谢啊!
, A- W0 R. |0 A0 `5 h D题:& v" e8 S; }+ L5 V" M% [3 P
如图所示F=20KN,Me=160KNm,q=20KN/m,试做梁的剪力图和弯矩图9 h0 q6 e: _! I
主程序:7 T( x1 q- x$ B2 f* M
clear;' X3 ^4 C# L$ m* R- v Z) c
clc;
9 I' X9 M8 \; @# T, |& v2 rL1=2;% Q) a5 M( Q: N- |( f" E1 b$ `
x=[0,2,10,12];
! g& `6 h+ y7 f, W! X1 CMPQ = [2 20 0 0
5 o" p2 {4 a6 A0 u X. G% d 3 20 0 10
; G1 H/ ?+ R7 N7 w9 b0 A 1 160 10 0];
1 Z# X) D7 x) E+ M6 q5 d0 h) I0 E; j& CXQM=QMZW(x,L1,MPQ);
7 e: B9 q' i* _7 W! {) ?第一子程序:! `! z+ |# t/ X" I
function XQM=QMZW(x,L1,MPQ): D B* W" B# A
[n,m]=size(x);, F1 e' A& f; B9 ?( Y
L=x(m);! i' u+ A, s' [: B" w8 C
L1=2;1 r- T+ W a" C9 G& {# R9 o5 L0 U
x1=[];6 |/ x. d8 L8 B" t- X4 x3 @! i Z3 \
for i = 1: m-18 {, f: s8 N+ X
x1 = [x1,linspace(x(i),x(i+1),50)];
5 L/ j% k$ o3 e( Pend
" ^ _2 u5 h4 `$ p0 R) ~( N6 r, K MM = zeros(size(x1));
/ V* z, x$ ~( ? QQ = zeros(size(x1));
1 B' @: ^; Y' K x, x9 N# B [m,t] = size(MPQ);
! R. Q) Z! V! N9 y O. K [t,n] = size(x1);
8 r* o0 f9 W. w2 D! X% D% ?% ?' C% R for i=1:m* M9 c6 t8 ]; ~4 N! t
switch MPQ(i,1)" b H# F. T5 P
case 1: t9 o+ A9 H5 _/ F; t! k
a=MPQ(i,3);' g0 S5 F( A) f& c6 B( N
M=MPQ(i,2);4 g: F9 \; g6 V& K/ e
RA=M/(L-L1);
1 D+ L) s3 v( J( T' d6 c RB=-RA;
# m) [. Z; n A% h& \2 \- L! B% _ QQ=QQ+RA;8 T: N$ z U# y5 N* `
MM=MM+RA*x1;4 v2 v4 y% S- T1 i/ X7 q2 N
if a>= 0&&a<L
$ w, C$ ?" `; h/ ~ MM=QMM(n,x1,a,M,MM); * \/ R, J% ?* d1 ^
end9 q c: E7 q) w" ^1 l
if a==0
% @+ j0 Z5 v1 ^% a, x* s MM=MM+M;
- J+ K/ ^# K8 F5 j/ ?1 ^ end
; F, h ^1 q& d0 I2 K [QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM);
4 \7 P$ D4 w/ K5 n& } case 26 ^" `7 ~) R1 W
P=MPQ(i,2);
; R1 l5 |. o7 |$ H' a b=MPQ(i,3);
. j: v$ c/ B, a! x! l; h+ e RA=P*(L-b)/(L-L1);
& [% @( {3 C3 j' x% Z& g8 z k; i3 E RB=P+P*(L-b)/(L-L1);
9 k/ z5 X+ R$ B6 D' e QQ=QQ+RA;
4 g9 ^$ w0 u* Q6 h! y MM=MM+RA*x1;
. a1 |* O9 F0 |3 s4 S% \! t0 } if b>0&&b<L
( \8 A4 w. j! E3 a# e0 x7 _1 p [QQ,MM]=QMP(n,x1,b,P,QQ,MM);
- w* C" u* {0 X/ D) G$ S end
1 S+ Y% L" ?; O [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
, u( T7 t$ e0 ]) F$ P$ kcase 3
; p0 z5 Z! _3 A2 T o& S2 }4 N. S q=MPQ(i,2);
- t5 p5 p) t5 ^' G# n6 O c=MPQ(i,3);
8 U+ m* {: T6 H( t d=MPQ(i,4);* n: z0 W% A0 X1 c: W, ?; ]
RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);
4 F! `) ~9 V( J4 d. N RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);
/ p' C/ v) L, q# t4 @+ w: O( b QQ=QQ+RA;
: p, D8 }2 t1 \: s3 q MM=MM+RA*x1;
' b5 O- `) }" m' K; G1 J( a [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM); 9 n3 B6 l6 i7 [
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);1 I3 e- Q/ f) H. U
end
% J1 B( ?2 x- O* C end; G% L# i) u9 x( h! a
[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);
) a5 M% J* ]% _0 e y! u TU_QM(x1,QQ,MM); 1 u o, J2 H2 x/ r' M1 a ~
第二子程序:
# X* r! {9 |# K- E$ D' S% Gfunction [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)
5 k# P6 @- ? A) j7 A" z7 s# ~XQM=[x1',QQ',MM'];
4 O$ t) e4 i. G1 B[Qmax,i]=max(QQ);- _& l8 }! e8 _8 h1 I% v5 G
Q1=[x1(i),Qmax];
5 ]' Y+ J2 A! j2 s8 X# M[Qmin,i]=min(QQ);
$ o1 r$ }, E" `# [# _Q2=[x1(i),Qmin];
: D% }4 E* ?' [; x [Mmax,i]=max(MM);8 L5 ` x4 d9 j+ w2 i8 D% i
M1=[x1(i),Mmax];
: }/ t: e" ~2 C- v9 ~[Mmin,i]=min(MM);
$ k( }) L4 {4 U! P( c5 D3 hM2=[x1(i),Mmin];. ]) Q/ Y0 c" Y! S
QDX=[Q1;Q2]+ I" k/ A! [7 p2 ^
MDX=[M1;M2]2 K, Y5 E. u6 N8 G
第三子程序:
3 [5 s6 b' ?; xfunction MM=QMM(n,x1,a,M,MM)
' t/ q/ B- D" D( T- }* q" Cfor j=1:n7 _6 ~ I0 O* j5 |8 N
if x1(j)==a* p) C, [6 ]4 q) w
n1=j;% a0 S, p: g t3 s9 i' i5 f
end$ \1 b5 s2 V( N# b, C5 S
end# j8 Q' f6 ?, r% O4 k
MM(n1:n)=MM(n1:n)+M;( r! D2 Y& l4 N
第四子程序:
, K( J6 a, E1 I4 Pfunction [QQ,MM]=QMP(n,x1,b,P,QQ,MM)3 |) ?8 H6 N' @/ m' Z. q4 Z
for j=1:n
; ?4 G2 N9 u% A if x1(j)==b
7 x1 ]5 g/ f# c n1=j;$ Q& W! S$ k1 v
end
; e$ N ^3 _9 R4 `' L$ j. s% Rend
& N& _; O( j' R( n9 A! `- vQQ(n1:n)=QQ(n1:n)-P;; v; {2 v. E, U1 K8 a# J& P7 R& L- E
MM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);
! g5 D* t* Y- d" G" B" {第五子程序:$ G/ G) h# _3 p3 B% I1 Z! W# ]: u
function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)
# D# _) ?* c% G. q zfor j=1:n& l$ }& d: e7 L: a8 h
if x1(j)>c$ v ]# p9 f6 Z8 F i$ o4 @1 C0 U
QQ(j)=QQ(j)-q*(x1(j)-c);
3 f0 H# E$ p- m9 g" o MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;+ ~* A: L4 m5 W6 G
end( S0 N) \6 V' M8 i4 G
if x1(j)>d+ {7 `) X" g; | c- R3 k% L
QQ(j)=QQ(j)+q*(x1(j)-d);
9 ^. ?+ F6 {+ A, f" g! V. f* g MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;0 t, \0 [ z4 @% P1 a+ U
end( }7 B" i) k7 o8 V& ]
end
6 r0 y8 E" r y. ?" H" |8 u% e第六子程序:
* c5 W# e9 t3 Lfunction TU_QM(x1,QQ,MM)7 l2 `# p0 Z3 `, g9 Y/ |
subplot(2,1,1);/ U! x! \4 y' w) E/ B6 A/ c
plot(x1,QQ);4 F& L$ V5 V, F$ @
grid;
0 o& n: k. u% Q% B6 v$ R0 Mtitle('剪力图'); `# N/ d- B4 u9 x7 y; Z
subplot(2,1,2);) q( u* b' h3 Y; ~
plot(x1,MM);
* t& V4 Q; ^6 F* cgrid;
% g; X* u& C" @7 H( qtitle('弯矩图');+ O3 q& T& d+ Q2 @
6 k2 G" t0 G0 i- w6 e |