微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA中实现PID算法

FPGA中实现PID算法

时间:10-02 整理:3721RD 点击:

在FPGA中实现PID算法,面临着小数的计算,请问大家一般是怎么处理的?

温度控制是用单闭环的PID算法控制。
无刷电机控制是用双闭环PI算法,也就是在电机控制里经常提到的电流环和速度环。
最近抽空初步完成了PID算法的FPGA实现。
增量式的PID控制理论,这里就不说了,博客里有具体公式。
整个算法过程说直白点就是公式的硬件实现,用到了altera提供的IP核,整个的设计要注意的时钟的选
取,流水线的应用

回答好棒,赞一个

能不能不要这样。

小编有用FPGA实现pid控制的程序吗?跪求。

可以先扩大,再缩小

FPGA好像不太支持浮点数,先扩大N倍,算出结果再统一缩小。

能不能参考一下

能有程序参考一下最好

小数点,是你先要规定的,比如一个32bit的数据,你可以规定有 多少bit是整数,多少bit是小数。运算的时候,先把该32bit的数乘以2的小数位数次方,全部搞成整数,整数算完活,自己再做缩小处理,或者是把其它量也一起放大,都放在整数处理。

先左移,相乘之后再右移,取整数部分,小数部分舍去

这个方法我知道,但是我觉得实行起来是不是有误差,而且左移相当于*2^N,那么对于任意数而言,有些根本不能通过左移取得整数,这时候就必须舍去小数部分,经过运算之后再右移。不知道实际用的怎么样。

这个有木有什么范例程序供参考一下。程序分析我觉得更具体些。

其实可以有DSP和ARM核之类的,(1)有浮点的核,官方自带的;(2)嵌入nios,就可以算浮点了;(3)自己写浮点核;(4)用嵌入arm的高端FPGA。但是我们现在就单纯的争对FPGA做简单的浮点数运算。

能不能把你的成果给我们讲解一下呢

(转)FPGA中浮点数的处理方式:


接16楼:
方案一程序以及仿真:(觉得不行)




个人觉得放大2的n次方倍,最后在缩小,比较易于整体操作

大红枣的博客是多少?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top