APP下载

基于能力培养的单片机课程设计*

2023-12-13胡发焕郑大腾郭猷敏

机电工程技术 2023年11期
关键词:闭环控制高电平导通

胡发焕,郑大腾,郭猷敏

(井冈山大学机电工程学院,江西 吉安 343009)

0 引言

“单片机原理及应用”是电气工程、测控技术与仪器、机械电子工程等电控类专业的基础核心课程,是从事机电、自动化设计人才必须掌握的一门专业课程。该课程不仅要求掌握相应的理论知识,同时具有很强的实践性和工程性,强调理论教学和实践教学的高度结合[1-4]。但在传统的单片机教学过程中,实践环节却没有得到应有的重视,与培养大学生实践和创新能力的要求差距较大[5-8]。单片机课程设计是整个课程教学的重要实践环节,它将单片机原理、模拟电路、数字电路、自动控制原理等相关课程的知识紧密结合起来,为提高课程设计效果需要根据教师提出的要求,设计完成一个实际项目的设计过程。刘恒[9]采用现成的实验箱形式完成实验,主要训练学生的软件编程能力,难以培养学生的电路设计能力。依据老师布置的项目,学生自己设计硬件电路、选择电子元器件、设计PCB 板、焊接元件、编写程序、联机调试等一系列过程,完成一个单片机应用的小系统。课程设计实验环节是以学生为主体,以培养学生的综合设计能力和创新能力为目标[10]。

教师在单片机课程设计选题时,应该结合学生的自身需求,同时拓展学生的知识面,王一[11]采用的主控芯片在拓展学生知识面上有所欠缺。大学生在学习期间,常参加各类学科竞赛,通过学科竞赛可以检验和提高学生的理论基础和实践创新能力。在电类学科竞赛中常会考查学生对闭环控制系统的设计能力,控制系统的执行器通常是电机类。因此,本文以基于单片机的直流电机闭环控制系统设计为单片机的课程设计题目,在主控芯片上选用性能更高的单片机,以达到更好地培养学生的专业综合设计能力和促进学生参加学科竞赛的目标。

1 课程设计目标

通过单片机课程设计,学生应掌握以下的知识点:(1)掌握单片机编程的基本知识;(2)掌握闭环控制经典控制方法,即比例-积分-微分(PID)控制算法;(3)掌握脉冲宽度调制(Pulse Width Modulation,PWM)技术的相关知识;(4)掌握直流电机驱动电路的设计方法;(5)掌握一种电机转速和转向检测传感器的使用方法。通过单片机的课程设计,让学生能够举一反三,达到培养学生的综合设计和创新能力的目标。

2 硬件电路设计

2.1 整体设计方案

直流电机闭环控制系统,要求电机能够快速地启动、停止和频繁正反转,且电机的实际转速和系统要求转速一致,因此必须具有转速负反馈,构成闭环控制系统,其原理如图1 所示。

图1 直流电机闭环控制系统

直流电机调速方案主要有3 种:调节电枢电压、调节电枢的串联阻抗和调节电机的磁场强度[12]。其中调节电枢电压用得最广,本文即采用这种方式。电枢电压采用PWM 方式调节,这种方式调节范围宽(可在0 ~100%之间来连续调节)且效率高。它是根据窄脉冲面积等效的原理,通过改变高电平的比例(占空比),将固定的直流电压变换成所需要的直流电压,从而改变电机的电枢电压:

式中:Ud为电枢电压;Us为电源电压;ton为PWM 脉冲高电平时间;t 为PWM 周期;ρ 为两者之比为占空比,当ρ =0 时Ud=0,ρ =1 时Ud=Us。

2.2 调速系统结构

调速系统框图如图2所示。图中,VT1 ~VT4为4 个开关管构成H 桥控制电路,当VT1 和VT3 导通时,VT2 和VT4截止,电机正转;当VT2 和VT4 导通时,VT1和VT3 截止,电机反转。通过调节PWM脉冲的占空比,实现对电机转速的控制。同时通过转速检测传感器,获得电机的转速,以达到闭环控制的目标。为更好地实现电机的闭环控制,本文的单片机采用某公司C8051F310 单片机[13],该单片机较教材选用的80C51 单片机功能强,其特点:该系统资源丰富,带内部晶振,有21 个外部输入的12 位ADC和2 个10 位DAC,29 个I/O 端口,15 个向量中断源,可编程的16 位计数器定时器阵列,4 个通用16 位计数器/定时器,5 个捕捉比较模块,可输出16 位PWM 脉冲。选用该单片机除了其强大功能,还可以训练学生学习更高级别单片机,扩充学生知识面。

图2 数字化闭环PWM直流调速系统硬件框图

2.3 电路设计

(1)单片机端口分配。

