APP下载

基于虚拟仪器口袋实验室的循迹双车跟随实验

2020-12-16岑文广李俊贤张志明赵文瑞

实验技术与管理 2020年11期
关键词:循迹控制器驱动

岑文广,李俊贤,张志明,赵文瑞,欧 锐

(同济大学 电子与信息工程学院,上海 200092)

高等院校工程教育专业认证要求工科类专业培养学生具备解决复杂工程问题的能力[1],工程人才培养需要学生在理论知识支持下完成大量的动手实验操作。目前新工科实践教学面临诸多挑战,以自动化类专业为例,其课程同时具备较强的专业理论性和工程实用性[2-3],一方面需要通过教学使学生理解和掌握基本理论和基本方法;另一方面也需要在实践过程中加深对知识点的理解,熟悉其在工程实际中的应用[2-4],提高学生的创新意识和实践能力。

现实教学中,传统的实验实践教学方式要求指定时间在固定地点实验室中进行,普遍存在实验资源短缺(仪器设备不足、时空利用率低)、设备维护成本高、现有实验内容单一空洞、综合性、创新性不足等问题。解决此问题的可行方法是引入当前生产生活中的实际工程问题,与相关联的专业课程教学需求相结合,设计新的实验案例,多门专业课程融合[5-7],理论联系实践,开设综合设计性实验和自主创新性实验。

1 循迹双车跟随实验

随着现代工业信息化、自动化、智能化程度的需求提高,自动导引车(AGV)由于具有无需驾驶员、可靠性强、成本低、操作便利性高等特点,在制造生产业、工业运输业等辅助搬运领域得到了广泛应用[8-9]。AGV的设计与实现是一个复杂的工程问题,也是一个典型的负反馈控制系统,涉及传感器的定位和避障、控制算法运算、电机运动控制等一系列的专业课程知识和实训实践工作。现有的综合性实验实践中,通常是将 AGV简化为循迹小车,利用嵌入式微控制器MCU来实现设计、制作、装配、调试到成品等流程的学习[10-11],由于 MCU的种类繁多,开发环境各不兼容,编程学习会占用学生大量的精力和时间,影响学生对理论知识的掌握。

本文依托自动控制原理、传感器与检测技术、计算机控制系统等自动化类专业课程的理论教学内容,提出将NI学生随身创新设备myDAQ结合LabVIEW测试开发软件应用于综合创新性实验设计,引导学生在高效集成的实验环境下提高工作效率,基础理论知识与专业理论知识相衔接,将核心工作集中到算法的理论仿真与物理实现上。与常规循迹小车单车实验相比,双车循线导航及跟随运动的实验内容进一步扩展与提高,试验场景更加复杂,并需要学生自主完成。

2 虚拟仪器口袋实验室

虚拟仪器技术的引入使得计算机在硬件平台的支持下可以由软件实现常规仪器测量功能和控制信号输出功能,丰富了实验手段[12-13]。myDAQ是NI公司推出的一款便携式 USB接口虚拟仪器口袋实验室[14],外观和接口如图1所示。与本次实验相关的硬件资源包括:2个差分模拟输入通道、2个模拟输出通道、8个数字量输入/输出接口等;软件支持图形化系统设计环境LabVIEW二次开发功能。myDAQ与虚拟仪器技术相结合,配合软件开发平台LabVIEW,可快速综合多个课程的知识并专注于核心问题付诸实践,从理论无缝过渡到仿真和实验,在较短时间内独立开发完成一个完整的自动化专业实体类工程项目应用[15-16]。

图1 虚拟仪器口袋实验室myDAQ外观及接口[14]

实验采用myDAQ作为系统主控制器,使用myDAQ的模拟输入、模拟输出通道和数字输入/输出通道代替常规实验中MCU的类似功能I/O接口,以LabVIEW为开发工具[17],通过简洁易用的图形化界面操作,完成双车实验系统的传感器数据采集、控制器算法运算和驱动信号输出,实时获取实验动态过程参数,绘制和显示数据和曲线,并提供实验数据及实验结果记录功能。

3 实验设计与实践

3.1 实验对象车模

为简化设计,两辆实验车模选用同一型号的博思公司F型三轮车,为车模选配的电子电路和功能模块也相同,其中配套专用直流有刷电机型号为RS-380,动力控制采用双后轮驱动方案,方向控制通过后轮电机的差速实现(前轮为万向导轮)。组装好的实验车模如图2所示。驱动电路电源采用标准7.2 V/2 000 mAh Ni-cd电池供电。myDAQ及循迹传感器的+5 V工作电源由计算机USB数据线提供。myDAQ自身不带操作系统,整个实验过程需要连接计算机,编写LabVIEW终端程序完成控制。

图2 实验对象车模

3.2 传感器选型及信号处理

