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

 找回密碼
 注冊(cè)會(huì)員

QQ登錄

只需一步,快速開始

搜索
查看: 4310|回復(fù): 7

分析一段matlab有限元程序

[復(fù)制鏈接]
1#
發(fā)表于 2013-3-24 13:41:49 | 只看該作者 |倒序?yàn)g覽 |閱讀模式
這是關(guān)于梁單元的,可能大家覺得很簡單。。。
: S/ m/ O& C, l+ L: |/ d8 A2 E今天翻電腦里的東西時(shí)發(fā)現(xiàn)的,是我大三時(shí)有限元時(shí)的作業(yè),記得當(dāng)時(shí)花了很多時(shí)間研究,學(xué)了不少東西,一個(gè)簡單的作業(yè)可以涉及各方面的知識(shí)。, S. H/ Y5 W" ^, r4 L6 J4 U: u, [- `
畢業(yè)半年了,雖然記不清彈性矩陣、剛度矩陣等,但是只要一看書(好像現(xiàn)在的心境不下來)應(yīng)該會(huì),學(xué)校交的學(xué)習(xí)方法和理解問題的能力,有些東西不必記,除非每天從事,那該叫熟能生巧。
, r' x, X1 h+ I記得當(dāng)時(shí)編了兩個(gè)程序,梁和三維實(shí)體的,我分享一下梁的程序吧,起碼有亮點(diǎn)和創(chuàng)意,可以自己選擇劃分個(gè)數(shù),在matlab方面花了不少功夫。; Q, [- \& a# H  R6 z/ q
非常感謝當(dāng)時(shí)的有限元授課老師“韓清凱”,雖然老師已經(jīng)到了大工。上課的教材為韓清凱 的《彈性力學(xué)及有限元法基礎(chǔ)教程》,書上有個(gè)梁單元的例子,在82頁。7 {- T4 {& h& r  c( Y' N) ?
--------------------------------------------------------------------------------
% c' z4 d$ Q( B4 p- B: m) Y梁程序如下,名字就不寫了,用昵稱吧“太平島”,這是常用的網(wǎng)絡(luò)昵稱$ j6 B) d. s! f7 T, S

; R5 d6 R$ g0 c& ~7 m1 o- h8 u6 A
%------------------------ BEAM2  ----------------- A- o8 ?0 G4 I! r! M) {/ a% F
disp('========================================');
# E+ Q5 b, E! |1 W  ~, \disp('            PROGRAM BEAM2               ');/ _& O8 t8 D; w# v4 U
disp('        Beam Bending Analysis           ');
( w7 K6 |' o2 @( _disp('        The programmer:太平島           ');
3 \- |9 }4 r/ Q' M: idisp('========================================');  a6 v3 i+ z3 {, d6 ^. j
disp(' ');                        %輸出空行) U0 z0 d1 M$ z  q# G
warning off all                        %關(guān)閉所有警告提示(求積分時(shí),警告信息比較多)2 ?# @& I9 W! }) j" S5 G4 \" t
Ne=input('Please input the number of elements:');        %Ne為劃分的單元數(shù)+ h" H8 D. z. S8 k
NJ=Ne+1;                        %NJ為節(jié)點(diǎn)數(shù); d. }6 g. G# f( E1 |
x1=0;
$ j; q  H: c& T0 |- u, k2 A) Wx2=sym('L');
" o1 @  i- C3 A& ~; v- `9 }& Ox=sym('x');                        9 g% @9 g0 Q; b4 S0 f; J7 v" q
j=0:3;
) V6 f7 ~/ |7 D' q/ R' p3 wv=x.^j;
" f- D5 X$ p$ G8 D. d7 NA=[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];
7 @2 A4 {+ z/ oN=v*inv(A);                        %形函數(shù)3 E& }3 K" |/ `  A
%-----------------------------------------------
2 U: j3 E1 H0 i, h, a$ N& G. l% 求單元?jiǎng)偠染仃?font class="jammer">6 b; X, `: n" p7 k* T

E=4.0e11;$ R3 l! G% b( O7 U, u+ O
I=5.2e-7;                        %I=bh^3/12=5.2e-7;8 M% D, J! j' M9 o) X6 G, E- D2 c- f
EI=4.0e11*5.2e-7;
3 k' e  y5 Q1 N& |B=diff(N,2);
, b" s8 d; b* ~) `& pk=B'*B;) S+ \4 c8 O1 _: G' M1 _# D6 m
Kee=EI*int(k,x,0,'L');0 C: y0 Z8 e) b1 R; N0 n: j. Y
Ke=sym(zeros(4,4,Ne));        %用三維矩陣存放單元?jiǎng)偠染仃?每頁存一個(gè),并初始化0
7 v7 g& u, @7 Y3 G+ C7 VKe(:,:,1)=subs(Kee,'L',(10/Ne));
( |( v7 H8 B0 W  WT=eye(4);                % 因?yàn)榱河趚軸的夾角為0,所以坐標(biāo)變換矩陣為T=eye(4)
& ?- ^2 \. f1 c$ N2 mKe(:,:,1)=T*Ke(:,:,1)*T';
0 a. u* }4 g( V1 Y) w7 ^5 ufor ii=2:Ne
9 ?5 @3 _/ t/ W+ f0 p    Ke(:,:,ii)=Ke(:,:,1);% Z* M& H+ @( n
end
: L" P7 y/ L6 Q& PKe=double(Ke);
( Q0 j1 S8 L6 h/ H0 v: }%------------------------------------------------
( H$ B) [8 v6 r4 r/ B7 j; n( t% 由矩陣裝換法求整體剛度矩陣
& ^, c$ k# S7 }( n9 v+ w% 自由度Ndof=2*NJ  R9 u) ~4 `% R5 S9 [0 O
Ndof=2*NJ;8 ?: Z; j! H! X) I
K=zeros(Ndof);% v6 t' Q' B/ F( H* p, e
for ii=1:Ne
& H" a* Y! ~8 U, w5 A    G=[zeros(4,2*(ii-1)),eye(4,Ndof-2*(ii-1))];( V: I0 S4 u" P/ ~
    KK=G'*Ke(:,:,Ne)*G;# L4 Y/ W4 w2 s" B+ Z0 [% R7 v: d5 o
    K=K+KK;' V# @2 O7 Z1 _; n2 b3 q: X$ M% i
end  # I' ^9 b& Y$ Z) X5 C' [. |
%------------------------------------------------& `% d2 T- ~' j' G& n: g
% 約束條件,對(duì)整體剛度矩陣進(jìn)行修正,以便計(jì)算+ w+ a; |2 Z4 {! z2 X' v( {, u) S
F=zeros(Ndof,1);
* ?( i; \9 k) u) KF(Ndof-1)=-100;
( C0 X6 a& H* \! z, U2 a% u=F*inv(K),u=[v1,xta1,v2,xta2,v3,xta3,v4,xta4]',v1=0,xta1=05 S' v1 {, T# o9 s: O4 h
K(1,=0;        K(:,1)=0;        %可以省略
. n- w, @6 L! G$ NK(2,=0;        K(:,2)=0;        %可以省略
7 k4 v. S7 i' i; V! t2 J  u' o7 xKX=K(3:Ndof,3:Ndof);8 U4 d" H6 |' i: k$ B
FX=F(3:Ndof,1);* [+ P6 b' O" D+ d  H( K9 m3 D; a
%------------------------------------------------9 r3 d( Y# z5 _
%求整體節(jié)點(diǎn)位移列陣
) b( d, Z4 A- i% ]( xuu=inv(KX)*FX;9 R6 b7 s- S4 ~: H' o
u=[0;0;uu];4 Q# d: T$ ~4 k5 A$ V) q5 S
ii=1:2:2*NJ;
4 l, b: B- g% {) \6 z% w6 zv=u(ii);                        %各節(jié)點(diǎn)撓度
# f) ^: c! [; g. ?2 J. j5 wxta=u(ii+1);                        %各節(jié)點(diǎn)轉(zhuǎn)角6 Z2 P6 \1 d) r  m1 d1 R3 E4 o
%------------------------------------------------
3 c' b" s3 b* e! `' f9 j% 后處理,計(jì)算單元應(yīng)變應(yīng)力0 ?: J/ }2 v$ z3 h" q9 Z8 n! T
B=subs(B,x,'L');" K: x' [: h, ?  b8 \+ }) ?
B=subs(B,'L',10/Ne);' G+ }1 q" ]6 {/ y3 M* a  `: @
Strain=zeros(1,Ne);                %單元應(yīng)變,并初始化
+ D- y% t& ~. ?! {Stress=zeros(1,Ne);                %單元應(yīng)力,并初始化  b3 z! H6 N6 ^' ?% r8 t. f7 J
for ii=1:Ne
  j7 k  E5 y: B# ]3 w    Strain(1,ii)=B*u(2*ii-1:2*ii+2,1);
2 q, Y1 c; H" C/ Y2 w    Stress(1,ii)=E*Strain(1,ii);
3 u# g+ D* U- t! `3 jend
7 M' ?8 {7 g* E" r1 b+ p! i! N%--------------------------------------------------
+ G0 S) U5 h# z0 w% 以下程序?yàn)槠聊惠敵鎏幚?br /> ! E7 z- u, F3 M( w7 E, hdisp(' ');  C7 O' m: C6 q
disp(' Input:1-print Node displacement ');
! E9 V8 u5 M4 S& sdisp(' Input:2-print strain ');
: E6 H, l& q4 b8 l6 d. j, j# X* Udisp(' Input:3-print stress ');: A! F& A- i, Y* w# g4 g3 Q/ f
disp(' Input:q-quit or use ''ctrl+c'' Shortcut to end the program');( N. J+ _9 d# D; V- I! `# E2 D
! |4 k5 v/ J) j7 q
while 1
7 o6 U9 R# i7 Y, S5 Y8 K, R    ii=input('Please input1 or 2 or 3:','s');
5 L) Y4 |& ^- M+ Z2 L2 N! G# A        switch(ii). ]2 Z  r" F' _) {) H/ b' |
            case '1'
: n3 u- P& b4 Y, m% D- X; Y3 M* M                disp('Node displacement');
& ?1 h+ F+ e: m8 M! [; L# _; a                disp(u');2 m* [5 B  t5 a. g& d
            case '2': T, Z, R5 I4 \1 r5 e7 @# D
                disp('element strain');5 |" k4 o" ]" Y+ Z0 E3 R6 G! Q
                disp(Strain);$ a5 K; O" F9 ~4 X( h5 Y3 y9 b  s4 o
            case '3'$ }  ]0 t4 p9 c! d& O5 j2 b
                disp('element stress');$ }" i: j2 V/ U; K. n; B  {) Q
                disp(Stress);
