可视化计算系统

2024-05-23

可视化计算系统(精选7篇)

可视化计算系统 第1篇

关键词:算符优先关系,可视化计算系统

1 引言

在计算机科学技术的发展进程中,编译技术占据了非常重要的位置,它是每个优秀的计算机专业人员必修的一门课程。编译其实就是将源语言(高级语言)所写的程序转换为与之等价的目标语言(低级语言)所写的程序,如把C或C++所写的程序转换成汇编语言所写的目标代码的程序就是编译程序。当编译程序把高级语言翻译成低级语言时,一般要经历词法分析、语法分析、语义分析与中间代码生成、代码优化和目标代码生成几个阶段,最主要的是前3大阶段。

本系统从编译程序的原理与技术出发,利用Visual Studio2008作为开发工具,设计了一个具有词法分析、语法分析的可视化计算系统。

2 系统采用的编译技术与开发工具

2.1 词法分析

词法分析阶段就是扫描构成源程序的字符串,根据源语言的构词规则分析并识别出源语言中的一个个独立的单词符号,如关键字、标识符、常量、运算符与分界符等。

词法分析用来保证用户输入的运算表达式数字及运算符的正确性,而不是在运行程序时才发现运算表达式不正确。这就需要通过采用正规式来定义表达式,如下列定义规则,采用d表示单个数字0~9,。

<数字>→d|d<数字>

<运算符>→+|-|*|/|(|)|

2.2 语法分析

语法分析阶段就是对词法分析的结果,根据源语言的语法规则,识别出相应的语法范畴,如程序、函数、语句、表达式等。

语法分析用来保证用户输入的运算表达式逻辑上的正确性,只有词法与语法都正确的表达式才能通过运算得到正确的结果。采用上下文无关文法来定义输入表达式的语法,如下列定义规则。采用大写字母表示非终结符,小写字母表示终结符。

2.3 算符优先分析法

算符优先分析法是一种特别适用于表达式运算的自下而上的语法分析方法。当文法G的产生式中没有两个连续的非终结符与空串时,考查文法中的任意两个终结符a和b之间的关系,当a和b之间有优先关系时,最多存在下列优先关系之一:

(1)a≌b,当且仅当文法中含有形如P→…aRb…或P→…ab…的产生式。

其中P、R代表非终结符,a、b代表终结符。

算符优先分析法借鉴了算术表达式运算中不同优先顺序的概念,在终结符之间定义了某种优先关系,从而在句型中寻找可归约串并对可归约串进行归约从而得到最终的结果。当然,在这种文法中,没有考虑非终结符的优先关系,所以对只有一个非终结符的子句无法进行归约。但由于在具有优先级的高级语言的算术运算中,不存在不含有运算符,只有运算数据的表达式出现,所以,使用这种分析法来进行算术运算也足够了。

算符优先分析法中的可归约串称为句柄。其分析过程就是首先查找当前句型的句柄,然后用相应的产生式左部替换它,这个过程就是俗称的归约,继续归约,直到文法的开始过程,即完成整个分析过程,并同时通过对规则赋予的语义规则,得到最终的运算结果。

句柄的定义是通过终结符之间的优先关系来界定的。如用N表示非终结符,n表示终结符,用<、>、=表示终结符之间的优先关系,则可用如下方法来定义句柄。

则Nn1Nn2......NniN构成了当前句型的句柄。

本系统从输入算符运算流开始,先根据编译技术中的词法分析技术,识别出构成算符运算流中的一个个运算符号及运算数据。当词法分析时有错误产生,能给出出错信息提示,如输入的是特殊字符或非数值时,如@,S,将会给出错误提示。接着进入语法分析,采用编译技术中的自下而上的语法分析方法——算符优先分析法,对算符运算流中的数据与运算符进行分析,并根据语义进行计算直至得到正确的结果。

3 可视化计算系统

系统主要包含两个方面的内容:一是输入算符运算流时对算符运算流进行词法分析,二是对通过词法分析生成的符号进行语法分析,并同时进行语义分析及其计算得到结果。

3.1 输入算符运算流并进行词法分析

系统提供两种输入方法:可通过键盘输入,也可使用鼠标按屏幕上的按键输入,如图1所示。当输入一个系统不能识别的运算符或非数值时,系统产生一个出错提示信息,并尽最大可能屏蔽这种错误。