3.2.1 循迹传感器

红外对光管模块循迹传感器采用定制的高灵敏度一体式光敏对管,能对颜色变化不明显的灰度值进行识别,对管下方的颜色如果偏向于黑色,则返回低电平(“0”);如果偏向于白色,则返回高电平(“1”)。仅使用单个对管时,测量效果不佳,故实验选用的传感器模块由8路红外传感器组成,内部集成采集电路和处理程序,能较为精准地区分背景和轨迹的颜色,确保能返回正确的数字量,再由车载控制器程序控制myDAQ多路数字采集端口读取并依此判断识别引导线赛道。

3.2.2 测距传感器

双车跟随实验过程中,需要对后车和前车之间的距离进行实时测量,完成车距闭环控制。本次实验中选用 GP2Y0A21YK0F红外距离传感器作为测距传感器,标称有效测量范围为20~150 cm,输出模拟电压信号。实验中通过myDAQ的模拟通道对传感器的输出信号进行采集,再经过内部标度变换运算获得探测距离。

在专业课程知识点基础上,针对实践中传感器的使用要求,学生需要对测距传感器实际输出信号进行标定方能正确使用[18]。实测发现,该传感器在检测距离14≤d≤60 cm时,输出电压数值U与距离d之间基本上呈线性关系,函数表达式可拟合为:d=–22.515U+75.134;当 d<14 cm,信号电压与距离之间的关系发生突变,且不再保持线性。综合考虑传感器适用范围和小车实际运动状态,实验中双车之间的距离设定值定为30 cm。

3.3 电机驱动输出控制

车模配套的 RS-380直流电机的驱动电路采用带死区的 H桥结构[19],每个 H桥电路驱动一个直流电机,用于控制调速和换向,含4个功率 MOS管和 2个IR2184S芯片,结构简单、可靠性强,其电路原理如图3所示,直流电机接入到MO1+和 MO1–端子之间。实验所设计的双极性PWM全桥驱动电路需要提供两路开关脉冲 PWM1+和 PWM1–,控制功率 MOS管按时序导通/关断,实现电机的正转/反转功能,调整电机转速则通过改变PWM信号占空比来实现。

图3 电机驱动输出控制电路原理图

实践中发现,如果采用常规设计,需要产生4路独立可控的PWM波形,但由于myDAQ本身只有1路PWM输出,同时模拟输出也只有2路端口,因此实验中使用软件生成2路模拟PWM波形分别控制左/右轮电机,此时电机只能正转不能反转,在差速转向时只能进行加法而不能进行减法运算。实验对象小车一般在低速状态下运行,因此上述方法不会影响电机驱动功能的正常实现,从而在理论仿真设计和有限硬件资源之间取得平衡和适应。

3.4 闭环负反馈PID控制器

循迹双车跟随实验要求后车跟随前车,双车编队按一定距离间隔巡线运行,车载控制器需要在控制车体运行同时完成赛道循迹和跟随距离控制功能。双车闭环负反馈控制系统框图如图4所示。对于先导前车,实验中方向闭环控制循迹为主,速度开环控制。跟随后车除了循迹闭环控制之外,还需要根据车间距信息计算构成速度/定距闭环控制,故存在方向和速度/定距双闭环控制。实验要求学生先对车模建立合适的二阶或三阶线性数学模型,在 MATLAB环境中仿真实现基于速度PID算法[20]的小车自动巡线行驶和双车定距跟随,并在实车实验过程中以 LabVIEW 软件和 C语言结合编程的方式加以验证和修正,以获得满意的响应输出。

3.4.1 循迹算法

巡线循迹是小车运动的基本要求,根据循迹传感器的8路信号采集结果感知赛道信息,计算方向偏差,输入到加权 PD闭环控制器,计算得到控制量后输出驱动双电机,实现基本的闭环方向控制,即保障小车正常循迹行驶。为提高巡线效果,将数字量输入值近似为模拟量,越远离赛道中心在偏差计算上的权重越大;引入微分环节减少循迹超调量,使小车运行更平稳;记录小车实时转向,当小车丢失车道信息(驶出车道)时,按照历史记录继续运行,直到重新采集到车道信息,再继续正常运行。

图4 双车闭环负反馈控制系统框图

3.4.2 双车间距控制

在设计原型实验系统时,双车间距控制器采用比例环节调节,将距离信号与设置的定距数值之差作为控制器的输入量偏差,通过取用合适的反馈增益即可使得后车在车距较小时减速,车距较大时加速,实现车距的控制。在比例调节器作用下,系统一旦出现偏差,比例调节立即产生调节作用以减少该偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,会使系统的稳定性下降,甚至造成系统的不稳定。此外,考虑到距离过近时,传感器测量非线性化严重的因素,故将允许期望距离设置在合适范围之内。

