采用HDL语言编程和FPGA器件实现悬挂运动物体的精确控制设计

描述

在现代的工业控制、车辆运动和医疗设备等系统中,悬挂运动系统的应用越来越多,在这些系统中悬挂运动部件通常是具体的执行机构,因而悬挂部件的运动精确性是整个系统工作效能的决定因素,而在实际中实现悬挂运动控制系统的精确控制是非常困难的。靠改变悬挂被控对象的绳索长短来控制被控对象运动轨迹的悬挂运动控制系统,在生产控制等领域有很广的应用范围,但受技术上的制约,使用也有一定限制。传统的悬挂控制系统设计是采用单片机作为系统控制器,通过软件编程实现各种算法和逻辑控制,但由于其芯片资源有限,运算速率慢和易受干扰等因素,因而在较大系统的开发上受到限制。FPGA可实现各种复杂的逻辑功能,密度高,体积小,稳定性高,运算速度快,还可进行软件仿真和调试,适合作为大规模实时系统的控制核心。本文采用Verilog FPGA设计悬挂运动控制系统的控制器,通过输入模块传送控制参数,采用HDL语言编程实现的控制算法,驱动步进电机,对悬挂运动物体进行精确的控制。

1 系统设计方案

本设计具体设计目标为控制系统能够通过键盘或其他方式任意设定物体坐标点参数,且物体在80 cm×100 cm的范围内做自行设定的运动,运动轨迹既有曲线(圆),也有直线(任意两点和定点),物体在运动时能够在板上画出运动轨迹,限制在一定的时间内完成。根据设计指标,需要实现勾画设定轨迹和对设定轨迹的搜寻功能,并能实时地显示物体中画笔所在位置坐标。其系统方案框图如图1所示。

芯片

控制模块是整个系统的核心,键盘输入模块产生按键信号,按键信号送人FPGA对物体进行设置校正以及轨迹参数设定,FPGA对送来的信号进行分析、运算、处理,将控制信号输送到电机驱动模块,控制电动机的转速,使物体的运动轨迹得以控制,同时由显示模块显示物体中画笔的坐标。

2 系统各模块的设计与实现

2.1 控制模块

系统结构图如图2所示。其中,控制模块是系统设计的核心,由FPGA实现。此模块是通过HDL硬件描述语言,在智能型可编程逻辑器件开发试验系统KH- 310的硬件平台来控制设计的,利用FPGA芯片可实现对步进电机的控制功能。功能包括:步进电机的正转、反转、定位功能及调速等功能。FPGA由输入的数据来计算物体要移动的距离,直接发出控制脉冲控制电机的转动,进而控制物体的运动方向。由于少了反馈电路,系统的精度只与FPGA采用的算法准确性有关,此种方式电路结构简单,成本低且易于调整和维护,是一种较理想的方式。

芯片

2.2 键盘模块

键盘是实现人机交流的一种装置。在本系统中,采用4×4矩阵式键盘共阳极接法。键盘上的每一个按键其实就是一个开关电路,当某键被按下时,该按键的接点会呈现0的状态设置键;反之,未被按下时则呈现逻辑1的状态。键盘各键布局及功能介绍如图3所示。

芯片

“0”~“9”:数字输入,用于设定一个坐标点的X,Y值;而且键1、键2、键3、键4、键5、键6和键9具有第二功能。

“A”:启动键,用于所选运行方式的开始运行控制键。

“B”:复位,用于各项初始化。

“C”:确定键,用于设置、方式输入值的确定。

“D”:停止,用于停止步进电机转动。

“E”:设置键,手动对位或任意设定坐标点参数键,按上、下、左、右键进行手动对位控制,再按确认键确认(图4所示)。

芯片

“F”:方式键:首先按下方式键,然后按数字键选择方式再确认(如图5所示),方式有以下几种:

方式1:归位,让物体自行回到原点。

方式2:做自行设定的运动。

方式3:画圆,首先利用数字键设置圆半径进行确认后,再按启动键运行。

方式4:定点运动,首先利用数字键设置一个坐标点的X,Y值进行确认后,再按启动键运行。

方式5:寻迹,首先让物体运行在轨迹起点,按下启动键开始寻迹。

2.3 电机驱动模块

采用功率驱动电路L298内含4通道逻辑驱动电路,分别控制步进电机四组线圈A,/A,B,/B通电与否。步进电机的激磁信号则由智能型可编程逻辑器件开发试验系统KH-310试验平台上的JP4的信号输入控制,分别驱动步进电机的A,/A,B,/B线圈,采用两相激磁方式。

