2015年电赛控制类—STM32风力摆控制系统资料+源程序

目录

一、项目背景

二、主要研究内容

三、总体思路与研究方案

四、主要研究结果

五、程序

         六、图片

一、项目背景

        风力摆控制系统是一种利用风力控制物体做简谐运动的系统,风力的利用和控制技术在我国的发展尚未完善,国内正处于起步阶段。风力摆的工作原理具有较为典型的自动化控制理论特点,其控制方法多种多样。深入研究,在许多工程技术领域都有着广阔的开发前景。风力摆系统的摆体由风扇构成,通过调整风扇的转速实现摆动位置及摆动路线的控制,由于摆动机构的滞后性,实现精确控制具有一定难度。通过合理的摆结构设计,并利用摆线理论建模,设计并优化控制策略,利用闭环结构提升摆的轨迹运动准确性。其中的控制原理对于人们处理工业工程,同样存在借鉴。系统对风摆控制参数设定、抗扰因素测试等惯性滞后问题解决具有借鉴意义,同时也为分析该类问题建立了直观的测试平台。风力摆是一种通过风机作为唯一动力驱动的装置,深入研究该系统对空间飞行器、四旋翼无人机的运动状态和卫星姿态控制具有重大意义。

二、主要研究内容

1. 基本要求

(1) 从静止开始,15s 内控制风力摆做类似自由摆运动,使激光笔稳定地

在地面画出一条长度不短于 50cm 的直线段,其线性度偏差不大于±

2.5cm,并且具有较好的重复性;

(2) 从静止开始,15s 内完成幅度可控的摆动,画出长度在 30~60cm 间可设置,长度偏差不大于±2.5cm 的直线段,并且具有较好的重复性;

(3) 可设定摆动方向,风力摆从静止开始,15s 内按照设置的方向(角度)

摆动,画出不短于 20cm 的直线段;

(4) 将风力摆拉起一定角度(30°~45°)放开,5s 内使风力摆制动达到静止状态。

2.发挥部分

(1) 以风力摆静止时激光笔的光点为圆心,驱动风力摆用激光笔在地面画圆,30s 内需重复 3 次;圆半径可在 15~35cm 范围内设置,激光笔画出的轨迹应落在指定半径±2.5cm 的圆环内;

(2) 在发挥部分(1)后继续作圆周运动,在距离风力摆 1~2m 距离内用一台 50~60W 台扇在水平方向吹向风力摆,台扇吹 5s 后停止,风力摆能

够在 5s 内恢复发挥部分(1)规定的圆周运动,激光笔画出符合要求的

轨迹;

(3) 其他。

三、总体思路与研究方案

1. 总体思路

风力摆控制系统是一个极其不稳定的系统,摆杆的长度、风机的安装位置、万向节的阻力等因素都会引起系统产生误差,该系统中应用了一个物理知识——李萨如图形。李萨如图形贯穿整个风力摆控制系统的始终,画直线时两个方向上的简谐运动相位相等,幅值不同就会画出不同角度不同长度的直线;画圆时两个方向上的简谐运动相位相差Π/2,幅值相同就会画出不同半径的圆。

设计整个系统时将角度传感器mpu6050固定在摆杆上,传感器返回的数据通过串口显示在上位机上。在程序里设置两条目标值曲线,根据上位机显示的实际值波形与目标值曲线之间的差异进行PID参数的整定。实际上整个系统的目的就是让实际值曲线沿着目标值曲线的轨迹运动。

2. 实施方案

(1)电机的论证和选择

方案1:采用驱动、风机一体化的轴流风机

驱动、风机一体化的轴流风机有可以免去驱动的设计、节省结构空间、控制方法简单,散热快等优点,但是他的风力较小而且重量大,响应速度和其他电机相比也比较慢。

方案2:采用空心杯电机

空心杯电机重量小,风力大,起动、制动迅速,响应极快,能量转换效率很高。但是他的抗干扰能力较弱容易受到很多外界因素的影响。

综合以上两种方案选择方案2。

(2)驱动模块的论证和选择

方案1:采用TB6612FNG驱动模块

TB6612FNG驱动模块双通道输出,可同时驱动两个电机。每个通道可以输出最高1A的驱动电流,启动峰值电流达2A。TB6612FNG是基于MOSFET的H桥集成电路,效率远高于晶体管H桥驱动器。

方案2:采用L298N驱动模块

L298N驱动模块是一种高电压、大电流的驱动模块,它采用L298N双H桥直流电机驱动芯片,单桥可以输出的最大驱动电流为2A,驱动部分端子供电范围为5V~35V。

综合以上两种方案选择方案2。

(3)主控模块的论证与选择

方案1:采用STC89C51单片机

STC89C51单片机最高工作时钟频率为80MHz,内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,芯片内集成了通用8位 中央处理器和ISP Flash 存储单元。

方案2:采用STM32单片机

STM32单片机是ST公司使用arm公司的cortex-M3为核心生产的32bit系列的单片机,他的内部资源非常丰富,基本上接近于计算机的CPU了,最高工作频率72MHz。

综合以上两种方案选择方案2。

(4)角度检测模块的论证与选择

