本帖最后由 独孤峰yi 于 2013-5-21 11:13 编辑
/ f$ P+ ]9 g5 X0 k! l' {1 z+ w" ?' ?9 K% W( O3 P- V, {9 _9 ~* i
材料力学课程设计《左端外伸梁的剪力与弯矩图》,由于没有matlab基础,早上七点半纠结到现在实在是hold不住了。我在书上找到了例题有正确答案却不知如和用程序表达。以下是题和我写的程序,不知道哪里错了,希望了解的能帮帮我,谢谢啊!. U! K: @* Y3 r; @2 V# B
题:! H, H: H7 [( u* L4 H9 O
如图所示F=20KN,Me=160KNm,q=20KN/m,试做梁的剪力图和弯矩图- A6 [8 ?% p! W$ e z
主程序:
! L/ z( \$ k7 z6 i! p" [clear;
3 G, c; d: G' y8 @# dclc;
5 |1 i4 j9 H! T' A$ _& W/ |L1=2;
% q8 ?* R- ?' C' u3 g: Jx=[0,2,10,12];% h {$ q- x( R4 ]) z
MPQ = [2 20 0 0
5 I9 w+ x6 R7 }; t& t 3 20 0 10( _; E$ n/ @- `' O( p
1 160 10 0];% N) d/ x2 p8 b/ D3 D/ N1 Q# ]; t
XQM=QMZW(x,L1,MPQ);
* g, x5 e( Y, M" h! k第一子程序:5 x) h8 b4 G% y% z
function XQM=QMZW(x,L1,MPQ)
, v0 o1 |2 a" c+ t" L [n,m]=size(x);: H2 J0 u; W/ P2 `; [ O
L=x(m);, ~& Y( x9 b$ n: P; [
L1=2;
- @" u& s4 i8 N x1=[];! F0 Q6 g% U2 f+ N$ J' |6 r+ W$ x
for i = 1: m-1% B0 H/ O, c( c9 S3 Y) e
x1 = [x1,linspace(x(i),x(i+1),50)];
1 R! j0 _6 m l x( a5 oend ^ j2 @1 z) \1 X
MM = zeros(size(x1));8 w$ L8 H& s8 V9 v: Y5 ?7 f9 j+ V
QQ = zeros(size(x1));1 ~$ |7 j( J0 |/ i' E7 R4 i# ?
[m,t] = size(MPQ);
3 W0 t( s, ]# x; Y& R0 w [t,n] = size(x1);' [7 m5 O, ?* d2 |% P8 {3 l- A
for i=1:m
7 f5 {# ?% `9 X4 t+ L switch MPQ(i,1)0 u2 o" k7 d; J: w% U$ p
case 18 ~, _* e8 h) R3 W: D/ `6 n
a=MPQ(i,3);
" e) J) {* p7 H! h! p* u M=MPQ(i,2);
) }" U9 c! \2 K# [- p& y RA=M/(L-L1);' \7 G: P4 h# E1 z
RB=-RA;
0 g( w8 K2 _+ Q1 W QQ=QQ+RA;7 M, k# E/ ~3 v" l. B
MM=MM+RA*x1;
: ]" N% f; O& K1 q0 P if a>= 0&&a<L
/ G, h: J/ l2 Z5 b' |/ I/ n MM=QMM(n,x1,a,M,MM); 1 H$ m' L* K$ C1 P9 Y
end
% e, o5 g) e6 z# ~# L if a==0* C0 q B' g5 k1 O" v* ?
MM=MM+M;
; p4 F' L# e$ v) s. V: @ end
* x# B# s2 z: Y1 n; Z8 V7 [ [QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM); : N6 A6 @# b) _9 e7 s2 `1 N3 U
case 27 n( l1 O. h! Z: U
P=MPQ(i,2);& T6 t4 {$ R, _' ^
b=MPQ(i,3);
" j( B3 J. l, q5 v1 w% t% b% s RA=P*(L-b)/(L-L1);3 K' K1 ^( P% F( i: }: D; l3 L
RB=P+P*(L-b)/(L-L1);
) L3 W. V9 n. I4 m6 t QQ=QQ+RA;' p6 b* V- u8 v2 i% a
MM=MM+RA*x1;
4 p, w* ? M5 P' R" L; k( { if b>0&&b<L( ~) E/ M" X5 K8 U9 f; Y" [. X
[QQ,MM]=QMP(n,x1,b,P,QQ,MM); 8 v& i5 |- d% P* i. v; L% W
end
: S# X8 o' e4 M a8 F [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);- I* R& w. B4 `* F0 p. o
case 34 G4 c, F9 b2 b$ O# k5 P5 R: D6 F
q=MPQ(i,2);
3 k% Q! A( \. q7 {2 x# q c=MPQ(i,3);
( @: w& W9 K: R d=MPQ(i,4);
/ i0 C6 R2 D& Y8 u7 @ RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);
( W. h0 e2 S0 S8 v" h3 A, z RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);* [+ E& p* \* g" f( U" D1 `
QQ=QQ+RA;0 \* _; L% Q1 O1 A( X9 Y6 ^) Q1 ~3 D& a
MM=MM+RA*x1;
/ f. [& H: \- `' a. x# W [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);
* M1 g" I& x( x; `! O [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
" k! O4 E9 \- j+ P! m9 M3 s end3 Z/ A8 m& K+ ^# g2 m
end8 I; V) g+ M: j4 p# o! _9 v
[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);
* I9 x0 r! S5 k3 A: @ TU_QM(x1,QQ,MM);
2 A% i8 X' z* C' Y3 H% G第二子程序:
' l' h* }! z- qfunction [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)
M$ z7 a, c, s9 a! {3 q! }, q9 B3 b; ZXQM=[x1',QQ',MM'];+ j% |, y5 b; O/ X7 v4 q
[Qmax,i]=max(QQ);
+ U0 {$ J) b, g) b- oQ1=[x1(i),Qmax];" J: `& s$ |. B1 M: }
[Qmin,i]=min(QQ);
: V9 r8 b1 F- ^; p) F1 VQ2=[x1(i),Qmin];
0 V4 D/ y+ c4 }9 O6 F$ J. i- v [Mmax,i]=max(MM);4 V9 G4 [) l, h7 X; q6 z
M1=[x1(i),Mmax];# \) T, }1 H% S
[Mmin,i]=min(MM);: Y* Z3 s# @7 | J! K8 j/ p3 M
M2=[x1(i),Mmin];
5 N6 |3 \. c0 e4 o* ?. VQDX=[Q1;Q2]: ^+ p* b+ F6 U+ U8 `
MDX=[M1;M2]
: u6 h3 p+ Q: f第三子程序:" d( ]7 \0 N' o2 J2 L1 h. c
function MM=QMM(n,x1,a,M,MM)
B! c" t* S5 w0 V/ o' j5 \for j=1:n
- x9 Y6 ]+ V( q1 Q if x1(j)==a: d0 T! O* U- Y2 @- P
n1=j;
+ V% \5 u( K5 b; e" m end! [/ c* Y E: J' ^2 [
end
* H6 d9 F% u! ]+ a/ O; _. H MM(n1:n)=MM(n1:n)+M;2 ]0 U$ y L |! M
第四子程序:9 [; m* K; U$ [3 O
function [QQ,MM]=QMP(n,x1,b,P,QQ,MM)
) a$ |% Q* @1 p) pfor j=1:n
: a9 ]* H- p3 i. V if x1(j)==b
l# G8 n% Y, X n1=j;# k! ]; b. u d
end
1 c: O- b3 n& [! Z" Y X X. D( x* q! {end
* J. {$ N9 O" n* pQQ(n1:n)=QQ(n1:n)-P;( d' l7 g% {$ O8 E1 U: d
MM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);% Z! {! X0 `' m. h- `) p
第五子程序:+ v' A. Z- g5 `/ u; ^' r$ d7 `! _
function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)
2 L1 k: m5 J7 Mfor j=1:n
0 d' m! V" o# o- l6 O) h5 l if x1(j)>c
) G6 A8 W0 C s QQ(j)=QQ(j)-q*(x1(j)-c);
. p1 L) m! S. L. K* f7 n, r% }6 G. L MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;" R/ y/ v* ^, ?9 O/ b. B c
end
4 ~0 @& K+ Y2 y$ i7 g8 v if x1(j)>d
4 e# k( v- a6 p+ ~! L QQ(j)=QQ(j)+q*(x1(j)-d);
: N# J* E! a, N& G3 ~- y, r% N MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;+ y' C6 M7 [8 S7 K' V6 N$ `) b
end
2 {" l5 X7 F& tend
w) r6 g1 h1 L3 S/ w! J第六子程序:
0 n- c; {# _5 \+ s. q/ `function TU_QM(x1,QQ,MM)
( U/ s$ c- ?1 {. S5 Ksubplot(2,1,1);
& S3 B; e" O/ I5 T/ H+ m6 Q! ]1 Bplot(x1,QQ);# J4 d% X+ v2 _& |8 C
grid;# E1 }3 L, B6 _) A
title('剪力图');, K( Y# _% O$ e$ H5 H6 t+ r
subplot(2,1,2);
9 G c' z$ O4 e# fplot(x1,MM); Z* ?0 Z6 J. z2 Q( z
grid;
- B/ [) a, o, Ptitle('弯矩图');
+ w- c/ p3 J2 E9 d: }) i9 z7 M+ [1 |' {
|