基于开源项目HAL STM32F4 +DSP库跑SVPWM开环速度测试

news2024/10/7 12:03:04

HAL STM32F4 +ARM DSP库跑SVPWM开环速度测试


  • ✨本篇硬件电路和代码来源于此开源项目:https://github.com/MengYang-x/STM3F401-FOC/tree/main
  • 📍硬件电路和项目介绍,立创开源广场:https://oshwhub.com/shadow27/tai-yang-neng-wu-ren-chuan
  • 🌼测试效果:
    在这里插入图片描述
  • 🌿通过vofa+输出的三路马鞍波波形:
    在这里插入图片描述
  • 📝原作者介绍过的内容,这里就不多做介绍了,详情可以前往立创开源主页了解详情。程序这一块,主要针对stm32F4系列。

📘测试条件

  • 🌿STM32F4或者M4内核的相关型号的mcu即可。工程时基于HAL库STM32CubeMX生产的配置工程,移植非常简单。

  • 🌿有感或无感无刷电机,个人测试使用的是:2204-1400KV无感无刷电机,参数:12N14P(12槽14极),也就是,极对数是14/2=7极对数。(程序中需要填写)

  • 🌿一块无刷电机驱动板。(可以参考原作者的硬件。)

  • ✨由于原作者使用的是EG2133驱动芯片,驱动电路中上下桥是连一块的,3路PWM输出即可实现无刷电机转动,如果自己使用的是上下桥独立驱动(6路输出控制),那么需要将定时器的PWM输出通道配置为互补输出通道,(即3路互补输出),同时需要注意输出极性。
    在这里插入图片描述