通过键盘或按屏幕上的按键输入一个含有+、-、*、/、(、)的表达式,由词法分析程序对其进行扫描和识别,根据运算符以及数值的构成,判断运算符及数值是否正确。如输入表达式7+(5*2-3)+2,将会顺序识别出数字7、操作符+、操作符(等,若遇到一个非法字符,将会弹出出错信息,并屏蔽出错信息,让词法分析继续进行下去。

3.2 语法分析及生成结果

词法分析结束后进入语法分析,采用自底向上的算符优先分析法,每次当词法分析识别出一个数字或操作符后,根据相应规则进行归约操作,同时将进行值的运算。整个过程反复执行,直到最后结果生成,如图2所示。

实际上,程序在执行时,使用了一个堆栈,用于存放表达式中的运算符与运算数。当程序开始执行时,依次读入构成表达式的各项元素,并将之存入到堆栈中。当读入的是数值时,先存入堆栈;当读入的是运算符时,则使用堆栈栈顶的运算符与读到的这个运算符进行优先级的比较,若是>关系,则表示找到了句柄的末尾,然后在堆栈内找到句柄的头,再根据赋予语法规则所定义的语义规则进行计算直至得到结果。如当读入的表达式是7+(5*2-3)+2时,其执行顺序为:

(1)数字7进栈

(2)栈顶运算符#<++进栈

(3)栈顶运算符+<((进栈

(4)数字5进栈

(5)栈顶运算符(<**进栈

(6)数字2进栈

(7)栈顶运算符*>-满足规则T→T*F,归约5*2

(8)栈顶运算符(<--进栈

(9)数字3进栈

(10)栈顶运算符->)满足规则E→E-T,归约10-3

(11)栈顶符号(=))进栈

(12)栈顶符号)>+满足F→(E),归约(7)

(13)栈顶符号+>+满足E→E+T,归约7+7

(14)栈顶符号+<++进栈

(15)数字2进栈

(16)栈顶符号+>#满足E→E+T归约14+2

4 改进方案

4.1 输入值类型扩充——倍数整型数据

在经典的编译原理教科书中“算符优先法”实现的是一位数字的表达式算法,其中输入、输出和中间结果均只能是0~9。但后来的“算符优先法”将数值扩展到了整数,后来又扩展到了浮点数。其改进的数值类型只需用下列正规式表示即可。

其中X为变量,a、b、c为系数。

4.2 计算类型扩充——幂和函数

可对本系统进行扩充,如在界面上加上幂的运算、某种函数的运算等。如下:

其中X为变量,a、b、c为系数,∧为幂运算。

这两种都可通过调用系统函数来实现。

5 结语

本系统是基于Visual Studio 2008环境下开发的一个表达式编辑、编译及执行的系统,相当于一个小型的编译器,完成了从表达式的输入到输出表达式结果的整体编译过程。

实际上本系统的词法分析是后续语法分析的子程序。词法分析用于识别出每个数字以及运算符,当根据算符优先分析法识别出栈顶运算符优先于后续运算符时,语法分析将调用词法分析的结果,并根据相应规则进行归约得到运算结果。其结果清晰、可读性强,体现了高级语言编译程序的执行过程。

参考文献

[1]吕映芝,张素琴.编译原理.北京:清华大学出版社,1998.

[2]刘冰,张琳.C++程序设计教程—基于Visual Studio2008.北京:机械工业出版社,2009.

[3]金雪玉.Visual C#2008程序设计教程.北京:清华大学出版社,2011.

可视化计算系统 第2篇

关键词:计算机软件,计算机辅助电话调查系统,数据流,XML

0 引言

计算机辅助电话访问系统[1]是将传统的调查技术与现代计算机和通讯技术结合的一种全新的调查作业系统, 在呼叫系统中起着举足轻重的作用。CATI系统由计算机网络及硬件系统与CATI调查软件系统组成, 通过计算机网络与电话连接、实现随机拨号;通过CATI调查软件, 在计算机上实现问卷设计生成、样本构成控制、数据汇总分析和对访问全过程的监控。

到目前为止CATI在中国也已获得了较为广泛应用, 它摆脱了地理位置的限制, 并且使得访问工作变得更加容易控制, 访问效率也得到大幅度提高, 大大降低了调研成本, 使访问更加科学智能化。最重要的是较好的或常用的问题模型可保存在系统里, 以备随时调用, 使知识得以更好分析, 积累和再利用。但是目前随着坐席数量的增多, 题目类型的多样性, 使得现有的计算机辅助电话访问系统的功能满足不了日益增长的需求。

本文主要针对困扰着计算机辅助电话访问系统题库的题库管理[2], 题目类型多样性, 题目的复用性, 以及多用户多坐席的XML数据流传递等问题进行了研究与实现, 进一步对系统的问卷设计过程进行了优化, 大大提高了坐席的工作效率并实现了题库的管理与题目复用。

1 计算机辅助电话调查系统的基本流程与实现

针对原有计算机辅助电话调查系统[3]的弊端与局限, 现在将其分为了四部分, 包括问卷生成, 题库管理, 电话访问, 问卷结果提交这四个过程。所有的操作都是以题库数据库作为核心实现的, 其实现流程如图1 所示:

2 计算机辅助电话调查系统问卷及XML可视化生成系统的设计

2.1 问卷生成及XML可视化生成系统的功能设计

出题人使用本系统, 首先选择是对编辑空白问卷还是已有问卷, 第一:若编辑空白问卷, 则直接新建问卷即可, 然后针对自己之前的问卷设计, 操作本系统, 对各个节点依次进行添加编辑, 并对各个节点之间的流程跳转关系进行定义后, 选择保存至本地, 或者通过数据流上传到服务器的题库中, 即完成本次问卷的编辑工作。第二:若选择对已有问卷进行再编译或者未完成问卷进行继续编译, 则可以选择本地已有的XML文件[4] (本系统产出) ;或者通过本系统访问题库, 选择题库中已有的问卷进行下载, 然后通过本系统的读取功能将XML问卷进行读取解析, 并调用页面生成功能, 将问卷复现在画板上, 之后出题人可以使用本系统对各个节点进行修改并添加编辑新节点, 最后对各个节点间的流程跳转关系进行重新定义, 直至符合出题人预期设计。当出题人编辑完成后[5], 可以点击预览功能, 对本次编辑的问卷进行预览, 当进入预览功能后, 系统会将XML文件以数据流[6]的形式发送给后台程序, 后台程序读入XML, 解析后在WEB页面上生成该次问卷, 可供出题人试做查看, 后台程序会将该次问卷生成的URL返回给本系统, 出题人通过点击该URL即将跳转到预览页面。最后, 当出题人对该份问卷修改满意后, 点击保存, 会以XML形式保存到本地, 或者通过上传功能, 将XML问卷上传到题库中。

问卷生成及XML可视化生成系统的流程如图2所示:

2.2 计算机辅助电话调查问卷及XML可视化生成系统节点定义

计算机辅助电话调查系统问卷的XML可视化生成系统的XML规则主要有以下几种节点, 分别为Start节点, End节点, decision点, single节点, multi节点, open节点, mixchoice单选, single M节点, Multi M节点, Drop节点等十种基本类型[7], 这些类型都可以在里面进行各种选项的定制以满足各种繁多题型的制定, 但是每个题型都有基本的几项, 包括题目, 题号, 问题题干, 描述语, 下一个跳转等固定项。在这里, 我们统称十种题型为十种工具或者节点。

首先, 简述下属性如何定义我们对节点与属性的定义如图3 所示:

下面对上图中所示的分别一一详述:

公共属性共5个, 如下所述:

节点ID:每个节点都有自己的ID, 在系统里面是自增序列的 (从1 开始) , 对于出题人来说, 可以自行更改序列, 如果不更改则按照系统默认ID进行保存。

题目名称:每个节点都有自己的题目名称, 用来标识该节点的简称, 给话务员提示信息, 并简单标识改题目的功能, 由出题人自行定义。

节点类型:节点生成后会自动对应自己的节点类型, 总共十种, 节点类型用来对后面的问卷坐席系统生成问卷时, 对应生成各自不同的题目类型, 是不可更改的, 由系统生成。

描述:该属性用来对该节点进行解释, 主要用来描述该问题的主要功能或者问题, 使话务员对该题目有更加直观方便的理解, 也可以加入出题人对该题目的备注信息等, 由出题人自行设置。

存储变量:该属性用来保存一些自定义变量, 每个节点都有可能设置。主要作用是在以后题目调用这个变量会自动取出变量对应的人, 比如说{$name=”张三”};保存为$name变量, 当后面的节点调用这个变量, 会自动取出保存的”张三”, 该属性支持两种类型的定制, 需要用户自行设置。

私有属性[8]共七个, 如下所述:

内容:内容属性用来生成问题的题干部分, 该部分是由话务员读出, 用以询问被调查者, 故也是由出题人自行定义, 不可为空。对于开始和结束节点以及Decision节点是没有题干的, 开始和结束节点用来标识问卷的开始与结束, Decision节点用来设置数据库的初始化, 这三个都没有内容节点

选项:选项是针对单选节点, 多选节点, 下拉框节点以及混合单选节点的选项设置, 可以自行设置选项个数, 并编辑定义每个选项, 设置后保存答案即形成了选择题或者下拉框类型题目的答案选项。

行答案, 列答案:这两个属性是专门针对矩阵型选择题[9]的, 对于这种问题, 行答案和列答案初始默认个数是两个, 可以通过点击添加来分别添加行答案和列答案, 出题人设置好了行列答案后保存即完成了矩阵型题目的答案设计。

Other类型:这个属性主要是用来针对选项的, 这个属性的意思是说当选项记录为Other类型, 则当被调查者选择了这个选项, 需要话务员记录下调查者针对该选项的回答, 如果不需要记录则不用设置为Other类型, 每一个选项都可能会是Other类型, 故所有的有选项设置类型的节点都可能会有该节点, 需要用户在制定答案时自行设定并保存。

下一个节点:这个属性的意思是本节点的默认的下一个跳转, 如果没有定制的话, 则回答完该问题就会默认跳转到下一个节点中记录的节点, 除了结束节点外, 每个节点都会有默认节点。

分支:这个属性是本系统的重点之一, 主要用来对多个答案的跳转设定, 按照系统需求来分析, 如果一个题目的不同选项对应着不同的跳转流程, 例如:答案A跳转到第五题, 答案B跳转到第七题, 其他选项则直接结束, 则这种情况需要使用分支属性, 记录每个分支的选项, 以及跳转到的节点, 对于一个节点来说, 可能会有多个分支属性, 分支是按照从分支一开始顺序自增。每当增加一个分支属性, 画板上的节点会多增加一个跳转线, 出题人可自行编辑该线对应的选项以及名称, 亦可拖拽该线到跳转节点上, 左侧属性栏即会自动生成对应跳转的节点名称, 至此, 出题人即完成了分支的设定。

对于公共属性, 包括该节点的ID, 该节点的名称, 该节点类型, 对该节点的描述, 以及对存储变量的定义, 是定义在基础类里面, 所有的节点都继承自基础, 故所有的节点都会有这个属性。对于私有属性, 则是不同节点有不同的属性类型, 并且每个属性的具体细节可能各有出入, 并不相同, 因此这些属性都是在子类中详细设定的。

以上为对计算机辅助电话调查系统问卷及XML可视化生成系统的属性的详解。

2.3 属性的定义及实现

我们在这里定义了一个基础属性类, 这里包含了属性类中各个控件的初始化定义, 然后定义了一个枚举类型来标识各个属性的控件类型, 是文本框, 按钮还是下拉框等, 然后通过调用定义的add Attribute () 方法, 将属性加入到容器中, 从而实现了对各个属性的定义, 基础属性类的定义如下:

接着我们定义了针对每一个节点的Item类, 通过调用定制的方法可以动态添加基础属性类, 每个节点都是由多个基础属性类构成的, 通过基础属性类实现了节点属性的灵活定制, 节点类的定义如下

我们通过在容器的属性类Attribute中定义了节点属性, 调用添加属性的接口, 既可以实现对各种属性的添加与定制。

3 计算机辅助电话调查系统问卷及XML可视化生成系统设计与实现

3.1 计算机辅助电话调查系统问卷及XML可视化生成系统的设计方法分析

首先我们对于已有的计算机辅助电话调查系统问卷及XML可视化生成系统进行了查看与分析, 我们可以很轻易的知道, 本系统作为与用户直接交互的窗口, 可操作性与可视化的优化是我们的重点改进部分, 所以好的用户体验是我们这个系统所侧重, 针对这些我们在设计本系统时主要采用了以下几条设计原则:

可靠性原则:我们的系统是为上万话务员提供的文件生成系统, 因此可靠性是本系统的一个重点关注部分, 保持该软件在测试运行过程中避免可能发生故障的能力, 且一旦发生故障后, 具有解脱和排除故障的能力, 因此我们应该在设计阶段确定其可靠性的设计策略, 而不是留到后面的生产测试阶段。

单一职责原则:我们应该细化系统的功能模块, 尽量让一个模块负责本模块的功能, 职责过多, 可能引起它变化的原因就越多, 这将导致职责依赖, 相互之间就产生影响, 从而大大损伤其内聚性和耦合度。故我们尽量将系统按照职责划分, 使其相互之间减少依赖。

可修改原则与可扩展原则:对于本系统, 随着业务的扩展以及用户的需要, 版本的迭代是必不可少的, 因此我们需要在软件设计时就考虑升级接口以及升级空间, 并且当业务拓展时, 对于已有模块要提供可修改空间, 并且能够提供灵活修改, 充分利用C#的AOP框架进行设计。

接口隔离原则:充分利用接口的灵活性, 设置多个功能专一的小接口, 在这里, 我们有两种方案来提供该功能。第一:委托分离, 通过增加一个新的类型来委托客户的请求, 隔离客户和接口的直接依赖, 但是会增加系统的开销。第二:多重继承分离, 通过接口多继承来实现客户的需求。

3.2 对系统总体设计

基于面向对象的设计方法对本系统进行设计, 可以由下图4 知, 我们依据各个层次的功能, 将本系统划分为四个模块, 分别为持久层, 数据层, 控制层, 和用户界面层。各个层次之间的消息通信与关系如图4 所示。

3.3 计算机辅助电话调查系统问卷及XML可视化生成系统的十二大模块

针对上面的分析, 我们对计算机辅助电话调查系统问卷及XML可视化生成系统主要分为十二个模块, 分别是总容器模块, 工具栏模块, 属性栏模块, 画板模块, 流程跳转控制模块, XML节点模块, XML显示页模块, 全局变量模块, 数据流传输模块, XML读取解析模块, 分支模块, 这十一部分。这十二部分相互关联, 共同完成了本系统的各项功能。

下面对这十二个模块定义如下:

第一:总容器模块, 在silverlight中所有页面元素都包含在这个总容器模块里面。

主容器类内包含工具栏, 属性栏, 画板, XML显示页面等四个主要成员变量, 程序的起始都是在这个模块中完成调用的。

第二:工具栏模块, 这个模块内主要负责工具栏的显示及点击拖拽事件的完成。

在这个模块内定义了一个基础类, 所有十种题型都继承自这个基础类, 每个题型都包括自己的不同的背景图片, 名称以及各种不同的事件。用来向用户提供题型定的工具箱。

第三:属性栏模块, 这个模块主要负责十种题型的属性展示。

每当用户点击选中画板中的题目, 都会将该题型的所有属性, 该题型各个选项的跳转关系及用户填写的内容都展示在这里。

第四:画板模块, 这个模块是本系统的重点部分, 主要负责提供一个画板区。

使用户可以在该区域内进行拖拽点击并编辑该节点, 并且可以拖拽线段到跳转到相应的题目中, 并会相应的修改其属性值。

第五:XML节点模块, 这个模块主要负责对每种题型对应的XML节点的定义。

这里每当点击到不同的题目时, 就会寻找到对应的XML节点, 去拼取他们的XML内容并通过XML显示页模块显示到页面上。

第六:流程跳转控制模块, 这个模块主要负责节点之间连线时, 对他们属性中下一个节点以及不同选项的不同跳转进行判断并修改, 然后会将这些都记录在全局变量中, 在最后提交时会进行逻辑判断是否符合逻辑, 接口是否都已经闭合等, 这是本系统中的一个难点。

第七:全局变量模块, 这个模块负责着本系统中全局变量的设定。

包括一些基础类和通用变量的保存, 并会将当前问卷中所有的节点保存到List中, 并会保存开始结束节点信息, 以维持其唯一性。

第八:XML显示页模块, 这个模块负责对当前问卷的XML输出结果的实时展示。

在这里当点击切换时, 这个模块会实时去根据全局变量中保存的List, 会挨个根据XML节点模块去得到XML转换结果, 并拼接好后显示在页面上。

第九:数据流传输模块, 这个模块负责本系统中数据流的上传与下载功能。

对于本系统中开始可以从题库中下载问卷, 或者将已经编辑好的XML问卷上传到题库中都需要数据流传输模块, 通过跨域访问, 将文件使用post方法上传到服务器上去, 或者通过请求后台程序, 将题库中的问卷下载下来。

第十:XML解析模块, 这个模块负责将本系统中读入XML问卷解析出来并调用之前的属性模块, 画板模块, 流程跳转控制模块, 全局变量模块等多个模块将XML中各个节点对应的题目完整的复制到画板上。

第十一:分支模块, 这个模块主要负责某些特定节点添加分支功能, 对于多选项或者多答案的节点, 对于某一些定制答案需要有一些特定跳转则会调用分支模块, 对该节点增加分支, 并调用流程跳转控制模块对该分支进行跳转逻辑判断等, 并调用XML节点模块, 在该节点上增加对应的XML规则, 最终在XML现实页面上显示该节点的所对应XML。

第十二:预览模块, 这个模块是针对计算机辅助电话调查系统问卷及XML可视化生成的功能优化, 可以一边编辑问卷, 一边进入预览模块, 调用数据流模块, 将问卷对应的XML文件以数据流的形式上传到后台服务器上, 然后返回此份问卷的预览URL, 出题人点击该URL进入预览环境, 可以对问卷进行查看, 看是否有遗漏或者不符合预期设计的部分, 然后有针对性的进行修改, 直至符合预期。

以上模块间的相互调用关系可以如下图5 所示:

4 结论

本文在调查了已有计算机辅助电话调查系统的问题和局限后, 通过分析现在电子调查问卷的用户需求以及使用特点, 重新给出了XML调查问卷的可视化生成方案, 并提供了题库管理以及问卷数据流传输等新功能, 结合呼叫中心系统, 对调查问卷进行线上集中管理, 对题库问卷和问题进行复用。

通过本系统, 用户不仅可以使用本系统通过拖拽, 连接等功能对问卷进行设计, 并给出相应的逻辑跳转流程, 还可以对已有的问卷进行读入, 复用, 对已编译好的问卷可以以数据流的形式上传到题库服务器, 更可以对编译中的问卷进行预览, 可以查看当前问卷的最终生成状态, 实时查看问卷是否有错误, 纰漏或者不符合预期的设计, 并给出改正。大大方便了用户的使用, 提供了更好的用户体验, 和电子问卷的集中管理, 提高了调查问卷的生成效率, 如图6 所示, 对现有功能进行了改进和增强, 大大有益于计算机辅助调查问卷系统的发展和应用。

参考文献

[1]CIN-SCF入门教程.上海欣方智能系统有限公司.2004:5.

[2]肖丁.软件工程模型与方法[M].北京邮电大学出版.2008.

[3]陈恒, 王雅轩.基于XML/Web Services的电子商务模型研究[J].软件.2013, 34 (10) :55-57

[4]徐亚峰, 蒋晓峰.基于.NET平台的交互高校信息系统的设计与实现[J].软件, 2013, 34 (2) :7-9

[5]唐学岭.基于Visual C#的教学校历辅助生成系统[J].软件, 2013, 34 (1) :41-44

[6]吴峰.基于XML的电子病历系统及其院际信息共享技术研究[J].软件, 2013, 34 (1) :106-107

[7]邓国华.统计调查的有力工具--电脑辅助电话调查系统[J].理论导报, 2008, (12) :51-52.

[8]王琦.呼叫中心技术及其发展[J].网络与应用, 2004, (1) :50-53.

谱元法计算结果的可视化问题 第3篇

关键词:科学计算可视化,计算流体力学,等值线

1、引言

谱元法 (SPEM) 是计算流体力学中一类特殊的方法, 它把有限元法和谱方法相结合, 兼具了有限元的处理边界和结构的灵活性和谱方法的快速收敛特性, 同时极大地减少了计算时间和内存需求。谱元法的基本思想是在每一个单元上使用谱方法, 同时选取以截断的正交多项式表示的基函数, 在各个单元上通过利用配置点插值, 以提高级数表示的解的收敛速度。其主要步骤是: (1) 首先把计算的区域分成许多子域 (单元) , 每个子域由若干点 (配置点) 组成; (2) 其次在每个子域中把近似解表示成截断的Chebshev正交多项式或Legendre多项式展开; (3) 最后用伽辽金方法求解正交问题的变分格式, 得到全局的近似解。[1]

2、科学计算可视化

科学计算可视化 (Visualization in Scientific Computing, 简称ViSC) 是当前计算机科学的一个重要研究方向, 于1987年由美国国家基金会第一次提出。

ViSC主要研究如何把科学数据 (如从测量或计算获得的数据, 或从卫星传送回来的图象, 或医学CT (计算机层面X射线照相) 和MRI (核磁共振成像) ) 转换成可视的、能帮助科学工作者理解的信息的方法;它实现把计算中所涉及的和所产生的数字信息转变为直观的、以图象或图形信息表示的、随时间和空间变化的物理现象或物理量呈现在研究者面前, 使他们能够观察到模拟和计算, 即看到传统意义上不可见的事物或现象, 同时还提供模拟和计算的视觉交互手段, 是把计算机图形学与图象处理技术应用于计算科学的综合学科[2]。

科学计算可视化的核心是将三维数据转换为图象, 它涉及到标量、矢量、张量的可视化、流场的可视化、数值模拟及计算的交互控制、海量数据的存储、处理及传输、图形及图象处理的向量及并行算法等。

近年来, 随着计算机性能大幅度、积聚地提高, 一方面为人们进行更复杂的数值模拟、数值实验提供了可能, 但另一方面, 如何有效地分析理解这些在复杂的计算过程中产生的大量科学数据也越来越突出。一个有效的解决方法就是借助可视化技术用直观的图形输出代替数据输出, 也就是科学计算可视化。

3、计算流体力学

流体力学是研究流体介质 (如:液体, 气体和等离子体) 的平衡、运动, 及其和流体中的物体相互作用以及在此过程中发生的动量、能量和物质交换的一门力学学科分支。流体力学既包含自然科学的基础理论, 又涉及工程技术科学方面的应用。如从流体作用力的角度, 则可分为流体静力学、流体运动学和流体动力学;从对不同"力学模型"的研究来分, 则有理想流体动力学、粘性流体动力学、不可压缩流体动力学、可压缩流体动力学和非牛顿流体力学等。

利用数值方法通过计算机求解描述流体运动的数学方程, 揭示流体运动的物理规律, 研究定常流体运动的空间物理特性和非定常流体运动的时-空物理特征, 这样的学科称为计算流体力学 (Computational Fluid Dynamics-CFD) 。[3]

计算流体力学是流体力学与数学物理方程理论、计算数学、数值方法和计算机科学等多学科交叉的学科。流体力学的研究可以分为现场观测、实验室实验、理论分析、数值计算四个方面。[3]计算流体力学以计算机模拟手段为基础, 对涉及流体流动、传热及相关现象, 如化学反应等的系统进行分析, 在几何模型和网格生成、数值算法、湍流模型、流态显示等方面均取得重大进展。以计算流体力学为学科基础的CFD技术有强大的模拟能力, 覆盖了工程的或非工程的广大领域。[4]

计算流体力学的过程一般由三步组成:体定义、网格划分和数据集分析。网格类型有结构化网格、非结构化网格和混合式网格。结构化网格的每一单元是一四边形, 它总能经过线性变换, 成为正交的网格;非结构化网格不是基于正交化的坐标, 而是直接由单元组成, 单元可以是三角形、四边形等;混合式网格组合了上述两种网格划分技术。[2]

文中可视化过程涉及的数据来源于著名的NACA 0015航空叶片的谱元法数值模拟。使用的模拟软件SECF由许传炬编写[5], 其基本思想是将计算区域剖分成一定数量的子区域, 在每个子区域内用N阶多项式逼近解。NACA 0015模拟使用的网格见图1。图中计算区域被剖分成924个, 每个区域使用的多项式阶数为8, 即有9*9个Gauss-Lobatto节点。

流动问题的解 (速度、压力、温度等) 定义在每一单元的节点上。CFD的精度由网格单元的数目决定。解的精度、必需的计算机硬件和计算时间取决于网格的细密程度。最佳网格多是非均匀的:点到点之间变化快的区间网格较细, 变化相对较慢的区间网格较粗。[4]

4、可视化过程

从一个开发源码可视化程序出发, 讨论如何绘制每一时刻的等值线图, 并从图中分析数据的变化以及从中获取我们所关心的信息。

4.1 关于等值线

等值线是一种形和数的统一, 在数值模拟中, 利用等值线可以有效地表示各种场的分布, 它可以形象地表示场变量的有关信息, 包括大小、分布, 等值线之间的距离又反映了场变量的梯度大小。因此, 等值线的生成与绘制是数值计算后处理技术中的主要问题之一。

二维标量场可以看成是定义于某一区域上的二维标量函数F=F (x, y) , 所谓等值线是由所有点 (x, y) 定义, 其中Fi=F (xi, yi) (Fi为一给定值) , 将这些点按一定顺序连接组成函数值为的等值线。等值线概念应用广泛, 如工程和实验中的等高线, 等压线, 等温线等都是等值线的具体应用实例。

对于二维标量场, 其数据一般是定义于某一网格面上的。根据网格类型的不同, 其等值线抽取方法也各有不同。网格可分为两类;正规化网格 (regular grid) 和非正规网格 (irregular grid) 。根据等值线抽取时的网格单元处理次序, 等值线的抽取方法具体可分为两类:网格序列法和网格无关法。我们根据谱元法的特点, 使用网格序列法绘制等值线。

网格序列法的基本思想是按网格单元的排列次序, 逐个处理每一单元, 寻找每一单元内相应的等值线段[6]。根据谱元法计算中已有的单元信息和节点坐标及各单元结点上的物理量值 (如速度、压力、涡量等) , 直接构造分片曲面, 全方位搜索等值点的集合。根据等值点处的物理量值相对于等值线的正负号来控制等值线在网格内的游动, 可以在任意矩形网格内直接绘制等值线图。

4.2 绘制等值线

我们通过附录中的程序1 (其为主要部分) 绘制出NACA0015每一时刻的等值线, 并对这些线上色, 从而生成对应于每一时刻的PS文件, 再以这些PS文件为出发点对由NACA 0015问题的谱元法模拟出的数据进行分析, 获取我们所需的信息。现先将绘制等值线的过程描述如下:

该数据由7组向量组成, 分别为X、Y方向向量及O (涡度) 、P (压力场) 、U (横向速度场) 、V (纵向速度场) 、S (流线) 。

首先对数据进行预处理, 我们不妨以U为代表说明问题。处理后得到关于U的40个时刻的文件。对于每个时刻的数据都利用可视化技术, 按照网格序列法进行如下处理绘制等值线:首先从第一个区域单元出发, 根据水平线数确定的取值范围, 对每条水平线对应的取值搜寻该区域单元, 找到一个点后将画笔指向此点, 接着寻找取同样值的下一点, 直至搜寻完所有的节点。然后对下一个水平值重复相同的过程直到处理完所有的水平线。将对应相同值的点连成一条光滑的曲线, 同时对不同的数值涂上不同的颜色 (程序2) (如当数值为正时涂以蓝色, 为负时涂以红色) , 以便更直观地看出场变量大小的变化及分布, 这样便完成了一个区域单元内的等值线绘制。按同样方法对下一单元进行处理, 若在该单元内没有找到相应的数值则跳过。当循环完所有的网格单元就画出了对应于某一时刻的所有等值线。绘制出的等值线图以PS图形格式存储, 如图2所示:

4.3 借助可视化对流体运动进行分析

根据上述网格序列法绘制出的等值线图我们可以对这个流场进行分析, 获得我们感兴趣的信息 (这里仍以U为讨论对象) 。

4.3.1 我们抽取这40个时刻中的5个作为例子进行研究:

由以上5张图片可以得出如下结论:

1) 蓝色线所表示的数值为正, 红色线所表示的为负值。

2) 这些等值线的分布在零点附近较集中, 由此可推断其服从的分布。

