一块STM32最小系统板来驱动电机

描述

工作准备

驱动电机

1、硬件准备

  • 一块STM32最小系统板:可以用自己的,也可以用nucleo

  • 驱动板:针对的是中小功率的伺服电机、马达,所以驱动模块一般可以选择分立的MOSFET或者集成的IPM模块,驱动板上需要包含:

    • 位置信号接口:比如编码器和霍尔位置传感器

    • 相电流采样与信号调理电路                          

    • 过压、欠压、过流、过温保护

  • 一款电机,这里需要知道电机的参数信息和位置接口

  • 带有限流功能的数字电源或者电流限制在额定电流以下的开关电源

2、了解套件P-NUCLEO-IHM002,电机驱动板的各部分电路,电机的参数说明:

  • Bull-Runningmodel BR2804-1700 kV

  • Nominalvoltage 11.1 V DC (battery up to 3 S)

  • MaximumDC current: 5 A(最大电流为5A

  • Sevenpole pairs(极对数为7

硬件环境搭建

开始捯饬

硬件的连接可以参考电机控制套件说明书,也就是官方的用户手册UM1949,可通过STM32中文官网www.stmcu.com.cn下载。另外需要自己备一根MINI usb的线

1)母线电压接线与U V W三相接线图

2)跳线帽的接法与主控板电源跳线帽选择部分的电路图电机驱动

3)出厂已经有程序,或者自己找到安装目录中的程序进行下载,完成后可以使用上位机进行连接控制电机启动

电机驱动

TASK1、控制电机5s转动、5s停止        源代码请阅读原文下载,代码中,因为systick500us的定时与SDK中一些任务的处理速度相关,这里作者觉得还是不要修改定时时间比较好。

特别说明一下:在main.c中定义uint16_t mytime; stm32f30x_it.c中定义extern uint16_t mytime;5S就是10000*500us,所以就可以转5S5S

TASK2PID参数的调试

写入代码后,首先看一下原始PID参数的速度曲线,图中可以看出转速的超调比较大,已经达到4000多转电机驱动

接着修改程序,将程序设成2倍的PI参数和0.5倍的PI参数。通过实验可以看出,增大倍数的PID参数比减小的好,所以接下来将PI参数往大了调,分别作了2.2倍,2.5倍,2.9倍的速度曲线图。还想让超调小一点,所以作者减小了一点P参数,最终得到如下的速度曲线,通过上位机可以看到调完的参数,最后将程序中默认的PID参数改成自己的。

电机驱动

TASK3、状态的切换

将程序写好后,下载到板子中,我们可以看到致故障的上位机界面

电机驱动

然后将代码写进板子中,可以发现电机正常反转。上传关于状态机故障和清除故障的程序,大家参考StateMachineClass.h

状态机看这个图:

电机驱动

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分