在这里插入图片描述

  • 🌿SVPWM开环速度测试,工程中所需要的必要驱动文件:
    在这里插入图片描述
  • 🔖MT6701这里SVPWM开环速度测试,没有使用到,可以屏蔽掉:
    在这里插入图片描述
  • 🔖DSP库文件,可以自己从安装的Keil软件ARM文件夹内找到相关驱动库文件:例如:D:\Keil_v5\ARM\CMSIS\DSP_Lib\Source\FastMathFunctions;或者在STM32CubeMX,安装的对应pack包解压文件夹内,:C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.0\Drivers\CMSIS\DSP\Source或者标准库STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\DSP_Lib中找到对应的所需驱动文件。
    • 🔖Keil ARM路径下位置:
      在这里插入图片描述
      在这里插入图片描述
  • 👉也可以到ARM官方的GitHub账号(https://github.com/ARM-software/CMSIS)下载所有ARM Cortex-M内核的DSP外设库。
    • 🔖STM32CubeMX,pack解压安装文件位置:
      在这里插入图片描述
      在这里插入图片描述
  • 同样在标准外设库中也可以找到:
    在这里插入图片描述
  • 🌿数字信号库包含在路径:STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\DSP_LibSTM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Lib下,或者Keil安装目录下D:\Keil_v5\ARM\CMSIS\Lib\ARM将它们拷贝到目标工程文件夹下。其中Lib文件夹中包含的是经过不同编译器编译后能够运行在Cortex-M4内核上的底层数学库,DSP_Lib文件夹中包含的是调用底层函数封装而成的API函数源码:
    • 🍃Lib文件夹中包含的底层库包括:
	arm_cortexM4lf_math.lib	//---->stm32f4 DSP库跑SVPWM开环速度测试需要使用到的
    arm_cortexM4bf_math.lib
    arm_cortexM4l_math.lib
    arm_cortexM4b_math.lib
    arm_cortexM3l_math.lib
    arm_cortexM3b_math.lib
    arm_cortexM0l_math.lib
    arm_cortexM0b_math.lib

在这里插入图片描述
在这里插入图片描述

    • 🔰对应工程中所用到的:arm_cortexM4lf_math.lib库文件来源。
      在这里插入图片描述
  • 🎉STM32F4 DSP和标准外设库(STSW-STM32065) ST官网下载地址:https://www.st.com.cn/zh/embedded-software/stsw-stm32065.html
    • 📚当前stm32F4 最新版本:STSW-STM32065 STM32F4 DSP and standard peripherals library 1.9.0
链接:https://pan.baidu.com/s/1J8VD2re8SRWOGnZXZKcyvQ?pwd=o5an 
提取码:o5an

🛠STM32CubeMX配置

  • 🌿选择一个高级定时器:(注意这里是按照原作者的EG2133驱动芯片配置的,上下桥驱动控制端连一块,进行配置的)

在这里插入图片描述

  • 🌿为了查看输出波形,还需要配置一个串口,方便观察波形。
    在这里插入图片描述

⛳SVPWM开环速度测试工程说明

  • 🌿待测试电机参数配置:motor.c中修改测试电机的极对数。
    在这里插入图片描述
📑极对数测量

✨如果知道电机型号,可以找到对应资料查阅多更好。如果无刷电vofa+机外转子不是全部密封,看的到外转子内壁上永磁体的,可以直接自己数出来。上门贴了有多少块强磁铁,即可得到此数据。对应外转子密封看不到内壁磁体的测量方法:

  • 🌿如果有示波器的情况下,用示波器的探头夹住电机的一根线,另一根接探头,然后旋转电机一圈,截取波形,数下峰的个数(上下峰都算),为偶数值除以2,就是电机的极对数。
  • 🌿有低压直流可调电源情况下,限制一定的电流,加载一个小电压到三相中的任意两相,用手转动电机一圈,有稳定位置的个数就是极对。
  • 🔧SVPWM开环速度参数设定:
 OpenVelocity(6.0f); //数值越大,电机旋转的速度越快 

🔬串口数据vofa+观测

  • 🔨vofa+设置:添加波形图控件到主窗口
    在这里插入图片描述

  • 🔱设置串口端口号以及数据类型:
    在这里插入图片描述

  • 🪓🍭打开串口,并添加数据到波形图控件中:
    在这里插入图片描述

  • 🌟最终测试效果:
    在这里插入图片描述

  • ✨需要注意一点,所测得的马鞍波形,并不代表实际电机真实的驱动转动效果,电机的运转效果与驱动电路和电机参数有关,这个波形是理论推导得来的理想模型。
  • 🍁在SVPWM开环速度测试运行下,无刷电机的U-V-W相波形:
    在这里插入图片描述
  • 🧨MCU 定时器对应输出通道的PWM驱动波形:
    在这里插入图片描述
  • 🥕H桥NMOS管栅极驱动波形:
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STL库--string

目录 string的定义 string中内存的访问 string常用函数实例解析 string的定义 定义string的方式跟基本类型相同,只需要在string后跟上变量名即可: string str; 如果要初始化,可以直接给string类型的变量进行赋值: string s…

Visual Studio 的使用

目录 1. 引言 2. 安装和配置 2.1 系统要求 2.2 安装步骤 2.3 初次配置 3. 界面介绍 3.1 菜单栏和工具栏 3.2 解决方案资源管理器 3.3 编辑器窗口 3.4 输出窗口 3.5 错误列表 3.6 属性窗口 4. 项目管理 4.1 创建新项目 4.2 导入现有项目 4.3 项目属性配置 5. 代…

stm32-DMA转运数据

在配置前要记得先定义一下DMA转运的源端数组和目标数组两个数组哦。 接下来我们就开始准备配置吧 配置 初始化 1.RCC开启时钟(开启DMA的时钟) void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) 作用:开启时…

kafka-生产者发送消息消费者消费消息

文章目录 1、生产者发送消息&消费者消费消息1.1、获取 kafka-console-producer.sh 的帮助信息1.2、生产者发送消息到某个主题1.3、消费主题数据 1、生产者发送消息&消费者消费消息 1.1、获取 kafka-console-producer.sh 的帮助信息 [rootlocalhost ~]# kafka-console…

详解make file中的notdir

在 Makefile 中,$(notdir names…) 是一个函数,用于获取一组文件名或路径中的文件名部分,并将其返回。 这个函数通常用于从给定的路径中提取文件名部分,非常适合在 Makefile 中进行文件处理操作。 语法: makefile C…

基于单片机智能防触电装置的研究与设计

摘 要 : 针对潮湿天气下配电线路附近易发生触电事故等问题 , 对单片机的控制算法进行了研究 , 设 计 了 一 种 基 于 单片机的野外智能防触电装置。 首先建立了该装置的整体结构框架 , 再分别进行硬件设计和软件流程分析 &#xf…

从零开始写 Docker(十六)---容器网络实现(上):为容器插上”网线”

本文为从零开始写 Docker 系列第十六篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实…