3) 两等值线间的距离越小则说明梯度越大。

4.3.2 另外, 当等值线间的数值服从不同的分布时, 对数据处理所依据的公式就有所不同 (程序3) , 于是所绘制出来的等值线图也就有所不同。

我们选取同一时刻11500的两张在不同分布下绘制出的等值线图作比较, 从而说明可以通过等值线图判断数据所服从的分布。图8为服从作出的图, 图9为服从线性分布作出的图。

从以上两图可以明显地看出两种分布下作出的等值线图的区别:线性分布下等值线的分布较为均匀, 而分布下的则较多密集在零点的附近。

4.3.3 由以上可见, 等值线图可以形象地反映出流场的以下信息:

数值大小、分布及梯度等。

5. 结束语

谱元法结合了谱方法的高精度和有限元法的高适应性, 它为许多问题的数值模拟提供了新的有效工具。本文讨论了谱元法数值模拟结果的等值线产生方法及实现过程。

参考文献

[1].林伟军, 王秀明, 张海澜编著.《用于弹性波方程模拟的基于逐元技术的谱元法》.自然科学进展.Vol.15, No.9, 1048-1057.2005

[2].李晓梅, 黄朝晖等编著.《科学计算可视化导论》.国防科技大学出版社出版, 1996年

[3].傅德薰, 马延文编著.《计算流体力学》.高等教育出版社出版, 2002年

