国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人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 X
disp('========================================');
3 w& J0 K; o- O, Y" q* R/ r) K
disp(' '); %輸出空行
% 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 V
x1=0;
) Q* o0 _8 b0 L/ m5 E
x2=sym('L');
; Y. h: h `$ \/ Z( r: H" v
x=sym('x');
+ q+ K# N2 ?5 o' b3 h
j=0:3;
; Y; A; p7 y7 h/ b+ b7 S0 s
v=x.^j;
1 J9 I/ i2 m$ } p+ A- ]% D8 p6 r9 w
A=[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' f
N=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, Q
I=5.2e-7; %I=bh^3/12=5.2e-7;
8 E. p5 A: K) t4 s
EI=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- Y
Kee=EI*int(k,x,0,'L');
' V& L% w g. O+ S7 D
Ke=sym(zeros(4,4,Ne)); %用三維矩陣存放單元剛度矩陣,每頁存一個,并初始化0
% [" F8 n- I! ?+ W2 r+ h' }7 S
Ke(:,:,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; _( I
Ke(:,:,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 f
Ke=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+ i
for 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/ N
end
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' R
FX=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# ~: O
uu=inv(KX)*FX;
8 y! a* H( l' S$ D$ M5 G; P- t
u=[0;0;uu];
]) ~1 z) P3 m! G7 ?" Z7 d1 t
ii=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 x
B=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 ?# S
disp(' ');
! I) k, d H* Q8 s( u$ y- [) T
disp(' 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& G
1 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+ t
end
+ 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 V
K(1,:)=0; K(:,1)=0; %可以省略
5 }" X4 S9 P8 @# }, u6 x# [; |, R5 j
K(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