模糊PID算法的水下机器人控制系统优化

2024-03-14 10:24章盼梅
机床与液压 2024年3期
关键词:单片机控制器机器人

章盼梅

(广州城市理工学院机械工程学院,广东广州 510800)

0 前言

水下机器人是在水中作业的一种新型机器人,主要用于海洋水中环境探测、湖泊水质检测、船舶水下检修等。近年来,半导体技术、传感器技术、计算机软硬件技术的发展为水下机器人的发展提供了技术保证,使水下机器人技术得到了快速的发展。水下机器人是一种复杂的机器人,主要由机械结构和控制系统两部分组成,控制系统是水下机器人的核心,是保证其能否智能运行的关键。

当前国内学者对水下机器人控制系统研究比较活跃,以寻求更稳定可靠、更先进智能的水下机器人。文献[1]设计了一种应用于内陆湖泊水质监测的机器人,设计其机械结构和控制系统,该自控装置以STM32为单片机控制器,利用超声波传感器、GPS定位模块等,实现了水下机器人水下运行。文献[2]为解决当前国内海生物捕捞困难、自动化程度低等问题,设计了一款海生物捕捞机器人,该机器人水上系统由上位机、遥控器等组成,下位机由单片机、传感器、蓄电池等组成。文献[3]为实现水下目标的探测和数据的输出,设计了一款小型智能鱼机器人,该机器人由APP监控软件、单片机、传感器等组成,最终实现了对水下环境的监测。文献[4]为解决水下机器人回收难题,以及机器人传感器系统精度不高的问题,采用多传感器相互配合的设计方法,分析了机器人回收系统原理,建立了动态数学模型,最后用MATLAB进行了仿真验证。文献[5]为保证水电站长距离引水隧道的安全运行,提高管道检测技术水平,设计了一台专门用于水电站引水隧道的机器人,该机器人采用多传感器结合技术,提高了机器人运行时的稳定性和安全性。

当前研究人员对机器人在水下工作时的机械部分、控制部分等进行了相关研究,为机器人的发展奠定了一定的基础。水下机器人在实际运行时,水下环境充满着太多的不确定性,单纯的研究控制系统组成、设计、仿真等,还远远不能满足水下机器人的实际运行要求。因此,本文作者在原水下机器人实物模型的基础上,利用模糊PID算法对原控制系统的经典PID算法进行优化,提升水下机器人工作时的性能,以满足水下检测的需求,并用实验验证其可行性。

1 控制系统整体架构

机器人样机开发分为机械部分设计和自动控制系统开发两部分。机械部分设计利用机械行业专业的软件进行建模,软件模型输入到三维打印装备,把水下机器人整体和零部件制作成实物。自动控制是机器人最关键的技术,它影响机器人的实际工作性能。自动控制系统以STM32芯片为中央控制器,分为水上部分和水下部分。水上系统由手机/平板APP监控软件、水下摄像、水质检测、路径规划和数据中心等软件组成;水下系统由定位系统、电调模块、动力系统、通信系统、检测系统和传感器模块等组成。在设计控制系统时,为了后期检修、改造升级方便,每一个子系统均采用模块化设计,出现故障时采用整个模块替换的方法。为了提升水下机器人的续航能力和系统的稳定性,采用大容量锂电池双电源冗余设计;在通信方面,采用有线电缆和无线WiFi两种方式,以方便检修人员在不同场合选择不同的通信方式。水下机器人控制系统总体架构如图1所示。

图1 水下机器人控制系统架构

在开发水下机器人样机时先进行SolidWorks建模。机器人的机械结构由4个垂直推进器、2个平衡推进器、机身板等组成。水下机器人工作时,主要受到来自机身本体的浮力、4个平衡推进器的推力、2个平衡推进器的推力,在这些力的共同作用下实现了水下机器人的运动。机器人机械结构SolidWorks软件3D建模如图2所示,机器人水下工作时受力分析如式(1)—(7)所示。

图2 机器人机械结构SolidWorks 3D建模

F=ma

(1)

a=(vt-v0)/t

(2)

vx=u·cosφ-v·sinφ

(3)

vy=u·sinφ+v·cosφ

(4)

vz=w

(5)

v=(vx,vy,vz)=[u,v,w]·

(6)

(7)

式中:F为机器人的受力;m为机器人的质量;a为机器人运行的加速度;vt为t时刻的运行速度;v0为初始运行速度;t为运行时间;u、v、w为机器人初始状态(理想状态)时在原坐标系x、y、z轴方向运行速度;vx、vy、vz为机器人工作状态时在变换后坐标系x、y、z轴运行速度;φ为机器人变换后坐标系x轴与原坐标系x轴的夹角;v是机器人运行时的速度向量;|v|是速度向量v的模,它表示机器人的实际运行速度。

