找回密码
 注册
关于网站域名变更的通知
查看: 462|回复: 4
打印 上一主题 下一主题

如何基于FPGA实现对伺服电机的控制

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-8-10 15:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何基于FPGA实现对伺服电机的控制
7 H' a. J6 d. W

该用户从未签到

2#
发表于 2021-8-10 16:28 | 只看该作者
曾经做过单FPGA电流环速度环位置的无刷电机控制项目。PWM发生器,PI调节器,上位机接口都是用VERILOG写的。感觉FPGA非常适合传感器和数字信号接口,但是写控制算法稍显不足。不是说她不能完成控制算法,相反如果写的好的话会比DSP还有优势。只是写控制算法时Verilog不如c方便。
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2021-8-10 16:42 | 只看该作者
    Verilog从零开始学,项目从底层RTL开始写。真佩服通讯的小伙伴本科就学了这么坑爹的东西。FPGA要做闭环控制,需要做模转数(DSP有模拟采样接口,FPGA没有,需要外置电路进行模数转换)。内部的话,如果用软核写,其实就是DSP。但是软核的话,其实还不如直接用DSP做。想实现高性能的FPGA控制器,还是要从RTL入手,至少流水线要会做,时序分析要会看,延时什么的都要考虑(不然就是迷之硬件bug,绝对是写什么单片机,DSP,ARM看不到的奇幻景象2333)控制主要是规划好模块,分块开始做,tb写好,一个一个调试过去。数值类型自己规划,不会做就用整形(跟我念,整形大法好,浮点一生黑)。一般闭环控制算出来最后是一个参考值给调制用的,参考值倍数自己考虑清楚。调制的话,如果是SPWM,就做个三角波模块一个比较器就行了。SIMULINK里你拖了那些模块,你VERILOG按着一个一个写过去就行了) F) C2 T% }5 _3 K

    该用户从未签到

    4#
    发表于 2021-8-10 16:47 | 只看该作者
    只谈半闭环控制。                               用FPGA来实现一个脉冲源是一个说难也难,说简单也简单的工作。实现一个实时(精确到每个脉冲周期)调频的pwm 模块其实不算难,计数器而已,难的是你要符合加减速公式,你要将加减速里的参数变成FPGA方便处理的参数,比如说s形曲线,你要将加速度,加加速,加加速时间,匀加速时间,减加速时间等参数通过各种归纳转换为FPGA方便处理的参。这个推导过程难不难?有点难。不过还好,有现成的芯片供我们研究,比如npm 的pcd系列芯片,根据上面所给的公式和参数,稍加推导便可方便得到FPGA方便实现的简单公式。接下去就是简单的代码的实现了,实现中你会发现,真TM简单,一不就是个二重积分吗,哦,不对,就是个加法而已& W7 K/ l. j5 t- C: k+ a8 t
    % C0 c; p  K0 s# K0 F7 J0 U
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-21 05:49 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表