[4].李万平编.《计算流体力学》.华中科技大学出版社.2004年

[5].邹江涛, 许传炬著.《科学计算的可视化问题》.1998年

多涂覆目标的RCS可视化计算 第4篇

雷达隐身技术的核心是降低目标的雷达散射截面 (RCS) [1]。其技术途径主要包括构造外形技术和涂覆雷达吸波材料技术 (RAM) 。其中构造外形技术是通过建构目标的非常规外形设计降低其RCS;而RAM技术是指利用RAM吸收衰减入射的电磁波, 并将其电磁能转换为热能而耗散掉或使电磁波因干涉而消失的技术。整形虽然非常有效但只能使RCS在一定的入射方向上缩减, 而有些角度其RCS值还会增大, 过分强调外形隐身必将大大降低飞机的机动性和敏捷性, 而RAM在基本不影响飞行性能的情况下缩减其RCS。因此在隐身反隐身研究中对复杂目标的局部或全部, 单层或多层涂覆RAM的RCS分析显得尤为重要。

在计算电大尺寸复杂目标的RCS时, 图形电磁计算方法 (GRECO) [2,3], 利用Phong光照模式来获取目标表面各点法向矢量。 GRECO是通过对屏幕上可视像素点进行直接计算, 传统GRECO方法中当目标表面只有一种涂覆情况时, 每个像素对应涂覆面元的参数是一致的, 当目标表面有多种涂覆时 (不同部位有不同的涂覆参数) , 每个像素对应涂覆面元的涂覆参数可能是不同的, 如B2, F117A就在不同部位涂覆了不同的RCS吸收材料。这时需要知道每一个像素对应于何种涂覆情况。本文使用索引法即用像素的颜色表示索引序号的方法, 就可以解决这个问题。

