简易风洞控制系统
该项目使用了EVM_MSPM0L1306开发套件,实现了简易风洞控制系统的设计,它的主要功能为:风机控制、按键交互、波形显示、小球位置控制、小球复杂运动实现。
标签
MPU
nih
更新2024-07-18
浙江理工大学
69

一、设计背景和目标分析

1、设计背景

风洞是研究气流对物体影响的关键工具,其历史可追溯到19世纪。风洞实验通过模拟各种气流条件,广泛应用于航空航天、汽车制造、建筑工程等领域,以优化设计、提高性能和安全性。然而,传统风洞通常是大型且昂贵的设备,仅适用于专业实验室和大型科研机构。随着科技的发展,教育和科研对小型、低成本风洞系统的需求逐渐增加,特别是在高校教学和小型实验室中。

这促使人们开始探索简易风洞系统的设计,利用嵌入式技术,实现小型化、低成本和高精度的风洞实验平台。嵌入式技术的飞速发展为简易风洞控制系统的实现提供了可能。单片机(MCU)作为嵌入式系统的核心,具有体积小、成本低、功耗低和高度集成等特点,广泛应用于各种控制系统中。通过利用MCU,可以构建一个高效的风洞控制系统,实现对气流和小球位置的精确控制。

2、设计目标

本设计的主要目标是构建一个简易风洞控制系统,使小球能够在风洞中稳定地悬浮和移动,并满足特定的控制要求。具体设计目标如下:

基本要求:

(1)小球从圆管底部启动,在5秒内上升到BC段,并能够稳定悬浮在此段至少5秒。

(2)在外界干扰(使用宽度为风机直径三分之一的纸板遮挡风机进风)情况下,小球仍能稳定在BC段。

(3)能通过键盘输入设定小球的高度位置(相对于C点的坐标),启动后小球稳定在设定高度3秒以上,波动不超过±1cm。

(4)小球从圆管底部启动,5秒内上升到圆管顶部A端,并在此位置稳定维持5秒以上。

进阶要求:

(1)实时监测并显示小球的高度位置,以及小球在指定位置维持的时间。

(2)复杂运动控制:小球从底部启动,在30秒内完成复杂的上下运动,包括在AB段和CD段各维持3-5秒,并最终冲出圆管。

二、设计方案论述

整体方案设计分为四个部分,分别是电源部分、检测部分、控制部分和机械结构部分。

1、电源部分

(1)电机供电:由于选用的风机的额定电压为12V,所以可以选择3s锂电池进行供电,但是装置本身不需要移动,所以最终选择使用非移动电源,通过PD诱骗芯片获取12V直流电源为风机供电。

PD诱骗芯片选用的是CH224K,根据芯片手册可以画出它的外围电路,电路图和PCB如下:

(2)单片机系统供电:单片机系统需要5V供电,因此需要设计降压模块。降压芯片选择是TPS54331,它是DC-DC降压芯片,可以满足需求,其电路设计如下图:

2、检测部分

预备方案有两种,一是使用K210,使用色块捕捉,通过建立模型,将色块位置变换后的数据发送给控制芯片,但经过试验后发现效果并不好,识别效果和精度都不算优秀。最终我们选择了另一种方案,使用STM32控制VL530L0x激光测距模块,将测得距离经过变换后发送至控制部分。

 

图1、测量任务代码框架

测试任务在定时器中断中进行,每100ms测量一次。每次测量后,先对数据进行滑动均值滤波,然后通过串口将滤波后的数据发送至控制部分,同时将数据显示到OLED屏幕上。

每次测量时会点亮板载led,用来观测程序是否正常进行。

VL530L0x有四种测量模式,默认模式能够满足需求,因此使用的是默认模式。

在测试例程的过程中,测量是放在main-while循环中进行的,测量的频率很低,后来发现最耗费时间的是模式配置,通过修改测量函数,让每次未修改测量模式时不再配置模式,提升了测量速度。

而main-while循环中进行的是OLED显示任务。OLED使用的是wouoUI框架,相比于u8g2能以更少的内存显示更有动态的画面和进行更具任务性的操作,同时封装程度更高,移植操作也更加方便。本设计中使用OLED以数字和波形显示小球位置,并且对波形显示进行了优化,使波形更加连贯和平滑。

3、控制部分

控制部分使用的是MSPM0L1306核心板,同时外接了OLED显示屏,按键以及蜂鸣器。

