风摆控制实验系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

风摆控制实验系统设计
余善恩;李真
【摘要】The experimental system aims to meet the teaching and studying requirements ,which provides the experimental platform for learning the principle of automatic control ,MCU ,embedded system ,etc .The main research contents include design of angular surveying ,control & drive module ,and PC software .MPU6050 was used for angular surveying ,PID control algorithm was used to control the flap to go to the target angular , and PC software was used for display ,analysis ,and processing .%为满足"自动控制原理"实验教学的需要,研发了一套风摆控制实验系统.该系统分为角度检测模块、控制驱动模块、上位机软件3部分.控制驱动模块接收来自角度检测模块的风摆角度信息,与上位机设定的目标角度进行比较,计算出当前的风机驱动量并调节风机风力,将风摆控制到目标位置.该系统提供了一个综合性实验平台,能够灵活地应用于单片机、嵌入式系统、电机控制等课程.
【期刊名称】《实验技术与管理》
【年(卷),期】2017(034)006
【总页数】4页(P135-138)
【关键词】风摆;自动控制;PID控制;实验系统
【作者】余善恩;李真
【作者单位】杭州电子科技大学自动化学院 ,浙江杭州 310018;杭州电子科技大学自动化学院 ,浙江杭州 310018
【正文语种】中文
【中图分类】G642.423
“自动控制原理”是自动化类专业本科生的重要专业课,也是其他院系本科生的专业基础课或选修课。

实践性教学内容是该课程教学中的一个重要环节。

当前自动控制原理实验一般基于Matlab仿真平台实现,未能很好地与控制对象结合起来,学生很难理解完整的实验过程,不利于对控制原理的理解与掌握,实验效果并不理想。

为此,笔者研制了一种风摆控制实验系统。

该系统以自动控制原理为基础,综合多门专业课程知识,为学生学习自动控制原理、单片机、嵌入式系统等课程提供了实验平台[1]。

该风摆控制实验系统不仅保留了自动控制实验的模拟功能[2],还改进
和丰富了自主性仿真实验,增加了现代控制理论的实验内容,使得实验系统更加完善[3]。

该系统简单、直观且具有一定的趣味性,目前已成功用于实际教学中,在
学生中获得良好反应,有效地提高了学生参与实验的积极性。

风摆实验控制系统分为角度检测模块、控制驱动模块、上位机软件3部分(见图1)。

角度检测模块的功能是通过三轴加速度计和三轴陀螺仪[4]计算出当前的风摆角度,并将此角度信息反馈给控制驱动模块。

控制驱动模块接收来自角度检测模块的风摆角度信息,与来自上位机或就地设定的目标角度进行比较,计算出当前的风机驱动量,依此调节风机风力,将风摆控制到目标位置,同时将风摆的运动过程传送到上位机。

上位机软件将设定的风摆目标位置或运动过程发送给控制驱动模块,同时接收风摆运动过程信息,可以进行风摆动作曲线的显示、分析和处理。

2.1 总体硬件设计
首先,根据系统控制电路的功能需求选择合适的主控芯片,主要是协调其他模块共同完成数据采集、存储、处理、控制、传输等多项功能。

其次,设计按键控制电路和通信控制电路,通过单片机检测GPIO口高低电平来检测按键,通过串口通信电路实现单片机和上位机的通信。

最后,角度检测模块通过三轴加速度计及三轴陀螺仪,采集信息后计算出当前的风摆角度,并将此角度信息反馈给控制驱动模块用于其控制。

2.2 硬件电路设计
系统选择基于32位ARM Cortex-M3核的处理器STM32F103VBT6作为主控芯片。

该芯片具有非常丰富的片内资源,包括时钟(RTC)、定时器(TIM)、通用I/O
接口(GPIO)、DMA控制器、A/D转换器、USART接口、I2C接口、SPI接口和CAN总线接口,以及20 KB的片内SRAM、128 KB的片内FLASH和一个支持USB 2.0规范的全速USB外围设备,它是整个系统的主控单元,协调其他模块完
成数据采集、存储、处理、控制、传输等多项功能。

