本帖最后由 独孤峰yi 于 2013-5-21 11:13 编辑 0 [# |, X* ?' Z$ x- u
5 Q$ d! ^3 Y4 o0 t7 T2 N; u材料力学课程设计《左端外伸梁的剪力与弯矩图》,由于没有matlab基础,早上七点半纠结到现在实在是hold不住了。我在书上找到了例题有正确答案却不知如和用程序表达。以下是题和我写的程序,不知道哪里错了,希望了解的能帮帮我,谢谢啊!' x# I% m5 }, y( L0 ~. ^
题:) s/ m, x, r# Q- k
如图所示F=20KN,Me=160KNm,q=20KN/m,试做梁的剪力图和弯矩图 Q& l* @/ X4 m* P
主程序:, N& W$ V- `5 Q' o! W
clear;
& c1 a* z' B4 [9 v! v% a7 zclc;
. I: B1 Q1 Y/ Y0 d7 |9 XL1=2;
! R; `, B. Z; p @# Y4 D nx=[0,2,10,12];" d1 i4 o* D$ V+ B, w0 C( T+ c) C
MPQ = [2 20 0 0
) R8 n( J8 n8 X+ U& n5 B: P 3 20 0 103 J* P# R% T: e; E9 ~
1 160 10 0];
2 a f* o% c) _) U. S5 W6 T9 j7 TXQM=QMZW(x,L1,MPQ);5 d9 ~0 H6 y- {
第一子程序:0 m0 ]8 m$ h- l3 n' E
function XQM=QMZW(x,L1,MPQ)
1 ~+ L5 x1 @5 r' c& C/ J+ J, L [n,m]=size(x);! L" {# P- o2 S0 j
L=x(m);9 o) D& R) {9 S
L1=2;
4 c" l. p9 k, S3 g+ ~ x1=[];4 ~" O7 [& M0 ]+ C3 u: U _! l1 P
for i = 1: m-1
& q3 `3 x) q, r& ^2 R x1 = [x1,linspace(x(i),x(i+1),50)];; G0 m) _7 r5 z$ b% L% m. v
end
5 \9 I' r' v' H& E MM = zeros(size(x1));
$ d: s0 j* K, s6 R- e QQ = zeros(size(x1));3 `4 |3 M! U5 F" k
[m,t] = size(MPQ);1 f- i7 Z& z p8 a+ }. B
[t,n] = size(x1);
! r. V/ \0 k7 f2 \ for i=1:m
5 B% U, A* u3 ]9 V, c switch MPQ(i,1)3 {3 p0 ~* g# r% }/ V/ U
case 1
$ r: a- Z0 _0 X" M* R a=MPQ(i,3);$ N- v* C5 H( J
M=MPQ(i,2);
- ?3 G P4 c8 u4 Q$ u( X+ ]) X RA=M/(L-L1);* i: j" l3 g2 X( g1 m$ \
RB=-RA;
: b- m; p% ~* R QQ=QQ+RA;
4 `1 `& h0 v( t- A1 r MM=MM+RA*x1;- W& s% z$ `* u/ a" y) c
if a>= 0&&a<L
: p( G& r3 i; F% W& R MM=QMM(n,x1,a,M,MM); % [$ {2 Z' O4 F
end' S* c g! g5 h7 A( M, @
if a==0
3 j( h: i5 E; F- \ MM=MM+M;# k0 j6 y, L* `
end * q5 e U3 z) l
[QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM); B0 ~" `5 P, Q) O
case 21 D- {/ ^* _$ y: o K
P=MPQ(i,2);
! t$ ~8 d. k& L7 `6 |1 ]' ` b=MPQ(i,3);
! A" H- E( e* c1 _* I% d RA=P*(L-b)/(L-L1);* V/ K0 |( c' o6 [$ ^
RB=P+P*(L-b)/(L-L1);
+ S8 u7 {! ~- v: G( W QQ=QQ+RA;5 X9 k' A( S6 }% @
MM=MM+RA*x1;
! z) {5 Y# D& K2 W$ Y) n if b>0&&b<L( v8 C `: J- F: i
[QQ,MM]=QMP(n,x1,b,P,QQ,MM);
1 x% l% \2 g! \/ n }4 c k+ c! @ end( L& n; Z1 w+ C* w1 y8 u
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
7 p# m W% R7 f0 Ucase 3
( V& e' Z% d" i& d5 k3 f q=MPQ(i,2);
( a* l" O$ z5 h c=MPQ(i,3);! E3 v5 G2 z, G5 t1 R. B
d=MPQ(i,4);& G U8 t4 y% T! k* l& w
RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);/ d' O" c9 n* l" L5 B6 [
RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);9 v! {0 k8 r& u/ F8 v# R/ \. s
QQ=QQ+RA;
) t: D8 T& t% c" r MM=MM+RA*x1;' |4 R& J* K1 p5 m
[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);
5 n n! |2 j& m" I- [: q/ v [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
, N: S% _" x# f7 g; \ end! }+ s/ F9 y, L% v9 E
end ~0 `% z. C9 _2 x& l$ i% ^/ g
[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM); 3 s6 m0 E$ N: D" F8 R0 V* G
TU_QM(x1,QQ,MM);
) j7 @3 _# b O5 u% t0 q$ ?* i第二子程序:% u1 R3 Y! N- D) G0 _( a# a+ r' t
function [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)
. |; E0 \% `7 ]' R8 t' WXQM=[x1',QQ',MM'];
9 T9 @+ `: O" `/ y( K[Qmax,i]=max(QQ);
9 W* @% I' C1 q6 F8 qQ1=[x1(i),Qmax];
# V* v2 o c! W2 a: y6 J, [# B[Qmin,i]=min(QQ);
7 n; T9 v3 M0 u8 y) o9 i. WQ2=[x1(i),Qmin];
- ]6 `6 v2 c- E [Mmax,i]=max(MM);
' k# l, X; p/ P9 }8 \) X+ Z7 m M1=[x1(i),Mmax];* }! f1 h% J+ j4 ]/ Q
[Mmin,i]=min(MM);
N. r/ @7 Z7 g! W) A3 I" W" v/ wM2=[x1(i),Mmin];
) A8 |% J U9 u& m% RQDX=[Q1;Q2]
# u+ o/ f( W1 v2 zMDX=[M1;M2]1 V8 C5 Z' X" G; Y' n% R) E
第三子程序:3 |& Y/ f7 i1 z3 E$ v# E8 m. v
function MM=QMM(n,x1,a,M,MM)4 N) N' ~3 h3 ]. [: I
for j=1:n
) h( F7 O( _0 P9 s2 F if x1(j)==a+ i) b* M' {' w) a
n1=j;. `; `1 b9 K% |% J3 G
end6 X! l2 Q8 a+ m% ~8 b" z- q
end1 ]3 R8 x+ a. e/ N
MM(n1:n)=MM(n1:n)+M;
3 D' n G# Q6 j: D$ f第四子程序:
4 Y& r* \" a" w6 o$ Nfunction [QQ,MM]=QMP(n,x1,b,P,QQ,MM); ?( q: ]$ q7 n$ ~5 O, f! c
for j=1:n+ [, h8 g k/ s0 u* K- g
if x1(j)==b) C/ U& P' A7 U3 d4 R! F5 ]
n1=j;
& Q. Q6 ~, V! h& u' }" S end! u7 }6 w( {( U- a" I) ]+ P
end
2 x& F( I$ ], d" `" W! I; }, oQQ(n1:n)=QQ(n1:n)-P;+ T% E2 w' T' ?$ v) b% {
MM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);
2 I6 S9 j: ~' x o4 m第五子程序:
4 H+ B; y. d, f6 `2 Nfunction [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)
, {$ Q! M3 I; }. sfor j=1:n
$ y* U, `( H' m+ { if x1(j)>c2 p# [: n' h1 Y" D) P
QQ(j)=QQ(j)-q*(x1(j)-c);& v( p, ~* l. c% Y |
MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;
. Q! l, G) k+ {: x end
7 I1 }- d+ N$ o if x1(j)>d" s' v- _* ?6 y6 ?+ V- D
QQ(j)=QQ(j)+q*(x1(j)-d);
9 t2 t7 [& o3 _5 P5 y) t MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;- v$ N B1 ~ W: \; h
end
0 Q. X+ F( |& j- Y5 h9 Pend, M- h8 p9 o; K" W
第六子程序:3 O f3 w# }( F" U$ A& g4 b
function TU_QM(x1,QQ,MM)
. _- ?/ }4 R6 ~$ ?- S* [/ b1 rsubplot(2,1,1);
' N7 p" V/ O. `# `1 v, ?plot(x1,QQ);& W3 t1 @9 [" X' b. Y# \8 |
grid;
/ a( j D9 g2 e% Wtitle('剪力图');
" Z6 W$ o v, R" O. fsubplot(2,1,2);$ }+ Y1 A% f0 r! V8 R
plot(x1,MM);
7 z1 G( A h: ~2 r/ M% o* X r5 wgrid;" c/ z1 R8 f/ \. H% J. _" O2 N$ D+ \
title('弯矩图');
0 O# O( K1 w% x/ T7 N
8 U3 o) W( {1 U3 U3 ~ |