本帖最后由 独孤峰yi 于 2013-5-21 11:13 编辑 ; Q+ @. p, L' t( g: }# N2 e) ^8 Q
8 j* }7 B% c0 F! @材料力学课程设计《左端外伸梁的剪力与弯矩图》,由于没有matlab基础,早上七点半纠结到现在实在是hold不住了。我在书上找到了例题有正确答案却不知如和用程序表达。以下是题和我写的程序,不知道哪里错了,希望了解的能帮帮我,谢谢啊!
# O5 P- M; V6 L' Q, A题:
# @5 T2 Q9 s; w. N8 I% t @: R如图所示F=20KN,Me=160KNm,q=20KN/m,试做梁的剪力图和弯矩图+ P- j( _' R8 Z4 U) e! i
主程序:
' { M8 m6 w; X. p9 e) }1 X0 _3 }; i! ]clear;
& z( g* W) b- |# Pclc;
2 L! F) ^- \2 p# e! _L1=2;
3 ?- h3 O+ T& c7 ux=[0,2,10,12];: |4 n: A t% e& w: R4 x! F% _
MPQ = [2 20 0 00 P' s0 D7 ?* w7 q
3 20 0 10
) V5 [2 W8 P& C" |! O, ` 1 160 10 0];
( X& A7 s# e3 j) t0 b8 D& T0 MXQM=QMZW(x,L1,MPQ);. T2 G5 a' [$ k" u7 Q5 x5 U
第一子程序:0 y* m; _% Y6 G; D0 _; d
function XQM=QMZW(x,L1,MPQ)
3 J& H. T% A9 ]% y7 d [n,m]=size(x);) @" J! \0 A+ c9 `/ E+ |
L=x(m);' N/ z9 f6 @' A8 Y- g; b0 p$ [
L1=2;
$ B" M; H6 _) P/ W! f; ? x1=[];
% ?# [" s( ]' p2 S for i = 1: m-1
. I# f* I# ^$ c9 V& n$ m x1 = [x1,linspace(x(i),x(i+1),50)];
' `0 b. D& x: w" _/ |0 |, z! J; m9 _end
! K( @3 U6 Q9 x4 X1 m; I& D MM = zeros(size(x1));! c/ Z7 G) r5 a$ V
QQ = zeros(size(x1));
4 Q: D7 { s) \; B a+ C [m,t] = size(MPQ);, n6 [& y6 E' W1 d
[t,n] = size(x1);( E7 G1 S3 H; _. W9 g. C! |9 z9 Q- q
for i=1:m% X4 B9 p4 w: o" h
switch MPQ(i,1)
* V; X" P) U7 \$ Kcase 12 z. b/ k. U0 A
a=MPQ(i,3);% Q" x$ g% a- _" |9 i* \4 ^% j8 p
M=MPQ(i,2);
( W J$ d3 S* {1 M0 J- z# k9 P8 g RA=M/(L-L1);
( h2 ^6 s+ U2 h RB=-RA;
5 @( n$ L `- K1 G/ c6 n QQ=QQ+RA;# d; U, e5 D9 e% ^" c m/ X
MM=MM+RA*x1;
! W) c$ e0 n7 q& K0 y if a>= 0&&a<L9 f: F/ r* \# v9 I8 z8 z
MM=QMM(n,x1,a,M,MM);
6 o6 ^) h, _7 g9 [4 ?) r end" E' g' w2 _4 \( s
if a==05 H( G. `, O$ _6 u
MM=MM+M;; @) D4 M! Y" W! x) r
end
* z. B* l5 R g# [, ?9 M [QQ,MM]=QMP(n,x1,L-L1,-RB,QQ,MM);
. n- o7 T' Q6 m! S" a2 E2 o9 j2 Q case 2) |+ V+ }/ x. E- `
P=MPQ(i,2);
# x7 u: c* R. B6 s4 h b=MPQ(i,3);
% F7 S0 u2 P& n7 S% r$ X7 L, z/ T RA=P*(L-b)/(L-L1);8 A1 K/ `. u$ o% B+ Z
RB=P+P*(L-b)/(L-L1);
& C3 s4 C3 l7 {, z& B2 x, Z) F QQ=QQ+RA;
. _/ h9 G3 B3 A$ _* R% ~% w3 I. ~5 a) j MM=MM+RA*x1;
4 B: p* ]. _$ \8 u/ V( O8 F& p$ D if b>0&&b<L
& k! J+ O* _" F0 _# Y" n [QQ,MM]=QMP(n,x1,b,P,QQ,MM); ! M, V0 ^% d5 Y: ^, ?& }
end
3 a6 ?, ]. l5 l7 N Y8 ?1 V( g2 ^4 r [QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
) k0 Y: Y [, E% j- u; ucase 3: T* a7 H8 `- u! {/ E( b
q=MPQ(i,2);, H8 z1 Y' } z: z/ N- C8 u
c=MPQ(i,3);
6 M, |+ f1 S* {- e9 ]$ Z d=MPQ(i,4);
; t* ~) b4 ~/ m+ r: Z RA=q*(d-c)*(L-0.5*(d+c))/(L-L1);% A5 s! j8 \# b9 E4 L
RB=q*(d-c)-q*(d-c)*(L-0.5*(d+c))/(L-L1);, o# z8 X7 l1 t1 T U4 B
QQ=QQ+RA;; J5 |7 l* f& ^; H( y1 c" N
MM=MM+RA*x1;
6 I1 h) z! @, s4 P5 L+ ?! O/ [ [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM); . f; ~; N5 g& Z4 w
[QQ,MM]=QMP(n,x1,L-L1,RB,QQ,MM);
1 h9 {- d4 u4 { end4 c7 X n2 p% j; U9 b6 Y
end
2 Z( J' H+ I7 j( x' _, F+ |; @- |/ p$ O* d [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM); # }& ~0 E- Z( h* A, j
TU_QM(x1,QQ,MM);
+ [( f; m9 r H, p: C8 C/ b) X第二子程序:, k- Q, e5 W b) G4 v
function [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM)
/ I* d P6 r; n, {XQM=[x1',QQ',MM'];% J. L: z* R2 B- N. }
[Qmax,i]=max(QQ);! i; b. a5 m% ]: v
Q1=[x1(i),Qmax];
9 H7 h# W$ \; T: _# e+ ]$ Q$ q[Qmin,i]=min(QQ);
6 t/ ^* M. Y/ Z$ T: f3 p% ~Q2=[x1(i),Qmin];
# D6 z, [' k, D [Mmax,i]=max(MM);
9 r2 J6 \1 y8 R- r- v+ r/ a+ @ M1=[x1(i),Mmax];- _! X" G* w" v5 t
[Mmin,i]=min(MM);6 a8 j* D3 y/ V# C* E
M2=[x1(i),Mmin];
2 z/ Z( c. ?( o8 u7 ^QDX=[Q1;Q2]
8 u$ Q9 K; G4 J/ ?MDX=[M1;M2]
. A0 _" n) {7 Z4 N3 o" ^( B第三子程序:
5 E# W' `& B# Wfunction MM=QMM(n,x1,a,M,MM)/ X. {! a: H# t7 F0 ]
for j=1:n; q3 T5 H- i& \5 ~% Y
if x1(j)==a
5 O- H- F8 C' N3 I/ w7 B, e n1=j;
, w7 P% {8 u/ r% K" a. R) ? end
, R7 r# x$ u4 W$ A2 l8 zend
: K" y! l3 O5 r; }) C# L7 a MM(n1:n)=MM(n1:n)+M;
6 ^9 X- J: }, y5 {/ y第四子程序:
/ U+ ~% {( m& h; F N1 Jfunction [QQ,MM]=QMP(n,x1,b,P,QQ,MM)
. [9 G& W5 ]# B+ l9 [& K4 D6 |; h" ofor j=1:n& E" u6 ?4 @/ ]* @
if x1(j)==b7 t" r# v2 l; ^* }4 M
n1=j;. g& a7 \# q/ e- v0 f7 Q
end" `5 l1 b% S* X6 ] V2 l
end% F, ^$ B% e* B, x
QQ(n1:n)=QQ(n1:n)-P;
4 ^/ a9 n# Y+ Z0 qMM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);
9 Q6 d1 F( A, b6 ^; s第五子程序:$ G6 I- V, A0 i! A% p
function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)' Y/ r& R& i, y& h
for j=1:n! @+ R# }* |2 W8 z
if x1(j)>c6 _! r( a( t. H+ U& t: d
QQ(j)=QQ(j)-q*(x1(j)-c);' {! j. k" K- L& g, m
MM(j)= MM(j)-0.5*q*(x1(j)-c)^2;
9 a# O4 v5 ?2 i end
% J* k: @. y9 ]. t% B# W if x1(j)>d7 Y! s: ^! q" Z5 B1 u
QQ(j)=QQ(j)+q*(x1(j)-d);5 d) n: Y+ W) _% o: j& W8 P8 @. S3 N
MM(j)= MM(j)+0.5*q*(x1(j)-d)^2;
/ P' ^: x" t4 d( H) p+ A end0 l" n# Q( @ J& @! |
end
& a0 p: L8 Z2 G/ {4 h/ V- T5 m第六子程序:& O- S: E$ [1 E! l, a: q% p9 }. M8 x
function TU_QM(x1,QQ,MM)
, g( }( p- v% U, p7 {! v2 jsubplot(2,1,1);
+ F3 k" z& Z# @) h# L3 I7 Y( Vplot(x1,QQ);
0 h9 i1 f/ b" f# i1 R* o o2 Hgrid;: X) y0 @; C: l3 y7 V
title('剪力图');
" j+ g- W3 Y" i% k2 Usubplot(2,1,2);
5 q7 ]$ K0 Y+ I3 m v) A6 nplot(x1,MM);4 s& O T0 r& y1 p( \7 S' W% j
grid;
# q5 L. T- @; r& vtitle('弯矩图');
. s" z+ W: N: A0 F; ?- D: }" J p; e- s- v# ?; |
|