目录(需要源文档及程序加QQ2521170001获得)

一、系统方案(完整文档以及代码可私聊获得qq2521170001)

1.1 系统基本方案

1.1.1 控制方案设计

1.1.2 机械结构方案设计

1.2 各部分方案选择与论证

1.2.1电机选择

1.2.2 电机驱动的选择

1.2.3 摆杆与横杆的连接选择

1.2.4 摆杆与风机的连接选择

二、系统理论分析与计算

2.1风力摆位置的计算与分析

2.3控制算法的分析

三、电路与程序设计(完整程序可私聊我获取)

3.1电路的设计

3.1.1风力摆控制系统总电路原理图

3.1.2部分电路详细原理图

3.1.3电源

3.2程序的设计

3.2.1程序功能描述与设计思路

3.2.2程序流程图

四、测试方案与测试结果

4.1测试方案

4.2测试条件与仪器

4.3测试结果及分析

(1)测试结果

(2)测试分析与结论

五、结论与心得


要 :本系统采用STM32F103开发板作为控制中心,与万向节、摆杆、直流风机(无刷电机+扇叶)、激光头、反馈装置一起构成摆杆运动状态与风机速度分配的双闭环调速系统。单片机输出可变的PWM波给电机调速器,控制4个方向上风机的风速,从而产生大小不同的力。利用加速度计模块MPU6050,准确测出摆杆移动的位置与中心点位置之间的关系,采样后反馈给单片机,使风机及时矫正,防止脱离运动轨迹。使用指南针模块判别方向,控制系统向指定方向偏移。控制方式采用PID算法,比例环节进行快速响应,积分环节实现无静差,微分环节减小超调,加快动态响应。从而使该系统具有良好的性能,能很好地实现自由摆运动、快速制动静止、画圆、指定方向偏移,具有很好地稳定性。

关键词:STM32F103、直流风机、MPU6050、PID、指南针GY-273


一、系统方案(完整文档以及代码可私聊获得qq2521170001)

1.1 系统基本方案

1.1.1 控制方案设计

为了实现题目要求我们采用STM32F103V单片机做为主控芯片,用加速度计陀螺仪模块MPU6050来计算角度和风机状态,用直流风机带动摆杆运动。当MPU6050检测到摆杆的角度时,可根据三角函数公式计算出摆杆现在距离中心的具体位置(方向、距离),单片机会控制PWM波的输出大小来控制风机的风速与方向,使摆杆达到在特定位置静止或按照一定的轨迹运动。当摆杆处于自然下垂状态时,给四个风机同时上电且风向都向外,此时摆杆仍处于受力平衡——静止状态。此时降低X轴上一个风机的转速,摆杆将会带动激光头在X轴上画一条直线,当达到一定的倾斜角度时,单片机可根据角度计算出此时距离中心的距离是否>=25cm,若达到要求后,此风机减速,X轴反方向上电机逐渐加速,恢复到初始速度,反方向做相同的运动。在此过程中,单片机做出A/D采样,Y轴方向方向风机随时做出矫正,防止发生轨迹偏移。角度传感器控制系统框图如图

1 控制系统框图

1.1.2 机械结构方案设计

由于摆杆长度(60cm~70cm)较长,且要求激光头在地面画出15cm~35cm的圆,所以要求横杆的距离要足够长。横杆长度较长加之摆杆重量较大,所以要求底座要有足够的重量来支撑整个系统。如果结构不稳或者重量不够,摆杆运动过程中将会产生倾倒或者抖动等现象,影响测试结果。于是,底座采用了“工”型结构,保证了整个系统的稳定性。摆杆材料方面,我们选用轻便的硬质铁质材料与风机进行刚性连接,既能保证连接处的稳定,又可达到减轻底座负担的目的。风机选择方面,既要保证风力够大,能够实现题目基本要求中的自由摆运动、快速制动静止。又要有一定的重量,质量越大,惯性越大,越不容易改变原来的运动状态,在实现发挥部分(2)时,受到外界干扰,不容易改变原来的圆周运动状态机械结构如图2

  1. 底座;2.竖杆;3.横杆;4.螺栓;5.万向节;6.摆杆;7.风机(1);8.风机(2);9.风机(3);10.风机(4)

1.2 各部分方案选择与论证