3.5 软件设计与编程调试

实验中的软件基于统一的 LabVIEW 平台进行设计和开发,采用数据流方法驱动图形化编程语法,将主要精力用于专业领域内的算法和功能实现,同时与C文本编程源语言进行互操作,复用其代码或程序库,从而降低软件编程的复杂性,及时把所设计的控制算法转换为执行代码,简化系统设计和调试工作[17]。核心主程序的前面板(GUI人机交互界面)和后面板(源代码)分别如图5(a)和5(b)所示。

3.5.1 LabVIEW人机交互前面板

主程序前面板(GUI人机交互界面)中,主要由两部分数据区域组成。上部区域为小车运行时重要参数的显示部分,用于调试与记录当前运行状态,包括实际输出控制量(小车驱动板的电压信号、PWM 波占空比、两侧车轮的驱动偏置电压、小车当前运动方向等)、双车跟随距离状态(速度/定距控制器的输出控制量-左/右轮驱动电压初值)、循线传感器状态(8路数字信号、相关处理算法的计算中间值和最后结果)。下部区域用于控制参数的显示和输入,用于调试时方向和速度/定距双闭环控制器参数的在线实时调整,包括占空比参数调节(左/右轮驱动PWM波占空比)、驱动电压参数调节(PD控制器的比例环节系数Kp、微分环节系数 Kd、左/右两轮的驱动电压初值设置)、距离反馈参数调节(控制器的增益系数、两车间距期望值、小车速度上限)。

图5 循迹双车跟随实验核心主程序

双车实验中的前车和后车两辆车模的机械和电路结构相同,故控制程序可同时部署在两辆车上,无需单独开发。对于先导前车,实验中只进行循迹方向闭环控制,速度开环控制,故在程序中无需读取距离传感器,且距离反馈环节增益为零。此外,由于双车结构和组件对象存在细节差异,在实验中需要根据实际情况在其初始化模块中分别调整对应的初始参数。

3.5.2 LabVIEW源代码后面板

后面板(LabVIEW源代码)中,主要实现传感器数据读取和运算、数字控制器、控制量驱动输出等功能。为优化程序结构,学生在实践编程中将传感器信号采集、控制量驱动输出(运算后输出驱动参数)这两部分和硬件密切相关的程序在调试成功后封装为子VI,再放置于主程序中调用子 VI进行运算,从而提高程序可读性,整体布局更加整洁直观。在程序拓扑上,基于生产者/消费者设计模式,设计信号处理(传感器的数据读取处理、控制器内部运算,负责生成数据)和驱动输出(运算后输出驱动参数,负责处理数据)两个循环独立的架构,并行处理,使得小车运动控制周期合理取值,运行速度得以提升,从而改善当程序运行周期较长时引起的控制滞后,导致行驶时车身抖动等问题。

3.5.3 基于myDAQ的数据采集与信号生成

根据实验要求,程序设计需要注重数据的准确性和实时性,myDAQ需要完成的任务包括:采集灰度传感器的8路数字信号、采集红外测距传感器的1路模拟信号、生成 2路脉宽和幅值均可调的模拟 PWM信号,各子VI的程序框图如图6所示。

循线传感器数据采集子 VI创建数字输入采集通道,物理通道为 myDAQ2/port0/line7:0,对应硬件设计中传感器的8路数字量输出,配置读取模式为N通道单采样,采集得到的8位bool型数据转换为一维整型数组,输出提供给后续环节进行数据处理。

红外测距传感器数据采集子 VI创建模拟输入采集通道,物理通道为 myDAQ2/ai0,配置读取模式为单通道单采样,采集模拟电压信号后换算成双车间距。为确定较为精确的电压-距离标定关系公式,学生先采集到足够的传感器数据并保存,再离线采用标定拟合的方法计算得到电压-距离的关系,最后在线编程变换,获得浮点型数据“距离”作为输出。

实验中采用软件模拟的方式同时生成2路电机驱动信号,输出PWM信号是脉宽调制和幅值调控二者结合下的产物,以满足 0~100%变化区间内的转速控制要求。模拟信号生成子 VI创建模拟输出通道,物理通道为myDAQ2/ao0:1,采样模式配置为N通道、N采样。选用硬件定时的方式,根据 Nyquist采样定理合理配置采样频率及输出信号频率。使用“任意信号发生器”函数,模式选择“方波”,给定可调的信号占空比和电压幅值作为输入参数,生成连续模拟PWM信号波形,再将波形数据合成为数组形式写入myDAQ设备输出。

3.5.4 数字控制器程序设计