2.4 电机电路

电机是整个系统实现功能的主要载体之一,它的主要功能是通过对缠绕其上的绳子的伸缩来实现悬挂物体的运动。步进电机是一种将电脉冲转化为角位移的执行机构。本系统使用42BYG型号步进电机,其原理是将电脉冲信号转换成角位移,它的转子的转角与输入的电脉冲数成正比,转速与输入的电脉冲的频率成正比,旋转方向由脉冲的分配顺序决定,可以通过控制脉冲个数控制步进电机的角位移量,从而达到准确定位的目的。

2.5 显示模块

液晶显示器是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电光效应,在电源的开关之间控制光源透射或遮蔽,产生明暗两种效果。本系统采用16×2 LCD液晶显示屏作为人机对话的友好界面。系统设计实现物体所在坐标和画笔所画线段的长度的动态显示,并有输入光标跟随和开机等待提示等人性化功能。

3 系统软件设计

设计系统的总流程相对比较简单,采用VerilogHDL语言。为达到设计指标的控制精度和响应时间,针对各项功能设计相应的控制算法。系统流程图如图6所示。

芯片

3.1 两点运动算法与实现

采用数学建模法,运用几何知识把物体运动轨迹和两个电机所在的位置联系起来,通过坐标用数学表达式表示出来,并转换成电机所要转动的偏移量,最后把偏移量转化为电机所要转的速度。结合图7说明,设L1为左绳在d点的线长,L2为右绳在d点的线长,L1‘为左绳在e点的线长,L2’为右绳在e点的初始线长,被控对象物体的受限区域的顶点坐标分别为a(xa,ya),b(xb,yb), c(xc,yc),o(0,0),当悬挂物从d点运动到e点时,左绳和右绳的长短必然发生变化,电机M1的收放线长度为△L1,当△L10时,电机反转。电机M2的收放线长度为△L2,当△L20时,电机正转。计算如下:

芯片

从键盘输入起始坐标值(xd,yd),将(xd,yd)代入式(1)和式(2)中计算出L1和L2,再从键盘输入终点坐标值(xe,ye)代入式(3)和式(4)中计算出L1‘和L2’,两点(定点)运动算法流程图如图8所示。

芯片

3.2 做圆运动的算法和实现

本系统设计指标悬挂物能够画一个圆,采用微分曲线直线逼近法,首先将圆周等分为N 份,将每小份弧线段等效为直线段画出,N越大,曲线就越光滑。设所画圆的圆心坐标为(x0,y0),半径为25 cm,(x,y)为圆周上的任意一点,由此确定圆的方程为:(x-x0)2+(y-y0)2=252。若直接使用该方程来求圆上点的坐标,算法复杂;若采用圆的参数方程:X=x0+25cosθ,Y=y0+25sinθ,则圆的坐标仅与参数θ有关。因此,使角度以θ某一设定的角度步长ω累加,使θ+pω在周期[θ,θ+2π]内变化,其中p为累加值。这样就可以采样到圆上均匀的点,显然,角度步长ω越小,在圆周上取得点越多,控制也会更精确。根据圆的参数方程,计算圆上点的坐标,通过调用定点程序来实现。画圆流程图如图9所示。

芯片

4 结 语

系统硬件在智能型可编程器件实验系统KH-310集成开发,软件设计在QuartusⅡ环境下。系统各组成模块通过Modelsim进行仿真,选用优化效率和兼容性好的综合器Synplify对程序进行综合,用A1tera公司的EPEC6Q24OC8L作为编程芯片,系统在1 MHz下工作,经现场实验,其结果表明:该系统可以通过键盘任意设置悬挂运动物体的位置;在规定时间和运动区域的情况下,可以快速地完成运动距离;可以完成运动坐标点的显示和电机启/停功能。

本文设计的基于FPGA控制的步进电机悬挂运动控制系统具有可靠的硬件和优良的软件设计支持,可实现对悬挂运动的精确定位。利用FPGA实时控制能力和步进电机的精确定位能力,完全可以设计出高性能高精度的控制系统,例如改善人工清洗高楼幕墙容易发生危险状况,将悬挂物设置成清洗机构。在现代工业、农业和国防建设中,使用和推广这种系统,有着十分重要的现实意义。


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分