1.2.1电机选择

方案一: 采用小型轴流风机(大功率),使用双滚珠轴承,采用滚动摩擦的形式,轴承中有数颗微小钢珠围绕轴心,当扇叶转动时,钢珠即跟着转动。因为都是球体,摩擦力较小,所以转速较高。能达到8000RMP,同时产生较大的风力。风机内力矩较大,是因为机内绕了大量的铜线,导致重量较大,当4个风机固定到一起时,重量更大,风机产生的风力带动风机运动困难加大,更难做到题目中按要求运动。另一方面,此风机功率较大,所需电流较大,驱动与供电方面也有很大问题。

方案二:采用双环强磁空心杯电机,内部使用强磁,转速较高。风力也足够大,基本能达到要求。但是到题目发挥部分(2)时,面对外界风力干扰时,由于本身重量较轻,极易受到外界干扰,而不容易保持原来状态。另外,空心杯电机使用3.7V供电,供电电压较低,单片机控制电机转速时,空心杯的电压线性度较小,而不易被精准控制。

方案三: 采用无刷电机,风力较大,重量适中,完全能达到题目运动状态要求,速度控制精确,但须配套电机调速器。

综合考虑,我们选择方案三。

1.2.2 电机驱动的选择

由于上述电机选择了无刷电机,此驱动只能选择电机调速器。

1.2.3 摆杆与横杆的连接选择

方案一:摆杆使用粗单股导线直接与横杆连接,连接简单且自由度较好,给风机供电等方面都比较容易,但是导线容易产生自旋,风机固定困难也增大,增加了调试难度。

方案二:摆杆使用硬质铁质材料,通过万向轴与横杆相连。用此材料强度能够达到要求,且风机固定容易。硬件搭建合理,配重平衡的前提下,摆杆来回摆动不易发生偏移,可轻松解决基本要求(1),减少了编写代码的工作量。

综上考虑,我们选择方案二,节约时间。

1.2.4 摆杆与风机的连接选择

方案一:摆杆与风机之间使用一个直流电机或者舵机连接,这样可以随时改变风机的方向,同时可减少风机的数量,控制量减少。但是此方案连接结构较为复杂,发挥部分圆周运动稳定性不高。

方案二:摆杆与风机之间采用刚性连接,连接较为简单,稳定性能较好。

综上考虑,我们选择方案二。


二、系统理论分析与计算

2.1风力摆位置的计算与分析

通过加速度计陀螺仪模块MPU6050检测风力摆摆杆的倾角数据。MPU6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计。可根据三角函数公式,可计算出此时摆杆距离中心位置的距离(见图3)。内部有一个数字运动处理器DMP。MPU6050和所有设备寄存器之间通信采用400Khz的I2C接口,实现高速通信。测试过程中,MPU6050与单片机之间进行通信,距离较长,走线较多,干扰较大导致读数不准确,所以在SCL与SDA上拉2K电阻,解决采样问题。内置卡尔曼滤波器,采用最优化自回归数据处理算法精确测量风力摆当前姿态角。MPU6050对陀螺仪和加速度计分别采用了16位的ADC,将其测量的模拟量转化为可输出的数字量,通过DMP处理器读取测量数据然后通过串口输出。

2.3控制算法的分析

系统采用PID算法来控制风机转动的速度,风机开始工作后,MPU6050不断采集当前摆杆摆脚状态,并与之前的状态进行比较,使得摆杆运动状态趋于稳定。PID算法控制器由4个风机速度分配比例P角度误差积分I角度微分D组成。

其输入e(t)与输出U(t)关系为:略

传递函数为:略

(此处一系列推导公式省略,公式太难编辑了,我太懒了,需要完整的论文可私聊我qq2521170001获得)

在发挥部分(1)时,要求做圆周运动。四个直流风机1、2、3、4,1和3用来使摆杆与重力方向呈现设置的夹角,2和4用来推动摆杆沿切线方向运动,这样通过控制1、3电机的PID参数使摆杆达到设定的角度,通过2和4推动摆杆,摆杆就会沿切线运动,绘制圆形轨迹。


电路与程序设计(完整程序可私聊我获取)

3.1电路的设计

3.1.1风力摆控制系统总电路原理图

3.1.2部分电路详细原理图

3.1.3电源

