0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以反馈信号控制的步进电机XY平台选型

西西 来源:博客园 作者:V·Shawn 2020-09-10 15:43 次阅读

1.序言

半年没写过博客了,不过这对于我的博客来说似乎是常态?这半年来忙着做毕业论文,没弄什么自己的研究,而实验室的东西实在是不好泄露出来,所以我也是“虽欲言无可进者”了。

上星期趁着论文提交的空挡,把一直拖着的一个小项目开了个头,其实是朋友有个外快小项目要做,具体内容不说,项目的基础是XY平台的视觉控制,因此在前期研究中主要要做平台选型、控制购买、接线研究、模拟实验等工作,这里记述下来以防忘记,顺便也给其他人做个参考。

本次控制通过相机采集图像,以此为反馈信号做控制,使平台上的某个点位移到指定的位置。然后本文写得更像随笔形式,内容可能有点杂乱,见谅了。

2.平台选型与硬件接线

2.1 XY平台选型

项目中需要做到精度较高的位移控制,且承重要求3kg以上,因此XY平台选型时主要考虑步进电机的XY平台,淘宝上一搜就是一大片。

从中挑选了一台二手日本平台,由于价钱便宜店家不提供技术支持,接线什么的得自己搞。

2.2 步进电机驱动

步进电机驱动不需要购买,我手上有一块前辈留下来的,正好可以用,同样没有任何资料。从其电路板上发现驱动芯片是TA8435H,于是查到其引脚功能表。

根据这个功能表可以确定驱动上几个引脚的功能,并用一个四相步进电机测试,发现驱动板功能完好。

电机供电上,考虑到要驱动两台步进电机,并获得足够的驱动力,因此我试用了一个12V 4.5A的开关电源

2.3采集卡

为了使计算机能够控制电机驱动,这里还需要一个电脑IO卡,我用的依然是以前留下来mc100 USB Card,方便好用还便宜,淘宝上一搜一大把。这个东西IO口波纹比较大,而且没做好隔离容易烧,不过既然是实验用,那就将就一下了,实际产品中是肯定不能用这个的。

2.4平台接线

平台到货后检查发现电机型号查不到,只知道是三洋1.5A的步进电机,没办法只好电机的线给拨了,用物理方法来测极性。拨开线后发现步进电机是8相的,于是要测出四组通路,通过万用表测通,发现相通的几根线是这样的:

红-绿

蓝-白

黄-棕

黑-灰

为了测出四组线的相性,需要进行多次接线测试,并汇总结果得到下表(只保留了几组数据,实际中我为了完全确认相性,各种接线组合都测了):

根据这个表,可以确定最终的接线方法,此处使用的是并联接法,连线如下表。

8相步进电机还有另外一种串联接法如下图:

2.5硬件组装结果

最后把两个电机都接到步进电机驱动上,USB采集卡插好,XY平台锁死,相机固定。

得到了个凌乱的实验现场,图中上面那坨黑的是工业相机。

3.平台控制算法

控制这一块我已经丢了差不多三年了,现在再捡起来发现PID都不会写了,再加上步进电机的控制我也没做过,总之是不好弄啊。

首先极力回忆一下本科时微机原理课程设计里做步进电机控制那题是什么做控制的,想起有两种控制方式,一是控制步进电机的步长,二是控制其步数。那么这里既然要控制的是位移量,那么控制步数应该是比较好的选择。但对步进电机来说,每秒走1000步几乎已经是极限了,再快的话电机扭矩会不够,而1000步转换到XY平台上实际也就位移了1cm,所以当位移量较大时,控制的滞后环节可能会较大。但走几步就再控制一下也不现实,毕竟相机的采样时间摆在那,几步就采样控制一下那么控制花费的时间可能会较长……

想来想去也没想到一个最佳的控制方案,总之先用PID控制试试看。

于是搜索增量式PID公式,花十几分钟把C++版本的PID控制器写出来:

然后设计控制周期为100ms,死区5个像素,胡乱设置一下PID参数,只做x方向的平台控制。结果…好嘛,不管怎么样调试系统震荡都很严重,大概是这样子的:

最后我实在是懒得整定PID参数了,于是重新设计控制算法。

当误差大于50像素,用PD控制快速移动平台。

当误差在50像素以内时,根据事先做好的标定[注1],查表获得位移的步长进行一次移动。

移动完成后再次检查还有多少误差,以1的步长慢慢消除该误差。

[注1]这里目标点的位置是固定的,因此可以实现进行多次标定,确定图像上各个坐标上的点要位移目标点处需要走多少步,但考虑到相机畸变这个标定是无法完全准确的,因此为尽量减少畸变造成的误差,位移的目标点应放在相机视野中心,且只做该点半径50像素内的点的位移步数标定。

根据上述控制流程,能够较为快速地完成控制,控制精度可在0.5像素以内,具体可以达到多少由于现在相机的安装位置角度都没定下来,所以我暂时也没仔细测了。