方案1:采用角度传感器

由UZZ9001和KMZ41组成角度测量模块,并使用矩形磁铁进行配合测量磁铁与KMZ41芯片之间的角度。UZZ9001将KMZ41输出的正余弦角度信号转换为数字信号,并通过SPI串口输出。但KMZ41调试比较困难,不方便用于测量倾角。

方案2:采用MPU6050模块

MPU6050测量角度集成了三轴MEMS陀螺仪,三轴MEMS加速度计。MPU6050对陀螺仪和加速度计分别用了3个16位的ADC,将其测量的模拟量转化为可输出的数字量。测量范围可控,通信采用I2C总线,操作简单。

综合以上两种方案选择方案2。

(5)电源的论证和选择

方案1:采用航模电池,

航模电池可以输出12V的电压,可反复充电。此方案的优点是风力摆与外界无需电源连线统安装方便,但电压会有波动,不能长时间稳定工作。

方案2:采用开关电源

利用开关电源虽然系统安装较复杂,但功率较大,电压稳定。

综合以上两种方案选择方案2

四、主要研究结果

经过我们团队的不懈努力,风力摆控制系统现在可以完成一下要求:

(1) 从静止开始,15s 内控制风力摆做类似自由摆运动,使激光笔稳定地

在地面画出一条长度不短于 50cm 的直线段,其线性度偏差不大于±

2.5cm,并且具有较好的重复性;

(2) 从静止开始,15s 内完成幅度可控的摆动,画出长度在 30~60cm 间可设置,长度偏差不大于±2.5cm 的直线段,并且具有较好的重复性;

(3) 可设定摆动方向,风力摆从静止开始,15s 内按照设置的方向(角度)

摆动,画出不短于 20cm 的直线段;

(4) 将风力摆拉起一定角度(30°~45°)放开,5s 内使风力摆制动达到静止状态。

(5) 以风力摆静止时激光笔的光点为圆心,驱动风力摆用激光笔在地面画圆,30s 内需重复 3 次;圆半径可在 15~35cm 范围内设置,激光笔画出的轨迹应落在指定半径±2.5cm 的圆环内;

(6) 在发挥部分(1)后继续作圆周运动,在距离风力摆 1~2m 距离内用一台 50~60W 台扇在水平方向吹向风力摆,台扇吹 5s 后停止,风力摆能

够在 5s 内恢复要求(5)规定的圆周运动,激光笔画出符合要求的轨迹;

五、程序

单片机接线方式

 OLED:
                SCL------PB5
                SDA------PB4
                RST------PB3
                D/C------PA15
        MPU6050:
                SCL------PB8
                SDA------PB9
        L298N:
                PWM1----PB1
                R_EN1----PB12
                L_EN1----PB13
                PWM2----PA1
                R_EN2----PB14
                L_EN2----PB15
        KEY:
                KEY1-----PA11
                KEY2-----PA12
                KEY3-----PB6
                KEY4-----PB7

源代码

#include "sys.h"

float Pitch,Roll,Yaw;
float KP1=0,KD1=0,KI1=0,KP2=0,KD2=0,KI2=0;
float Menu=1,A=0,B=0,X=0,Y=0,m=0,n=0;
int EN=0;
float Target_Position1=500,Target_Position2=500,Last_Bias1,Bias1,Pwm1,Integral_bias1,Last_Bias2,Bias2,Pwm2,Integral_bias2;
int main(void)
{        
        delay_init();
        IIC_Init();        
        JTAG_Set(SWD_ENABLE);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        uart_init(9600);         //串口初始化为9600
        DMP_Init();
        KEY_Init();
        TIM4_Int_Init(49,7199);//10Khz的计数频率,计数到30为3ms 
        TIM3_PWM_Init(1499,0);         //不分频。PWM频率=72000000/900=80Khz
        TIM2_PWM_Init(1499,0);         //不分频。PWM频率=72000000/900=80Khz
        OLED_Init();
        LED_Init();
        EXTIX_Init();
        
        while(1)
        {        
        DataScope();
        oled_show();
        }
        
}

   六、图片

风力摆图片

 上位机图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/296549.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

免费的GPT4来了,你还不知道吗?

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

SSM实现的校园门户平台网站系统----计算机毕业设计

项目介绍 本系统为前后台项目,后台为管理员登录,前台为社团、学生、教师角色登录; 管理员角色包含以下功能: 管理员登录,角色管理,权限管理,社团管理,教师管理,学生管理,公告管理,新闻管理,校园风采管理,求职招聘管理,校历管理…

RabbitMQ快速入门(详细)

RabbitMQ 消息中间件/消息队列 1、消息中间件 1、简介 **消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。**通过提供消息传递和消息队列模型,可以在分布式环境…

Linux——系统安全及应用

一、基本安全措施 1、系统账号清理 常见的非登录用户账号包括bin、daemon、 adm、lp、mail等。为了确保系统安全,这些用户账号的登录Shell通常是/ sbin/nologin,表示禁止终端登录,应确保不被人为改动。 //将非登陆用户的Shell设为/sbin/nolo…

文献综述 AI 应用对比 — Elicit, GPTs 与 Perplexity