在学科竞赛中用到的轮式机器人大多是两轮机器人,因此本文设计控制2 个直流电机,即轮式机器人的左右轮。单片机采用内部晶振,每个电机分配1 个电机转速控制端口(PWM输出端口)、1 个电机转向控制端口、1个获取电机转速反馈端口和1 个获取电机转向反馈端口,每个电机需用4 个端口,2 个电机共需8 个I/O端口。显示屏需4 个I/O 端口。按键需5 个I/O 端口,端口分配如图3 所示。具体分配是左右轮电机的PWM输出端口分别是P1.0 和P1.1;左右轮电机的转向控制端口分别为P1.4和P1.5;反馈左右轮电机速度端口分别为P1.2 和P1.3;反馈左右轮电机转向端口分别为P1.6 和P1.7,通过P1 的8 个端口实现对2 个电机的闭环控制。显示屏采用SPI通信方式,占用P0.0 ~0.2 端口和C2CK 端口。按键用P2.2 ~2.6 端口。

图3 单片机端口分配

(2)电机驱动电路及分析

单片机输出的PWM 信号不能直接驱动电机,需经过电机驱动电路才能控制电机的正常工作。本文采用图2 的H桥方式实现电机的控制。H桥的4 个开关管选用场效应管,它具有损耗小、工作电流大的优势。采用2个半桥驱动器IR2104 芯片控4 个开关管[14],其驱动电路如图4 所示。IR2104 的SD为使能端,高电平有效;IN为脉冲信号输入端,可输入TTL 电平;HO、LO 为控制输出端,分别为高、低桥臂的门极驱动端,HO 的逻辑电平与IN 同相;LO 的逻辑电平与IN 反相,任何时刻HO和LO只有一个输出逻辑高电平。VB 是高桥臂浮动电源输入端,VS高桥臂浮动电源回流端,2 个IR2104 控制一个电机。以左轮电机为例,2 个IR2104 控制4 个场效应管,PWM_L和DIR_L 分别为电机转速和转向控制输入端。当DIR_L为逻辑高电平1 时,U8 的HO输出逻辑高电平,LO 输出逻辑低电平,V2 饱和导通,V3 截止。PWM_L是PWM信号,当PWM_L是高电平1 时,V1 饱和导通,V4 截止,电机无电流流过;当PWM_L 是低电平0 时,V1 截止,V4 饱和导通,这时V2 和V4 饱和导通,V1 和V3 截止,电机正向转动,改变PWM_L 的占空比则改变电机的转速。同理分析可以得到,当DIR_L为低电平0 时,电机反向转动,改变PWM_L 的占空比则改变电机的转速。在向学生分析电路时,应讲解二极管D6 ~D9 的作用:因场效管的门极和源极之间有结电容,在场效应导通和截止时结电容存在充放电过程,在门极电阻并联二极管,使得充放电时间常数不一样。充电时,电流经过门极电阻,放电时电流经过二极管,放电时间小于充电时间,使场效应管截止时间小于导通时间,确保一个场效应管导通时,另一半桥臂的场效应管提前截止。D4、C14 和D5、C13 通过充放电构成自举电路,依靠自举电路,HO 输出逻辑高电平时,可达高于VCC 电压6 ~8 V,可以确保高桥臂V1、V2 饱和导通时门极的高电压。在课程设计的分析过程中,应向学生讲解自举电路的工作原理和场效应门极二极管的作用,这也是分析整个电路的一个重点。

图4 电机驱动电路

(3)逻辑电路及分析

在电机驱动电路中,存在一个缺陷,当控制电机转向的DIR_ L输出高电平1 时,V2 保持饱和导通,V1 保持截止。由于DIR_A 不是PWM 波形不能形成充放电,此时U8 的自举电路工作状态受到严重影响,测试发现此时U8 的HO电压比VCC 电压高出约3V,即V2 不能工作在饱和状态,发热明显加大,影响其正常工作。为了克服上述的缺点,本文在驱动电路前加入逻辑电路,以左电机逻辑电路为例,运算电路如图5 (a)所示,实现电路如图5 (b)所示。从单片机输出的L_PWM、L_DIR分别为左电机速度信号和电机转向信号,逻辑电路运算分别为:PWM_L =L_PWM·L_DIR 和DIR_L =L_PWM·L_DIR。逻辑电路输出的PWM_L 和DIR_L 送给电机驱动电路。当转向信号L_DIR 为高电平1 时,PWM_L =L_ PWM,DIR_L =0。此时PWM_ L 端输出PWM波形,U7 的自举电路能正常工作;而U8 的HO =0,LO =1,V2 保持截止,V3 保持饱和导通,因V2 截止,所以自举电路的电压对V2 没有影响。当L_DIR 为低电平0 时,PWM_L =0,DIR_L =L_PWM。DIR_L端输出PWM波形,U8 的自举电路能够正常工作;U7 的HO=0,LO =1,V4 保持饱和导通,V1 保持截止,因V1 截止,所以自举电路的电压对V1 没有影响。

图5 逻辑电路

从上述分析可知,经过逻辑电路后不论电机正转还是反转,保持饱和导通的不是高桥臂而是低桥臂,低桥臂饱和导通时门极电压不需要比VCC的电压高,因此克服了驱动电路的缺陷。本文的逻辑电路也是学生需要理解的一个重点。

(4)电机转速反馈电路

