在VB开发环境下制定前台用户界面利用Matlab强大计算功能实现后台模型实时仿真为了实现前台界面和后台仿真环境间数据传递应用ActiveX自动化技术进行VB和 Matlab的间接口设计通过建立在VB应用和Matlab仿真环境的间ActiveX自动化连接实现了在VB环境下对Matlab仿真命令并在VB友好用户界面中实时显示仿真结果
1 VB和Matlab间接口分析
1.1 VB和Matlab接口形式
为了能够充分利用Matlab系统提供丰富库Matlab本身提供了应用接口API(Matlab application program erface)因此VB和Matlab接口设计有多种实现方式
(1) 借用C和Matlab接口将Matlab文件(*.M)编译为动态链接库(*.DLL)VB在代码中生成DLL中以实现算法便于用户脱离Matlab环境使用由于算法部分采用C语句运行速度较快可应用于实时运算但是这种思路方法对开发者在设置和编程上都有较高要求
(2)通过使用嵌入VB中矩阵库MatrixVB思路方法实现接口MatrixVB是第 3方插件利用和Matlab相似、语法嵌入到VB中可以像使用VB、命令样使用Matlab这种思路方法语法和使用比较简单编程效率很高几乎完全可以融入VB语言特别是对图形处理非常方便弥补了其他思路方法在图形处理上弱点但由于它仍然采用解释执行执行效率较低因此实时运算难以实现特别对于 Matlab各类工具箱尤为困难
(3)在Visual Basic中通过Matlab引擎接口使用WindowsActiveX技术和Matlab进行数据交互通过Object.Execute语句在中直接使用Matlab提供库和图形库
1.2 ActiveX自动化技术
ActiveX 是种支持组件集成MicroSoft Windows协议自动化技术通过ActiveX技术可以将区别环境下开发组件集成到个应用中;ActiveX同时又是种面向对象技术属于组件对象模型(COM)子类COM为所有ActiveX对象定义了对象模型每个ActiveX对象支持定接口即支持区别思路方法、属性和事件利用这些思路方法执行相应动作帮助客户端实现定功能Matlab支持两种类型ActiveX技术:ActiveX控制容器和ActiveX AutomationActiveX控制容器可以将区别ActiveXControl控件集成在个应用中;而ActiveX Automation是种允许个应用(客户端)去控制另个应用(服务器端)协议在本文中Matlab是服务器端VB是客户端通过 Automation客户端可以执行Matlab命令并和Matlab工作空间进行数据交换以达到Matlab来训练神经网络目
2 ActiveX技术在接口设计中应用
Matlab ActiveX自动化服务功能主要包括在Matlab工作空间执行Matlab命令直接对工作空间进行存取矩阵操作等
Matlab 提供了个自动化对象其外部名称为Matlab.Application支持COM技术外部(如VB)通过COM技术提供得到自动化服务器对象支持指针并通过接口控制和使用自动化对象在VB应用中创建了MatlabActiveX对象后就可以使用这个对象所包含各种思路方法来实现对MatlabMatlab.Application对象含有3种思路方法分别是ExecuteGetFullatrix和 PutFullMatrix
(1)BSTR Execute([in]BSTR Command):BSTR表示宽串类型它和VB存储串所采用数据格式相同该思路方法接收串命令并在Matlab中执行将结果以串形式返回
(2)void GetFullMatrix([in]BSTR Name[in]BSTR Workspace[inout]SAFEARRAY(douMe)*pr [inout]SAFEARRAY(double)*pi):GetFullMatrix思路方法从指定工作空间检索个完整实型或虚型 mxArray其实部和虚部被分别存放到2个单独Double型中可以利用GetFullMatrix思路方法将Matlab中个矩阵变量传送到VB中个维或 2维中其中Name指定了Matlab中矩阵变量名;Workspace指定了该矩阵所在Matlab工作区;pr 指VB中实部;pi指VB中虚部
(3)void PutFullMatrix([in]BSTR Name[in]BSTRWorkspaee[inout]SAFEARRAY(double)*pr [inout]SAFEARRAY(double)*pi):PutFullMatrix思路方法将个mxArray放入指定工作空间各参数含义及思路方法和GetFullMatrix思路方法类似
3 VBMatlab在WEDM仿真软件Software开发中应用
基于BP神经网络电火花线切割(WEDM)工艺仿真系统主要用于实现工艺数据库管理、工艺效果预测、加工参数优化等功能在VB开发环境中Matlab神经网络工具箱是为了建立工艺效果预测模型和加工参数优化模型这是仿真系统主要功能建模部分核心代码如下:
该部分作用是VB把用户输入参数传到Matlab空间在Matlab空间中利用神经网络工具箱训练网络将结果输出进而实现仿真系统几个模型建模.gif' /> 1是训练神经网络时样本输入数据包括工件厚度T(单位:mm)、脉冲宽度tON(单位:s)、脉冲间隔tOFF(单位:s)、峰值电流IP(单位:A)、间隙电压VS(单位:V);.gif' /> 2是样本输出数据包括切割速度vw(单位:mm2/min)表面粗糙度Ra(单位:μm)图1为线切割工艺仿真系统主控界面包括加工参数数据库、系统建模、工艺效果预测及参数优化等部分建立模型时首先利用数据库中参数训练模型模型训练完成后便可以对区别加工参数所对应加工效果进行预测并对给定材料、厚度条件下加工参数进行优化给出优化结果
建模所需样本数据如表1所示网络训练结果如图2所示
为验证模型正确性用没有参和神经网络训练验证数据检验模型结果如表2所示从仿真结果可以看出利用VBMatlab混合编程建立预测模型可以反映机床工艺规律建模是成功可以应用于实际生产中
4 结 语
VB和Matlab混合编程简单方便效率高能够应用于WEDM仿真系统中以实现系统功能缺点是要依托于Matlab平台执行速度慢灵活性较差
最新评论