久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱
機(jī)械社區(qū)
標(biāo)題:
分析一段matlab有限元程序
[打印本頁]
作者:
yinzengguang
時(shí)間:
2013-3-24 13:41
標(biāo)題:
分析一段matlab有限元程序
這是關(guān)于梁單元的,可能大家覺得很簡單。。。
2 X8 O9 r9 `7 S- t" b7 }% R
今天翻電腦里的東西時(shí)發(fā)現(xiàn)的,是我大三時(shí)有限元時(shí)的作業(yè),記得當(dāng)時(shí)花了很多時(shí)間研究,學(xué)了不少東西,一個(gè)簡單的作業(yè)可以涉及各方面的知識。
1 i) G. n6 c" H7 _ F+ G
畢業(yè)半年了,雖然記不清彈性矩陣、剛度矩陣等,但是只要一看書(好像現(xiàn)在的心境不下來)應(yīng)該會,學(xué)校交的學(xué)習(xí)方法和理解問題的能力,有些東西不必記,除非每天從事,那該叫熟能生巧。
6 X& X! j) @+ ]6 X R! ?
記得當(dāng)時(shí)編了兩個(gè)程序,梁和三維實(shí)體的,我分享一下梁的程序吧,起碼有亮點(diǎn)和創(chuàng)意,可以自己選擇劃分個(gè)數(shù),在matlab方面花了不少功夫。
" l$ ^3 v G g$ ^: x7 U6 b/ ~8 F
非常感謝當(dāng)時(shí)的有限元授課老師“韓清凱”,雖然老師已經(jīng)到了大工。上課的教材為韓清凱 的《彈性力學(xué)及有限元法基礎(chǔ)教程》,書上有個(gè)梁單元的例子,在82頁。
& E6 c/ \# I, m0 O" S& t
--------------------------------------------------------------------------------
7 R) z* U8 a w' v. \
梁程序如下,名字就不寫了,用昵稱吧“太平島”,這是常用的網(wǎng)絡(luò)昵稱
( r/ [, ^# x! t) K) D0 s' C
$ A! S& d. M2 P
4 y+ m6 w6 z, [" p
%------------------------ BEAM2 ----------------
$ j. l6 ~8 d6 g- C8 _5 N3 a9 R& B
disp('========================================');
: h, W6 \4 u' y; x3 ~1 }) l
disp(' PROGRAM BEAM2 ');
7 b3 m& v1 [2 {6 |! J
disp(' Beam Bending Analysis ');
, W5 ?0 u! N0 w! ?) O
disp(' The programmer:太平島 ');
8 g0 r! H* N# ^5 a6 G
disp('========================================');
6 Y- i+ H9 D* F0 b7 W. x$ z3 K& [
disp(' '); %輸出空行
, S7 x" G8 d* Q q1 x* O
warning off all %關(guān)閉所有警告提示(求積分時(shí),警告信息比較多)
6 T. r; E# j! m3 x' ?
Ne=input('Please input the number of elements:'); %Ne為劃分的單元數(shù)
. {1 L4 h6 `! \$ u+ t
NJ=Ne+1; %NJ為節(jié)點(diǎn)數(shù)
6 N: k& q" v5 b3 C7 p7 f
x1=0;
% O. o3 K* p; m$ P
x2=sym('L');
8 N/ Q3 R, M& M! \2 R6 N
x=sym('x');
) _9 \2 z& s: g, D7 n5 I
j=0:3;
2 Y. ^4 h& S, a3 t7 X7 I
v=x.^j;
, u$ `" W" a% p k8 s
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];
3 S0 C, K* M( c
N=v*inv(A); %形函數(shù)
" G4 O! x+ L; K
%-----------------------------------------------
/ ^4 O7 b5 N& \. S$ `2 A2 A5 ~0 ?
% 求單元?jiǎng)偠染仃?font class="jammer">8 [2 `: }, {5 I1 p; I
E=4.0e11;
, d8 h4 r4 g& U: Y' M! t$ b9 n! X
I=5.2e-7; %I=bh^3/12=5.2e-7;
' o3 s* G0 \( `+ V" m
EI=4.0e11*5.2e-7;
* V* @& L2 x# O0 f2 i( j& C
B=diff(N,2);
: D7 i9 V& w, V0 W4 y$ I( F; k
k=B'*B;
# |& l7 w: e' W/ x, O( c
Kee=EI*int(k,x,0,'L');
# P7 Q7 {( J: A: H. k' Y
Ke=sym(zeros(4,4,Ne)); %用三維矩陣存放單元?jiǎng)偠染仃?每頁存一個(gè),并初始化0
- j4 O3 x+ U1 K7 ]; W' ^
Ke(:,:,1)=subs(Kee,'L',(10/Ne));
4 A5 C" j. |+ U9 |
T=eye(4); % 因?yàn)榱河趚軸的夾角為0,所以坐標(biāo)變換矩陣為T=eye(4)
. ]+ c: H+ P4 D. m
Ke(:,:,1)=T*Ke(:,:,1)*T';
2 g, H# p. d- x3 j2 H# n" k
for ii=2:Ne
5 ]% P" D. o/ p$ {% V
Ke(:,:,ii)=Ke(:,:,1);
( |0 U# u* s4 W1 P! `5 G) u( e
end
3 ]' a6 [ {- [/ e4 @' P
Ke=double(Ke);
1 `! m$ n X/ k+ C8 G
%------------------------------------------------
6 h/ l3 ?8 p2 t: w! P
% 由矩陣裝換法求整體剛度矩陣
& u* U: E( v: g) ^
% 自由度Ndof=2*NJ
# ?6 Z' U. i `) A8 E( W( z8 l
Ndof=2*NJ;
' D$ b4 r* ^* _0 q2 T8 p" @; R0 @
K=zeros(Ndof);
2 r9 n+ M( S) o
for ii=1:Ne
2 P% R* g- Z" z' j$ E9 s
G=[zeros(4,2*(ii-1)),eye(4,Ndof-2*(ii-1))];
/ f& V0 G, p" `5 V# h2 I# x* h5 S
KK=G'*Ke(:,:,Ne)*G;
/ S2 m% O. q7 k9 I7 u. f. N
K=K+KK;
4 R" F, Y. P3 Z' Q- K" {
end
' l, N# F( M+ d# B1 @
%------------------------------------------------
8 r4 T' R- W3 n5 U
% 約束條件,對整體剛度矩陣進(jìn)行修正,以便計(jì)算
) y: v V3 E h0 N% E* w
F=zeros(Ndof,1);
5 w: w* L8 G# r8 C
F(Ndof-1)=-100;
) V( A5 j, t9 W/ t
% u=F*inv(K),u=[v1,xta1,v2,xta2,v3,xta3,v4,xta4]',v1=0,xta1=0
* q- G0 N% u9 m& Q' s$ W
K(1,
=0; K(:,1)=0; %可以省略
# |/ |9 y9 R4 U- u+ d! I" T9 }
K(2,
=0; K(:,2)=0; %可以省略
) ]+ R% P6 |; k. g3 f
KX=K(3:Ndof,3:Ndof);
8 [$ B' E' S( A
FX=F(3:Ndof,1);
s( P C$ Z; O. \# B, d. n x
%------------------------------------------------
8 M. D# L! q. l4 o
%求整體節(jié)點(diǎn)位移列陣
/ v, a9 C+ d+ m1 A9 I0 W/ `
uu=inv(KX)*FX;
5 ~0 g7 B, K) d" |( m& _$ `8 H4 r
u=[0;0;uu];
) v7 z/ }7 u6 h- {, C
ii=1:2:2*NJ;
) A; S1 _ L# _% u5 x3 z
v=u(ii); %各節(jié)點(diǎn)撓度
" ~! i- W' }$ o) ?+ G* E0 Y
xta=u(ii+1); %各節(jié)點(diǎn)轉(zhuǎn)角
/ |' H! J1 @/ y* A. S
%------------------------------------------------
! P1 K% R4 ?) Z8 Q: z, [' @, L) |
% 后處理,計(jì)算單元應(yīng)變應(yīng)力
3 F& q; P, i- ~+ _& v/ O& ?
B=subs(B,x,'L');
5 D9 X: \7 M! N `* ]; w$ v
B=subs(B,'L',10/Ne);
* `) ~8 e& Y: _- y T/ ?# [: y4 _
Strain=zeros(1,Ne); %單元應(yīng)變,并初始化
( d) ]/ n* ]/ I$ P' ~
Stress=zeros(1,Ne); %單元應(yīng)力,并初始化
) c& y8 r. s$ d! u e$ J' R
for ii=1:Ne
+ o/ n; y+ V0 Q7 H: N
Strain(1,ii)=B*u(2*ii-1:2*ii+2,1);
! c6 D; S) i( A2 Q+ z. u
Stress(1,ii)=E*Strain(1,ii);
9 b# U0 f: M# {
end
6 f- {" D' n1 a" y7 m* ~
%--------------------------------------------------
3 m8 ]% |9 W, j
% 以下程序?yàn)槠聊惠敵鎏幚?font class="jammer"> m( f9 I8 J3 P, H0 U7 q8 n
disp(' ');
9 D# ~; v7 l+ b& D/ _$ u
disp(' Input:1-print Node displacement ');
- C0 u% k: ?/ C8 x
disp(' Input:2-print strain ');
9 }1 ]3 l0 u) s O9 K1 X
disp(' Input:3-print stress ');
# H0 l" I/ n- }2 }; E# K( I6 l
disp(' Input:q-quit or use ''ctrl+c'' Shortcut to end the program');
: o9 o0 }) k% s/ G& _2 M
, ]7 h) q4 @( h5 W& Q
while 1
8 g0 a. F* k/ J" F+ g1 b/ a) O
ii=input('Please input1 or 2 or 3:','s');
1 r8 ?( \; R9 Q
switch(ii)
$ |9 W6 J) s, V! U0 l+ T, ^3 d, J
case '1'
$ ~! s; ?" V* v
disp('Node displacement');
5 [/ A' E% B: i0 i, k
disp(u');
6 B7 H* H k, z2 Z: q7 m
case '2'
; n. I- I! [( v$ G
disp('element strain');
- A4 X- U3 z e# s
disp(Strain);
- i, n( K T* b, u/ J
case '3'
4 d" e* w. t A9 p% H
disp('element stress');
8 R3 A" [( `0 K' {/ H
disp(Stress);
2 i9 n. w4 T: r2 [- ]
case 'q'
6 P% s. [ m2 {# C) d; p
disp('End of program');
" N( s5 T, c' k" p- p* e2 ]3 k$ j
break;
. _, A$ ?* |$ S$ Y% P9 D
otherwise
+ p) M9 G' O4 G6 ?( _
disp('error!Please input again');
& B2 ~* B" J6 D# s
continue;
# F7 D$ t& T) m) k6 |
end
4 g* O3 F$ k, G- d% W1 ?
end
3 ?& o$ G7 h; Z# U3 k: W- D
4 a4 R! N) Q/ q/ t- P( _/ [, r& N
1 q* T* ~1 A N0 L5 j! A7 G- P
作者:
yinzengguang
時(shí)間:
2013-3-24 13:44
那個(gè)地方怎么變成笑臉了,冒號+右括號=笑臉,改了下,應(yīng)該是下面,把英文括號改為中文,就好了吧
' b: A3 J- M/ [. |. `8 R- C$ T
K(1,:)=0; K(:,1)=0; %可以省略
+ c) e* V' n+ ~- Q/ s6 q0 w. p
K(2,:)=0; K(:,2)=0; %可以省略
作者:
孤若流星
時(shí)間:
2013-3-24 14:55
沒看懂
作者:
jiaweicz
時(shí)間:
2013-3-24 16:53
謝謝你啊,太感謝你了
作者:
yinzengguang
時(shí)間:
2013-3-24 18:35
jiaweicz 發(fā)表于 2013-3-24 16:53
( L5 x* r+ }' ]& Q: Q- Z
謝謝你啊,太感謝你了
3 B$ W9 Y( i$ ~9 h- i- t
這謝啥呢?
作者:
懷念昔日熊貓
時(shí)間:
2013-3-24 21:21
我以前編過一個(gè)5體展開的多體姿態(tài)動(dòng)力學(xué)計(jì)算程序。。。可惜早就忘記了,sigh
作者:
d調(diào)旳華孋
時(shí)間:
2013-11-7 20:39
這程序也運(yùn)行不了啊
作者:
d調(diào)旳華孋
時(shí)間:
2013-11-7 20:44
j=0:3;
& O6 T. g: `& S" f, R
v=x.^j; 是干啥的
歡迎光臨 機(jī)械社區(qū) (http://www.ytsybjq.com/)
Powered by Discuz! X3.5