4.程序结构设计

XY平台涉及到X方向与Y方向的控制,两个控制是相互独立的,因此我采用了两个线程对它们分别控制,下面是随手乱画的结构图:

程序运行后开辟三个线程,其中两个分别负责驱动两台电机,主线程则负责计算控制量,该控制量也就是另外两个控制线程的步数。

在架构上尚未做设计,但为了提高程序的可拓展性(毕竟实用化后相机、采集卡都得换),项目内的几个操作类都通过基类设计好了统一的接口,以方便今后更换硬件。

5.图像处理算法

这里图像处理算法偷懒了,采用的是《相机位姿估计2:[应用]实时位姿估计与三维重建相机姿态》中跟踪红点的方法,原理是差不多的,只是这里改成了追踪黑点而已,就不详细写了。

实际项目里图像算法当然不会那么简单,不过这里目前还是一片空白,是下一步的工作重点了。

6.实验截图

最后随便给两张程序运行时的截图,控制台坐标是当前黑点坐标,控制目标是[500,500],u1是x平台的控制量,u2是y平台的控制量。

运行过程中

两秒后完成位移,黑点被移动到设定位置。

完成控制

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 步进电机
    +关注

    关注

    149

    文章

    2938

    浏览量

    146258
  • 反馈信号
    +关注

    关注

    0

    文章

    21

    浏览量

    8163
收藏 人收藏

    评论

    相关推荐

    什么是步进电机的细分控制步进电机为什么要细分,如何细分?

    什么是步进电机的细分控制步进电机为什么要细分,如何细分? 步进
    的头像 发表于 02-18 09:39 2663次阅读

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机步进电机
    的头像 发表于 02-14 16:29 901次阅读

    步进电机控制器电路图分享

    步进电机控制器是一种能够发出均匀脉冲信号的电子产品,主要用于控制步进
    的头像 发表于 02-07 17:57 2020次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器电路图分享

    步进电机控制方法 步进电机和伺服电机的区别

    步进电机控制方法 步进电机是一种将电信号转化为机械转动的电动机,其输出转角是按照电脉冲
    的头像 发表于 01-22 17:18 578次阅读

    步进电机控制方法 步进电机控制器参数设置

    控制,需要使用步进电机控制器。步进电机控制器是一种电
    的头像 发表于 01-19 10:50 1147次阅读

    步进电机控制方法及需要哪些控制信号

    步进电机是一种将电子信号转化为机械运动的电动机,广泛应用于机器人、打印机、数码相机等领域。步进电机由于其精度高、固有扭矩大、容易
    的头像 发表于 12-20 11:21 1560次阅读

    Arduino篇—步进电机控制

    步进电机:** 步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。
    的头像 发表于 11-02 09:35 2492次阅读
    Arduino篇—<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>

    步进电机定位控制的常用方法

    步进系统=步进驱动器+步进电机步进电机步进驱动器
    发表于 10-30 11:30 1814次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>定位<b class='flag-5'>控制</b>的常用方法

    步进电机的概述及选型

    电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号
    的头像 发表于 10-25 08:07 528次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>的概述及<b class='flag-5'>选型</b>

    基于PLC S7-200与步进电机的运动控制

      步进电机的运行要有一电子装置进行驱动,这种装置就是步进电机驱动器,它是把控制系统发出的脉冲信号
    发表于 10-19 10:59 454次阅读
    基于PLC S7-200与<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的运动<b class='flag-5'>控制</b>

    步进电机选型要求 步进电机型号大全

    步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。在我国所采用的步进电机中以反应式步进
    的头像 发表于 09-14 08:09 1768次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>选型</b>要求 <b class='flag-5'>步进</b><b class='flag-5'>电机</b>型号大全

    步进电机控制方式有哪些种类

     步进电机是一种开环控制电机,通过输入脉冲信号控制其转角和方向。主要有以下几种
    发表于 09-05 10:50 2972次阅读

    步进驱动器+步进电机+西门子PLC控制案例

    步进系统=步进驱动器+步进电机步进电机步进驱动器
    发表于 08-25 11:15 978次阅读
    <b class='flag-5'>步进</b>驱动器+<b class='flag-5'>步进</b><b class='flag-5'>电机</b>+西门子PLC<b class='flag-5'>控制</b>案例

    步进电机控制原理是什么?如何实现步进电机控制

    先来看一下硬件原理图,可看到控制步进电机的管脚分别为:GPIO6[2]、GPIO6[3]、GPIO6[4]和GPIO1[15]。使用的是一路四相五线步进
    发表于 08-04 14:45 3935次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>原理是什么?如何实现<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>?

    步进伺服和步进电机是一种设备吗?

    信号控制电机的转动角度和速度。 步进伺服是一种基于步进电机的改进型产品,其工作原理是在
    的头像 发表于 06-13 08:30 583次阅读