2 控制系统优化

机器人原自动控制系统分为硬件系统部分和软件系统部分。硬件系统部分以STM32为中央处理器,外围电路包括传感系统模块、电调模块、通信模块等;软件部分是用C语言对单片机进行编程,用程序协调各个模块的工作,以保证水下机器人智能运行。原软件控制程序采用经典PID算法,虽然经典PID算法具有应用范围广、参数整定简单、设计方便等优点,但由于水下机器人在水下运行时面临着太多的非线性和不确定性情况,例如:水的流速、水下不明物体、水下波浪等,原经典PID控制技术无法满足各行业对机器人智能运行的要求。为了提升水下机器人的运行性能,本文作者利用模糊PID算法对其控制系统进行优化。此次优化设计是不改变水下机器人原控制系统的硬件结构,仅通过在单片机程序中引入模糊PID算法,改变单片机中的程序,从而实现优化水下机器人的运行。

2.1 原经典PID控制系统

水下机器人工作时,超声波传感器、舵机速度传感器等把采集到的现场环境参数转变为电信号,然后发送给STM32控制器;STM32控制器按照预设的程序对电信号进行分析和处理,最后把处理完的信号发送给电机等执行元件,从而实现水下机器人的智能运行。原经典PID算法通过单片机程序应用到每一个控制回路中,例如:在控制水下机器人运行速度时,利用速度传感器采集速度信号,同时加入速度负反馈。原控制系统经典PID算法架构如图3所示,P(n)为第n次的给定值,e(n)为第n次的偏差,M(n)为第n次采样时刻PID回路输出的计算值,v(n)是第n次的过程变量,D/A模块把模拟的电信号转化成数字的信号。

图3 原控制系统经典PID算法

原控制系统经典PID数学模型的传递函数一般表达式为

(8)

其中:Kp是比例系数;Ki是积分系数;Kd是微分系数。原控制系统通过调整PID的各项参数,使机器人在水下工作时获得更优异的动态性能,满足检测的需求。

2.2 基于模糊PID算法的控制系统优化

近年来,模糊控制理论及方法是热门的技术之一,当前有学者对模糊控制理论及方法进行相关研究,从理论到仿真再到实际应用,以获得更具优越性能的自控系统应用到各行各业。文献[6]为解决矿井提升机在启动、提速、减速等阶段运行存在的调速不够平顺、能效消耗过大、生产成本过高等问题,提出一种采用双闭环的提升机控制方法,并引入模糊控制技术提升自动控制系统的精度。文献[7]针对大型重载机械臂工作时存在精度不够高、运行不平稳等情况,设计了一种基于模糊PID算法的重载机械臂控制系统,软件实验结果表明:采用模糊PID的控制系统抗干扰性能更强、鲁棒性更好,提升了大型重载机控制系统的工作性能。文献[8]为解决工业机器人在打磨作业时打磨力的控制问题,提出一种改进型粒子群模糊PID控制技术,实际测试显示:经优化后的自控系统精度更高、稳定性更好。文献[9]针对电液阀在工作过程中存在非线性死区、液压缸泄漏的难题,设计一种模糊PID温度控制器,并用软件进行了仿真测试,实验结果表明:利用模糊PID优化后的电液比例阀控缸系统稳定性更高、抗干扰性更强,解决了液压缸泄漏等问题,达到了预期的效果。文献[10]为提高橡胶生产过程中出料筒的温度控制精准度,提出一种Smith预估算法与模糊PID算法相结合的智能控制技术,MATLAB仿真和实际运行结果显示:采用智能算法改进后温度控制系统稳定性更高、反应更灵敏、动态性能更好,提高了橡胶的生产质量和效率。

当前学者对模糊PID的研究,从理论研究到软件仿真再到应用实践,已开始在各行业控制领域进行应用,并取得了一定的效果。作者以已有的水下机器人模型及其控制系统为载体,利用模糊PID算法对其控制系统改进优化,以提升水下机器人的工作性能。

2.2.1 建立模糊PID控制模型

应用模糊PID算法处理电信号时,先把模拟信号转换为数字信号并模糊化,经过预设好的规则库和数据库,对输入信号进行分析运算并进行去模糊化操作,最后把信号发送给执行元件。在优化水下机器人控制系统时,首先在MATLAB中建立模糊PID仿真模型,验证算法无误后再导入到单片机程序中。优化后的模糊PID算法架构如图4所示。

图4 模糊PID算法架构图

水下机器人运动过程可以简化为二阶系统与非线性环节的结合,简化后控制对象的传递函数为

(9)

