书签 分享 收藏 举报 版权申诉 / 2

类型C#与Matlab混合编程在EA211水泵壳体平行度检测中的应用.pdf

  • 上传人:qsbonline
  • 文档编号:84356144
  • 上传时间:2017-06-16
  • 格式:PDF
  • 页数:2
  • 大小:406KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C# Matlab 混合 编程 EA211 水泵 壳体 平行 检测 中的 应用
    资源描述:
    C#与 Matlab混合编程在EA211水泵売体平行度检测中的应用
    口金洋洋□李居峰□袁丽
    上海大学机电工程与自动化学院上海200072
    摘要:介绍了一种EA211水泵壳体的上下面平行度的最小二乘检测算法。根据采点测量坐标值的原则检测形位误
    差,采用“基恩士”激光位移传感器来获得空间坐标值。借助 Matlab强大的数值运算功能,结合C#界面设计的简洁性和程
    序编辑上易学易操作性,设计了一种面平行度的简洁算法,用C#和 Matlab的混合编程来实现此算法,不仅提高了检測精
    度,还提高了产品测试的效率。
    关键词: Matlab C#编程面平行度最小二乘法
    中图分类号:TH311;TG801.3
    文献标识码:B
    文章编号:10004998(2014)06-0088-02
    水泵是发动机冷却系统的重要部件,它的作用是安全、稳定、简单、优雅的,由C和C++衍生出来的面向
    泵送冷却液,使冷却液在发动机的冷却水道内快速流对象的编程语言。C#综合了VB简单的可视化操作和
    动,以带走工作时产生的热量,保持发动机正常的工作C++的高运行效率,以其强大的操作能力、优雅的语法
    温度。汽车发动机使用的是离心式水泵,由売体、叶轮、风格、创新的语言特性和便捷的面向组件编程的支持
    轴承、泵轴、水封以及传动带轮等组成。
    成为.NET开发的首选语言。
    水泵壳体由铸铁或铸铝制成。铸铁壳体壁厚且质
    如果利用C#与 Matlab接口技术,一方面充分发
    量大,随着对发动机轻量化要求的提高,目前只在某些挥 Matlab的数值计算功能,并且可以不依赖它的软件
    商用汽车的大型发动机上还在使用铸铁売体的水泵。运行,另一方面在C#里做出漂亮的界面,把复杂的数
    很多铸铁売体上还带有部分水道和节温器安装室,这据处理交给 Matlab去做,这样有助于发挥程序各自的
    使売体的质量进一步增加。大多数轿车水泵采用了铸优点,降低开发难度,缩短编程时间,提高执行效率。基
    铝売体,而且尺寸越来越小,很多売体已经不再具有水于C#和 Matlab结合优勢的考虑,本文介绍一种C#与
    道的功能。本文所研究的大众汽车EA211发动机冷却 Matlab通过COM组件混合编程的技术,并且将这种技
    系统的水泵壳体也是采用铸铝材料,在其生产过程中,术成功地用于平行度在线自动检测项目。
    水泵壳体上下面的平行度是一个重要指标,它直接影
    响到水泵整体的性能以及汽车的行车安全。水泵壳体
    2 Matlab和C#混合编程的实现过程
    上下面的平行度要求如图1所示。
    通过COM组件的形式进行混合编程,首先要考虑
    1 Matlab和C#结合的思路
    0.15
    Z02
    当下, Matlab已成为应用最广泛的科学工程计算
    软件,它广泛应用于自动控制、数学运算、信号分析、图
    象处理、财务分析等各领域。 Matlab所使用的是一种脚
    本语言,是逐行解释执行的,程序中所有的变量都是通
    プ0.15
    过 mxarray来实现的,所以为了保证通用性,它的执行
    效率非常低,在开发一些复杂算法时会发现程序执行得
    O
    O
    特别慢,虽然 Math Works公司已竭力提高M脚本文件
    的运算速度,但到目前为止,效果仍然不能和同样功能
    的可执行程序相比。而且,M文件不能脱离 Matlab的应
    用程序环境,这就大大制约了程序的可移植性和通用
    性,因此, Matlab不适合作为通用的编程平台,这给混合
    編程出了一个大难题。
    C#是微软公司发布的一种面向对象的、运行于
    NET Framework之上的高级程序设计语言。它是一种
    收稿日期:2013年12月
    ▲图1EA211发动机水泵壳体的示意图
    88120146
    机械制造52卷第598期N
    的间题是编好的程序到了工厂“的电脑上能否正常运
    将3个系数分离下来为:a(1)=[1,0,0]a;a(2)=
    行。经过实际操作试验,发现只要拷贝一下 Matlab的
    0,1,0]a;a(3)=[0,0,1]a
    MCR(見即 Matlab Compiler Runtime)安装文件,然后到
    最后可以得到:a(1)=0.0010,a(2)=-0.000
    所要运行的电脑上安装一下就可使用。如果电脑上安a(3)=4.0233
    装了 Matlab,则不需要再重新安装这个软件。另外,不
    与传统的三坐标测量的结果对比发现,两者的误
    同的 Matlab版本提供的MCR可能会不同,如果在另差非常小,说明使用该算法是切实可行的。这样就得到
    一台电脑上自己编写的软件运行有间题,可能是编译了拟合曲面的方程z=a(1)x+a(2)y+a(3),为下一步计
    器的版本不同引起的。
    算平行度打下了基础。
    使用混合编程,首先把 Matlab提供的 MWARRAY
    在项目方案中,笔者打算通过“基恩士"ILK-G30
    类库 MWARRAY.dl添加到C#程序中。它的作用是把系列激光位移传感器采点的方法来测EA211水泵壳
    C#中的数组转化为 Matlab中的数组。同时需要在程体上下面的平行度。初步计划在上平面采7个点,在下
    序开始部分添加下面两句话:
    平面采8个点,采完这些点之后计算平行度。先利用下
    using Math Works. Matlab.NET. Arrays;
    usin
    面8个点拟合一个虚拟平面,然后再计算上面7个点
    Math Works. Matlab. NET Utility
    分别到这个拟合面的距离,取这些距离中的最大值和
    接下来需对 Matlab进行编译,然后生成,dl文件,最小值,炳者相减即得到所求的平行度。图2和图3分
    和添加 MWARRAY一样,添加到C#引用之中,并在别为水泵壳体上下面的采点情况示意图。
    程序开始处添加下面一每话
    using myfuti;(假设函数名为 my Futi
    这里有一点要注意,就是 Matlab中M文件里编写
    的程序必须是函数格式,不然就生成不了所需要的.dl
    文件。如果不是函数格式,需将其转换成函数合适之后
    再进行转换。具体操作就是在程序的第一行添加
    function[l= myfuti(即建立一个空函数),在程序的最
    后一行添加:end,这样就将其转成函数格式了。
    ▲图2上平面的采点情况
    ▲图3下平面的采点情况
    最后通过C#编程调用 Matlab进行计算,实现混
    合编程的任务。
    4结论
    3 Matlab和C#混合编程技术在平行度检
    本文主要介绍了基于 Matlab与C#的混合编程技
    术,并通过FA211水泵壳体平行度检测的案例说明了
    中的应用
    这种方法的可行性与优越性。文中的程序结合了C#
    掌握了混合编程的技术之后,笔者打算把它应用与 Matlab各自的优势,不仅提高了工作效率,使程序
    在近期所做的EA211水泵売体平行度检测项目上。在员更容易开发出功能强大、界面友好的软件,同时也提
    计算平行度的算法选择中,决定使用当今最流行的最高了系统的运行效率与精确性。这对于实现系统的无
    小二乘法进行曲面拟合,即根据空间所给的n个点坐缝集成、有效缩短软件开发周期、优化系统性能是十分
    标来拟合一个面,使各个点到这个拟合面之间的距离有意义的。
    最小,那么这个平面就是所要求的面。从另一角度来
    参考文献
    看,就是求得一个平面方程z=
    展开阅读全文
    提示  文档分享网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C#与Matlab混合编程在EA211水泵壳体平行度检测中的应用.pdf
    链接地址:https://www.wdfxw.net/doc84356144.htm
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    版权所有:www.WDFXW.net 

    鲁ICP备09066343号-25 

    联系QQ: 200681278 或 335718200

    收起
    展开