实践中发现,数字控制器设计比较复杂,如果继续使用图形和线条来描述数学公式和算法过程,会显得比较烦琐。在自动控制原理、计算机控制系统、嵌入式系统等专业课程的综合性实验中,针对直流电机对象的闭环控制器的设计已有相应工作基础,但其代码一般以C语言形式完成。故在编程设计和调试时,调用 LabVIEW 集成内置的公式节点,将图形化编程与文本编程相结合,使用 C++相似的语法结构和元素,直接利用已有文本代码,移植到程序框图中,执行复杂数学运算。循线方向和定距运动双闭环控制器的公式节点架构如图 5(b)所示,具体代码不再赘述。学生可将主要精力集中于控制算法和功能的实现及调试工作,无需再纠结于编程和语法细节,从而提高实验效率。

图6 基于myDAQ的数据采集与信号生成程序

4 结果与分析

4.1 实验场景设置

在实验室地面上铺设白线赛道,如图7所示,包括十字交叉、圆弧形和S形曲线等基本要素,按照扩展实验要求还可以加入路障、其他车辆等更复杂的要素。为验证本文中实验方法的有效性,在组装好双车后,按照理论分析和数据仿真结果,依次调试前车和后车的程序参数,先进行循迹实验测试,达到实验要求后再进行双车跟随实验调试,调试结果和数据保存为实验记录文件,供后续分析使用。

图7 基于虚拟仪器口袋实验室的循迹双车跟随实验现场

4.2 实验数据

实验开始时设定预期双车间距离为定值,前车循线前进(速度开环控制),后车控制本身运行速度从而在一定范围内保持与前车的距离。实验示例结果表明:前车和后车均能正常循线运行。其中5次循迹双车跟随实验实测数据(双车间距)如图8所示,数据采样率为15 Hz,双车间距离要求在运行时保持30 cm,5次实验起始时的双车间距初始值分别为20、25、35、40、45 cm。其中原始数据如图8(a)所示,曲线存在比较多的毛刺干扰,误差较大,经过数字滤波处理后的修正数据则如图 8(b)所示,误差减少,能较好地反映实际情况。

数据曲线能反映双车的行驶情况:当距离超出预期值并且继续增大时,前车较后车速度快,此时后车需要在正常循线的同时加速追赶,缩短双车间距;当距离小于预期值并且继续减小时,后车速度更快,此时后车需要减速行驶拉大双车间距以免与前车追尾;如果距离数值曲线在预期值附近做小幅度的振荡波动,表明双车的跟随情况良好,其车距基本能够维持在所设定的预期值30 cm左右,符合实验要求,如第1、4、5次实验数据后半程所示,波动较小,无明显过高的峰值或过低的波谷,双车实际运行中循线稳定、车距控制合理,实验较为成功。

图8 循迹双车跟随实验实测数据处理

4.3 结果分析

双车间距实测数据经过分析后可以反馈改进实验控制方案,结果表明:双车循迹跟随的距离控制基本满足实验要求,即能保证两车的间距不会太小或太大。但是两辆车之间的距离变化并不稳定,实验数据存在较为陡峭的曲线部分,表明后车的加速/减速动态性能不能满足理论指标,可考虑在控制器中加入积分环节和微分环节,进一步优化控制算法。原始数据中有超过实际车距的过大峰值和持续较长时间的大数值距离数据,是由于初始设计时未考虑到后车在循迹过程中与前车并不能一直保持在同一轴向上,距离增大超过一定范围后,红外测距传感器会因为安装位置、车模方向、复杂场地路线、车体机械振动等因素出现比较大的动态偏差(采集的数据会比实际双车间距更大),不能真实反映实际距离。在实验的后续改进中,如因成本因素仍使用本类型传感器,需要在调试数据处理的过程中实时滤波修正,方能更好地分析实验数据后对实际运行参数进行修改,提高循线跟随双车实验效果。

5 结语

以循迹双车跟随综合创新性实验的设计为例,引入基于虚拟仪器技术的学生便携式口袋仪器实验室,软件和硬件结合,为专业课程提供效费比高的工程实践平台。在此实验平台基础上,可继续深入结合更多的专业课程理论知识,拓展实验内容,丰富实验手段,完成各项综合性和创新性自主实验。学生在理论指导下,经过实验的设计、仿真、调试和测量等动手实践后,分层次实现实验要求,从而提高学习兴趣和实践效率,激发自主学习的积极性,培养创新思维和工程能力,达到“具备解决复杂工程问题”的高等院校工程教育专业认证要求。

猜你喜欢

循迹控制器驱动
基于DFT算法的电力巡检无人机循迹检测系统设计
基于模糊PI控制的驱动防滑仿真系统分析
工商业IC卡控制器改造为物联网控制器实践
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
浅谈基于机器视觉和姿态检测的循迹智能车
智能差分循迹小车设计
基于S3C6410的Wi-Fi驱动移植实现
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列