有限元地MATLAB解法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有限元的MATLAB解法
1.打开MATLAB。
2.输入“pdetool”再回车,会跳出PDE Toolbox的窗口(PDE意为偏微分方程,是partial differential equations的缩写),需要的话可点击Options菜单下Grid命令,打开栅格。
3.完成平面几何模型:在PDE Toolbox的窗口中,点击工具栏下的矩形几何模型进行制作模型,可画矩形R,椭圆E,圆C,然后在Set formula栏进行编辑并(如双脊波导R1+R2+R3改为RI-R2-R3,设定a、b、s/a、d/b的值从而方便下步设定坐标)
用算术运算符将图形对象名称连接起来,若还需要,可进行储存,形成M文件。
4.用左键双击矩形进行坐标设置:将大的矩形left和bottom都设为0,width是矩形波导的X轴的长度,height是矩形波导的y轴的长度,以大的矩形左下角点为原点坐标为参考设置其他矩形坐标。
5.进行边界设置:点击“Boundary”中的“Boundary Mode”,再点
击“Boundary”中的“Specify Boundary Conditions”,选择符合的边界条件,Neumann为诺曼条件,Dirichlet为狄利克雷条件,边界颜色显示为红色。
6.进入PDE模式:点击"PDE"菜单下“PDE Mode”命令,进入PDE模式,单击“PDE Specification”,设置方程类型,“Elliptic”为椭圆型,“Parabolic”为抛物型,“Hyperbolic”为双曲型,“Eigenmodes”为特征值问题。
7.对模型进行剖分:点击“Mesh”中“Initialize Mesh”进行初次剖分,若要剖的更细,再点击“Refine Mesh”进行网格加密。
8.进行计算:点击“Solve”中“Solve PDE”,解偏微分方程并显示图形解,u值即为Hz或者Ez。
9.单击“Plot”菜单下“Parameters”选项,打开“Plot Selection”对话框。选中Color,Height(3-D plot)和Show mesh三项,然后单击“Plot”按钮,显示三维图形解。
10.如果要画等值线图和矢量场图,单击“Plot”菜单下“Parameters”选项,打开“Plot Selection”对话框。选中Contour和Arrows两项,然后单击Plot按钮,可显示解的等值线图和矢量场图。
11.将计算结果条件和边界导入MATLAB中:点击“Export Solution”,再点击“Mesh”中“Export Mesh”。
12.在MATLAB中将编好的计算程序导入,按F5运行。
备注:
Property(属性)用于画图时选用相应的绘图类型
u 方程的解
abs(grad(u)) 每个三角形的中心的▽u的绝对值
abs(c*grad(u)) 每个三角形的中心的c·▽u的绝对值
- grad(u) u的负梯度-▽u
我们也可以用MATLAB程序求解PDE问题,同时显示解的图形;
一个长直接接地金属矩形槽,其侧壁与底面电位均为0,顶盖电位为100V,求槽内的电位分布:
100V
0V0V
0V
(1)画出剖分图(尺寸与书上一样);
(2)标出各剖分点坐标值;
(3)求出各点电位值(用有限差分);
(4)画出等电位图。
解:(1)编写以下程序得:
x=0:5
y=0:5
[X,Y]=meshgrid(x,y)
plot(X,Y)
hold on
plot(Y,X)
for i=0:5
s=i:5
t=0:(5-i)
plot(s,t)
plot(t,s)
end
得到剖分图如下:
(2)用有限元法编写程序如下:
Nx=6;Ny=6;Xm=5;Ym=15;Np=5;Nq=5;
for i=1:Nx
for j=1:Ny
N(i,j)=(i-1)*Ny+j; /i列j行的节点编号/ X(N(i,j))=(i-1)*Xm/Np;/节点横坐标/
Y(N(i,j))=(j-1)*Ym/Nq;/节点纵坐标/
end
end
for i=1:2*Xm
for j=1:Ym
if rem(i,2)==1
L(i,j)=(i-1)*Nq+j;
p(i,j)=2*(i-1)*Ny/2+Ny+j+1;
q(i,j)=p(i,j)-Ny;
r(i,j)=q(i,j)-1;
else rem(i,2)==0
L(i,j)=(i-1)*Ny+j;
p(i,j)=(2i-2)*Ny/2+j;
q(i,j)=p(i,j)+Ny;
r(i,j)=q(i,j)+1;
end
end
end
for i=1:2*Xm
for j=1:Ym
b(p(i,j))=Y(q(i,j))-Y(r(i,j));b(q(i,j))=Y(r(i,j) )-Y(p(i,j));
b(r(i,j))=Y(p(i,j))-Y(q(i,j));c(p(i,j))=X(r(i,j) )-X(q(i,j));
c(q(i,j))=X(p(i,j))-X(r(i,j));c(r(i,j))=X(q(i,j) )-X(p(i,j));
area(i,j)=(b(p(i,j))*c(q(i,j))-b(q(i,j))*c(p(i,j)))/2;
K=zeros(Nx*Ny);
Kpp(i,j)=(b(p(i,j))^2+c(p(i,j))^2)/(2*area(i,j));
Kpq(i,j)=(b(p(i,j))*b(q(i,j))+c(p(i,j))*c(q(i,j)))