1 Phong光照模型获取法矢

GRECO中目标视点总是设在单站雷达的位置, 因而屏幕上显示的仅为处于照明区的目标面元和棱边, 而不可见的阴影部分面元和棱边由图形加速卡消隐掉。从图形加速卡输出可以得到像素的位置信息 (x, y, z) 和颜色 (R, G, B, A) 其中R, G, B分别对应于红绿蓝三基色, A是Alpha通道的值。利用Phong光照模型[4]可以从像素的颜色还原得到目标的表面法矢。

单一光源照射下Phong模型表达式:I=Iαkα+Il[kd (N·L) +ks (R·V) n] (1) I景物表面在被照射点处的光亮度, Ia入射的泛光光强, ka景物表面对泛光的反射系数, kd景物表面的漫反射率, Il点光源所发出的入射光强度, θ入射光与表面法向之间夹角, ks景物表面的镜面反射率, n镜面高光指数, α镜面与反射光之间的夹角实际着色时, 设Ia=0, 即关闭环境泛光;ks=0, 即取消镜面反射, (1) 式化简为:

I=Ilkd (N·L) (2)

设红绿蓝三种单色光 (Il=1, kd=1) 分别从x, y, z方向照向物体, 像素R, G, B颜色分量的值就是表面法矢的各分量nx, ny, nz。则可得:

即着色后每个像素点颜色分量与目标表面法矢一一对应且相等。

利用Phong光照模型着色[5]目标可见表面, 对于给定视角, 消隐后的目标图像上每一个像素点的颜色是由R, G, B三基色混色而成。由于像素点的法矢可能有六种分量, 经过消隐处理后要用三种颜色表示五种法矢分量, 所以至少需要对同一观察角成像两次, 才能利用RGB唯一地表示出整个图像上每一个像素点的法矢。这样就可利用像素的颜色恢复法矢。

2 索引法

如引言中所说, 传统GRECO只能处理单一涂覆问题, 当目标表面有多种涂覆时就需要知道每个像素对应的涂覆情况。本文使用的索引法即用像素的颜色表示索引序号的方法, 通过建立两个索引模型, 及面元索引模型和涂覆索引模型能很好的解决这个问题, 并且得到的结果精度高计算速度快。

2.1 面元索引模型

目标的几何模型可用若干三角形或四边形面元来表示。每一个面元可用一个唯一的序号值代表。设目标几何模型的面元个数为N, 那么可以用S1, S2, …, SN来表示这些面元。

①面元的序号映射到RGBA颜色

设序号i映射到颜色Ci=RiGiBiAi的算符为F, 即:

Ci=RiGiBiAi=F (i) , i=1, 2, …, N (4)

在 (4) 式中Ci是一个整数, RiGiBiAi表示各颜色分量的比特组合。当RGBA的颜色位数总和为K=32bits时, 2K≈4.29×109, 那么这些颜色可表示的面元数量N最大可达到42亿以上, 远远满足一般目标几何模型面元数量。

②使用映射值Ci进行着色

对目标面元用以上的序号到颜色的映射值Ci进行着色, 而不再使用Phong光照模型。经过这样着色后的显示在屏幕上的目标三维图形, 像素RGBA值代表的就是其所属面元的序号。图2为B2面元索引图像。

③像素对应所属面元

设从颜色缓冲区读到一个像素的颜色值C=RGBA, 那么此像素所属面元的索引序号为i=F-1 (C) , 其中F-1表示F蹬逆映射, 即可得到此像素所属面元Si。

由以上步骤可以得到面元索引模型的映射关系如图3所示:

④获取法矢

得到了像素所属面元的序号, 那么其几何参数也就容易得到了。例如法矢, 因为法矢是几何模型数据的一部分, 因此每个面元的初始姿态法矢是已知的。设第i个面元的初始姿态法矢为undefined, 当前姿态下的法矢undefined可用当前的模型旋转矩阵R乘初始法矢undefined得到, 即:

[ni, x, ni, y, ni, z]T=[R]3×3[n′i, x, n′i, y, n′i, z]T (5)

2.2 涂覆索引模型

使用像素颜色表示索引序号的方法, 可以解决多种涂覆情况下 (目标表面不同部位可能有不同的介质层数、不同的介质厚度和不同的介质材料) 获取涂覆参数的问题。

设共有M种涂覆情况, 每种涂覆情况的涂敷参数为Pi, i=1, 2, …, M。可以构造一个涂覆索引模型, 首先建立涂覆情况与颜色RGBA之间的映射关系, 然后每个面元使用其涂覆情况的索引序号进行着色, 在颜色缓冲区读到像素颜色, 逆映射得到涂覆情况的索引序号, 由此索引序号就可以得到相应的涂敷参数, 结合面元的法矢可以求得面元的反射系数。

3 计算实例

3.1 多涂覆巡航导弹RCS计算

以某巡航导弹为例, 取导弹的尺寸与文献[7]的相同, 图4是其多涂覆建模图, 在表1中对应的列出了不同部位导弹所涂覆的介质参数。

图5为文献[2]计算结果, 图6中实线所示为未涂覆计算结果, 计算频率为f=12GHz, VV极化, 俯仰角和侧滚角均为0°, 计算方位角范围0°~180°, 间隔1°, 与文献[2]实验结果比较, 符合良好。

图6中虚线所示为多涂覆RAM后的计算结果, 与图5及实线比较, 可以看出多涂覆后目标RCS值降低了大约10dBsm。

3.2 多涂覆战斗机RCS计算

图7为某型号战斗机建模, 图8为该战斗机各部分采用不同的涂覆材料情况下, 10GHz, VV极化方式, 纯导体与多涂覆的RCS计算结果, 可以看出多涂覆后RCS有明显下降。

4 结束语

本文基于GRECO方法, 使用索引法, 建立两个索引模型即面元索引模型获取法矢, 涂覆索引模型获取涂敷参数, 有效解决了复杂目标多种涂覆的问题, 从原来逐像素计算到使用索引法后逐面元计算, 与相关文献比较多涂覆目标比未涂覆目标的RCS有明显下降, 对隐身反隐身研究有一定的工程应用价值。

摘要:涂覆雷达吸波材料技术 (RAM) 是隐身技术中重要的技术之一, 在现代隐身武器设计中得到广泛应用。GRECO方法使用Phong光照模型获取法矢等几何参数, 只能处理目标表面单一涂覆的情况。使用索引法即用像素的颜色表示索引序号的方法, 就可以处理目标表面不同部位有不同涂覆参数的多种涂覆情况。计算结果与相关文献进行比较, 结果令人满意。

关键词:雷达散射截面,涂覆,Phong光照模型,索引法

参考文献

[1]阮颖铮.雷达散射截面与隐身技术[M].北京:国防工业出版社, 2000.

[2]Rius J M, Jofre Luis.High-frequency RCS of complex radar targets inreal time[J].IEEE Trans.Antennas Propagation, 1993, 41 (9) :1308-1319.

[3]Juan M Rius, Ferrando M, Jofre L.GRECO:Graphical Electromagnet-ic Computing for RCS Prediction in Real Time[J].IEEE AntennasPropagation Mag, 1993, 35 (2) :7-17.

[4]孙家广.计算机图形学[M].3版.北京:清华大学出版社, 1998.

[5]于洋, 王宝发.OpenGL技术在电磁散射理论中的应用[J].电子技术应用, 1998 (1) :11-13.

[6]Randi J Rost.OpenGL着色语言[M].天宏工作室, 译.北京:人民邮电出版社, 2006.

[7]Youssef N N.Radar cross section of complex targets[J].Proc.IEEE, 1989, 77 (5) :722-734.

计算机图形生成算法的可视化研究 第5篇

1 可视化教学优势

可视化教学模式主要是将多媒体与网络教学作为基础, 针对计算机教学的一种新型教学模式, 能够将计算机抽象的知识, 借助可视化教学模式, 为学生呈现更加生动、形象的知识, 便于学生接受。将计算机算法教学与可视化教学模式有机结合, 能够摆脱传统单一、枯燥的教学模式, 有助于培养学生解决实际问题的能力, 更好地适应社会需求;通过可视化教学模式, 学生通过观察计算步骤, 能够强化对基础知识的记忆, 而且, 利用可视化软件进行教学、演示, 学生能够直观的看到计算机图形生成算法, 快速理解算法内容, 领悟其本质, 有助于帮助学生构建计算机基础知识体系;与此同时, 可视化教学模式能够摆脱传统教学模式枯燥乏味的教学氛围, 通过运用多媒体等现代教育技术, 能够为学生营造一个轻松、愉悦的教学环境, 吸引学生注意力, 激发起学习兴趣, 促使学生能够积极地参与到教学过程中来, 从而培养学生良好的学习习惯;另外, 通过可视化教学软件, 学生能够扎实的掌握基础知识, 对学生日后深入研究计算机具有积极地促进作用。

2 计算机图形生成算法可视化实施步骤

2.1 总体思路

针对计算机图形生成算法教学, 教师需要结合教学目标、内容等实际情况开展教学活动, 运用最简单、最直观的教学方式, 实现算法可视化教学目标。具体思路主要有以下三个步骤:第一, 在图形生成界面设置一个单独窗口, 一个用来表现图形生成, 而另一个则显示算法文本, 实现二者独立且统一;第二, 教师要把握好图形生成过程, 确保算法能够循序渐进的呈现在学生面前, 让学生能够由浅入深掌握基础知识;第三, 将算法与图形有机结合起来, 在计算机执行任务过程中, 实现可视化。

2.2 生成虚拟栅格, 构建相对坐标系

为了实现计算机图形生成可视化教学目标, 首先要进行C语言程序设计, 并进行调试, 确保其能够正确运行, 然后生成图形, 计算机在进行图像绘制过程中是将线条上每一个点的坐标, 并将这些点连接起来, 完成绘制任务;最后, 在运行过程中, 学生能够看到图形。

目前, 技术的发展, 促使计算机能够通过模拟和虚拟的方法, 在图形显示窗口描绘出垂直与水平直线, 从而形成一个虚拟栅格显示器, 并构建一个相对坐标, 结合人们的看图特点, 能够构建符合人们观察特征的坐标, 便于教学活动的开展。

2.3 控制图形生成, 根据步骤演示

把握图形生成过程, 控制其演示过程, 主要是避免图形生成过程跨度过大, 学生无法理解和接受。因此, 为了强化学生记忆, 教师应在设计程序时, 分解每一个步骤和环节, 按照步骤为学生演示计算机图形生成过程。例如:直线图形的形成, 设计一个函数, 并将直线上点的坐标存入到数组中, 接下来设计一个循环命令, 将每一个点的坐标表现出来, 直到所有数据全部输出, 显示器上就会出现一条直线, 如图1。

在图形生成之后, 设置一个单独的窗口, 表现计算机在后台的操作过程, 其中的任务指令要在相对应的操作过程进行时, 在窗口中表现出来。为了能够促使学生能够更加清晰地看到任务指令, 教师可以对任务指令进行特殊设计, 例如:设置背景色, 通过背景颜色的转变, 学生能够更加直观的观察到图像是如何的生成的, 深入理解计算机算法图形生成的本质和精髓。

2.4 将算法与图形窗口结合

将算法与图形窗口有机结合主要是指两个窗口算法执行和图形生成的统一性, 当计算机算法执行到某一任务指令, 确保图形窗口能够呈现图形, 另外, 为了能够实现窗口的统一, 教师应灵活对算法进行一些改善。例如:进行直线图形的绘制, 可以分别在算法和图形窗口设计一个函数, 确保任务能够单独执行, 从而确保算法与图形统一进行。

为了能够为学生呈现更加细致的图形演示过程, 在设计连续设计之后, 还需要进行单步前进与单步后退的环节, 通过这种方式, 学生能够更加明确每一个图形算法的情况, 从而有效提高教学质量和效率, 培养学生的实践操作能力。

