自动控制仿真实验系统设计分析

2014-07-27 09:50邵晓娟
电子测试 2014年13期
关键词:编译器编程语言自动控制

邵晓娟

(陕西工业职业技术学院,陕西咸阳,712000)

0 前言

Matlab是一个常用的仿真计算软件,它能够快速的进行数值计算和图片显示,而且它的编程环境也相对要简单。到目前为止,Matlab的运用范围十分的广泛,我们的数值计算、建立仿真模型、分析显示数据、制作专业的图形以及软件的开发等都需要使用它。

Matlab有着全面强大的功能,所以一直以来我们的自动控制仿真实验的设计都是采用的这种仿真计算软件。但是性能再强大的软件也会有一定的缺点,Matlab在运行时速度比较慢,而且要操作Matlab的研究人员必须要对其有相当的了解,这样才能够自如的使用。所以为了解决这一问题,我们尝试着将Visual C++与Matlab相结合,进而来研究自动控制仿真系统。下面我们将会详细地介绍两者相结合后的研究开发过程。

1 自动控制仿真实验系统的设计原理

在本文中我们向大家介绍的自动控制仿真实验系统的设计原理都是在实践中被广泛运用的,比较具有典型意义的实验。

1.1 自动控制仿真实验系统设计的功能结构图(见下图1)

1.2 自动控制仿真实验系统的设计

(1)如何设计系统菜单和仿真实验平台

我们在进行系统菜单设计的编程语言是Visual C++6.0,这种编程语言自带了有许多的控件,我们只需要根据具体的要求来添加控件,进行系统菜单的设计。这个系统设计主要是根据时域分析、频域分析和根轨迹分析来做出仿真实验,换句话说,这三个就是仿真实验的实现平台。所以,我们在正式开始软件设计的时候,要先采取措施来促成这三个仿真实验平台的实现,至于具体的实现措施我们可以采用建立菜单或者是下拉列表框点选方式,从而选择仿真实验平台。

(2) 仿真平台的界面设计

图1 自动控制仿真实验系统设计的功能结构图

对于这三种不同的仿真实验平台的界面设计,我们采取的设计思路和设计的基本操作方法都是基本一致的。窗体上部显示对应实验的传递函数图形,至于窗体中间的输入框的作用,就是用来输入各种参数。根据不同的情况输入具体的参数,就能够轻松地实现对多种情形的仿真实验。窗体的下面进行按钮的设计,一次来响应事件的发生。

2 Visual C++与Matlab接口实现途径分析

我们说这里的自动控制仿真实验系统的设计是结合了Visual C++与Matlab,那么我们要如何使这两者的功能完美的结合在一起呢,通过大量的研究与实验,我们大致总结除了三种促使这两者相结合的办法。

2.1 直接使用 Matlab 引擎实现接口的连接

Matlab被运行之后会执行其强大的计算功能,它工作的原理就是直接地调动自身原本就具备的Matlab Engine来实现目的。所以我们在进行软件设计的时候,Visual C++在编程的时候就可以调动这个引擎,从而将两者连接起来。换句话说,实现这个过程的原理,就相当于把Matlab内部实现功能转换到外部。这样做最大的优点在于可以很方便很快捷地到达我们预先设定的目标。但是它也继承了Matlab固有的弱点,就是它的运行速度非常的慢,占用的资源比较多。所以,如果要采用这种方法,成功的可能性会比较小。

2.2 通过 Matlab 编译器生成 C/C++ 源文件来促使接口成功

