这些年做了好多无刷电机控制器,从航模的到工业应用的,从开源到闭源,从高电压到低电压,从大电流到低电流的,林林总总。青春都献给了电机驱动器,因为有多年的经验积累,利用业余时间,零零碎碎花了大约1个月时间,总算像样的做出来了。期间做错了一版,导致工期延期。

先来看一下板子机械尺寸和电气参数。尺寸10cm x 8cm,最大输入电压28v(可改为45v输入),额定输入电压为24v,推荐工作电压为24v,最大电流设计为30A,因为输出5.08插头最大耐压为15A,因此推荐工作电流为10A左右较为安全,因此额定功率250W。

板子外观:

开发板:开发板

板子设计初衷为学习板,因此板子上的资源留的比较多,方便二次开发。

1、可通过硬件来切换实现无感、有感驱动。

2、板子上预留串口、USB-TTL方便FOC上位机调试。

3、为了下载调试方便,预留了SWD接口,没有添加20脚的JTAG接口。

4、5个按键作为按键调速功能键,按键采用丰田汽车前面板按键,手感和使用寿命都优于市面上的按键。

5、一个滑动变阻器,作为模拟输入控制转速的。

6、OLED显示屏接口,方便调试时更直观的操作。

7、四个测试点,方便用示波器观测驱动波形。

能翻到我这篇bolg的,都是对无刷电机的性能和优点十分清楚的,在无刷电机的功能上我不做其它介绍了,在硬件和软件上我简单讲一下,方便大家了解。

无刷电机硬件很简单,MCU、驱动、H桥电流采样。主要就是这几部分,可能做的比较多,感觉这些东西也没啥可讲的,给大家介绍一下H桥和驱动吧。

无刷电机控制其实已经很成熟了,百年不变的H桥电路,大家可以在网上找得到,无论航模电机驱动还是工业电机驱动,都是用的一个H桥,H桥上的MOS主要决定了驱动器的功率,航模上要求的PCB面积比较小,因此在选择MOS上会选择小封装,大功率的,一般会选择DFN3.3x3.3的或者DFN5X6的,这里是硬件设计上的一个难点,在控制成本的前提下,又要保证PCB面积和性能,对工程师布线要求较高。其它影响功率的还有PCB板的铜厚、MOS的散热条件等。工业上应用会使用大功率MOS、IGBT或者晶闸管等功率器件。

驱动芯片这个没什么特殊出,唯一的要求就是就是稳,稳,稳。保证有效输出,方案可靠稳定,控制类都要求安全可靠,尤其电机控制,不可以出错。

这是我在网上找的驱动方案和H桥电路,我们的方案跟这个也大同小异。

软件方面比较精彩,一句两句话也不能把其中的精髓说清楚。软件主要分有感和无感,这两个主要是在启动方式上有区别,其它地方大同小异。

有感无刷电调换相逻辑:

不同绕组的通电切换,必须在转子转到位置时进行,即换相须准时地进行。换相控制是保证无刷直流电机正常工作的基础,有霍尔传感器的无刷直流电机中,一般安装3个霍尔传感器,间隔60和120按圆周分布。如果间隔60,输出波形相差60电度角。若间隔120,则3个霍尔传感器输出波形相差120度电度角,输出信号中高低电平各占180度,以120度霍尔式位置传感器为例,三相无刷直流电机反电动势和传感器输出信号相位关系。HALL-A.HALL-B,HALL-C为三个霍尔传感器在电机运转中的波形,EMF-A,EMF-B,EMF-C为电机反电动势电压波形。

由图可知,无刷直流电机反电动势为正负半波皆有120度平台的梯形波,三相间相差为120度。三个位置传感器电角度间距(120度)如此,可通过对霍尔传感器信号的检测,经由功率mos或IGBT功率开关实现换相,使电枢绕组依次通电,从而在定子上产生跳跃式的旋转磁场,驱动永磁转子旋转,位置传感器输出信号不断变化,电枢绕组的通电状态随之改变,使得在某一磁极下导体的电流方向始终保持不变,这就是无刷直流电机无接触换向过程。

无刷电机的调速方式:

对于无刷电机,其电动势的平衡方程为:

可见,在忽略电枢电阻和功率开关压降的情况下,无刷直流电机的转速仅和电枢电压和磁场强度有关,其调速方法有调压调速和弱磁调速两种,类似于直流有刷电机调速。其中,调压调速采用额定励磁可实现额定转矩输出,所以适用于恒转矩负载基速范围内调速,且方法简单实现。

无刷直流电机调压调速方案有:

1.晶闸管移相调压,DC/DC变换电路调压和脉宽调试PWM技术。

晶闸管移相调压

如果系统是交流供电,需要整流电路获得直流母线电压,此时,可采用晶闸管构成可控整流桥,利用调相方法调节直流母线电压大小。

DC/DC变换器调压

如果系统是直流供电,可以采用DC/DC变化器调压,调压调速原理如下,图中变换器可以调节电枢电压达到无刷直流电机调速目的,换相电路适时切换通电绕组使电机旋转。

举个简单的例子,在连接的直流母线上串联一个功率晶体管,用以调节控制器的直流电压,功率管可以工作在放大状态,给控制器的电压可以连续变化。

PWM换相调压

最常见的调压调速方法是脉宽调制技术,PWM技术。

PWM技术可以有效的对谐波进行抑制,在频率,效率方面有着明显的优点,使逆变电路的技术性能与可靠性得到明显提高,采用PWM方式构成的逆变器,输入是固定不变的直流电压,可以通过PWM技术在同一逆变器中,即实现调压又实现调频,由于这种逆变器,只有一个可控的功率级,简化了主回路和控制回路的结构,体积小,重量轻,可靠性高。

输出电压的平均值和占空比成正比,所以在调节频率时,不改变直流电压幅值,而改变输出电压脉冲的占空比,也同样可以实现变频变压的效果,但是在实际使用过程中,频率是固定的,通过调整占空比来实现调压调速的。

六步换相函数讲解:

TIM1->CCR2 = 0; //定时器1通道2占空比为0;

TIM1->CCR1 = 0;//定时器 2 通道1占空比为0;

TIM1->CCR3 = MY_PWM;//定时器1第三通道占空比就是设定的值,这样就满足了二二导通的原则,把下一个MOS管导通,其它两个下管不导通。

GPIO_SetBits(GPIOB,GPIO_Pin_13);

GPIO_ReSetBits(GPIOB,GPIO_Pin_14 | GPIO_Pin_14);

这样就形成上面一个管子输出PWM,下面一个MOS导通,然后中间是两根电机线,就会转动,这样按照一定的顺序去换相导通,电机就会转起来。

最后:

无刷电机控制说难也难,说简单也简单。

说它难是因为网上资料太多,太乱,没有一个好的引导,无法正确入门,造成学习时间过久,失去学习兴趣;其次操作不当会导致硬件损坏,如板子冒烟,烧驱动,烧mos,对学习者心里上会造成一定的恐慌,无法继续主动学习。

说它简单是因为技术是一层窗户纸,捅破了就没那么难了。

难易问题如同小马过河,你若是拥有多年编程经验,做过其它行业的多个项目,那么你就是小马过河里的老黄牛,河水再深对你来说也很浅,你要是刚会个C语言,会个单片机基本操作,那么你就是小马过河里的小松鼠,进河里就被淹死了。人要对自己有个定位,知道自己有多大能耐,不是一味的喊口号,说自己多么有毅力,多么能吃苦,我见过的喊口号的人,最终都一败涂地。浪费了钱不说,也浪费了时间,挫了自己的锐气,兵家大忌。

说了这么多,从无刷电机控制原理到人生道理都给大家讲了,希望大家对自己有一个准确的定位,花最少的时间学习到最宝贵的知识,最后祝大家学习愉快,工作顺利。

写了个程序测试板子功能,通过按键来控制电机启动、停止,加减速,换向等功能。

优酷连接:

https://v.youku.com/v_show/id_XNDMxMjY3ODQ3Mg==.html?spm=a2h9p.12366999.app.5~5!2~5~5!2~5~5!2~5!3~5~5~5~5~5~21~22~TR~TD!2~5~5!2~H4~A