模糊规则是模糊控制器的核心部分。对输入信号处理时,通常的流程为:模糊化操作—模糊推理—模糊决策。在实际运行中,机器人需对每一路的传感器信号进行处理。模糊规则由一连串模糊条件组合而成,这些组合而成的规则构成模糊数据库。在模糊集合中,R为总集合,i为第i个子规则,n为规则的总数,Ri为i条子集合,所有子集合的并集等于R的总集合,如式(10)所示:

(10)

2.2.2 建立模糊规则

模糊规则是控制算法的一个重要数据库,仿真时将模糊PID偏差e分成7个子模糊控制集:负大(NB)、负中(NM)、负小(NS)、零(ZO),正小(PS)、正中(PM)、正大(PB)。同时,依据变量e的偏差范围分成7个部分取值范围:-3、-2、-1、0、1、2、3,Kp/Ki/Kd的模糊规则见表1。

表1 Kp/Ki/Kd模糊规则

2.2.3 设计模糊PID控制器

模糊PID控制器是水下机器人的核心部分,它类似于人的大脑,决定水下机器人工作时能否智能运行、能否根据水下环境实现自动调整。设计模糊PID控制器时,首先进行系统的初始化,并建立输入/输出信号的模糊集,设置初值和定义变量的约束条件,然后单片机根据预设的程序采集传感器发送过来的信号,计算ec并进行去模糊化操作,从而计算出Kp、Ki、Kd值,最后程序判断任务是否完成,如图5所示。

图5 模糊PID控制器设计流程

3 控制系统仿真与测试

3.1 控制系统MATLAB Simulink仿真

水下机器人控制系统测试分为MATLAB仿真和水下试验两部分。在MATLAB仿真环节中,进行模糊PID控制器的设计、传递函数的建立、Simulink仿真等操作,并把原经典PID算法与模糊PID算法进行仿真对比。通过对比2种算法发现:虽然经典PID算法各项参数容易整定,但经典PID算法响应速度较慢、超调量较大、稳态时间较长;而模糊PID算法虽然参数不易调节,但响应速度快、超调量小、稳态时间短,如图6所示。

图6 模糊PID与经典PID对比

对系统的动态控制性能和抗负载扰动分别进行测试。在负载恒定的情况下,将控制电机的转速由0 r/min提升到1 200 r/min,测定转速超调和调节时间;然后将转速降到900 r/min,再次测定转速超调和调节时间。在转速恒定的情况下,将负载由6 N·m提升到12 N·m,测定响应时间和转速变化率;然后将负载降到6 N·m,再次测定响应时间和转速变化率。测试数据如表2—3所示,可知:经模糊PID优化的控制系统动态性能和抗负载扰动性能均优于经典PID。

表2 模糊PID与经典PID动态控制性能 对比(负载恒定)

表3 模糊PID与经典PID抗负载扰动对比(转速恒定)

3.2 机器人组装及水下测试

在各硬件模块设计并制作完成后,进行水下机器人的组装。水下机器人组装分为机械结构部分组装和硬件电路组装。机械结构部分主要由3D打印机直接打印模型,然后把各打印出的模型组装。硬件模块组装包括摄像头组装、灯光模块组装、传感器模块组装等,组装完成后通电测试各模块能否正常工作。组装环节中最重要的是水下机器人的气密性测试,即检测水下机器人是否漏水,通常采用多次粘胶水的方法来防止机器人漏水。组装的水下机器人如图7所示。

图7 实验室组装机器人

在MATLAB仿真完之后,把MATLAB的程序嵌入到原水下机器人的单片机控制系统程序中,修改好相关程序后进行实物测试,记录好测试的数据并与原控制系统测试数据相比较。机器人实验室测试项目包括在规定时间内和规定距离内,水下机器人的加速度、运行速度,以及运行时的急停、急转弯、急上浮和下沉的响应时间、控制精度和运行距离等。水下机器人实物测试如图8所示,测试项目如表4所示。

表4 水下机器人测试项目

图8 水下机器人测试

4 结束语

为应对复杂的水下工作环境,提升机器人水下工作时的性能,利用模糊PID算法技术对原控制系统进行优化升级,得出以下结论:

(1)MATLAB软件仿真结果表明:与经典的PID技术相比,采用模糊PID算法优化的控制系统响应速度更快、超调量更小、达到稳态时间缩短至原来的20%。

(2)实际运行结果表明,优化后的水下机器人控制系统控制精度更高、响应速度更快、动态性能更好,为开发人员优化机器人控制系统提供技术参考。

猜你喜欢
单片机控制器机器人
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
机器人来帮你
认识机器人
机器人来啦
Microchip推出两个全新PIC单片机系列
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器