Matlab原本就具有很强大的功能,自身带有编译器,从而能够实现将自身*.m的文件形式,转化成Visual C++编程语言中的*.c/*.cpp的文件形式,这样就为我们调用Matlab强大的计算功能提供了可能。使用这种方法可以让系统离开Matlab的控制,独立的运行。并且生成的文件也比较小,这样的文件就可以更好地被运用到系统的设计中,这样程序的运行也比较正常。但是,对于有些图片的处理就无法达到理想的状态了,在进行编译之后可能无法被Visual C++编程语言识别,而且在使用这种方法进行编程时,有很多的步骤需要进行事先的设置,这样使用起来就不是很方便。

2.3 通过Matlab编译器生成dll/lib动态连接库文件以实现接口连接

除了直接使用Matlab的内部编译器来转化文件格式,我们还可以利用Matlab间接调用MSVC的编译程序从而将原来的*.m文件转换成*.lib/*.dll文件。这样一来当我们使用Visual C++来进行软件编程时就可以很轻松地将两者连接起来。这个运行的过程是独立于Matlab之外的,这样在运行时速度就会大大地提升;而且使用这种方法转化的*.lib/*.dll文件所占的内存也比较小,这样就可以很好的适用于软件设计的需要,软件程序的运行也会比较流畅。但是这种方法与第二种存在着同样的问题,那就是转化的后的文件可能无法被Visual C++的环境识别,也是需要实现进行设置,进行具体操作时就不是很方便。

上面我们简要的介绍了三种不同的接口方式,而且这三种方法也是各有千秋,至于具体选择哪种方法,还需要我们根据具体的实际情况进行挑选,从而更好地适应软件的开发。

3 要实现Visual C++与Matlab接口的具体操作

上面我们介绍了三种实现接口的方法,由于内容的限制,我们在这里主要介绍第三种接口方法的具体实现步骤。

使用这种方法的第一步就是要在系统中有Matlab和Visual C++运行环境的前提下安装MatlabAdd-in,具体的安装步骤如下图2所示。

图2 安装MatlabAdd-in的步骤结构图

然后我们就要设置MatlabAdd-in,在运行Visual C++后,我们选择“工具”下面的“定制”选项,在选择‘附加项和宏文件’,这样就完成了对其的设置。接着就会在C++的AppWizard中出现“Matlab Project Wizard”,接下来我们只要按照指示进行操作就可以完成接口的工作。

需要补充说明的是,Matlab编译器要将原来的文件转化成C文件,再由MSVC转化成dll文件,而且在这个过程中不能够改变文件的名称。还有就是要建立一个*.m文件的动态连接库,先预设一个图形显示函数:function showfigure()

figure(‘numbertitle’‘,off’,‘name’,‘MyFigure’);将名为showfigure.m的文件储存在相应的文件夹中。使用Visual C++中新建一个Matlab Project Wizard为向导的工程,在接着设置应用程序的类型为SharedM-DLL。然后选择Use Handle Graphics为Yes,接着选择目标文件进行确认,这样就完成了动态库的设计。这样也就可以顺利的生成*.lib,*.dll,*.h文件了,以便运用到应用程序的设计当中。

4 小结

对于自动控制仿真实现系统的设计和研究是非常重要的,我们在具体的实践过程中已经发现了许多存在的问题,这些问题都亟待我们去解决,所以对其的研究还要加强。Visual C++与Matlab相结合在很大程度上解决了这一问题,当然还会有很多的其它的办法,这还需要我们的进一步研究。

[1]潘孝勇,等.Visual C++与Matlab的混合编程[J].计算机仿真,2004,21(3):140~143.

[2]杨素林,等.一种基于NS2、Visual C++和Matlab的网络化控制仿真软的实现[J].计算机与数字工程,2005,33(12):121~124.

[3]邢辉,等.基于Borland C++Builder和MATLAB混合编程的仿真应用[J].计算机与现代化,2005(10):54~59.

[4]杨杰,等.基于MATLAB和Visual C++的风机流场分析的可视化研究[J].煤矿机械,2004(3):44~45.

[5]杨建国,等.在Visual C++中不依赖MATLAB环境调用其函数的方法[J].计算机应用研究,2001,18(9):98~99.

猜你喜欢
编译器编程语言自动控制
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
基于相异编译器的安全计算机平台交叉编译环境设计
Java编程语言的特点与应用
电力拖动系统的自动控制和安全保护
浅谈不同编程语言对计算机软件开发的影响
M2W中波发射机自动控制天线倒换系统
编组站停车器自动控制开通方案
唐钢热轧1810线工艺润滑改造自动控制的实现
Microchip为MPLAB XC系列专业版编译器推出低成本可续订包月许可证
面向对象Web开发编程语言的的评估方法