(注:本文为小报童精选文章,已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 通过我的这些尝试,你无需再自己去摸索,可以直接根据我展示的结果选择合适的工具,更有效地进行文献回顾。 …

抖店怎么上架商品?

我是电商珠珠 没有货源的商家,上架商品其实很简单,只需要找到工具去采集链接上架即可。但在上架商品的时候也不能完全照搬,需要涉及到主图、详情页、标题和价格的优化,这些都会影响到商品的点击率,所以上架商品的过程…

3元一平方公里的在线卫星影像

我们为大家分享了免费下载卫星影像的方法。 但让人遗憾的是,该影像的最高分辨率只有10米,需要更高清且比较新的卫星影像,看来还是得付费购买才比较靠谱。 自助选择区县范围 商业卫星影像主要面向企事业单位,一般来讲都比较贵&a…

每周一算法:倍增法求区间最大最小值(RMQ)

RMQ RMQ 是英文 Range Maximum/Minimum Query 的缩写,表示区间最大(最小)值。使用倍增思想解决 RMQ 问题的方法是 ST 表(Sparse Table, 稀疏表 )。ST 表是用于解决 可重复贡献问题 的数据结构。 可重复贡献…

PHP语言B/S架构医院(安全)不良事件上报系统源码

医院安全(不良)事件上报系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要对象,可以自动、及时、实际地反应医院的安全、不良、近失事件的情况,更好地掌握不良事件的…

Linux学习记录——삼십오 传输层UDP协议

文章目录 1、端口号2、UDP协议 信息加上应用层报头后,下一步发送到传输层 1、端口号 端口号标识了一个主机上进行通信的唯一一个应用程序。 在TCP/IP协议中,通过源IP,源端口号,目的IP,目的端口号,协议号来…

静态网页设计——红旗汽车官网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1gK411x7Bg/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

Maven(mvn)的学习下载和配置

文章目录 Maven(mvn)1.Maven 是什么?2.Maven做什么?2.1传统方式对项目的管理2.2Maven对jar包的管理 3.Maven怎么学3.1Maven如何创建项目3.2Maven的下载与配置3.3Maven的项目结构3.4Maven依赖的引入3.5Maven依赖的剔除3.6Maven依赖…

【教学类-09-04】20240102《游戏棋N*N》数字填写,制作棋子和骰子

作品展示 背景需求: 最近在清理学具材料库,找到一套1年多前的《N*N游戏棋》,把没有用完的棋盘拿出来,,想给大4班换花样,并把它们用掉。 程序代码在这里 【教学类-09-03】20221120《游戏棋10*10数字如何直接…

GUI三维绘图

绘制三维图plot3 t0:pi/50:10*pi; xsin(t); ycos(t); zt; plot3(x,y,z); 产生栅格数据点meshgrid 这个接口在绘制三维图像里面相当重要,很多时候要将向量变成矩阵才能绘制三维图。 x0:0.5:5; y0:1:10; [X,Y]meshgrid(x,y); plot(X,Y,o); x和y是向量,…

124基于matlab的禁忌搜索算法和蚁群优化算法优化TSP路径

基于matlab的禁忌搜索算法和蚁群优化算法优化TSP路径,动态输出路径规划过程及输出最小距离。数据可更换自己的,程序已调通,可直接运行。需要直接拍下,拍下后发邮箱。标价为程序价格,不包含售后。程序保证可直接运行。 …

1.大数据概述

目录 概述hadoophadoop 模块hadoop 发行版apache社区版本CDP(CDHHDP)其它云产商框架选择 hadoop 安装 结束 概述 先了解几个常用的网站 apache 官网hadoop 官网hadoop githubhttps://github.com/apache/xxx [https://github.com/apache/spark (example)] hadoop hadoop 模块…

Linux内核--进程管理(六)内核进程管理几种CPU调度策略

目录 一、引言 二、CPU调度的直观想法 ------>2.1、FIFO ------>2.2、Priority ------>2.3、调度矛盾 三、各种CPU调度算法 ------>3.1、FCFS(First Come,First Served) ------>3.2、SJF(Short Job First,短作业优先) ------>3.3、RR算法(按时间片…

使用idea构建父子类springboot项目教程

第一步创建一个父类java项目(最外层java项目) 1.点击File 然后点击new 再点击Project 2.点击Maven 配置Java版本 再点击next 3.GroupId:包结构,ArtifactId:项目名称,填写完,点击next 4.点击…

MATLAB - MPC - 优化问题(Optimization Problem)

系列文章目录 前言 模型预测控制可在每个控制间隔内解决一个优化问题,具体来说就是二次规划(QP)。求解结果决定了被控对象在下一个控制间隔之前使用的操纵变量(MV)。 该 QP 问题具有以下特点: 目标或 "成本 "函数 - …

智慧旅游景区解决方案:PPT全文49页,附下载

关键词:智慧景区建设,智慧旅游平台,智慧旅游运营检测系统项目,智慧文旅,智慧景区开发与管理,智慧景区建设核心,智慧景区开发与管理 一、智慧景区建设现状 1、基础设施建设:智慧景区…