国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

機(jī)械社區(qū)

標(biāo)題: 分析一段matlab有限元程序 [打印本頁]

作者: yinzengguang    時間: 2013-3-24 13:41
標(biāo)題: 分析一段matlab有限元程序
這是關(guān)于梁單元的,可能大家覺得很簡單。。。4 ]% c# x! d% D& o( [- f4 p! i+ A
今天翻電腦里的東西時發(fā)現(xiàn)的,是我大三時有限元時的作業(yè),記得當(dāng)時花了很多時間研究,學(xué)了不少東西,一個簡單的作業(yè)可以涉及各方面的知識。) C1 d) v/ M) J( s2 A* U
畢業(yè)半年了,雖然記不清彈性矩陣、剛度矩陣等,但是只要一看書(好像現(xiàn)在的心境不下來)應(yīng)該會,學(xué)校交的學(xué)習(xí)方法和理解問題的能力,有些東西不必記,除非每天從事,那該叫熟能生巧。
# n& C- A! q! j, L/ d記得當(dāng)時編了兩個程序,梁和三維實(shí)體的,我分享一下梁的程序吧,起碼有亮點(diǎn)和創(chuàng)意,可以自己選擇劃分個數(shù),在matlab方面花了不少功夫。9 ?9 }9 ]- F0 m$ z$ [' V' b8 ?( J
非常感謝當(dāng)時的有限元授課老師“韓清凱”,雖然老師已經(jīng)到了大工。上課的教材為韓清凱 的《彈性力學(xué)及有限元法基礎(chǔ)教程》,書上有個梁單元的例子,在82頁。  F- w. _" \# B* j- B6 x0 W  j
--------------------------------------------------------------------------------
6 }6 f1 r) Q2 r4 j  z5 a* z6 D2 _梁程序如下,名字就不寫了,用昵稱吧“太平島”,這是常用的網(wǎng)絡(luò)昵稱; H; B. R) x; S* Y! V0 c, `* U$ k
" h' h4 b. `( N# ]$ e( C

8 [& P' ]" S, a2 J1 b%------------------------ BEAM2  ----------------  ]% }' z/ W4 t. b; R& _, Z  f
disp('========================================');, I, v; S# o2 t4 e
disp('            PROGRAM BEAM2               ');! i& r4 r& |4 K" Z# Z  j1 y/ ]
disp('        Beam Bending Analysis           ');3 v! Z: d2 ^; D" O6 e
disp('        The programmer:太平島           ');
  p0 w1 L' [& N8 W0 Xdisp('========================================');
3 w& J0 K; o- O, Y" q* R/ r) Kdisp(' ');                        %輸出空行% K8 H% D. I0 |/ F! w
warning off all                        %關(guān)閉所有警告提示(求積分時,警告信息比較多)# U4 N1 d5 ?1 J
Ne=input('Please input the number of elements:');        %Ne為劃分的單元數(shù)4 C- r. V' F2 `. a6 A4 L% i
NJ=Ne+1;                        %NJ為節(jié)點(diǎn)數(shù)
+ y6 i0 y( G6 w5 D9 @5 Vx1=0;
) Q* o0 _8 b0 L/ m5 Ex2=sym('L');
; Y. h: h  `$ \/ Z( r: H" vx=sym('x');                        + q+ K# N2 ?5 o' b3 h
j=0:3;
; Y; A; p7 y7 h/ b+ b7 S0 sv=x.^j;
1 J9 I/ i2 m$ }  p+ A- ]% D8 p6 r9 wA=[1,x1,x1^2,x1^3;0,1,2*x1,3*x1^2;1,x2,x2^2,x2^3;0,1,2*x2,3*x2^2];
  k! I+ R8 `/ E- L' fN=v*inv(A);                        %形函數(shù)4 ^9 u! _4 v3 L5 f& n
%-----------------------------------------------/ e* w) P! V" B+ d/ Y
% 求單元剛度矩陣8 N0 E  `. ?3 K" M" w  h) ~
E=4.0e11;
0 \: L' ]" Y" n, QI=5.2e-7;                        %I=bh^3/12=5.2e-7;
8 E. p5 A: K) t4 sEI=4.0e11*5.2e-7;: a% |7 k7 Q& J7 t3 n
B=diff(N,2);
: [/ N) }, `7 w' ~' g+ m7 [k=B'*B;
5 e. `) u/ T8 \: M$ U- YKee=EI*int(k,x,0,'L');
' V& L% w  g. O+ S7 DKe=sym(zeros(4,4,Ne));        %用三維矩陣存放單元剛度矩陣,每頁存一個,并初始化0
% [" F8 n- I! ?+ W2 r+ h' }7 SKe(:,:,1)=subs(Kee,'L',(10/Ne));! Z3 _7 m( P/ O) T' b
T=eye(4);                % 因?yàn)榱河趚軸的夾角為0,所以坐標(biāo)變換矩陣為T=eye(4)
2 U. j; N! i2 T" V" u  c; _( IKe(:,:,1)=T*Ke(:,:,1)*T';  j) ?9 S! G  {$ z- }  M
for ii=2:Ne& H3 ^) T3 l4 `
    Ke(:,:,ii)=Ke(:,:,1);8 a0 B/ f$ {0 l
end
- [, ?, n# @# L8 fKe=double(Ke);
. X  a7 ?8 P# Q3 q) i%------------------------------------------------, C% x+ d1 `6 N8 _1 L
% 由矩陣裝換法求整體剛度矩陣
  G+ _1 _* y; I" g+ Z1 _! h7 [/ M% 自由度Ndof=2*NJ, d* K0 C. e5 D3 [# m2 l2 H9 ~- u
Ndof=2*NJ;
8 V0 O: s7 [3 w  _K=zeros(Ndof);
+ ~% c& _+ n0 m0 T7 W+ ifor ii=1:Ne
4 }. |7 h8 \2 F$ o% ~8 A* s    G=[zeros(4,2*(ii-1)),eye(4,Ndof-2*(ii-1))];% F# _- `1 B) r- k# U5 C& n& e3 a
    KK=G'*Ke(:,:,Ne)*G;
5 J# Z) ~1 j1 C8 G/ b0 b, [2 ^    K=K+KK;
( ?* i2 H6 B/ Nend  
2 E# p' H- q0 |# _; _' K8 q%------------------------------------------------+ d3 t' M6 ]: A! s" h" ]2 ^
% 約束條件,對整體剛度矩陣進(jìn)行修正,以便計(jì)算) U$ G# N; A+ W8 n
F=zeros(Ndof,1);* d$ k* v8 Y, D. I4 ^1 N
F(Ndof-1)=-100;) H) W" b! U) X( T" w$ X
% u=F*inv(K),u=[v1,xta1,v2,xta2,v3,xta3,v4,xta4]',v1=0,xta1=0" \3 i* ^- p2 S& z8 M
K(1,=0;        K(:,1)=0;        %可以省略. C  w) X: s8 j8 z$ c0 p$ n
K(2,=0;        K(:,2)=0;        %可以省略" y9 `# U9 @# x: S% ]
KX=K(3:Ndof,3:Ndof);
" {6 _7 O  o. `$ y4 s' RFX=F(3:Ndof,1);
  n7 u. ?# H! U' x( B* B, C, q1 h%------------------------------------------------
1 [3 J- p3 y* V7 I' g* r%求整體節(jié)點(diǎn)位移列陣
) e1 {7 w  {$ g# ~: Ouu=inv(KX)*FX;
8 y! a* H( l' S$ D$ M5 G; P- tu=[0;0;uu];
  ]) ~1 z) P3 m! G7 ?" Z7 d1 tii=1:2:2*NJ;' S* s- {7 E: r, r
v=u(ii);                        %各節(jié)點(diǎn)撓度
0 i% B0 g4 _, }xta=u(ii+1);                        %各節(jié)點(diǎn)轉(zhuǎn)角( C, P6 O2 r9 d
%------------------------------------------------
/ ?& N; |/ F+ C$ O% 后處理,計(jì)算單元應(yīng)變應(yīng)力2 I3 e; P8 @/ Z
B=subs(B,x,'L');
( s2 g& |6 v6 xB=subs(B,'L',10/Ne);& t1 C7 h7 a4 n) Z! K) A$ b
Strain=zeros(1,Ne);                %單元應(yīng)變,并初始化
% V3 u5 o; s: i2 W- S0 ]Stress=zeros(1,Ne);                %單元應(yīng)力,并初始化
; S2 d- x; J- e8 v$ ?" R1 G, }for ii=1:Ne; Q% S4 `6 Z. s* A
    Strain(1,ii)=B*u(2*ii-1:2*ii+2,1);5 V3 _3 F7 u4 E$ H& k+ B9 V
    Stress(1,ii)=E*Strain(1,ii);* O& t2 a, u0 r: d. S! T
end
# Q% ]- J: r9 y5 ^* u%--------------------------------------------------
& ]( _0 t2 Z1 g% 以下程序?yàn)槠聊惠敵鎏幚?br /> ; |& n4 L1 ?# Sdisp(' ');
! I) k, d  H* Q8 s( u$ y- [) Tdisp(' Input:1-print Node displacement ');* z( h9 Y$ b' Z9 Z7 p
disp(' Input:2-print strain ');6 {. x- H' t9 Y, v" T
disp(' Input:3-print stress ');% D1 J& P  f" d7 _2 Z' ]
disp(' Input:q-quit or use ''ctrl+c'' Shortcut to end the program');
8 F2 U& G1 W0 |: z& G1 H9 ?# ?! D" s- a9 b
while 1* T; I, c) [# `2 w1 k
    ii=input('Please input1 or 2 or 3:','s');, m' h; q3 C5 j7 ^$ f
        switch(ii)' t, u8 F# I1 t) ]
            case '1', u5 ?( ^. a3 F
                disp('Node displacement');
* f" x' ]0 V2 K+ k, j                disp(u');
4 p; s  Y  g% c0 A            case '2'* B4 s- h: R! `
                disp('element strain');0 R5 @- b: L! |
                disp(Strain);
1 O5 |: l. i, ?# h! E, C4 ]7 L            case '3'& T7 ?! H9 i" t4 p
                disp('element stress');9 n% u: ?8 o9 z  O9 ^
                disp(Stress);) m, Z" a( t* t- k
            case 'q'1 Y' p  L4 Z2 a) w( V: u- k+ {" L4 [
                disp('End of program');5 q1 v6 E* w7 K0 Y( U+ c
                break;
# j" q5 @  _, N' g1 R/ Y8 ^            otherwise. J0 O' f; C7 X6 W# @; E, u, S
                disp('error!Please input again');
2 ]$ J, W2 I' U0 @/ Z                continue;& i4 O) J+ n. D3 m/ C& n- H5 c! D
        end
0 w0 u. X" Y3 l/ F+ tend+ E: V5 U( ~2 C/ i# ?
. x0 {# X) |3 i0 V4 O
! y8 `  t, X' V. k4 Q1 d' Q4 @

作者: yinzengguang    時間: 2013-3-24 13:44
那個地方怎么變成笑臉了,冒號+右括號=笑臉,改了下,應(yīng)該是下面,把英文括號改為中文,就好了吧
7 i: ?1 ~0 \8 p* R7 VK(1,:)=0;        K(:,1)=0;        %可以省略
5 }" X4 S9 P8 @# }, u6 x# [; |, R5 jK(2,:)=0;        K(:,2)=0;        %可以省略
作者: 孤若流星    時間: 2013-3-24 14:55
沒看懂
作者: jiaweicz    時間: 2013-3-24 16:53
謝謝你啊,太感謝你了
作者: yinzengguang    時間: 2013-3-24 18:35
jiaweicz 發(fā)表于 2013-3-24 16:53 5 Y: X3 D$ z7 Z
謝謝你啊,太感謝你了

+ d- ?( i4 {% A( h( ^1 N" ^3 y) o這謝啥呢?
作者: 懷念昔日熊貓    時間: 2013-3-24 21:21
我以前編過一個5體展開的多體姿態(tài)動力學(xué)計(jì)算程序。。。可惜早就忘記了,sigh
作者: d調(diào)旳華孋    時間: 2013-11-7 20:39
這程序也運(yùn)行不了啊
作者: d調(diào)旳華孋    時間: 2013-11-7 20:44
j=0:3;1 P$ m7 l- L& f
v=x.^j;  是干啥的




歡迎光臨 機(jī)械社區(qū) (http://www.whclglass.com.cn/) Powered by Discuz! X3.5