系统设计有4个按键,实现选择、向上、向下、确认4种功能,通过不同的操作
组合,可以实现角度设定、PID参数调整及其他操作。

单片机通过检测4个GPIO 口的高低电平变化来判断哪个按键按下。

当按键按下后,GPIO口会从低电平变为高电平,依此可以判定按键是否按下。

单片机和上位机的通信采用串口通信方式,电路如图2所示。

串口通信可以将接
收到的来自CPU的并行数据字符转换为连续的串行数据流发送出去,也可将接收
的串行数据流转换为并行的数据字符供给CPU[5]。

在本实验系统中采用了USB转串口转接芯片CH341A,实现了计算机USB接口到通用串口之间的转换,解决了目前常用笔记本电脑无串口这一问题,增加了实验系统的使用范围及便利性。

风摆角度的检测使用精密导电塑料电位器,其中间抽头的电压随风摆角度变化而变化,该电压信号经过运放电路处理后,再经过模数转换器AD7717转化为数字量,由单片机计算出实时角度值。

控制摆叶运动的风机采用PWM波控制,通过控制PWM波的占空比来调节风速
[6]。

单片机的PWM波输出信号经过隔离后,控制功率MOS管开关动作,进而
控制风机电机的转速,最终达到控制摆叶运动到目标角度的目的[7]。

实验系统软件包括下位机软件、上位机软件,分别对应单片机程序及计算机监控软件。

3.1 下位机软件设计
下位机软件主要工作流程如图3所示。

实验系统上电后,首先对系统进行初始化,然后周期性地执行按键检测、角度检测、控制运算、数据收发等子程序。

系统初始化主要包括对时钟、GPIO、串口、定时器等初始化;按键检测及处理实
现了对4个按键的检测及进行相应的处理,其中包括了消抖动、短按、长按等子
程序;角度检测子程序将模数转换结果换算成角度信息,然后不停地检测当前的风摆角度值,并与设定的角度值进行比较,运行控制算法(例如PID算法),计算出一个控制量(PWM占空比),通过驱动电路调节风扇的风量,继而实现对角度的控制[7]。

实验系统采用中断的方式处理串口通信,将测得的角度等信息传输给上位机,也随时接收上位机发送的角度设定值、控制参数值等,进行相应的数据更新。

程序的初始化包括系统时钟的初始化、GPIO口的初始化、串口通信初始化、定时器初始化等。

对芯片进行初始化后,才可以使芯片正常工作。

系统时钟初始化主要是设置系统的时钟频率,包括设置时钟的预分频和所用芯片功能的时钟使能;GPIO口初始化包括GPIO口打开使能、输出频率、模式选择和管脚复用使能;串口通信初始化包括串口的波特率、字长、停止位、奇偶校验位等设置;定时器设置包括定时器的分频、计数方式、打开允许计数等设置。

风扇使用PWM波驱动,STM32单片机有专门的PWM输出功能,可以设置其输出的频率、占空比等。

程序的PWM输出使用单片机高级控制定时器TIM1输出,该定时器可以实现输
入捕获、输出比较、产生PWM等功能。

只需要通过改变PWM波的占空比,就
可以控制风速,进而控制风摆角度。

程序中设置一个全局变量,通过不断重新设置PWM输出的占空比寄存器来改变风速大小,而这个设定值便是由上位机发送的数据和PID不断调节的数据决定。

角度的计算采用了官方提供的DMP算法解算,可靠度高,漂移较小。

本设计中使用了一个长度为3 000字节的数组,用于角度的解算及实现相应的滤波算法。


算的核心原理为:根据重力加速度在x,y,z 3个轴向的分量,计算出摆叶的角度,继而用三轴陀螺仪对计算出的角度进行修正。

串口通信使用STM32单片机内部的USART功能。

该程序包括串口通信的波特率、字长、停止位、奇偶校验、初始化等。

程序设定的波特率为9 600,一次发送8位数据,有奇偶校验位,1位停止位。

上位机采用特定的通信方式将管理者的命令发送给单片机,实现PC机远程操纵的目的;同时,单片机将数据返回给上位机,实现后续的处理和显示[8]。