邀请媒体参会,媒体邀约的正确打开方式

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 邀请媒体参会是一项重要的公关活动,需要细致的规划和执行。以下是一些步骤和建议,可以帮助你更有效地进行媒体邀约: 1. 拟定邀约媒体名单:…

启智CV机器人,ROS

资料: https://wiki.ros.org/kinetic/Installation/Ubuntu https://blog.csdn.net/qq_44339029/article/details/120579608 装VM。 装ubuntu20.04 desktop.iso系统。 装vm工具: sudo apt update sudo dpkg --configure -a sudo apt-get autoremove o…

可燃气体报警器检测周期:如何合理设定以满足安全需求?

可燃气体报警器作为工业安全和生产环境中不可或缺的安全防护设备,其准确性、稳定性和及时响应性对于防止火灾和爆炸事故具有重要意义。 因此,合理设定并严格执行可燃气体报警器的检测周期,是确保安全与可靠运行的核心环节。 一、检测周期的重…

轻兔推荐 —— 一个好用的软件服务推荐平台

给大家推荐一个好用的的软件服务推荐平台:轻兔推荐 网站界面简洁大方,没有太多杂七杂八的功能和页面,有明暗主题色可以选择,默认为亮色,可在网站上方手动切换。 每工作日都会推荐一款软件,有时会加更&…

如何理解Spring Boot自动配置原理和应用?

我们知道,基于Spring Boot,我们只需要在类路径中引入一组第三方框架的starter组件,就能在Spring容器中使用这些框架所提供的各项功能。这在当下的开发过程中已经习以为常,但在Spring Boot还没有诞生之前却是不可想象的。如果我们使…

Dubbo生态之初识分布式事务

1.分布式事务简介 传统的关系型数据库只能保证单个数据库中多个数据表的事务特性。一旦多个SQL操作涉及到多个数据库,这类的事务就无法解决跨库事务问题。在传统架构下,这种问题出现的情况非常少,但是在分布式微服务架构中,分布式…

java方法负载问题

先介绍一下方法的重载 下面是例子 方法名都为sum而形参是不同的 记住! 是否为重载关系 1在同一个类里面 2形参不同(与返回值无关) 3方法名一样 第一个图为什么错? 答案:虽然在同一个类里面,并且方法名…

3-Django项目继续--初识ModelForm

目录 ModelForm 认识ModelForm 优势 初识Form 初识ModelForm 添加信息 views.py add_student_new.html 修改信息 views.py views.py add_student_new.html ModelForm 认识ModelForm 优势 1、方便校验用户提交的数据 2、页面展示错误提示 3、数据库字段很多的情况…

基于Docker的ROS开发

本文主要介绍如何使用Docker在Windows和Linux环境中部署并使用ROS,通过Docker Container运行ROS,可以方便我们在一个本地环境中运行多个ROS版本。 更多内容,访问专栏目录获取实时更新。 关于ROS的版本 参考ROS1 Distribution Wiki和ROS2 Dis…

SpringBoot项目启动时提示程序包不存在和找不到符号

一、前言 最近接手同事开发的一个Springboot工作项目,从svn上整体拉取下来后,构建完成后,启动的时候遇到了程序包找不到的情况,记录一下处理过程; 二、项目问题 1、报错信息:启动后报 java: 程序包org.sp…

最强端侧多模态模型MiniCPM-V 2.5,8B 参数,性能超越 GPT-4V 和 Gemini Pro

前言 近年来,人工智能领域掀起了一股大模型热潮,然而大模型的巨大参数量级和高昂的算力需求,限制了其在端侧设备上的应用。为了打破这一局限,面壁智能推出了 MiniCPM 模型家族,致力于打造高性能、低参数量的端侧模型。…

【Qt秘籍】[004]-Qt中的重要工具-介绍

QtCreator概览 当我们打开系统的菜单翻到刚刚下载的Qt文件,里面的内容却让我们眼花缭乱。 不过别急,下面我们将一一解析。 1.Assistant Qt自带的离线版本官方文档 2.Designer Qt图形化设计界面的工具,通过拖拽控件快速生成界面&#xff0c…

APM 2.8外置罗盘校准

请注意: GPS不可以飞控带电插拔,带电插拔会产生差分电压,可能会导致GPS模块损坏,无法搜星。不听劝告,后果自负! 1.如何接线 GPS有两根线,要插上面图所示的两个接口。同时拔掉旁边的跳线帽&…