系统整体采用电脑电源供电,最大可输出10A电流,无刷电机平均所需电流为2A,电源可满足需求。12V供给4个并联电机驱动(电调)带动风机转动,5V给单片机供电,单片机自带稳压输出3.3V给MPU6050供电,电机驱动本身也可稳压输出5V,给激光头(5V)供电。此系统中所有电源共地。


3.2程序的设计

3.2.1程序功能描述与设计思路

  1、程序功能描述

系统采用独立按键控制进行模式选择,设置有7个按键,按键1~6分别代表4个基本要求和2个发挥部分。使用12864液晶做显示模块,系统开机后进入初始化状态出现欢迎界面,然后通过按键进行模式选择,执行不同的要求。

2、程序设计思路

基本要求(1)属于全开环控制,通过粗略控制便可实现,设定倾角阈值,从低到高不断增加X风机转速,直到倾角超过阈值,记录此时PWM脉宽级作用时间。

基本要求(2)需要采用闭环控制算法,计算公式与(1)相同,设定好范围后,可与(1)使用相同的方法调试。

基本要求(3)要采用受力分析,使用力的合成。

基本要求(4)拉起一定角度后,如果不提供动力,摆杆将逐渐衰减,但是速度缓慢,因此需要提供与运 动方向相反的力,阻碍摆杆运动。这个过程需要注意,实时采集摆杆的角度(比例项 P),进行 微分从而确定角速度(陀螺仪直接测量亦可),为微分项 D,采用类似于自平衡的 PD 控制算法 即可

发挥部分(1)可以明确,径向风机控制采用 PID 控制算法,使摆杆稳定在某一设定角度,切 线方向控制 2、4电机产生推力,推动摆杆圆周运动。那么,很明显,关键在于如何使摆杆稳 定在某一个角度(认为设定),使用 PID 算法即可,原理类似于基本部分(4),只不过基本部分(4)将竖直方向(重力方向)视为设定值,而发挥部分中是将设定的半径转换成的角度视为设 定值。

发挥部分(2)这个项目主要是评价发挥部分(1)控制算法的稳定性,无需特别的算法,事实上只要发挥部分(1)做得好,这一部分即可实现。

发挥部分(3)使用了指南针模块,可以确定方向,无论将系统怎么放置,摆杆可始终指向一个指定的方向。

3.2.2程序流程图

1、主程序流程图

2、PID算法框图


测试方案与测试结果

4.1测试方案

  1. 驱动风机带动摆杆来回摆动,使激光头在地面上打出一条大于50cm的直线。记录由平衡位置到完成划线要求时所用的时间以及最大偏差距离。重复6次,记录在表1中。
  2. 人为的设定激光头划线的长度,从30cm开始测量,记录到达规定长度所用时间和最大误差,测量3次,时间取平均值。然后依次记录40cm、50cm、60cm的数据,记录在表2中。
  3. 人为的设定激光头划线的方向,使激光头在地面上打出一条大于20cm的直线。从 0°直线开始。记录达到规定长度所用时间和最大误差,测量3次,时间取平均值。然后依次测量  90°、 180°、270°、360°直线,记录在表3中。
  4. 将摆杆拉倒一定的角度然后放下,驱动风机,记录摆杆恢复到中心位置所用时间,记录在表4。
  5. 以摆杆静止时的位置为圆心,设置画圆半径,记录激光头划线旋转3周后所用时间,以及偏差的最大距离,重复3次。然后改变半径长度,在一次测量,记录在表5中。
  6. 加入外界台扇干扰后,依次测量记录恢复到(5)状态所用时间,记录在表5中。

4.2测试条件与仪器

秒表、自制角度测量板、量角器、直尺、示波器、信号源(由于使用无刷电机,使用电调精确控制速度需要信号源产生、示波器测量PWM波的频率、占空比等)

4.3测试结果及分析

