基于单片机的弹簧位置—力测控系统
2018-10-31高源蓬
高源蓬
摘要:本文介紹了基于STM32F103VCT6单片机开发的弹簧位置-力测控系统的总体设计思路和方法,阐述了整个系统的工作原理,硬件和软件设计及相关技术问题,该测控系统较机械弹簧控制阀具有精度高、可靠性好的特点。
关键词:位置-力测控系统;单片机;PID校正;PWM脉冲
中图分类号:TP368 文献标识码:A 文章编号:1007-9416(2018)06-0021-01
随着人工智能的不断发展,工业的自动化水平体现出无比重要的环节。然而,自PID控制器问世以来已有70多年历史,控制理论的发展也经历了古典、现代和智能控制理论三个阶段。随着传感器应用,微电子技术的发展以及单片机技术在各领域的应用,为智能弹簧位置的测控系统测控功能的完善、测控精度的提高和抗干扰能力的增强都提供了有利条件。使用了STM32F103VCT6单片机,设计了一个简单的弹簧位置-力测控系统,使用方便、灵活,成本低,足以完成整个系统算法的功能实现。
1 系统总体设计方案
根据智能高精度弹簧位置-力测控系统的要求,实现的目标应具有显示功能在显示器上显示表示当前弹簧形变量的四位十进制数,具有按键输入和操作功能,输入为要求控制的弹簧形变量,具有PID校正的闭环控制弹簧受力。
综合考虑系统可靠性、实用性以及便于可维护性操作简便性,本系统设计时主要采用以下技术措施:
(1)利用了STM32F103VCT6的软硬件资源,包括其内部的A/D转换部件、独立按键5颗、四位七段数码管。(2)图1中控制器单片机模块为系统的核心部件,数码管显示以及按键用来实现人机交互功能,其中通过按键将需要的控制的弹簧长度数据输入到单片机中,由数码管显示当前弹簧形变量。(3)在运行过程PWM脉冲由PID调节的并送到电机驱动电路中,驱动模块根据PWM信号控制直流电机的扭矩。利用拉压力传感器将当前产生的力(弹簧当前所受力)反馈到单片机控制器中心,通过运算改变PWM脉冲的占空比,实现电机扭矩实时控制的目的。(4)系统软硬件设计设计思想采用模块化,以提高系统的可靠性。
2 硬件电路设计
图1为系统的工作原理,以数字PID为基本控制算法,用STM32F103VCT6单片机作为控制单元,产生占空比根据数字PID算法,对PWM脉冲实现对直流电机扭矩的控制。同时利用拉压力传感器将弹簧受力转换成脉冲频率反馈到单片机中,实现转速闭环控制。在通过五颗独立按键设定弹簧形变量,确认后可以通过显示部件了解弹簧当前的形变量,最后用七段数码管作为显示部件位置。
2.1 STM32F103xx简介
STM32F103xx系统主系统由四个驱动单元和四个被动单元构成:四个驱动单元包括CortexTM-M3内核DCode总线(D-bus),和系统总线(S-bus) 和通用DMA1和通用DMA2。四个被动单元由内部SRAM、内部闪存存储器、FSMC、AHB到APB的桥(AHB2APBx)构成,它连接所有的APB设备。
2.2 独立按键模块
这五颗按键为STM32F103VCT6自带按键输入模块,当按键没有被按下时,其对应引脚表现为高电平,当按下时表现为低电平。我们将五颗充分利用,功能分别为确认输入完毕、十位数字加一、四位数字减一、个位数字加一、个位数字减一。
2.3 L298N电机驱动模块
L298N驱动器是一种专门驱动二相和四相电机的,本设计应用中作为驱动电机使弹簧位置做出相应的变化。
2.4 拉压力传感器
一般来讲,弹簧受力与上一次受力比较,有一定的误差,通过偏差进行PID运算。通过用的是双向拉压力传感器JLBS-M2来实现的,该传感器量程较小,精度较高,适合小型弹簧的弹性力检测。可将受力信号转化为电信号输入STM32F103VCT6的ADC数模转换采样模块。
2.5 放大电路模块
由于拉压力传感器输出电压小,并且为何更好的和ADC数模转换采样输入额定电压匹配,我们需要加上一定放大倍数的放大器。
根据传感器参数计算,我们最终设计了放大倍数为3的放大电路。
2.6 ADC数模采样模块
ADC属于STM32F103内部进行转换,我们在软件设置上进行就可以正常工作,但还需要在外部连接其端口到被测电压,以便更好的显示。
3 软件设计
3.1 PID算法实现
控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功能需要控制算法来实现基本功能。根据偏差的比例(P)、微分(D)、积分(I)进行的控制,称之为PID控制。PID控制,对于相当多工业对象的控制要求,也是控制算法最好之一。
PID算法是本系统的核心算法,它根据采样的数据与设定值进行比较得出偏差,对偏差进行P、I、D运算得到增量,从而改变PWM脉冲的占空比来实现对电机两端电压的调节,进而控制电机转速。其运算公式为:
直流电机的扭矩与电机的转速呈负相关关系,也就是说在电机正常工作的电压范围内,直流电机两端的电压越小,电机的转速越慢,扭矩越大。而我们使用的电机驱动模块里占空比与直流电机转速是正比关系,所以我们需要在算法里做一定调整使整个PID算法完成负反馈。我们将算法最后的返回值用了TIM3->CCR3-=duk;的方式,将出始的占空比设为电机驱动额定电压内较大驱动力对应的占空比,具体数值需要根据实际情况调节。
3.2 主函数流程图
当通过按压五位按键按出弹簧要求形变量,系统依次初始化相关硬件设置,当设定好后,按下确认键,电机即可转动,同时系统进入PID控制调节,可通过数码管屏幕显示的值来观察到实时弹簧形变量。
具体流程图如图2。
4 结语
利用单片机实现PID算法产生PWM脉冲来控制电机扭矩,利用电机使得弹簧发生形变,且形变量为是设定值是被控量。对弹簧一个方向的位置-力测控,具体方向由机械结构决定,解决弹簧变化显示当前的形变量。
参考文献
[1]卢京潮,赵忠,刘慧英,袁冬梅,贾秋玲.自动控制原理[M].北京:清华大学出版社,2013.
[2]沙占友.单片机外围电路设计[M].北京:电子工业出版社,2003.
Abstract:This paper introduces the general design idea and method of the spring position and force measurement and control system based on STM32F103VCT6 single chip microcomputer, and expounds the working principle of the whole system, the design of hardware and software and the related technical problems. The measurement and control system has the characteristics of high precision and good reliability compared with the mechanical spring control valve.
Key words:position -force measurement and control system; single chip microcomputer; PID correction; PWM pulse