3.2 上位机程序
风摆控制实验系统上位机软件采用C#语言编写,具有基本的操作界面、按钮处理、输入输出、图形界面显示等功能[9]。

此程序将使用者输入的设定角度信息经过处
理发送给单片机,并将单片机发送回来的数据和摆叶的运动轨迹在图形界面显示出来,便于使用者操作和处理[10]。

由于需要发送的数据范围是0~5 000,而发送数据函数在发送时一次只能发送8
位数据,即允许发送范围为0~0xFF(0~255),所以需要对要发送的数据进行处理,然后再发送[11]。

处理方式是:发送数据除以256,得到的商和余数(符合发
送范围)通过串口相互发送,接收端将接收到的数据按对应关系乘以256再加余数,便可以得到想要的值。

这种发送方式简单,而且数据处理量也不是很大,很适合系统使用[12]。

4.1 上位机对单片机的通信协议
上位机发送系统启动和关闭命令时,发送4位的数据,其中前3个是命令,后一个是判断标志,判断是否为开关机命令。

单片机通过判断标志判断接收的是数据还是命令,然后通过前三位判定是打开还是关闭系统。

上位机给单片机发送数据命令时,包括设定风摆角度、比例、积分、微分值,其格式如图4所示。

发送11个8位的数据,其中第一个始终发送0xA5,表示发送开始;2—9个分别是PID参数和设定角度经过计算处理后的数据,最后2个8位数据是命令码及检验标志。

接收端也是按照这种方式进行接收处理,然后在控制中体现出来。

4.2 单片机对上位机的通信协议
单片机对上位机发送的数据包括实时角度测量值、当前控制量以及状态等,以便上位机实时监控,数据格式如图5所示。

发送时,发送7个8位数据,其中第一个始终发送0xB5,代表数据发送开始,第2—6个分别是测量角度值、当前控制量以及状态等,其中数据也是经过处理的,符合发送的数据大小。

上位机将接收的数据处理后显示出来。

风摆控制实验系统实现了风摆角度的实时检测和进行实时数据、曲线的显示;通过调整、发送控制参数到单片机可以得到不同的控制品质。

该系统结构简单、可扩展性强,已成功应用于实际教学,帮助学生完成了自动控制原理、单片机、软件设计等课程的相关实验,且实验结果具有直观、实时等优点,教学效果良好。

E-mail:*****************.cn
【相关文献】
[1] 赵林.基于STC12C5A60S2的帆板控制系统设计[J].电子设计工程,2012(4):149-154.
[2] 刘青,任晓芳.帆板控制系统设计[J].自动化应用,2015(7):86-94.
[3] 张存吉,宁爱民,倪杰,等.基于增量式PID算法的帆板控制系统的设计[J].嵌入式与
SOC,2012(7):67-68.
[4] 乐丽琴,李姿景.基于单片机SPCE061A的帆板控制系统设计[J].电子测量技术,2014(9):56-59.
[5] 李智敏.USB虚拟串口通信实现[J].电子科技,2014,27(3):120-122.
[6] 庞前娟,李精华,魏丽娜.PC风扇自启动恒流驱动电路的设计[J].自动化技术与应用,2009(11):113-115.
[7] 李红萍,李泉,李金明,等.基于PID算法的帆板角度控制系统设计[J].电气自动化,2013,35(1):71-73.
[8] 李红萍,李金明,李泉,等.帆板角度PID控制系统设计[J].自动化与仪器仪表,2012,34(6):51-53.
[9] 韩澄宗,朱善安.基于自定义算法的远程控制实验系统设计[J].实验室研究与探索,2006,
25(12):1526-1529.
[10] 姚迪,李正军,周敬,等.基于VC++的串口通信实时绘图系统的软件设计[J].工业控制计算
机,2016(6):99-100.
[11] 彭敏.基于ARM7的工业控制数据采集系统的研究[J].现代电子技术,2011(2):12-14.
[12] 周静,张蕾,南洋.基于RS232-USB转换器及LabVIEW平台下温湿度采集系统的设计[J].电子测试,2012(5):50-54.。

相关文档
最新文档