(1测试结果

                            1 风力摆画长于 50cm 直线测试

第一次测试

第二次测试

第三次测试

第四次测试

第五次测试

第六次测试

时间/S

17

16

14

13

10

10

误差/cm

4.5

3.8

2.2

2.1

2.3

2.2

 2 风力摆画不同长度直线测试

30cm 直线

40cm 直线

50cm 直线

画60cm 直线

平均时间(s)

6

6.5

8

10.5

误差 1

1.1

1.2

2.6

1.4

误差 2

0.9

1.0

1.1

2.5

误差 3

1.3

1.3

0.8

1.6

 3 风力摆画不同角度直线测试

0°直线

90°直线

180°直线

270°直线

360°直线

平均时间(s)

7.0

6.5

7.7

7.5

10.0

误差 1

2.0

1.8

1.0

2.1

1.8

误差 2

1.6

1.5

1.9

1.6

1.6

误差 3

2.2

1.1

1.3

1.4

1.2

                           4 风力摆恢复静止测试

时间(1)

时间(2)

时间(3)

时间(4)

时间(5)

拉起 30°

2.2

2.5

2.1

3.0

2.4

拉起 35°

2.9

3.7

3.3

3.7

2.9

拉起 40°

3.3

3.2

2.9

3.1

3.3

拉起 45°

3.6

5.1

3.8

3.6

5.5

                            5 风力摆画圆测试

半径 15cm

半径 20cm

半径 25cm

半径 30cm

半径 35cm

时间(1)

26

20

22

24

20

偏差距离(1)

1.9

2.2

1.3

1.6

2.0

恢复时间(1)

3

2

2

3

3

时间(2)

22

18

14

19

25

偏差距离(2)

1.1

1.0

2.2

3.0

2.2

恢复时间(2)

4

5

3

5

4

时间(3)

18

20

22

23

26

偏差距离(3)

1.5

1.8

1.9

1.9

2.0

恢复时间(3)

4

4

3

4

3

(2测试分析与结论

根据上述测试数据,该风力摆控制系统已能达到基本部分和发挥部分的全部要求和性能指标,由此可以得出以下结论:

  1. 风机的性能是决定系统能否完成题目要求的关键,风机性能由其本身决定,包括重量、产生的最大风速、以及所需的电流。任何一个达不到要求,将会给程序调控大大增加难度,所以硬件搭建很重要。
  2. 好的算法,也起到至关重要的作用,为了能达到题目要求,四个风机的速度分配比例很重要,这就需要良好的算法加合适的参数。
  3. 此控制系统,需要时间上的配合,时间参数同样重要,要能保证在规定时间内完成任务。

综上所述,本设计达到设计要求。

结论与心得

四天三夜的电赛让我们收获很多。在这次比赛中,我们学会的知识和技能不单单是硬件搭建、电路调试、软件测试这么简单。更重要的是,我们亲身体验了团队协作的重要性。开始的时候,选择材料十分重要,由于我们对轴流风机认识不够彻底、不够深入。导致我们使用的风机,达不到题目的要求。所以我们决定更换风机,更换风机之后,就需要改动摆杆结构。程序调试阶段,我们斟酌的使用了PID算法,仍然遇到了很多的挑战,我们在程序思路上下了很大的功夫,但调试结果仍然不尽人意。在仅仅剩下的几个小时内,心里更加焦急,但是我们深知不能自乱阵脚,在稍微改动了一下程序思路之后,就能基本上完成题目要求。从这一点来看,团队之间沟通很重要;最重要的是遇到困难要不要被得失所困扰,要一心一意去解决这个问题。最后感谢学校老师的后勤保障,让我们有良好的工作环境,不被外界干扰。感谢电赛组委会,给我们展现自己能力的平台。

基于stm32风力摆控制系统(电赛获得省一)相关推荐

  1. 基于STM32单片机的风力摆控制系统

    摘    要  本系统采用STM32F103V开发板作为控制中心,与万向节.摆杆.直流风机(无刷电机+扇叶).激光头.反馈装置一起构成摆杆运动状态与风机速度分配的双闭环调速系统.单片机输出可变的PWM ...

  2. 毕业设计 基于stm32的灯光控制系统 物联网

    基于stm32的灯光控制系统 本次设计的是基于STM32F103C8T6单片机设计的一款教室灯光控制系统 系统内有光敏电阻模块采集教室内的光照强度,光电管检测教室内是否有人 通过按键可以直接控制开灯和 ...

  3. 基于STM32的温度控制系统

    提示:记录毕设 文章目录 前言 一.任务书 1.1设计(研究)目标: 1.2设计(研究)内容: 二.代码思路 三.硬件 四.联系我们 五.设计 六.框图代码等资料 喜欢请点赞哦! 前言 基于STM32 ...

  4. 基于STM32楼梯层控制系统

    1.项目需求分析 项目目标意义: 随着社会的发展. 科技的进步以及人们生活水平的逐步提高, 各种方便于生活的遥控系统开始进入了人们的生活. 电梯的发展是由于需要从山坡上运输包括煤和材在内的原材料而引发 ...

  5. 源码分享二:STM32风力摆代码 PID | 李萨如合成

    之前大学做了很多乱七八糟的东西,自己也写了不少各种各样的代码,抽个时间记录一下,算是对过去的总结,也帮助一些初学的人可以更快的上手一些小的项目,提升学习单片机的乐趣,在成长的路上助大家一臂之力,大家一 ...

  6. 【MSP430F5529基于库函数的学习】电赛速学及小车实战

    文章目录 前言 一.void SystemClock_Init(void)//系统初始化 时钟系统结构 二.void Counter_Left_Init (void) //编码器计数 设置外部中断 三 ...

  7. 智能家居—基于STM32的温湿度控制系统(WIFI模块)

    基于App控制的STM32温湿度控制系统(WIFI模块) ESP8266WIFI模块 模块使用说明 常用AT指令 DHT11温湿度传感器 简介 模块数据的发送流程 代码实现 μs级的延时配置 HAL库 ...

  8. 「第四篇」电赛控制题可以准备一些什么?

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 0  前言 在我看来,其实控制题是较好做(混)的一种题型,你懂我意思吧.控制题简单概 ...

  9. 电赛猜题?我觉得没用,还不如做好这些!

    01 前言 大家好,我是张巧龙,转眼又到22年电赛,这个公众号上有很多同学可能都参加过电赛,有毕业的已经工作的,也有没毕业的今年要参加. 我第一次接触电赛是在大一暑期,从参加电赛到指导学生参加电赛,转 ...

  10. 电赛经历--记难忘的四天三夜

    一个很菜很菜的菜鸡的电赛经历,但对于本人却意义深刻,对别人或许有启发,大佬勿喷 从大一起还没有参加过一个需要连续熬夜的比赛,记得第一次了解到电子设计大赛时,了解到他需要熬过四天三夜之后做出一个电子作品 ...

最新文章

  1. java arraylist 序列化_无法序列化/反序列化ArrayList
  2. Java7 HashMap详解
  3. Redis和mysql数据怎么保持数据一致的?
  4. CodeForces - 1358C Celex Update(思维)
  5. linux lsof
  6. Linux基础命令---ftp
  7. Windows Server 2016 安装OpenSSH Server,并设置密钥
  8. 拓端tecdat|R语言特征选择——逐步回归
  9. EASY_SIZE:控件随窗口变化自由调整大小
  10. SMB协议的共享文件读写
  11. 如何将.frm,.MYD,.MYI文件导入数据库
  12. pytorch 中 torch.sqrt 的坑
  13. 企业邮箱的好处有哪些?企业邮箱使用场景
  14. tp5学习记录:导入前端静态模板
  15. 利润中心的设置与组织架构 绩效考核 财务核算
  16. java小恐龙游戏_用Python实现谷歌的小恐龙游戏
  17. 你遇到过启动电脑以后系统桌面无法显示吗
  18. win10系统文件无法复制到u盘怎么办【系统天地】
  19. SMBIOS信息概述 -- DMI
  20. CSS渐变颜色和浏览器前缀、opacity透明度以及设置多个背景图片写法

热门文章

  1. 【滤波器】7. 带通滤波器
  2. 微软笔试题三道(略微偏向竞赛题)
  3. 计算机中1024换算单位,数据换算(计算机中数据的单位换算)
  4. 1周前,一个对外挂一无所知的人,在的成长过程(经典推荐)
  5. Java、JSP网上购书系统
  6. 计算机主机组件图,电脑主机结构图大全
  7. Panel 控件概述(Windows 窗体)
  8. Windows Server 2008 R2 学习笔记——VMware Workstation中服务器(Windows Server 2008 R2)与客户机(Windows 7)的安装
  9. Deepin深度操作系统安装 索尼Eye Toy摄像头,教程
  10. 思科模拟器去除登陆界面