基于ACM32 MCU的电动滑板车方案介绍

2024-03-08 14:44

本文主要是介绍基于ACM32 MCU的电动滑板车方案介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    随着智能科技的快速发展,电动滑板车的驱动系统也得到了长足的发展。国内外的电动滑板车用电机驱动系统分为传统刷式电机和无刷电机两种类型。其中,传统的刷式电机已经逐渐被无刷电机所取代,无刷电机的性能和寿命都更出色,已成为电动滑板车驱动系统的主流。

     根据QYRESEARCH数据显示,2020年,全球电动滑板车产量为425万辆。预计2027年产量达到1001万辆,2021-2027年复合增长率12.35%。2020年全球总产值达12.1亿美元。全国范围内,2020年中国的产量达364万辆,占全球电动滑板车总产量的85.52%;其次北美产量达53万辆,占全球的12.5%,电动滑板车行业总体继续保持稳健增长,协调发展的良好态势,欧美日大部分从中国进口电动滑板车。

01    ACM32F403系列芯片规格介绍

•  采用M33内核,主频最高可达180MHz,处理性能最高可达248DMIPS(基于Dhrystone 2.1测试)

•  工作电压范围:1.7V~3.6V

•  eFlash:256KB/512KB

•  SRAM:96KB/192KB

•  高速高精度ADC,12位分辨率,2Msps

•  高级定时器1个,支持六步 PWM 输出,32位通用计时器1个,16位通用计时器6个

•  通讯接口丰富:UART×4,LPUART×1,SPI×3,I2C×2,I2S×1,CAN×2,USBFS×1

•  封装类型丰富:QFN32/LQFP48/LQFP64/LQFP100

•  车规级工作范围:-40℃~125℃

•  工业级ESD标准:4000V(HBM)

•  内建 AES、 CRC、 TRNG等算法模块,支持数学硬件加速

02   电动滑板车驱动方案

    我们推荐的电动滑板车方案采用ACM32F403作为主控芯片,主要电力来源为24V锂电池组,通过电源转换,为控制系统供电,同时也提供MOS的门级驱动。通过HALL传感器获取轮毂电机的位置信息以及相位,通过高速ADC采样相关电流。

03   有感FOC电机控制

      系 统 采 用 磁 场 导 向 控 制 (Field-oriented Control,FOC) 算法,FOC算法的实质是运用坐标变换将三相静止坐标系下的电机相电流转换到相对于转子磁极轴线静止的旋转坐标系上,通过控制旋转坐标系下的矢量大小和方向达到控制电机目的。

具体控制过程如下:

(1)设置iq_Ref的值来控制电机转矩输出,将iq_Ref设置为0

(2)测量三相定子电流ia、ib、ic。参照结合基尔霍夫定律:ia+ib+ic=0因此,实际上只要测量A相和B相定子电流ia和ib,C相定子电流就能够借助上面的公式计算出来

(3)将测得的三相定子电流借助Clarke变换变换到二相静止坐标系α-β坐标系中,得到iα和iβ

(4)借助位置编码器检测转子角度,得到电角度θ。如下图,d-q旋转坐标系相对于α-β静态坐标系逆时针旋转角度θ,得到id,iq。在稳态条件下,Id和Iq是常数

(5)将id和iq的实际值与各自信号的参考值id_Ref和iq_Ref进行比较得到误差信号。将误差信号输入PI控制器,得到应当需要施加在电机上的电压矢量Vd和Vq

(6)借助新的电角度,将PI控制器输出的电压矢量Vd和Vq借助Park逆变换到静止参考系α-β,求出正交电压值Vα和Vβ

(7)Vα和Vβ经Clarke3逆变换得到三相定子应当需要施加的电压值Va、Vb、Vc

(8)3相电压值Va、Vb、Vc可用于计算新的PWM占空比值,并借助SVM机制更新各相PWM输出,生成所需的电压矢量。这个过程也称为SVPWM

(9)参照结合控制对象当前状态更新参考值iq_Ref,然后返回1)开始新一轮调整

  结 语  

             随着社会环保意识的提高和城市交通拥堵问题的加剧,电动滑板车作为一种绿色、便携、省钱的交通工具,将会越来越受欢迎。各国向人们提供旅游补贴,提倡绿色旅游,中国对欧洲的自行车和电动滑板车出口猛增。中国有一个完整的产业链,从零部件到整车装配,电动滑板车的未来仍是一个不断升温的过程。

这篇关于基于ACM32 MCU的电动滑板车方案介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787433

相关文章

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用