基于视觉发电机油位检测与控制研究.docVIP

基于视觉发电机油位检测与控制研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于视觉发电机油位检测与控制研究

基于视觉发电机油位检测与控制研究   摘要:设计了一种基于图像视觉技术的发电机油箱油位检测与控制系统。通过MVCII1MM黑白相机采集油位观察口液位图像,通过USB2.0接口传送到工控机,采用自适应阈值二值化、椭圆检测、直线检测等一系列图像检测技术,得到当前油位高度,通过RS232接口传入PLC,根据油位高度打开液位阀进行相应的添油、排油、报警等操作。   关键词:图像视觉;发电机油位检测;二值化;直线检测   DOIDOI:10.11907/rjdk.171698   中图分类号:TP319文献标识码:A文章编号2017)010013903   0引言   传统的发电机油箱油位检测是靠人工观察和浮子阀控制,可靠性不高,难以及时获取油箱液位数据并进行相应操作,容易出现事故,需要一种稳定、安全、有效的液位检测技术。   随着科技的发展,人们研制出多种液位检测方法,如浮子式、压力式、电容式等[1]。由于发电机油箱密封,易燃、易爆,对压强要求高,非接触式液位检测方法是首选。常见的非接触式液位检测方法有雷达式液位检测、激光式液位检测、基于图像视觉的液位检测等等[2]。雷达式液位检测精度高,但成本高且技术难度大;激光式液位检测可在易燃易爆环境下进行,抗干扰能力强,但对安装空间及激光头防腐要求高;基于图像视觉的液位检测,经图像采集后由计算机进行处理获得液位高度。这种检测方法具有适应性好、检测精度高等优点。   本文提出基于图像视觉技术的发电机油箱油位检测与控制系统。通过微视工业摄像头采集油箱液位观察口液位图像,在VC++6.0平台下配置OpenCV1.0,对图像进行一系列图像处理获得油位的高低,并通过PLC打开液位阀进行相应的添油、排油、报警等控制。   1系统结构设计   系统由图像采集装置、PLC、工控机、RS232接口几部分组成。油箱液位由图像采集装置(相机、光源)采集图像,传入工控机,进行数字图像处理得到液位高度,通过RS232接口传入PLC,与PLC中预设好的上下限位阀进行比较,发出控制阀门和报警器信号。系统框图如图1所示。   系统CMOS光学传感器采用北京微视公司的MVCII1MM黑白摄像头,采用USB2.0接口,可使用自身SDK函数库进行二次开发,采集实时图像。   常见的照明技术有背光照明、直接照明、散射照明、同轴照明等[3]。由于本设计是对密封油箱液位观察口里的液位进行检测,不易采用采光效果较好的背光照明,但如果采用直接照明,观察口是玻璃材质会引起镜面反光现象,故使用同轴照明,即设置一块45°半透半反玻璃,LED灯?l出的光线垂直照在液位观察口,从液位观察口反射的光向上穿过半透半反玻璃进入摄像头。这样消除了反光,图像中也没有摄像头影子。   选用三菱FX2N作为控制单元,只需使用一个IO口接收由FX2N232BD 通讯模块接口传来的液位高度信息,3个数字输出口用来控制补油阀、排油阀和报警器。   2基于OpenCV的视觉测量软件   视觉测量系统软件设计流程:微视相机采集实时图像,进行图像转换成OpenCV的数据类型,再采用OpenCV 库函数进行处理分析,如图3所示。   2.1图像采集预转换   使用微视公司的MVCII1MM工业摄像头,不能直接调用OpenCV函数打开视频函数进行采集,只能使用自身SDK函数。先初始化设备,使用cvSetData函数对每一帧图像进行格式转换,转换成OpenCV 库函数常使用的IplImage数据类型,再利用相关图像处理函数对采集的图像进行处理分析。对图像的圆和直线进行检测,模拟油位观察口和油位检测效果。初始化函数和转化程序如下:   (1)设备初始化函数MV_Usb2Init。   int nRet = MV_Usb2Init(MVC1000, nIndex, m_CapInfo, m_hMVC1000);   MVC1000用于表示摄像机的字符串   nIndex当此函数调用成功时返回,返回MVC1000相机索引,本设计只采用一个摄像头,则返回0   m_CapInfo用于初始化捕获视频帧的参数   m_hMVC1000返回的MVC1000设备句柄   (2)设置每帧显示前的图像处理回调。   MV_Usb2SetFrameCallBack( m_hMVC1000, FrameCallBack, this )   FrameCallBack是设置的回调函数指针,里面的第一参数是sdk开发包送出的采集图像像素首地址指针[3],本文通过这个指针访问并转换处理图像数据。   (3)图像格式转化程序。   void CDlgDemoDlg::FrameCallBack(BYTE *pData)   {   

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档