何璐兵,徐 洋
(许昌电气职业学院 河南 许昌 461000)
随着现代工业的不断发展,流体控制技术在自动化系统中的重要性日益凸显。 作为流体控制的核心元件之一,节流阀在工业过程中广泛应用于流体流量和压力的精确调节。 为了提高流体控制的精度、可靠性和灵活性,基于微控制器的节流阀控制系统设计成为研究的热点。 该系统的设计方案中实现了一种基于STM32 的节流阀控制系统,以实现对流体流量和压力的精确控制,设计的硬件部分充分利用了STM32 微控制器的强大功能和外设接口,确保了系统的可靠性和稳定性;在软件设计中采用了先进的算法,实现了对模拟量采集时序和节流阀电机控制的优化。 最后通过测试,验证了系统在不同工况下的性能表现并分析了实验数据。
STM32 是一种广泛应用于嵌入式系统的微控制器,具有强大的计算和控制能力,适用于实时控制系统的设计。STM32 的优点在于其强大的处理能力,丰富的接口以及灵活的配置,使其成为控制系统设计的理想选择。 利用STM32 的高性能处理器和丰富的外设接口,可以实现对节流阀控制系统的精确控制和监测。 通过合理的硬件设计和软件算法,可以确保系统的可靠运行,提高流体控制系统的稳定性和安全性。 此外基于STM32 的节流阀控制系统设计具有较好的可扩展性和适应性,现代工业的需求多样化和个性化,对流体控制系统的灵活性和可调性提出了更高要求。
设计分为硬件设计和软件设计两个部分。 硬件设计部分包括主控单元设计、模拟量采集单元设计和节流阀电机控制单元设计。 主控单元基于STM32 微控制器,负责系统的整体控制与运算。 在模拟量采集单元设计中,使用高精度的模拟量传感器来获取系统的运行状态,包括流量、压力等参数。 这些参数将通过模数转换器(analog-todigital converter,ADC)接口输入STM32,用于后续的数据处理和控制策略的制定[1]。 为了确保数据的精确性和实时性,采用定时采集和中断处理的方式来进行数据采集。节流阀电机控制单元设计则是控制节流阀的开启和关闭,由主控单元根据采集到的模拟量参数决定节流阀的控制策略。 这一部分的任务是根据主控单元的控制信号,精确控制节流阀的开启和关闭,以调节流体的流速。 为了实现精确控制,采用步进电机或者伺服电机作为执行器,通过脉宽调试(pulse width modulation,PWM)波进行控制。 此外,在电机控制单元中加入一些保护机制,例如过流保护和过热保护,以确保系统的稳定运行。 软件设计部分则包括模拟量采集时序部分的程序设计和节流阀电机控制算法研究。 模拟量采集时序部分的程序设计关注如何有效地定时采集各个模拟量数据,以便主控单元可以实时处理这些数据。 节流阀电机控制算法研究则关注如何根据模拟量数据,通过算法调整节流阀的状态,以保证系统的稳定运行。 节流阀控制系统的整体设计如图1 所示。
图1 节流阀控制系统整体设计
在节流阀控制系统的硬件设计中,主控单元是至关重要的部分。 主控单元负责整个系统的控制和协调,以及数据的处理和决策。 在设计中,选择了STM32 微控制器作为主控单元的核心。 STM32 是一款32 位闪存微控制器,基于ARM Cortex-M3/M4/M7 内核,具有高性能、低功耗、丰富的外设和优秀的实时性能。 STM32 的通用输入/输出(general-purpose input/output,GPIO)接口用来连接各种传感器和执行器,以收集和控制系统的状态。 STM32 的ADC 接口可以用来接收模拟量传感器的信号,以获取系统的实时运行数据。 STM32 的PWM 接口可以用来控制执行器,如电机,以调节节流阀的状态;在电源设计上设计了电源保护电路,以防止电源的突然中断或者过载对系统造成影响;在布线和封装设计上考虑到了系统的实际运行环境,尽可能地减小电磁干扰,并且增强系统的抗干扰能力。 本文还将考虑到系统的散热问题,设计合理的散热结构,以防止系统过热。
模拟量采集单元设计是节流阀控制系统的重要部分,它负责采集系统的运行状态,例如流量、压力等关键参数。模拟量采集单元设计以高精度、高稳定性的传感器为基础,通过合理的接口设计、电源设计、布线和封装设计,构建一个能够精确实时地采集系统运行状态的模拟量采集单元[2]。 在系统运行过程中,模拟量采集单元将采集到的模拟信号转换为数字信号,送入主控单元进行处理,以便生成准确的控制策略。
在设计节流阀控制系统的模拟量采集单元,首要任务是确保准确、实时地收集到系统的关键运行数据,如流量和压力。 这些数据的实时性和准确性对于系统的稳定运行和节流阀的精确控制具有决定性的影响。 模拟量采集单元的设计首先包括选择合适的传感器来监测流量和压力。 为了满足系统的需要,选择高精度、高稳定性的流量传感器和压力传感器。 这些传感器的高精度保证了数据的准确性,高稳定性则保证了在长时间运行中数据的一致性。
由于传感器输出的是模拟信号,需要将这些模拟信号转换为数字信号,以便STM32 微控制器进行处理。 因此,本文设计了基于STM32 内部ADC 接口的模拟信号到数字信号转换电路。 为了保证数据的准确性和系统的稳定性,在硬件接口设计中采用了电气隔离技术,如光耦。 这样可以减少系统的噪声干扰,提高系统的稳定性和可靠性。 同时,设计了过压保护和过流保护电路,以防止电路故障对系统造成影响。 针对AD7606 模块,其中t1 ~t6 的时序要求如表1 所示。
表1 AD7606 模块时序要求
节流阀电机控制单元的设计任务是对节流阀的开启和关闭进行精确控制。 这需要将主控单元STM32 的控制信号转化为电机驱动信号,以实现对节流阀的控制。 电机控制单元的性能直接影响了节流阀控制系统的精度和稳定性。 本设计中节流阀电机控制单元设计采用了H 桥驱动电路和步进电机,通过STM32 的GPIO 接口控制电机的运行以及电源保护电路和合理的布线和封装设计,确保了电机控制单元的稳定运行。 电机控制单元的主要任务是接收主控单元的控制信号,将其转化为电机驱动信号实现对节流阀的精确控制。 电机控制单元的设计首先包括电机驱动电路的设计[3]。 本次采用H 桥驱动电路来驱动电机。 H 桥驱动电路可以实现电机的正转、反转和停止控制,非常适合用于节流阀的控制。 STM32 微控制器的GPIO 接口与H 桥驱动电路相连接,通过改变GPIO 的高低电平,控制H 桥驱动电路,从而控制电机的运行;其次是电机的选择和匹配。 选择步进电机作为节流阀的驱动器。 步进电机的步进角度精度高、可靠性强,非常适合精确控制的应用。 为了匹配H 桥驱动电路和步进电机,需要确定合适的电机参数,如电机电压、电流和转速。
在节流阀控制系统的软件设计中,模拟量采集时序部分的程序设计是重要的环节。 其主要任务是规划和控制模拟量采集的流程和时序,以实现对系统状态的实时、准确地监测。 模拟量采集时序部分的程序设计通过定时器产生的中断,实现了模拟量的定时采集。 采集的数据经过校验和缓存,再由主控程序进行处理,以实现对节流阀的实时、准确控制。
首先在STM32 微控制器中设定一个定时器,用于控制模拟量采集的时间间隔。 定时器的时间间隔应根据系统的响应速度和处理能力来设定。 定时器在每个时间间隔结束时产生一个中断,触发模拟量的采集[4]。 其次在定时器中断服务程序中会执行模拟量采集的操作,STM32 微控制器的ADC 模块将被启动,开始对连接的模拟传感器进行采样。 ADC 模块将模拟信号转换为数字信号,并存储在内部的数据寄存器中。 为了保证数据的准确性,在每次采样结束后都会进行数据校验。 校验方法包括采样值的范围校验、突变值校验等。 如果数据校验失败,则会丢弃这次采样数据,等待下一次采样。 再次在数据校验成功后会将采集到的数据保存到内存中的数据缓冲区。 数据缓冲区的设计是为了解决数据处理速度与数据采集速度的不匹配问题。 数据缓冲区可以暂存多次采样的数据,待主控程序有空闲时间时,再进行数据处理。 最后在主控程序中会定期读取数据缓冲区中的数据,进行数据处理和分析。 根据处理的结果,主控程序会产生相应的控制信号,控制节流阀电机控制单元,以实现对节流阀的控制。
在节流阀控制系统的软件设计中,节流阀电机控制算法的研究是关键环节。 电机控制算法的设计需要实现精确、稳定的节流阀控制,以满足系统对流量和压力控制的需求。 电机控制算法主要包括位置控制算法和速度控制算法。 位置控制算法用于确定节流阀的开度,速度控制算法用于控制节流阀的开启和关闭速度。
在位置控制算法中使用闭环控制策略。 首先利用流量和压力传感器采集实时数据,与设定的目标值进行比较,计算出偏差。 然后通过比例-积分-微分(proportional integral derivative,PID)控制器计算出控制信号,来调整节流阀的开度[5]。 PID 控制器能够充分利用系统的当前状态和历史状态,生成更加精确的控制信号;在速度控制算法中也使用闭环控制策略。 通过电机的编码器可以获取电机的实时转速。 将实时转速与设定的目标转速进行比较,计算出偏差。 通过PID 控制器,可以计算出控制信号来调整电机的转速。 为了保证系统的稳定性和防止过调,在PID 控制器的设计中引入了积分饱和和微分先行等控制策略。 积分饱和可以防止由于积分环节的累积作用,导致控制系统的过调。 微分先行则可以预测系统的未来状态,提前调整控制信号提高系统的响应速度;在电机驱动程序中,接收主控程序的控制信号,通过H 桥驱动电路控制电机的运行。 电机的运行状态会通过电机的编码器反馈给主控程序,完成闭环控制。 为了提高系统的可靠性,在电机控制程序中加入了故障检测和保护功能。 当系统出现故障,如电机过载、过热等,电机控制程序会立即停止电机的运行,保护电机和系统。
在节流阀电机控制算法的设计中,还需要考虑到信号处理问题。 首先控制器需要接收和处理来自踏板和蝴蝶阀位置的信号,然后向双极性斩波部分发送适当的指令。在双极性斩波部分,正负PWM 信号会被生成以驱动直流(direct current,DC)电机。 设计控制器的比较器部分包括两个比较器。 比较器的输入为对称信号,输出信号为PWM 信号[6]。 在连续输出的PWM 信号中,信号被乘以正或负增益,需要正或负电压来控制DC 电机的方向。 设计PWM 部分用于控制电机速度。 为了产生PWM 信号,将误差幅度和参考信号(锯齿波)进行比较。 锯齿信号的频率是25 kHz。
在系统测试阶段,电动节流阀控制系统通过控制器局域网(controller area network,CAN)总线与主控机进行连接,接入四个4 ~20 mA 的传感器,步进电机和编码器。 四个传感器由系统供电,电连接器内部包含了供给这些传感器使用的24V 电源线。 此外系统把4~20 mA 的电流信号转变为1~5V 的电压信号,以数据的方式通过CAN 总线发送到主控机以供实时显示。 为了确认系统的功能性,使用传感器和步进电机进行了连接,同时使用了一个4 ~20 mA 的电流信号发生器来模拟传感器,对整个系统进行供电并分别进行数据采集和控制测试。 测试结构如表2、表3 所示:
表2 系统绝对控制测试数据
表3 系统相对控制测试数据
综上所述,本文基于STM32 微控制器,设计和实现了一种基于STM32 微控制器的节流阀控制系统,旨在实现对流体流量和压力的精确控制。 通过充分利用STM32 微控制器的强大功能和丰富的外设接口,结合先进的控制算法,该系统能够高效、稳定地进行流体控制。 在硬件设计部分设计了主控单元、模拟量采集单元和节流阀电机控制单元,确保了系统的可靠性和稳定性。 在软件设计部分进行了模拟量采集时序部分的程序设计和节流阀电机控制算法的研究,以实现对流体流量和压力的精确控制。 本文通过测试与数据分析,验证了系统的性能和稳定性,发现该系统能够满足工业生产过程中对流体控制的需求。