OLED同样使用的wouoUI框架,按键通过发送msg控制OLED完成菜单的显示。在UI框架中,不同界面会执行相应的回调函数来进行任务。

按键、串口以及位置状态控制均使用状态机思想。

对于按键,每10ms检测一次按键状态,初始状态为KEY_UP,当检测到按下时,状态转为KEY_CONFIRM;在KEY_CONFIRM状态下,再次检测到按下时,状态转为KEY_DOWN;若检测到未按下,则跳回KEY_UP,以此来完成消抖;在KEY_DOWN状态下,再通过变量cnt的累加来完成按下时间的记录,当检测到未按下时,按键状态转为KEY_RELEASE;在KEY_RELEASE状态下,根据cnt来返回短按或是长按指令,清零后再跳回KEY_UP。

 

图2、串口通信状态机流程

串口通信使用的是自定协议,使用状态机判断接收。数据通过验证后,会进行计算来得到小球的实际位置,然后再进行PID计算更新驱动风机的PWM占空比。小球的位置控制使用的是位置式PID算法,每更新一次目标位置(100ms周期),就会重新计算PWM_VAL,稳定小球在目标高度。

 

图3、控制任务流程

控制部分会一直接收并更新小球位置,小球的位置状态机在定时器中进行(100ms周期),当没有任务进行时,目标高度被设定在最低点,风机以最低转速运行;当有任务进行时,会根据小球实际位置和目标位置判断并更新任务状态,同时根据小球状态以及持续时间,蜂鸣器会以不同频率鸣叫。

4、机械结构部分

按照需求,我使用0.8mm亚克力板卷成一只透明外壳的直筒,可供小球顺利穿梭,电机通过纳米胶和塑料板粘到外壁上,再在对边固定激光测距模块,使模块大致在直筒中央。最后使用塑料薄膜完成电机和直筒之间的气密性连接。整个测距部分固定在直筒外侧,方便进行观测,并且使其和控制部分孤立开。

三、设计过程简述

在程序框架确定之后,需要解决的几个问题:

第一个是VL530L0x测得数据和实际位置的变换,同时在控制部分中,输入的目标位置对应的测得数据的转换。首先,通过手动固定小球位置,记录其在各个高度时的测量值与标定值,建立EXCEL表格,作图并求得对应函数,就完成了测得数据和实际位置的相互变换。

 

表1、测量距离转换为实际距离

 

表2、实际距离转换为测量距离

第二是PID参数的整定。通过实验,测得pwm_val等于1360左右时小球刚好离地,此时测距示数为52,在pwm_val等于1530左右时到达最顶端,测距示数为479,因此,

 

经过不断尝试后,确定了

 

在这样的PID参数下,能取得比较好的控制效果。

四、设计成果展示和优化分析

1、硬件展示

电源部分(降压模块和pd诱骗模块)

检测部分(stm32c8t6核心板和vl53l0x激光测距模块)

控制部分(msp430m0l1306套件)

硬件整体照片

2、控制效果展示

 

图4、Target_height = 15时的响应曲线

图5、Target_height = 20的响应曲线

图6、Target_height = 25的响应曲线

图7、Target_height = 30的响应曲线

上图为不同输入下的响应曲线,可以看到波形都非常的不错,但是很明显的是,目标位置越低(Target _height的值是相对于直管顶端的距离,因此越大,目标位置相对于地面就越低),超调量越大,这是因为积分限幅比较大,此时可以通过增大 Kp,减小积分限幅减小超调,但是实际效果不理想。这可能是因为用风力去“托起”小球的响应可能太滞后了,当 Kp较大时,会很容易出现震荡,目前的参数已经是比较不错的参数。

同时,还可以使用串级PID,增加一个对风扇转速的闭环控制,接口均已经写好,但是由于参数调整太复杂,并没有继续完善,是本设计的一个遗憾。


效果展示:

https://www.bilibili.com/video/BV1uw4m1i7Bt/

参考资料:

【1】https://www.wch.cn/products/CH224.html

USB PD受电协议芯片 CH224 数据手册 - 南京沁恒微电子股份有限公司 (wch.cn)

【2】https://www.ti.com.cn/product/cn/TPS54331

TPS54331 数据表、产品信息和支持 | 德州仪器 TI.com.cn

附件下载
简易风洞控制系统.zip
团队介绍
浙江理工大学 苑鸣凯
团队成员
nih
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号