本帖最后由 独孤峰yi 于 2013-5-21 11:13 编辑 - J5 h! X0 o- |9 ~) Y
: H5 `- P% a; S- X
材料力学课程设计《左端外伸梁的剪力与弯矩图》,由于没有matlab基础,早上七点半纠结到现在实在是hold不住了。我在书上找到了例题有正确答案却不知如和用程序表达。以下是题和我写的程序,不知道哪里错了,希望了解的能帮帮我,谢谢啊!
# X3 J2 L- b% _% z% @/ f题:! U5 @& P4 j1 o T6 o3 I
如图所示F=20KN,Me=160KNm,q=20KN/m,试做梁的剪力图和弯矩图1 ?, K% Z! ?2 K! }: s
主程序:9 C4 U/ Y4 c: t$ a
clear;' ~" [5 C& [; v
clc;
9 p! H1 H3 z& P( gL1=2;
8 S: x8 s1 i# r) Fx=[0,2,10,12];
7 y, q$ z# I3 I3 l7 PMPQ = [2 20 0 0; H0 T1 M+ F; g; P
3 20 0 10
) j) x2 M Z; p 1 160 10 0];
0 m; s* ~* M9 } R1 rXQM=QMZW(x,L1,MPQ);% k* A" K, s7 M
第一子程序:
( h/ L1 y' [1 |function XQM=QMZW(x,L1,MPQ)
' V- [6 S8 l2 f/ d. _+ a& E. Q [n,m]=size(x);: b2 a6 B, {" ~" U9 G1 F
L=x(m);
# i3 V( l, ~& ~1 C5 L! w$ f L1=2; G7 j) P& H8 A; l+ T+ {" N3 }
x1=[];% `2 ? k, q* O5 {1 M0 b9 V
for i = 1: m-10 T5 |4 B C4 y0 n) k% t: z
x1 = [x1,linspace(x(i),x(i+1),50)];
6 N$ U& \4 B; y" `2 [end
2 X- G' G% i. X* }) H* x& K MM = zeros(size(x1));8 @' t9 E9 `1 h/ n2 u E
QQ = zeros(size(x1));
( B9 G) Y5 m' f; B7 n [m,t] = size(MPQ);2 \! @1 ], n0 Z7 @0 K2 V& [% {8 H! C! F
[t,n] = size(x1);
$ {- `1 Y, l2 |- d5 w, G$ l for i=1:m
8 _% b1 r" w* C7 F6 i8 d" S switch MPQ(i,1)
" d) O- h$ d: p/ q8 \& s8 gcase 19 n: j% c5 k6 t+ G
a=MPQ(i,3);
+ @ Z ?# x+ q1 s M=MPQ(i,2);
" ?6 W8 g1 z0 Z: s6 d RA=M/(L-L1);0 k( U1 R& h' K! z# w% q1 j
RB=-RA;
. J6 L/ l" E9 p( j' A8 Q QQ=QQ+RA;
3 o$ ^1 B7 s; b3 A/ M! _4 z* @& h MM=MM+RA*x1;
6 x( e2 g( { [& C$ a) L7 ?7 A if a>= 0&&a<L2 w4 z% {7 d3 N: c8 o& `
MM=QMM(n,x1,a,M,MM);
# I& T6 V. p0 X7 C% c end( W: Z5 |$ g y" U& C" ~2 X5 H: ~
if a==0$ A, w: e/ `$ z& d \
MM=MM+M;
( c' H8 F' i. B" L end 2 S$ B! L6 H- m, x. n( o
[QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM);
4 A% v- O& A8 E9 ^; w% [2 s case 2 s x( N) S# A8 O: h
P=MPQ(i,2);
; r+ M7 M) R( @- d b=MPQ(i,3);: X; [" N4 N" b+ q
RA=P*(L-b)/(L-L1);
6 R& D3 |2 }( H- c; D3 f% _* Q RB=P+P*(L-b)/(L-L1);6 M% Z) x) i3 I3 k+ c
QQ=QQ+RA;- b. u) V2 L& c' \$ U: M
MM=MM+RA*x1;7 V' @' i i5 s) ~. \: _
if b>0&&b<L
7 }5 O+ r) M$ w+ M [QQ,MM]=QMP(n,x1,b,P,QQ,MM); 3 w {) J& f% b* w9 [
end
# c% G7 ~! J# ?$ A0 [5 d& ] [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
# P+ V$ @) k L+ m1 e" fcase 3% A3 x4 g c; z, H, H1 w- P
q=MPQ(i,2);6 d( }. ^7 y4 s! ^
c=MPQ(i,3);
/ R( @% n+ N1 T- f9 u d=MPQ(i,4);; U( N3 }$ d! {/ c2 b, E7 v0 g- S
RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);3 B' I* L* P& D. i8 K& l X
RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);" E4 ?; |; g& O+ ?3 s& a
QQ=QQ+RA;
7 G* l! v; l0 n6 L1 l1 e: U, N MM=MM+RA*x1;
. h( Z8 O- R3 o7 V+ j/ v8 o [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM); & \, |' Q: p) R E: o
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
, |7 @ O# M4 i# J! ~" _1 X N end: U6 r/ Q. H2 x2 v+ L! n
end
9 m! q- Y) m- H% H6 u) x2 f4 F M; s3 T [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM); 5 }5 [6 s, X7 N) q( b' g$ y2 u
TU_QM(x1,QQ,MM);
- }9 E! g/ h* f$ }) I% t- Y第二子程序:
+ f' K/ a- Q+ U0 v/ ~5 dfunction [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)
; Z! [% Y3 H3 C# Y3 Y' cXQM=[x1',QQ',MM'];
6 [- }( U' D; ]0 {8 S3 H[Qmax,i]=max(QQ);
! ], u" u \* a6 @% V# H( o, dQ1=[x1(i),Qmax];
# k) }! `: _4 E# S9 z& x[Qmin,i]=min(QQ);
. \2 }! G: O2 z# W$ `" I. uQ2=[x1(i),Qmin];
. m; r7 x/ Q+ p7 l [Mmax,i]=max(MM);
* [) c/ ^9 I- N! }2 l M1=[x1(i),Mmax];
3 H- u* v+ [+ \% @[Mmin,i]=min(MM);, i( a8 `4 t+ R8 N
M2=[x1(i),Mmin];
. V' W& e' P+ x- L% _QDX=[Q1;Q2] S& a3 L" S% T) B0 O. X y; k
MDX=[M1;M2]
- m" B0 h' e- M第三子程序:
! a( B+ c' ~& Z+ _* E, n3 B! Ufunction MM=QMM(n,x1,a,M,MM)2 T+ r3 V+ a& m2 [/ s8 V' N
for j=1:n
' g: i. A, w. ]! C v4 q1 N( p if x1(j)==a
+ w4 {, p1 S' z% i6 u n1=j;6 N) E+ d' k5 |9 S
end4 B2 z& _8 B. i" S( n3 B
end! F) Z9 \7 I! W. g
MM(n1:n)=MM(n1:n)+M;. b! B' E( Y4 Y9 t5 Y1 K8 `$ |
第四子程序:9 L3 E& K% i! D0 i6 K
function [QQ,MM]=QMP(n,x1,b,P,QQ,MM)
7 E; a2 A. I& P6 E ffor j=1:n1 r t; X/ B9 B9 m9 G
if x1(j)==b0 _2 j, {+ ^* F6 v. m
n1=j;
& Y( y8 g1 m# B6 k# d end1 H" K& Y# p/ ~7 l9 q$ z
end
. s0 ` W f; W% mQQ(n1:n)=QQ(n1:n)-P;, Z1 d0 h. U* E( q" x
MM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);$ ^ e! o$ q f# o# V1 C
第五子程序:
' V- k/ Q' S; l2 w, g- ~function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)
8 K4 Q X5 d% t, z+ u5 Lfor j=1:n9 v" ~) Z* w1 T, _+ L/ L
if x1(j)>c
: @/ H" _% u o) @ QQ(j)=QQ(j)-q*(x1(j)-c);
7 n0 r( T2 L; m$ o7 R- U& u" Q MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;
9 q( R$ W1 j0 ~/ E, {7 j. W( l$ g end& ~5 c: R& d% U
if x1(j)>d2 P, M. l- I1 ]
QQ(j)=QQ(j)+q*(x1(j)-d);4 F' Y! K& H; e& X
MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;
% v% O: q W4 D ?7 H* W8 F end
j1 Z7 n( R- Qend
7 G0 S0 w$ m$ O5 v" l第六子程序: b0 }! ]. A6 V+ }# y
function TU_QM(x1,QQ,MM): c/ e2 w( J+ l( m: \+ E6 l
subplot(2,1,1);
\# p: a# @ P+ Lplot(x1,QQ);& d T3 G" p: f
grid;
* X4 D( M7 h5 J' w' Btitle('剪力图');
& E5 M8 W3 x* K% y1 m+ Hsubplot(2,1,2);1 G2 a/ a+ }' w: S3 b
plot(x1,MM);7 w4 Z. A+ L2 _9 f! u8 S0 Z
grid;( `( A7 f4 N$ p' f* a' G
title('弯矩图');
) T# |+ u% m, Y) _8 E
1 ]5 c. _" p S6 A |