基于MATLAB的等值面图形绘制

2022-09-10

等值面图形绘制问题是当代科学界经常遇到的问题之一。在很多领域,都需要通过绘制等值面来简化问题。然而以往的软件都涉及很多复杂的编程运算,需要花费大量的时间和精力才能绘制完成。MATLAB通常只要一条指令就可以解决在一般高级语言需要进行复杂编程才能解决的问题。实践证明,通过MATLAB进行等值面的绘制,能够极大的缩短编程时间,降低编程难度,节约工程成本,是一项值得推广的技术。

1 MATLAB绘图的基础知识

1.1 MATLAB绘图命令简介

MATLAB的绘图命令大致可以分为三大类:

1)绘制图像:此命令用以绘制所需的图像。如plot、fplot、mesh、surface等。

2)屏幕控制:控制屏幕显示的各项功能。如clg、grid、hold、subplot等。

3)文字输出:显示指定文字与相关的信息。如xlabel、ylabel、gtext、title等。

1.2 MATLAB绘图命令的基本用法

用户将x和y轴的两组数据分别在两个向量如x y中储存,格式为:x:[x1,x2,x3,.,xn];y:[y1,y2,y3,yn],则可以简单而直观形象地调用plot函数,其调用格式为:plot(x,y)。例如,当需要画一个0到π的正弦图形时,可以在Matlab的命令窗口中直接输入如下命令:

t=0:pi/100:2*pi;

y=sin(t);

plot(t,y)

可得到如图1所示的结果。

一个plot命令可以同时画多个图形。例如,当需要在同一个坐标系内画出两个相对于t的正弦函数图形时,可以在Matlab的命令窗口中直接输入如下命令:

t=0:0.1:2*pi;

y 1=sin(t-.25);y 2=sin(t-1);

plot(t,y1,t,y2)

可得到如图2所示的结果图。

2 MATLAB绘制等值面方面的应用

2.1 等值面数据

在用MATLAB解决等值面绘制问题时,首先需要解决的是数据问题。一般来说,等值面数据涉及4个数据量:x轴,y轴,z轴坐标值以及所求量的数据。在绘制时,需要将这四个量整合起来。这个过程可以通过meshgrid命令完成。Meshgrid是MATLAB的一个自带命令,其调用格式为:meshgrid(x,y,z)。在解决好数据点后,便可以按照模型进行数值计算。例如在研究导线的电磁场问题时,需要绘制导线周围磁场的等值面。磁场的计算公式如下:

B=i/2/pi/sqrt(y.^2+z.^2)

其中,B是磁场量,i是导线的电流量,y是垂直地面方向的数据采样点,x是输电线方向的数据采样点,z是垂直于xy平面的数据采样点。

计算磁场的命令如下:

在实际问题中,经常遇到比较复杂的问题,以实际输电线周围的电场分析为例。由于实际的输电线都是有限长度的,不能直接用理论公式进行计算。此时,就需要认真分析,建立合乎实际的数学模型,以保证最后仿真结果的可靠性。

计算电场的命令如下:

2.2 等值面图形绘制

在计算出B的数值后,便可以进行磁场等值面图形的绘制工作。MATLAB提供了isosurface命令,通过它可以很轻松的对特定的磁场值进行绘制。它的调用命令为:isosurface(x,y,z,v,特定值)。

在上例中,要实现当B=0.000012656时的等值面绘制,其命令如下:

在绘制完图形后,还可以通过命令对图形进行优化处理,使其观察起来更方便,更能被人接受。MATLAB提供了一整套的颜色表函数。通过它,可以转换图形的颜色,使观测更为便捷。除了颜色,MATLAB还有很多的设置命令,在此就不一一介绍。

最终图片如图3。

而电场的等值面绘制过程与磁场的相似,其最终图片如图4。

3 结语

以上是在研究中遇到的实例。通过分析发现,MATLAB是一种高速、可靠和开放性的科学计算语言,在数据处理和图形处理上有着其他高等语言所不能及的优点。它具有使用简单、思路直观、编程高效的特点。如果能在实际工程中加以合理利用,可以从繁重的编程中解脱出来,将经历用于更重要的方面。在今后,将更详细的进行可视化的模块化设计,让可视化更容易实现。

摘要:等值面图形绘制是可视化技术的一个重要分支,在当今的科学研究中起了很大的作用。Matlab语言是美国Math Works公司开发的计算机软件。通过MATLAB,可以实现等值面图形的快速绘制,并且避免接触繁杂的理论和长时间的编程。该法对工程实际而言更简单、方便、易掌握,且从实用的意义上来说,是值得推广并继续深入研究的。

关键词:等值面图形,MATLAB

参考文献

[1] 栾宏之著.高压电力线路产生的电场强度计算及其降低措施[J].山东电力高等专科学校学报,2000,3(1):58~60.

[2] 张家利,姜震,王德忠著.高压架空输电线下工频电场的数学模型[J].HIGH VOLT- AGE ENGINEERING.Dec.2001.Vol.27 No.6

[3] 张铮,杨文平,石博强等.MATLAB程序设计与实例应用[M].北京:中国铁道出版社, 2003.

[4] 李海涛,邓樱.MATLAB程序设计教程[M].北京:高等教育出版社,2002.

[5] Duane Hanselman,Bruce Littlefield著,精通Matlab7.北京:清华大学出版社,2006,5.

上一篇:怎样为青年教师搭建成长平台下一篇:基于中国实施增值税转型效应的实证分析