- v2 F1 R1 M2 F, x; H0 H, p            case 'q'8 s1 @$ z, }- h, P
                disp('End of program');
* [. a; Z# |" ?& g- H; U$ r; o4 p                break;/ Z) D5 H( I; ^5 x5 ^+ s
            otherwise
7 E! A3 ~1 C2 N: e                disp('error!Please input again');
% z7 [5 D+ f+ ]7 V; G+ k( H                continue;7 V; u  R3 N3 J# X8 g3 F# S
        end
2 c! P; G7 C( a# Z& X9 qend, X* X, i! {; w
( }: a6 E. q6 D7 R5 g8 v. ^/ t
+ w/ E! ]* E( O; n; L! p/ l! P
回復(fù)

使用道具 舉報(bào)

2#
 樓主| 發(fā)表于 2013-3-24 13:44:32 | 只看該作者
那個(gè)地方怎么變成笑臉了,冒號(hào)+右括號(hào)=笑臉,改了下,應(yīng)該是下面,把英文括號(hào)改為中文,就好了吧
6 K3 S) k+ s. \  mK(1,:)=0;        K(:,1)=0;        %可以省略
5 ?3 v2 M8 y- H, BK(2,:)=0;        K(:,2)=0;        %可以省略
3#
發(fā)表于 2013-3-24 14:55:52 | 只看該作者
沒看懂
4#
發(fā)表于 2013-3-24 16:53:09 | 只看該作者
謝謝你啊,太感謝你了
5#
 樓主| 發(fā)表于 2013-3-24 18:35:59 | 只看該作者
jiaweicz 發(fā)表于 2013-3-24 16:53 8 s& m5 s' {1 X; f7 A3 N+ O
謝謝你啊,太感謝你了
7 N3 M* V  S* g& T! [
這謝啥呢?
6#
發(fā)表于 2013-3-24 21:21:19 | 只看該作者
我以前編過一個(gè)5體展開的多體姿態(tài)動(dòng)力學(xué)計(jì)算程序。。。可惜早就忘記了,sigh

點(diǎn)評(píng)

是啊,很多東西不用就忘記啦  發(fā)表于 2013-3-26 12:34
7#
發(fā)表于 2013-11-7 20:39:02 | 只看該作者
這程序也運(yùn)行不了啊
8#
發(fā)表于 2013-11-7 20:44:34 | 只看該作者
j=0:3;
3 K% D$ Z+ Y" Q( ~0 mv=x.^j;  是干啥的

本版積分規(guī)則

Archiver|手機(jī)版|小黑屋|機(jī)械社區(qū) ( 京ICP備10217105號(hào)-1,京ICP證050210號(hào),浙公網(wǎng)安備33038202004372號(hào) )

GMT+8, 2025-9-30 13:23 , Processed in 0.105810 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復(fù) 返回頂部 返回列表