3 结论

根据上文所述, 可视化作为一种有效的计算机教学模式, 虽然目前尚未得到推广和普及, 但是, 其未来发展前景十分广阔。因此, 教师要结合教材内容与学生个性特点, 进行深入研究, 挖掘可行性教学方式, 从而推动计算机教学进一步发展。

摘要:随着社会经济与科学技术不断发展, 计算机逐渐成为人们是日常生活中必不可少的一部分。计算机图形学作为计算机学科中比较活跃、且应用范围较广的重要组成部分, 是为学生能够掌握学科基础知识, 并为日后深入学习以及开发奠定基础的关键学科。因此, 加强对计算机图形学的研究至关重要。本文将对可视化教学优势进行分析和研究, 并提出计算机图形生成算法可视化实施步骤, 从而推动我国计算机教育可持续发展。

关键词:计算机图形学,生成算法,可视化

参考文献

[1]张玉新, 张月清, 卜治国.计算机图形学 (算法可视化教学研究与实现) [J].河北农业大学学报 (农林教育版) , 2010, 18 (03) :259-261.

[2]谢维, 沈大林.关于多媒体CAI课件设计的分析与思考[J].教育科学研究, 2012, 20 (05) :12-14.

可视化化工计算教学软件的自主开发 第6篇

对于高校教学来说, 需要程序实现两个功能:一是计算功能, 二是教学功能, 即学生在使用软件的计算过程中, 软件可以提供适当的提示、注释、指导, 达到计算和教学的双重目的。目前, 针对化工计算的成熟软件, 如Aspen Plus等, 主要针对的是化工行业的工作者和有一定基础的研究人员, 其功能以计算为主, 使用者并不能通过软件了解各类计算的详细原理和方法, 不能对化工专业的学生或是初学者起到作用。而且, 此类软件使用费非常昂贵, 一年的使用费就需上万元, 超出很多高校、科研机构的承受范围。因此, 自主开发一套简单实用、适合于本科教学的化工计算软件具有非常重要的意义。一旦软件开发成功, 则既能强化教学效果, 又能节省资金。

笔者自主开发了一套适用于化工热力学和化工原理实验本科教学的化工计算软件, 基本完成了该学科本科阶段中的各类复杂计算, 同时, 用程序处理化工计算过程, 可以让学生的精力从繁复的计算过程中解放, 更多地关注计算原理和实验内容本身, 从而对教学起到积极的辅助作用, 达到良好的教学效果。

1.软件的主要内容

本程序以Visual Basic为工具开发的具有可视化界面的化工计算程序。该程序可直接在windows操作平台使用, 界面友好, 操作简单, 运行可靠稳定。内容包括《化工热力学》课程中大部分较为复杂的计算程序, 以及一些重要的化工原理实验的数据处理程序。此外, 本程序的帮助部分还提供了软件使用的视频说明, 可解答学生在使用中的问题, 帮助学生更深刻地理解课程内容。

2.程序的结构及主要功能

本程序用VB语言编写, 运行操作系统环境是windowsXP/windows7/windows8操作系统。通过主界面进入科目选择 (化工热力学或化工原理实验) , 并选择要计算的内容, 输入相应数据或参数, 即可获得计算结果, 并根据用户需要, 提供计算的流程图、详细步骤和原理提示性文字等, 达到人机互动的效果。程序结构如图1所示:

程序的主界面分为标题栏、菜单栏、工具栏、工作区和状态栏。其中, 菜单栏里的各项的内容包括:系统、科目选择、设置字体、显示、工具、帮助等选项, 具体功能如下:

2.1化工热力学计算模块

化工热力学计算模块主要包括: 真实气体及混合物状态方程 (EOS) 的计算、真实气体逸度及逸度系数的计算、真实液体混合物活度系数的计算和气液平衡体系泡露点的计算四个部分, 每部分有几个不同的分支, 在科目选择界面选择相应选项进入计算界面。

考虑到化工热力学所涉及的计算问题较复杂, 计算工作量大, 且待解变量之间的关系往往不能用显函数形式表达, 需要用迭代计算, 因此学生在实际学习过程中往往会迷失在局部的计算中, 难以把握整个计算的流程。作为一款教学软件, 本软件在设计时有以下特色。

2.1.1加入了“查看流程图”的按钮。此按钮的目的是让使用者 (学生) 在计算过程中随时查看整个计算的思路, 了解计算过程中每个参数的意义。

2.1.2可供选择的计算模式。对于部分需要迭代运算的过程, 程序提供了“自动迭代”和“手动迭代”两种模式。对于化工专业的从业人员、老师和对原理比较熟悉的学生, 可以选择“自动迭代”, 程序会尽可能地减少中间的停顿次数 (需要进一步输入参数除外) , 直接给出最后的计算结果, 这种模式适合以应用、研究为目的的计算。如果是初学者, 如刚接触化工热力学课程的化工专业学生, 则可以选择“手动迭代”。此时程序会在必要时暂停并弹窗, 对已完成的计算进行简单的解释, 并对下一步的计算给出必要的提示, 让使用者参与到计算的步骤中, 加深对相关知识点的理解。

2.1.3具体计算步骤的显示。程序中大多数的复杂计算都是在后台完成的, 最后呈现在使用者面前的仅仅是一个最后结果。程序在计算结束后提供了“是否查看计算 (迭代) 过程”的选项, 点击“是”后可以查看具体的数据处理过程, 如迭代次数和每一步迭代的结果等。

以本模块下的“RK方程”计算程序为例:

进入此界面时, 用户可选择迭代方式, 并在对应的文本框里输入方程的参数, 点击“计算”按钮。如果选择的是“自动迭代”, 则程序将自动进行迭代计算, 并在计算结束后弹窗询问是否查看迭代过程, 用户可根据自身需要选择是否查看。自动迭代的数据可以保存至txt文本, 方便用户查看。

若选择手动迭代, 点击“计算”按钮后, 会弹出提示窗口, 用户按照提示进行下一步操作, 每次点击“计算”按钮后, 都会出现提示窗口, 引导使用者逐步完成整个计算过程。用户熟练使用后, 可选择不再显示该提示窗口。

此外, 在程序运行的任何时候, 随时都可点击“计算流程图”, 查看计算的基本步骤, 方便使用者深入理解方程的原理。

2.2化工原理实验计算模块

化工原理计算模块包括:传热实验、干燥速率曲线测定、恒压过滤常数测定、离心泵特性曲线测定、流体流动阻力的测定、CO2吸收实验、转盘塔萃取实验等七个实验。

在化工原理实验模块中, 主界面为数据输入、输出窗口, 并附有装置图, 提供实验管路模型的直观展示。使用者点击上方菜单栏的“设置实验参数”, 或者直接在工具栏点击“设置”按钮, 设置好实验参数后, 在数据输入窗口中输入实验数据, 点击计算, 即可自动输出实验结果。化工原理实验相对而言计算本身并不是很复杂, 其更重视的是对实验原理的理解。因此, 本软件区别于其他数据处理软件的特色在于计算完成后的“显示数据处理过程”。以传热实验为例:

在本实验的处理程序中, 可以解决以下问题:

2.2.1计算出冷、热流体在相应温度下的比热容。

2.2.2在实验条件流量下, 计算出单位时间冷流体吸收的热量、热流体传递的热量。

2.2.3计算出流体的对数平均传热动力。

2.2.4计算出传热系数K。

2.2.5查看数据处理的详细步骤。

2.3其他功能

2.3.1字体: 主要用于设置化工原理实验数据处理结果的字体相关属性, 方便查看。

2.3.2显示原始数据:在显示实验数据处理结果 (过程) 后, 显示原始数据。

2.3.3调用程序:用于化工热力学方程之间的调用, 求出必要的参数。

2.3.4数据处理结果 (过程) 的保存:将化工热力学方程参数、计算结果、迭代过程保存于txt文件。

2.3.5操作提示:软件在必要的地方弹出窗口, 提示用户下一步操作。

2.3.6视频帮助:在“帮助”菜单选项下, 有“视频演示”功能菜单, 供用户查看相关演示视频, 了解软件操作。

