引言
伺服控制系统大部分都采用传统的硬件结构,控制算法比较固定,而且也无法实现不同工况下的高性能控制算法,难以满足现代工业的需求[14]。现阶段迫切需要研制一种智能型、具有高可靠性、控制性能更加优秀的电液伺服系统。基于DSP与STM32的智能型伺服控制器具有软硬件结合程度更加紧密、系统的智能化程度更高、可实现多种控制策略的优势。本系统从实际的需求出发,结合精确数字PID控制算法和Fuzzy控制算法自身的优势,组合成FuzzyPID控制算法,根据偏差的大小范围选择合适的控制算法进行调节。
本设计将两款工控芯片——TI公司的浮点型DSP TMS320F28335和ST公司的ARM7升级版STM32 F103RET6引入智能电液伺服系统,设计了基于DSP与STM32的智能型伺服控制器,使电液控制技术进一步朝向数字化、集成化、智能化、轻量化、高精度、高可靠性、节能降耗的方向持续发展。
1 硬件设计
1.1 硬件总体结构
本系统硬件主要由STM32F103RET6和TMS320F28335两部分组成。STM32F103RET6主要控制外围电路,包括输入信号调理模块、输出信号调理模块、A/D和D/A转换模块、硬件自检测电路模块、触摸屏控制模块、故障报警模块;DSP芯片TMS320F28335主要完成算法的计算与以太网通信,包括外扩SRAM模块、DM9000A以太网通信模块、EEPROM存储模块。两者通过SPI进行数据通信,包括各种参数、控制输出量等。显示模块采用5.7寸电阻式触摸屏,用于显示各部分的工作状态及运行情况,完成控制器各种参数的在线设定等人机交互。其硬件结构如图1所示。
图1 系统整体硬件结构图
1.2 I/U变换电路
由于指令输入信号和反馈信号都是4~20 mA直流信号,所以需要将其转换成STM32F103RET6的A/D转换器可接受的0~3 V直流电压信号。图2为I/U变换电路。
图2 I/U变换电路设计
电阻R25输入一个“-2.5 V”参考电压,由“虚断”可知,经过R25和R26电阻分压后,在“1”点的电压为:
所以U1= 0.1 V。由“虚短”可知,“2”点的电压U2=U1= -0.1 V,所以当4~20 mA电流信号输入后,“3”点的电压U3=I×(R14+R16)-0.1,即U3=0.025×I-0.1。当I=4 mA时,U3=0 V;当I=20 mA时,U3=0.4 V,这样就完成了4~20 mA到0~0.4 V的电流/电压转换。后级运放为同相比例运算放大器,放大倍数:
所以输出电压公式为UO=7.5×U3。当输入为4 mA时,UO=0 V;当输入为20 mA时,UO=7.5×0.4=3 V。经过两级运放,完成了从4~20 mA电流信号向0~3 V电压信号的转换。
1.3 U/I变换电路
STM32F103RET6的D/A转换输出为0~3 V的直流电压信号,要想驱动伺服阀,必须通过U/I变换,转变成4~20 mA直流电流信号,如图3所示。
图3 U/I变换电路设计
由图3可知,I0≈I3由“虚断”和“虚短”可知:
由I2=I1,可得:
又因为:I3=VCC-V3R44,得出:
计算可得:
I0≈1R440.65×V1+0.4
其中,0≤V1≤3V,由于电阻阻值有误差,为了保证电路能从0~3 V转换为4~20 mA,特意将电阻R44设置为200 Ω的滑动变阻器,用以弥补电阻阻值误差带来的影响。
2 软件设计
2.1 STM32主程序设计
待系统上电初始化完成后,首先执行故障自诊断程序,当STM32F103RET6(以下简称STM32)无故障且外围硬件电路无故障时,启动STM32内部A/D转换器,对指令信号(或本地给定信号)与反馈信号进行采样和模数转换,并将采集的数据通过SPI通信传给DSP进行运算。DSP再将计算结果通过SPI传给STM32,STM32经过内部的D/A变换输出模拟量来控制电液伺服阀,并可以通过触摸屏查询各种参数、输出控制量的曲线图,判断计算偏差的大小。若偏差为0,则退出程序;反之,则继续执行以上过程,直至偏差为0。系统工作的流程如图4所示。
图4 STM32主程序流程图
控制器的软件设计采用模块化编程方案,软件由STM32部分和DSP部分组成,STM32部分包括了系统初始化子程序、A/D转换子程序、D/A转换子程序、系统自检报警子程序、SPI通信子程序。DSP部分包括控制算法子程序、以太网通信子程序、EEPROM存储子程序、SPI数据通信子程序、系统初始化设置子程序。
2.2 DSP主程序设计
图5 主程序流程图
DSP部分的主程序主要的功能是:与STM32进行SPI通信,将STM32采集的数据通过控制算法计算出控制输出量和以太网通信。在主函数中,首先禁用DSP内部看门狗,初始化DSP时钟;其次,初始化DSP各个内部模块,然后禁用全局中断,初始化中断向量表,根据需求对中断进行配置;待所有初始化完成后再打开全局中断,最后程序进入无限循环等待SPI和以太网中断。主程序流程图如图5所示。
3 系统测试
本系统设计了参数在线设定、故障自检测等功能,在系统整体的测试过程中,液晶显示出故障的部分。经过各项测试,测试结果表明该控制器运行可靠,具备良好的稳态性能和动态品质,能够获得精密且实时的控制效果。表1为伺服控制器瞬时测试结果。
其测试条件为:本地控制工作模式下,输入信号均为4~20 mA,且伺服阀为正作用,位置反馈为正作用。根据伺服阀电流的变化趋势来确认控制算法是否正确,在整个测试过程中,当指令信号小于反馈信号时,伺服阀电流呈现减小变化的趋势;当指令信号大于反馈信号时,伺服阀电流呈现增大变化的趋势。根据变化趋势得出控制算法符合实际的调节规律。本伺服控制器的线性拟合度可达到0.078%,能完全满足线性拟合度优于0.1%的要求,完全达到了预期设定的目标。
表1 伺服控制器瞬时测试结果
结语
本课题根据电液伺服控制系统的性能要求,研制了一款采用32位浮点DSP芯片TMS320F28335和CortexM3为内核的ARM芯片STM32F103RET6为控制核心的智能伺服控制器,并且通过系统测试证明了本控制器的稳定性、可靠性及实用性。