电机的闭环控制需要通过传感器获得电机的实际转速并反馈给单片机,确保电机的实际转速和单片机的给定转速一致。本文的转速传感器采用HEDS-5540增量式编码器,它安装在电机的尾部,与电机合为一体。该编码器是1024 线编码器,直接输出两相TTL 的数字脉冲信号,两相信号之间有90°的相位差。本文用其中任何一相作为电机的转速反馈信号,送给单片机的计数器实现测速。

(5)电机转向反馈电路

要对电机闭环控制,必须将电机的转向反馈给单片机,确保电机的实际转向和给定转向一致。本文的转向检测电路采用两路边沿D触发器74LS74 实现对两个电机的转向检测,检测电路如图6 所示。为便于检测,本文将复位端CLR1、CLR2 和置位端SET1、SET2 接高电平。将2 个编码器送来的四路脉冲信号分别输入CLK1、D1和CLK2、D2,其中CLK 为2 个D 触发器的时钟信号,上升沿有效;D 为数据输入端,Q 为触发器的输出信号端,其输值为时钟信号上升沿对应的输入端D 的值,即:RQ=RD·RCLK↑。编码器传输过来的AB 两路脉冲方波的频率相同,但相位相差90°。鉴向过程如图7 所示,当电机正转时,A相超前B相90°,触发信号的上升沿对应的输入信号是高电平,此时输出端Q 为高电平1;当电机反转时,A 相滞后B相90°,触发信号的上升沿对应的输入信号是低电平,此时输出端Q 为低电平0。通过电机转向反馈电路,单片机可获得电机的转向。

图6 电机转向反馈电路

图7 电机转向鉴相示图

(6)按键及OLED显示电路

为调节及显示电机转速,控制电路中设计了按键及OLED显示电路,控制引脚分配(图3)。按键共有5 个“运行”“停止”“调速”“速度+”“速度-”。通过这些按键可以启动、停止和调节电机的转速。OLED 显示屏是采用SPI通信方式通信,用于显示电机的设置转速和实际转速,通过两个速度的比较,可以直观地得到电机控制的效果。

3 软件设计和性能测试

3.1 主程序设计

主程序流程如图8 所示,在电机运行过程中,可以随时改变电机速度。按功能不同,子程序包括了初始化设置子程序、PID 转速控制程序、按键和显示子程序等。

图8 主程序流程

3.2 数字PID控制器设计

PID控制器广泛应用于自动控制领域,是电类专业学生要求掌握的一个知识点,也是本课程设计的一个教学重点。本设计通过对电机的转速控制和显示,能够让学生对PID 控制器的设计及其效果有一个直观的理解。在微机控制系统中,采用离散化设计方法,得到数字PID控制器,它分为位置式PID和增量式PID,本文的控制对象为电机,故采用增量式数字PID控制器[15],其控制方式如式(2)所示,控制程序的流程如图9 所示。因为PWM 的占空比最大为1,因此,本文采用限幅式PID控制方式,即u(k)≤Umax。

图9 增量式PID子程序流程

3.3 系统性能测试

本文测试的电机是Faulhaber 2342L012CR 直流伺服减速电机,是在学科竞赛中常用的一款电机,其主要参数:额定电压12 V,额定功率17 W,直流阻抗1.9 Ω,转子电感65 μH,机械时间常数6 ms,原始转速7 680 r/min,减速后转速120 r/min,连续转矩1.7 N·m。两轮机器人小车的实物如图10 所示。

图10 两轮机器人实物

本课程设计实验平台的控制方式为闭环控制,为检测控制效果,采用开环和闭环两种方式进行了测试比较,测试的结果如表1 所示。从表中可得出,本课程设计的实验平台能够良好运行,闭环控制方式的静差率和调节时间比开环控制都有大幅度降低,其控制效果明显优于开环控制方式。

表1 综合实验平台性能测试

4 结束语

单片机课程设计是单片机课程教学的一个重要实践教学环节,本课程设计涉及的知识点广,主要包含了的单片机基本编程、定时器脉宽调制、单片机中断编程、数字PID编程、直流电机驱动电路设计、OLED 显示器驱动、数字编码器应用、电机鉴向电路等知识点。尤其在电机驱动电路为了使截止桥臂快于导通桥臂而设置门极二极管D6 ~D9;为了克服半桥驱动器IR2104 高桥臂长时间导通时输出电压低的问题而设计的逻辑电路,都是解决实际设计电路的措施,通过学习这些实际案例可以很大地拓展学生的知识点和电路设计能力。因此,本文的设计是一个很好的单片机综合设计案例。

猜你喜欢

闭环控制高电平导通
基于LMI的过渡态主控回路闭环控制律优化设计
一种基于FPGA的PWM防错输出控制电路
基于Petri网的无刷直流电机混合导通DSP控制方法
一类防雷场所接地引下线导通测试及分析
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
适用于厚度在线测量的水压闭环控制系统
智能车竞赛中的闭环控制算法应用分析
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
180°导通方式无刷直流电机换相转矩脉动研究