基于STM32的无刷电机驱动板 无感/有感制作相关推荐

  1. 基于STM32的斯特林驱动小车论文

    基于STM32的斯特林驱动小车论文 [内容摘要]:根据"第九届上海市大学生工程训练综合能力竞赛"的规则和要求,设计了一种采用斯特林技术和自动控制技术,自主设计并制作一台可将液态乙醇 ...

  2. DSPIC33F BLDC 开发板全套资料(无感/有感/方波/正弦波控制)

    DSPIC33F BLDC 开发板全套资料(无感/有感/方波/正弦波控制) DSPIC33F BLDC开发板资料简介: 华愉电子工作室 控制芯片采用dsPIC33F系列芯片,控制板可作为独立开发板使用 ...

  3. K_A11_002 基于STM32等单片机驱动DS18B20串口与OLED0.96双显示

    K_A11_002 基于STM32等单片机驱动DS18B20 串口与OLED0.96双显示 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 1.接 ...

  4. 测试基于STM32的ADIS16405评估板,并在匿名四轴上实时显示3轴陀螺仪+3轴加速度计+3轴磁力计 波形。本文最后还公开一个基于C# 的串口波形显示客户端源码。

    标题:测试基于STM32的ADIS16405评估板,并在匿名四轴上实时显示3轴陀螺仪+3轴加速度计+3轴磁力计 波形.本文最好还公开一个基于C# 的串口波形显示客户端源码. 这里附上该评估板的原理图和 ...

  5. K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示

    K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 IIC地址/采集通道选择/时序 对应程 ...

  6. K_A11_008 基于STM32等单片机驱动SHT30和SHT31 串口与OLED0.96双显示

    K_A11_008 基于STM32等单片机驱动SHT30和SHT31 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 1.接 ...

  7. K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示

    K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 ...

  8. K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示

    K_A12_022 基于STM32等单片机驱动VL53L0X模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 UART对应程序: IIC对应程序: 四.部分 ...

  9. K_A32_002 基于STM32等单片机驱动红外接收模块 串口+OLED0.96显示

    K_A32_002 基于STM32等单片机驱动红外接收模块 串口+OLED0.96显示 所有资源导航 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序: 对应程序: 四.部分代码说明 1 ...

最新文章

  1. 刷新记录,算法开源!字节跳动获人体姿态估计竞赛双冠 | CVPR 2019
  2. plt.rcParams
  3. ACID中C与CAP定理中C的区别
  4. (计算机组成原理)第二章数据的表示和运算-第一节1:一文总结进制转换,妈妈再也不用担心我不会进制转换了
  5. linux kernel下输入输出console如何实现
  6. Linux文件系统的目录结构详解
  7. 使用FlashFTP上传文件到指定服务器
  8. AI公司盈利难?MSN聊天机器人起家的小i是如何做到的
  9. js自动生成手机扫描二维码就可以实现自动下载apk的二维码
  10. 灵活高效可支撑复杂业务系统的BPM平台
  11. Java导出多个excel并压缩下载
  12. Android ViewPager嵌套ViewPager+Fragment问题
  13. NVDLA VP使用指南
  14. VOLTE简介基础篇(一)
  15. Unity接入百度语音识别解决方案
  16. python 模拟鼠标点击桌面指定位置
  17. 基于java的企业车辆管理系统的设计与实现
  18. 在机器学习中,如何用Python进行数据预处理?
  19. 红米Note 5 全网独家首发ROM 独家支持一键刷机
  20. DiskGenius(磁盘修复工具)官方版

热门文章

  1. 从无到有学习物联网00-千里之行始于足下
  2. 使用J-Link启动海思3516最小系统
  3. win32汇编 屏幕截图保存BMP 学习笔记第三篇之odbg调试
  4. Kafka 架构设计的任督二脉
  5. MySQL级联优缺点_【Mysql】外键级联与级联的劣势_MySQL
  6. checkbox选中往后台传1,不选中往后台传0
  7. UE4_UE5播放视频(附工程)
  8. AR眼镜走向独立,从一个配件开始
  9. 啦啦外卖短信验证修复 短信提示:Specified signature is not matched with our calculation……
  10. fsw是什么意思_什么叫FSW焊接