郭子裕 张会新 洪应平 洪明森 樊文韬
(1.中北大学电子测试技术国家重点实验室 太原 030051)(2.仪器科学与动态测试教育部重点实验室 太原 030051)
在航空航天领域,随着航空发动机性能的不断提升,其关键部件电动节流阀的工作状态往往处于极端环境下,极易出现工作异常,电动节流阀的启动和旋转异常不仅会影响装备的正常运行,严重情况还会引发爆炸等灾难性事故[1~3]。因此,在火箭注入燃料的过程中,为了检查发动机的工作状态是否正常,需要实时采集电动节流阀的压力流量[4],并且可以精准地控制阀芯开度,这对于大型装备稳定、可靠地运行具有重要的意义[5~8]。
针对上述问题,本文设计了一种基于STM32的电动节流阀控制采集系统,用于电动节流阀的开度控制与压力传感器、流量传感器的参数采集。本系统以STM32F407 作为主控芯片,连接ADC 芯片AD7606,并通过驱动器连接步进电机,通过RS485通讯接口连接编码器,完成数据采集系统和位置闭环控制系统的设计。该系统在测试与验证阶段,成功实现对各路传感器输入的采集和对步进电机旋转角度的控制,为控制供配气过程中节流阀开度和检验随之变化的压力流量提供了帮助。
系统硬件总体设计如图1,包括主控制器,供电模块,模拟量采集单元,步进电机控制单元。主控制器选择STM32F407 芯片,模拟量采集单元功能要求采集4 路4~20mA 传感器数据,步进电机控制单元功能要求准确控制电机角度,供电模块负责主控、4个传感器,电机以及编码器供电。
图1 电动节流阀控制采集系统整体设计
STM32F407 是ST(意法半导体)基于ARMCortexTM-M4 为内核的高性能微控制器,所使用的ART 技术使得程序零等待执行[9],程序执行的效率高。集成了单周期DSP 指令和FPU 浮点单元,提升了计算能力,可以进行一些复杂的计算和控制[10]。
2.2.1 调理电路设计
模拟量的物理意义为2 路压力传感器数据,2路传感器流量数据,4 路传感器的输出信号均为4mA~20mA,故采集的4 路传感器输出的模拟量信号调理电路设计如图2。
图2 模拟量信号调理电路设计
图中,R25 是4mA~20mA 电流取样电阻,其值的大小主要受传感变送器供电电压的制约,当前级采用24V 供电,R25 使用250Ω的阻值,对应采样电流转换电压为1V~5V。
由OPA197 组成的电压跟随器拉高输入阻抗,使得它对上一级电路呈现高阻状态,而对下一级电路呈现低阻状态,用于中间级,隔离前后级电路,消除它们之间的相互影响。
AD824 是一款四通道、FET 输入、单电源放大器,提供轨到轨输出。此处用到了三个通道,首先,由图中U11A、U11B 构成的电压限幅电路,可以将输出信号的电压限定在指定电压范围内提高输出精度,以保护后级ADC 电路。而U11C 为一级电压跟随器以降低输出阻抗[11]。
2.2.2 模数转换模块设计
系统模数转换模块采用了AD7606-4 芯片[12],该芯片的主要技术指标有4路同步采样输入、16位分辨率精度,转换时间为4μs,具有模拟输入钳位保护、等效输入阻抗为1MΩ的输入缓冲区、提供40dB 二阶抗混叠滤波模拟滤波器,提供串行及并行接口。
图3是AD7606-4 的硬件设计原理。V1、V2、V3、V4 为AD7606 的四个通道输入,保证4 路传感器信号的采集具有极高的同步性能。数据输出采用并口接线读取,DB0~15 为16 位数据线输出,接入主控读取,处理为1V~5V电压的数字量。
图3 AD7606硬件电路
2.3.1 步进电机控制驱动模块设计
步进电机选型两相四线制电机,主控通过驱动器控制步进电机。图4为控制器与步进电机驱动器连接。
图4 步进电机控制驱动电路的设计
步进电机脉冲发生控制电路用于驱动节流阀开启工作所需要的触发脉冲,下降沿触发脉冲。
主控输出三个信号:EN,DIR,STEP。控制信号经过三极管的放大作用输出,以共阳极接法连接驱动器组成闭合回路。
2.3.2 步进电机控制编码器模块设计
编码器选型光栅旋转编码器,体积小,分辨率高,直接安装在步进电机尾部。编码器内部为线性差分驱动器,如图5,功能同RS485。
图5 编码器通讯电路
编码器内部IC1 为线性差分驱动器,功能等同于MAX485,故用户接收端IC2 和IC1 选型一致,匹配电阻R2和R5阻值为220Ω,RS485通信波特率为2.5Mbps,R1,R4 为上拉电阻;R3、R6 为下拉电阻。图6为用户接收端具体电路。
图6 编码器接收端RS485模块的设计
如图6,RS485 电平转换芯片使用THVD1428,THVD1428 是一个半双工RS-485 收发器,带有集成浪涌保护。
其中,A、B 引脚为数据传输引脚,RE 引脚为低电平接收使能,DE 引脚为高电平发送使能。将两个引脚连接在一起,主控只需要通过一个信号RS485_DIR即可控制收发过程[13]。
编码器接入电路后,用户端发送使能信号请求,编码器接收到请求信号后,执行对应功能,返回当前工作状态、当前角度码值以及校验码。
根据系统的软件设计,在主程序在执行中,先要调用初始化程序。在系统刚一上电时,主程序便开始初始化STM32F407内部系统时钟、I/O口、控制变量和参数、内部寄存器和其他各功能模块,其中包括PWM 波输出、A/D 采样模块、RS485 通信等模块。初始化完毕,系统便开始启动自检工作,检测电源与电路是否处于正常工作状态,这很有必要,是保证系统安全运行的前提。
AD7606 上的采样由CONVST 信号控制。在两个转换开始输入信号CONVST_A 和CONVST_B 先后转变为逻辑低电平之后,BUSY 引脚转变为逻辑高电平,即开始正在进行A/D 转换过程[14]。转换中BUSY保持高电平不变,直到转换过程结束。BUSY的下降沿表示转换数据正被锁存至输出数据寄存器,经过时间t4之后便可读取。在并行模式下,CS片选信号和RD 信号先后进入逻辑低电平,则会触发使能输出总线DB[15:0],使转换结果输出在并行数据总线上。其中t1~t6的时序要求如表1所示。
表1 AD7606时序表
AD7606的转换流程如图7所示。
图7 AD7606转换流程
步进电机控制算法设计是基于PID 的控制思想。可通过编码器实时获取步进电机的旋转角度α。指定步进电机转至指定角度为q,则任意t 时刻,q与实时旋转角α(t)之间的差值e(t)为
根据e(t)的正负取值,配置电机驱动器方向控制引脚。由PID 控制算法可知:主控输出控制电机旋转变化量的PWM波脉冲个数p(t)为
式中,Kp、Ki、Kd分别为比例系数、积分系数和微分系数。上式离散化后得到的位置式PWM 波脉冲个数。
步进电机脉冲数PWM 波满载脉冲数为200个,在偏离电机旋转角度正负0.1°的范围内,经过反复调试,最终确定定向定量控制法的Kp、Ki、Kd取值分别为22.2、0.01、0.02。
得到PWM 波脉冲个数后,利用主从定时器将PWM 脉冲输出,以STM32 的定时器3 作为主定时器用于设置定时器频率,定时器2 作为从定时器用于设置脉冲输出个数。从定时器使用主定时器的触发输出信号作为自己的触发输入信号工作。定时器3 内部采用向上计数比较模式,比较输出连接至定时器2 的触发输入端,定时器2 自动地记录已经输出地PWM 脉冲个数。将PID 控制得到地返回值输入主从定时器,即可输出指定数量地PWM 脉冲[15]。
3.2.1 步进电机绝对控制
步进电机绝对控制用于控制电机实现0~360°范围内的旋转,以编码器的零点为步进电机的绝对零度,步进电机初始位置角度为当前值,设定0~360°内任意角度为目标值,将两者代入PID调试即可。
3.2.2 步进电机相对控制
步进电机相对控制用于控制电机实现任意角度的旋转,以步进电机当前所在的位置为原点,控制步进电机旋转。
单圈编码器价格低,实际应用中使用广泛,但由于其测量范围小,需要在安装时调整零点,以便在使用过程中不允许编码器旋转跨越零点,即编码器只允许在360° 范围内选择,大大降低了其使用范围。本设计采用的编码器即为单圈绝对式编码器,故实现单圈内的相对控制设计简单,实现多圈的相对控制成为难点。
本设计采用17 位单圈绝对式编码器,编码范围为0~131071,共131072 个编码。以STM32 的调试周期为时间基准,在每一个扫描周期内,将编码器返回值与131071 做比较,当返回值等于131071时,便认为此时编码器已过圈,这样会出现如下问题:当编码器转动过快,容易出现编码的跳变,即每次读数差值很大,主控接收不到131071 这个码值,从而无法正确判断过圈。
针对上一问题,程序对编码进行处理,将当前调试周期读取编码值作为a,将上一调试周期读取编码值作为b,当a>b 时,编码器不过圈;当a<b 时,编码器过圈。但这样的处理,还会出现如下问题:
1)当编码器转动过快时,如果a 所在的角度为第二圈的码值且大于b,但刚才的处理会将a和b判断为同一圈的码值;
2)当a 所在的角度为第三圈的码值且小于b,但刚才的处理会将a 和b 判断为转过一圈,或者无法判断转过几圈。
针对以上问题,并为了弥补单圈绝对型编码器在多圈控制中的缺陷,控制算法设计依据香农采样定理,对131071 进行8 等分,在步进电机的调试周期,也是编码器的采样周期内驱动旋转,在距离目标值45°以外,程序设置电机每一周期内旋转固定值45°,距离目标值45°以内,程序设置电机旋转进入PID调试。
在距离目标值45° 以外,每次旋转不得超过45°,是为了编码器采样,可以及时地比较到上一周期的码值和这一周期的码值,一旦上一周期码值在114687-131071 这一范围,下一周期码值在0~16384 这一范围,即可准确判断编码器转过一圈。调试程序记录第一次采样的编码器值,即初始位置α(0),并记录转过圈数n,从而得到当前值与目标值的角度差值,在距离目标值45° 以内,进入PID 调试,得出最后需要达到终点的脉冲数。当进入目标值45°以内,当前角度值与目标值的差值为
其中,θ为相对角度目标值,任意范围,可以为1°,也可以超过360°,如720°。
系统实验时,电动节流阀控制采集系统通过CAN总线连接上位机,系统全部采用航天电连接器J14H。可连接4路4mA~20mA 传感器,步进电机和编码器。电动节流阀控制采集系统硬件实物如图8、图9所示。
图8 系统实物正面图
图9 系统实物后面图
对于4 路传感器,本系统可以为传感器供电,在电连接器内部包含为传感器供电的24V 输出线。并将4mA~20mA 电流信号转换为1V~5V 电压信号输出,同时以数据形式通过CAN 总线发送至上位机实时显示。
对于步进电机,系统设计了单独的电机供电手动开关,一是防止电机持续供电发热造成损伤;二是当出现电机空转或控制异常时可以紧急制动。
为了验证系统的可行性,连接传感器与步进电机,这里用4mA~20mA 电流信号发生器替代传感器,将整个系统供电,对系统分别进行采集测试与控制测试。
4.2.1 系统采集测试
系统试验,实物连接如图10。
图10 系统测试连接图
由图中可知,从右到左分别是传感器通道1~4,连接至电流信号发生器,电流输出分别为4mA、12mA、16mA、20mA,电动节流阀控制采集系统测试到的结果如图11。
图11 系统采集测试结果图
由图可知传感器通道1~4采集的结果。表2为系统采集测试的理论数据与实际数据的分析。
表2 系统采集测试数据
由表可知,电动节流阀控制采集系统采集性能良好精度极高,误差在0.5%以内,不足1%,可以实现对高精度传感器的数据采集。
4.2.2 系统控制测试
系统试验,实物连接如图10。步进电机连接于系统外部,方便连接阀体传动结构,编码器安装在步进电机尾部,驱动器安装在系统内部。
对系统进行控制测试,分别进行绝对控制测试和相对控制测试,测试结果见表3和表4。
表3 系统绝对控制测试数据
表4 系统相对控制测试数据
由表可知,电动节流阀控制采集系统控制性能良好且精度极高,经过控制旋转后的步进电机角度值距离设定的目标值不超过0.1°,误差也在1%以内,可以实现对步进电机和阀芯的高精度控制。
本文从火箭供配气测试需求出发,设计了基于STM32的电动节流阀控制采集系统,具体包括模拟量采集调理电路、步进电机控制电路和编码器通讯电路设计,模拟量采集时序和步进电机控制算法设计等。经过计算和检验,系统的稳定性、采样精度和控制精度均正常。因此,电动节流阀控制采集系统运行正常,系统设计正确,可为后续的系统升级和深入研究打下基础。
但是在步进电机多圈控制处理中,电机的过圈处理可能会存在漏读,这是由于当步进电机角度在上一周期读值接近了360°,下一次旋转可能超过了过一圈处理的范围,故此需要将过圈处理的范围增大,即可解决这一问题。