matlab有限元需要的幾個基本函式

2021-10-01 11:57:33 字數 1727 閱讀 2701

function [l,theta] = pte_length(x1,y1,x2,y2)

%根據給出的座標(x1.y1),(x2,y2)計算返回單元的長度與角度

l=sqrt((x2-x1)^2+(y2-y1)^2);

theta=atan((y2-y1)/(x2-x1));

end

function [k] = pte_stiffness(e,a,l,theta)

%根據給出的單元彈性模量e,橫街面積a, 長度l和角度theta計算返回4*4單元剛度矩陣k

t=[cos(theta) sin(theta) 0 0;0 0 cos(theta) sin(theta)];

k=[1 -1;-1 1];

k=k*e*a/l;

k=t'*k*t;

end

function [stress] = pte_stress(e,l,theta,q)

%根據給出的單元彈性模量e,橫街面積a,長度l和角度theta以及整體座標系下單元節點位移向量u(4*1)計算單元應力;

t=[cos(theta) sin(theta) 0 0;0 0 cos(theta) sin(theta)];

stress=e/l*[-1 1]*t*q;

end

function [p] = pte_force(e,a,l,theta,q)

%根據給出的單元彈性模量e,橫街面積a,長度l,角度theta以及整體座標系下單元節點位移向量u(4*1),計算返回整體座標系下的單元節點力p

p=pte_stiffness(e,a,l,theta)*q;

end

function [k] = pt_assemble(k,k,i,j)

%將連線節點i,j的單元門剛度矩陣k整合到整體剛度矩陣k。計算返回2n*2n整體剛度矩陣k

k(2*i-1,2*i-1)=k(2*i-1,2*i-1)+k(1,1);

k(2*i-1,2*i) =k(2*i-1,2*i) +k(1,2);

k(2*i,2*i-1) =k(2*i,2*i-1) +k(2,1);

k(2*i,2*i) =k(2*i,2*i) +k(2,2);

k(2*i-1,2*j-1)=k(2*i-1,2*j-1)+k(1,3);

k(2*i-1,2*j) =k(2*i-1,2*j) +k(1,4);

k(2*i,2*j-1) =k(2*i,2*j-1) +k(2,3);

k(2*i,2*j) =k(2*i,2*j) +k(2,4);

k(2*j-1,2*i-1)=k(2*j-1,2*i-1)+k(3,1);

k(2*j-1,2*i) =k(2*j-1,2*i) +k(3,2);

k(2*j,2*i-1) =k(2*j,2*i-1) +k(4,1);

k(2*j,2*i) =k(2*j,2*i) +k(4,2);

k(2*j-1,2*j-1)=k(2*j-1,2*j-1)+k(3,3);

k(2*j-1,2*j) =k(2*j-1,2*j) +k(3,4);

k(2*j,2*j-1) =k(2*j,2*j-1) +k(4,3);

k(2*j,2*j) =k(2*j,2*j) +k(4,4);

end

幾個通用有限元軟體簡介

1 有限元法的發展概況 有限元法基本思想的提出,可以追溯到courant在1942年的工作,他第一次嘗試應用定義在三角形區域的分片連續函式和最小時勢能原理求解聖維南 st.venant 扭轉問題。網路搜尋內容 聖維南體 st.venant body 是指聖維南 st.venant 提出的一種理想塑性...

基於MATLAB的有限元法求解EIT技術的正問題

常常需要求解各類微分方程,而許多微分方程的解析解一般很難得到,使用有限元法將微分方程離散化後,可以編制程式,使用計算機輔助求解。有限元法在早期是以變分原理為基礎發展起來的,所以它廣泛地應用於以拉普拉斯方程和泊松方程所描述的各類物理場中 這類場與泛函的極值問題有著緊密的聯絡 求解eit技術的正問題背景...

有限元中的高斯積分

對於複雜的積分怎麼計算呢?這就提出了數值積分,他就是通過將連續區間進行離散,對離散量求和便是積分的近似值。1d積分 fd 在 1到1上求積分,數值積分就是,將 1到1離散為n個點,ak f k 其中 k為 1,1 2 n,1 4 n,1。ak為對應的 k在每個點處的權係數。高斯積分 數值積分的一種。...