0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用FPGA实现一个直流有刷电机控制器

FPGA研究院 来源:FPGA之旅 2023-11-08 09:30 次阅读

一、简介

本篇文章将介绍如何使用FPGA实现一个直流有刷电机控制器,主要包括 速度控制 和 角度控制(好像在无刷电机控制中,习惯将其称为环,即速度环 和 角度环(位置环))。因此这是一个闭环系统,需要得到系统的反馈,实时得到电机的转速和角度,所以需要上篇中编码器模块的输出,作为控制器的反馈,通过PID进行调节。

二、控制器框图设计

在做设计之前,最好先将功能明确下来,然后绘制简单的流程框图,当然这里先将程序实现完了之后,再绘制的流程框图 ̄□ ̄||,框图如下,主要由三大模块组成(控制姿态就不包括在里面了),角度、速度和PID模块,下面将一一介绍各个模块的具体细节。

8b6d904c-7dc6-11ee-939d-92fbcf53809c.png

三、PID模块

PID的原理在之前的文章中有提到过,就不再继续提起了,本次实现的方式方式和之前实现的方式一样,将PID系数扩大100倍取整,然后相乘,将得到的结果再右移7位 加速 右移 9位,约等于除以了100。

四、速度控制器

速度控制器里面主要做期望速度的输出和电机运动方向切换的控制。期望速度主要由外部输入和方向切换来控制,如果说需要进行方向切换的话,为了保护电机,不能立马进行电机的转向,而要等待速度降低到安全速度后,再进行方向切换。

所以如果电机不需要转向,那么期望速度就是外部设置的速度。

如果需要转向的话,先将期望速度设置为0,待速度降低到安全速度后,例如5RPM,就切换方向 和 将期望速度设置为外部设置的速度。

module controller_Speed_loop(
  input        sys_clk_i        ,    //时钟输入
  input        sys_rst_n_i       ,    //复位输入


  input        c_speed_loop_en_i    ,    //速度环使能信号


  input        motor_spin_dir_i    ,    //设置旋转方向
  input[15:0]     motor_rpm_set_i     ,    //设置速度
  input        encoder_direction_i   ,    //电机实际的运动方向
  input[15:0]     encoder_speed_i     ,    //编码器速度


  output reg     c_speed_loop_dir_o   ,    //速度环方向输出
  output reg[15:0]  c_speed_loop_rmp_o       //速度环RPM输出
);

五、角度控制器

控制过程和速度控制过程一样,将当前角度值和期望角度值输入角度PID进行计算,然后将计算后的结果输入到速度PID进行计算,得到PWM的变化值。

这一控制回路是比较简单的,如果说需要在角度旋转的时候,还需要对速度进行控制的话,就会复杂一点点(串级),等后面有需求了再进行实现。

六、小结

本次实现的控制器 和 上次实现的 编码器,共同组成了一个简单的电机控制器,可用于对电机的速度 和 角度进行控制。

top层的控制信号如下,在速度模式下,只需要设置rmp的值,电机就可以进行转动,而在角度模式下,需要先设置旋转的角度值,然后在使能角度旋转,电机就会旋转对应的角度后,停止。

//控制信号
  .motor_mode_set_i        (   motor_mode_set       ),    //设置电机模式 2'b00 = 速度模式  2'b01 = 角度模式
  .motor_spin_dir_i        (   motor_spin_dir       ),    //电机运动方向控制 1'b0 正向  1'b1 反向
  .motor_rpm_set_i         (   motor_rpm_set        ),    //设置电机转速 RPM
  .motor_acc_set_i         (   motor_acc_set        ),    //设置电机加速度


  .motor_angle_en_i        (   motor_angle_en       ),    //角度旋转使能
  .motor_angle_ack_o        (   motor_angle_ack       ),    //角度旋转应答
  .motor_angle_set_i        (   motor_angle_set       ),    //设置电机旋转角度

本文转载自FPGA之旅

审核编辑:汤梓红

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

    关注

    1603

    文章

    21326

    浏览量

    593234
  • 控制器
    +关注

    关注

    112

    文章

    15235

    浏览量

    171209
  • PID
    PID
    +关注

    关注

    35

    文章

    1446

    浏览量

    83816
  • 无刷电机
    +关注

    关注

    56

    文章

    751

    浏览量

    44953
  • 直流有刷电机

    关注

    0

    文章

    39

    浏览量

    1414

原文标题:FPGA实现直流电机驱动(速度位置控制)

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    伺服驱动直流通用伺服电机控制器

    直流伺服电机驱动RMC-DC36.10S1广泛应用于医疗器械、机器人、仪器仪表、雕刻机、自动控制的教学设备,激光打标机,激光雕刻机、半
    发表于 05-11 09:30

    基于FPGA控制系统永磁无直流电机控制电路设计

    的片上可编程系统(SoPC)。这将成为下代高性能伺服控制器集成化设计的趋势。 下面针对永磁无直流
    发表于 02-01 14:44

    FPGA控制直流电机

    本帖最后由 349060579 于 2016-6-6 11:28 编辑 首先我们先了解一下有直流电机。相信很多小伙伴小时候玩过四驱车,里面的小马达就是
    发表于 05-28 17:14

    一个同时控制两台无直流电机控制系统

    新型的无直流电机,因为无直流电机的转矩脉动较大,所以想通过两台
    发表于 12-21 16:00

    关于BLDC电机控制的所有信息:无传感直流电机控制器

    了解无传感直流电动机控制器些示例IC以及使用此类电动机的些缺点。
    发表于 10-25 09:51

    直流电机直流电机的对比

    直流电机直流电机的对比直流
    发表于 03-16 16:08

    我的电机直流电机,配有AQMD2410NS的驱动,求推荐控制器控制

    我的电机直流电机,配有AQMD2410NS
    发表于 09-18 12:01

    如何去实现直流编码电机的驱动状态控制

    直流编码电机哪几个引脚?如何去实现直流编码
    发表于 07-30 07:48

    A4962三无直流(BLDC)电机控制器哪些应用

    A4962是什么?A4962无直流(BLDC)电机控制器哪些特色及优点?A4962三无
    发表于 08-13 06:19

    基于LabVIEW设计直流电机PID调试及控制助手

    基于LabVIEW的电机测试系统研究  本设计基于LabVIEW设计直流
    发表于 01-07 06:19

    直流电机的相关资料推荐

    电机往往是很好的选择。例如便宜的电子玩具、各种风扇和汽车的电动座椅等。基本的直流
    发表于 02-17 06:35

    直流电机与驱动电路设计相结合的方案分享

    中。电机的驱动电路原则上,如上所述,电机不需要外部
    发表于 04-23 07:00

    直流电机在汽车上的应用

      越来越多的电机已被应用到汽车上,选择符合汽车等级要求的直流电机驱动,可简化设计以及提
    发表于 03-10 10:01

    直流电机控制器相位快速匹配的方法分享

    接法能让无刷电机正常速度运转,且120度控制器的这6种接法里3种接法是正转,另3种接法是反转。60度控制器4种接法能让无
    发表于 03-13 14:14

    基于FPGA直流电机控制器的研究与实现

    基于FPGA直流电机控制器的研究与实现
    发表于 05-28 10:50 9次下载