此外, 由于本程序面向的主要用户是化工热力学、化工原理的初学者, 因此在输入数据时, 由于原理不熟、概念不清而导致的非法输入有很多。为了保证程序的正常运行, 程序会检查输入所有数据的有效性, 避免程序非正常退出, 并适当给出提示, 帮助使用者理解计算 (实验) 原理。

3.软件实际使用效果的反馈和展望

本软件经徐州工程学院化学化工学院2011级化学工程与工艺专业的学生试用, 效果良好, 学生对化工计算的畏惧之心大减, 提高了学习化工专业的兴趣。同时, 学生在使用过程中也提出了一些建议, 其中一部分已经在最新版本的程序中得以落实。

在后续更新中, 将增加作图功能, 软件可自动根据实验数据处理结果, 画出相应的曲线图, 并实现坐标范围值的自由选择和图形的放大缩小, 进一步完善软件的功能, 提高软件的实用性。

参考文献

[1]具有可视化界面的化工计算软件开发[J].国外建材科技, 2004 (25) :131-133.

[2]马沛生, 李永红.化工热力学 (第二版) [M].化工工业出版社, 2010.

[3]赫文秀, 王亚雄.化工原理实验[M].化学工业出版社, 2010.

[4]石连栓, 张涛, 李立宗.VB程序设计实训[M].清华大学出版社, 2005.

可视化计算系统 第7篇

MATLAB是一种简洁直观、灵活高效的计算机语言, 使用C语言编写, 以矩阵作为基本数据单位。MATLAB程序具有很好的可读性、可扩展性和可移植性, 可以和Excel, Fortran, C, C++Builder, VB, VC++等集成编辑环境及应用程序进行交互。MATLAB由语言、工作环境、工具箱和API等部分组成, 它为海量数据的分析、处理、可视化及应用程序的开发提供了核心的数学和高级图形工具[3]。

可视化教学指的是用科学仿真的方法将抽象的概念直观地表示, 把事物的本质从繁杂的自然表象中予以提取, 把难以观察到的现象加以形象地模拟, 目的是让学生用直观感知世界, 用本能去领悟知识[4]。由于计算机及多媒体技术的不断发展, 这种教学手段在数学、物理和力学等理论性较强的学科中得到了普及与应用。将MATLAB可视化技术引入到智能计算课程的教学, 可以增强学生的感性认识, 使学生能够快速地理解算法运行的机理。这不仅缓解了教师的教学压力、丰富了课堂教学的内容, 同时也提高了学生的学习兴趣与热情, 使其变被动学习为主动参与, 提高了教学实效。

一、在教学中引入可视化的可行性和必要性

智能计算算法多、与实际应用联系紧密, 对前导课程如高级程序设计语言和数据结构等要求较高, 而传统的非可视化开发工具实验结果不直观, 不利于学生对算法原理的理解和掌握。例如, 离散的Hopfield网络具有联想记忆的功能, 教材中这一单元的内容一般包括Hebb学习规则、权值设计方法、影响记忆的容量等, 抽象且难于理解[1]。如果在理论教学之后辅以MATLAB可视化教学, 通过设计一个简单的三元Hopfield网络[5], 就能很方便地观察到所生成的一些随机点动态地收敛到平衡点的情况, 从而对系统的稳定点和记忆之间的关联就有了一个非常直观的认识, 便于对理论知识的理解。由此可见, 可视化是理论教学工作一个必要而又有益的补充, 是现代化教学不可或缺的重要手段。

二、可视化教学的组织与实施

1. 研究可视化教学的规律及特点, 设计出科学合理的实施方案。

可视化教学首先应该遵循“数学理论为主, 典型算例为辅”的教学理念和原则。因为理论知识固然抽象难懂, 但它却是教学的基础与根本。如果忽视了对算法机理的了解, 学生在学习时就会停留于表面, 缺乏对事物本质的认识与把握。因此在教学活动中必须对理论知识讲深讲透, 在此基础上再实施可视化教学。可视化技术外在具有形象、生动、直观的特点, 内在蕴含图文丰富、信息量大等特征, 该技术的合理运用可使学生在学习时能将逻辑思维与形象思维有机地结合, 培养思维的灵活性和多样性。为此, 教师在课前必须充分了解教学目的和教学任务, 根据学生的接受能力对教学内容进行筛选与组织, 设计出合理的教学信息量, 避免多而全。同时在讲课时要注意把握好节奏, 控制好PPT的演示时间, 让学生有足够的时间进行思考, 以确保对授课内容的消化和理解。此外, 在教学过程中还要鼓励学生多发现、敢质疑、善讨论, 引导他们开展探索性的学习, 激发其学习的主动性和创造性。

2. 由浅入深, 使学生逐步掌握可视化程序设计的方法。

开展可视化教学的宗旨简言之就是教师要讲清楚、学生要听明白, 而实现这一目标的关键要素之一就是学生要对程序设计非常地熟悉。为此, 教师要发挥引领作用, 从一些基础的知识入手, 帮助学生快速入门。开始的时候, 教师在讲清程序的总体框架及运行步骤后, 要对程序逐行进行讲解。在学生理解和明白各函数、语句的含义之后, 再运行程序进行演示。下课时让学生把典型的程序拷贝下来, 便于课后研读和理解。在完成“听+看”阶段的教学之后, 按照循序渐进原则, 引导学生逐步习惯于自己动手编程。

例如, SOFM网络在学习过程中不仅能够对输入样本进行分类, 也能学习输入样本的拓扑结构和分布。借助Matlab神经网络工具箱容易设计出下面的演示实例[5]:P=rands (2, 2000) *0.5;net=selforgmap ([5%5]) ;[net, tr]=train (net, P) 。而网络训练的结果可以从程序运行结束后所生成的系列图形 (如模式分类结果图、获胜神经元统计图、邻近神经元距离分布图等) 直观地观察到, 方便了学生对背景知识的理解和掌握。在布置课后作业时, 首先要求学生模仿上述范例, 对平面上元素分布相对集中的若干个子点集进行自然分类 (例如:P=nngenc ([0%1;0%1], 9, 10, 0.05) ;net=selforgmap ([3%3]) ;[net, tr]=train (net, P) ) , 然后鼓励学生尝试解决鸢尾花种类识别等问题。通过这类简单、基础的练习, 学生就能够逐步克服编程恐惧心理, 会对编程产生浓厚的学习兴趣。再结合大量的练习和实践, 基本上就可以做到熟能生巧、学以致用。

3. 追踪本学科的发展动态, 不断完善程序库的建设。

程序库是可视化教学的“硬件”, 也是可视化教学成功的前提与保证。在程序库建设过程中, 我们采取了向外搜集 (网络、书刊等) 和自主研发相结合的模式。自主研发除了本科研团队在做的, 也指导学生在生产实习及毕业设计中完成, 内容包括利用智能算法解决一些优化问题 (如博弈论中的囚徒困境模型) 或者是设计制作智能算法 (如蚁群) 工具箱等。课题完成后将其收入算法的程序库中, 用于后继课的教学。

摘要:智能计算是一种新兴的演化计算技术, 在工程等领域有着广泛的应用。本文剖析了将MATLAB引入智能计算课程教学的可行性和必要性, 探讨了可视化教学的实施方案。教学实践表明, 基于MATLAB的可视化教学能使抽象的理论形象化、静态的模拟动态化, 从而增强学生的感性认识, 提高教学实效。

关键词:智能计算,MATLAB,可视化教学

参考文献

[1]吴微, 周春光, 梁艳春.智能计算[M].北京:高等教育出版社, 2009.

[2]尚荣华, 李阳阳, 焦李成, 侯晓慧.智能计算导论课程建设研究[J].计算机教育, 2011, (10) :52-54.

[3]施阳, 李俊.MATLAB语言工具箱—TOOLBOX实用指南[M].西安:西北工业大学出版社, 1998.

[4]尚涛, 石端伟, 安宁, 张李义.工程计算可视化与MATLAB实现[M].武汉:武汉大学出版社, 2002.

上一篇:中小型局域网下一篇:检察监督困境论文