T型加速算法fpga实现思想研究

用加法器实现T型曲线的理论分析

//  2017年12月28日     建立 by cofin

T型加速曲线公式:如下所示:

Vt = v0+at                (1)

S = 1/2at2 + v0*t              (2)

举例,如果我们要在5MHz下产生一个1Khz的方波,那么我们需要用5M/1K = 5000 来得到计数数值,然后用计数器设计,当计数到5000-1时即完成了发送一个脉冲的任务,这样的设计肯定需要用除法, 就算不会综合成除法器,但是当我们的1K改成变量时,肯定会综合出来除法器的,由此会占用大量的资源,如果这种模块并列几个的话,fpga的大量资源就会被浪费了。

改进算法:基于以上原因,我们提出了改进的算法,对上式进行变换5M = 1K * x,这里X的值很显然是常量,然后我们接着变换,5Mhz = V0 * x,这样,不同的V0就会对应不同的x值,现假设我不知道x的值,但是我已知V0的值,那么我对V0进行累计,每进行一次累计,就和5Mhz做比较,当累加的数值大于或者等于5MHz时,此时去得到累加的次数,也就是x的值了。这样的话,我设计一个基于V0的累计器就可以不用除法器了,从资源上来说,占用加法器的位数会比较多,所占加法器资源会增加,但是却省略了除法器,这样从一定程度上回节约很多资源,二来由于是大于等于式的设计,那么必定存在误差,当恰好等于5Mhz时,此时没有误差,当大于5Mhz时,必定会有误差,此时可以减1来改变误差。。。

基于以上理论,我们讨论如何进行T型加速。

设现在运行的速度时Vw,则当前速度运行一步所需要数的脉冲:5Mhz / Vw,其值乘以1/5Mhz(在5Mhz时钟下产生的)就是步进电机运行该速度的时间,而该值在公式中也就是一个脉冲,所以我们不用式(2),然后我们将上述式子进行变换,如下:

Y MHz = Vw * X;

其中Y和Vw已知,通过累加Vw(每个脉冲的上升沿来到之后),然后每次累计完毕都和Y比较,当大于等于Y时,也就说明一个脉冲发送完毕了,其累加次数X就是要数多少下。

同样的速度的变化量怎么得到呢?同样的,我对式(1)进行变换,Vt = V0 + ?V,其中?V = aT,a已知,T等于什么呢?T在该系统中是运行一步的时间,即?V = a * (5Mhz/Vw ) * (1/5Mhz),化简一下,?V = a * (1/Vw);再次化简?V * Vw = a;解释:只要对Vw进行计数,同时每计一次数就和a(加速度)进行比较,如果大于等于加速度,此时当前的计数累加值就是速度变化量?V,也就是下次速度的变化量 ,误差分析,当刚好等于时,速度的变化量就是标准正确值,当大于a时,存在微小的误差。

综上所述,我们只要对Vw(当前的速度)进行一定的累加就可以得到位移的变化和速度的变化,但与其比较的值会带来误差,经过分析,提高时钟频率可以减小误差,也就是说合理的提高一点时钟频率会影响电机的加减速运行。这样做的优点:省资源,存在一定的误差,也就是速度可能比实际设置的速度大一点,二来减速过程最终的速度可能和初速度不相等。

原文地址:https://www.cnblogs.com/cofin/p/9979685.html

时间: 2024-10-31 07:18:07

T型加速算法fpga实现思想研究的相关文章

算法8-6:最小生成树研究现状

目前已经介绍了Kruskal和Prim算法,他们的复杂度一个是E logE一个是E logV,那么有没有复杂度为E的算法呢?理论上是可能的,但是目前还没有发现该算法.下图是最小生成树算法的发展过程. 从图中可以看到复杂度越來越接近E. 最小生成树的应用 欧几里德最小生成树 问题描述:给定一系列点的坐标,求包含所有点的最小生成树. 下图是这个问题的一个例子. 解决这个问题的基本思想就是先将每个点都看成一个独立的cluster,每次合并一对距离最近的cluster,直到所有的点都合并在一起为止.这种

08-FPGA状态机设计实例——小梅哥FPGA设计思想与验证方法视频教程配套文档

芯航线--普利斯队长精心奉献 ? 实验目的:1.学习状态机的相关概念 2.理解一段式.两段式以及三段式状态机的区别以及优缺点 实验平台:芯航线FPGA核心板 实验原理: 状态机全称是有限状态机(finite-state machine,缩写:FSM)是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 状态机分为摩尔(Moore)型有限状态机与米利(Mealy)型有限状态机.摩尔状态机输出是只由输入确定的有限状态机(不直接依赖于当前状态).米利有限状态机的输出不止与其输入有关还于它的

DICOM医学图像窗口变换的加速算法

详见:http://pan.baidu.com/s/1gfFLbJ9 DICOM医学图像窗口变换的加速算法* 张尤赛 ,陈福民 ( 同济大学计算中心, 上海 200092 ) (华东船舶工业学院电子与信息系,江苏 镇江 212003) E_mail:[email protected]   摘 要:研究DICOM医学图像的显示技术,提出了一种图象窗口变换的加速算法,该算法简洁.实用.加速效果理想, 可以在动态连续调节图像窗值的情况下实时地显示DICOM医学图像. 关键词: DICOM: 医学图像:

八大排序算法实战:思想与实现

摘要: 所谓排序,就是根据排序码的递增或者递减顺序把数据元素依次排列起来,使一组任意排列的元素变为一组按其排序码线性有序的元素.本文将介绍八种最为经典常用的内部排序算法的基本思想与实现,包括插入排序(直接插入排序,希尔排序).选择排序(直接选择排序,堆排序).交换排序(冒泡排序,快速排序).归并排序.分配排序(基数排序),并给出各种算法的时间复杂度.空间复杂度和稳定性. 版权声明: 本文原创作者:书呆子Rico  作者博客地址:http://blog.csdn.net/justloveyou_/

(5)基于协同过滤推荐算法的图书推荐研究

协同过滤算法以其出色的计算速度和健壮性,在全球范围内特别是在互联网领域中取得了巨大成功.文章介绍了基于物品的协同过滤算法的基本思想和实现步骤,以及应用于实际图书推荐项目中的效果和产生的问题.基于物品的协同过滤算法的基本原理是和某用户历史上感兴趣的物品,越相似的物品,越有可能在用户的推荐列表中获得比较高的排名.算法的基本步骤为收集用户偏好,计算物品之间的相似度,计算用户对某一个物品的兴趣度.文章中介绍的系统在实际应用中效果良好.今后该系统的升级版将重点研究如何解决算法的稀疏性以及如何提高图书推荐质

排序算法的基本思想和OC代码实现

算法的基本思想和OC代码实现 一 .冒泡排序   (平均时间复杂度 o(N*N))  基本思想:两个数比较大小,较大的数下沉,较小的数冒起来. 过程:比较相邻的两个数据,如果第二个数小,就交换位置 从后向前两两比较,一直到比较最前两个数据.最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了. 继续重复上述过程,依次将第2,3,….,n-1个最小数排好位置. int arr[5]={23,21,45,23,64}; int temp; for (int i=0; i<4; i++) {

经典算法宝典——动态规划思想(六)(2)

1.01背包问题 有N件物品和一个容量为V的背包,第i件物品的体积是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 解析: 这是最基础的背包问题,特点是每种物品仅有一件,可以选择放或不放.用子问题定义状态,即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值.其状态转移方程便是f[i][v] = max{f[i-1][v], f[i-1][v-c[i]]+w[i]},这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的,所以有必要将它详细解

经典算法宝典——贪婪思想(五)(1)

贪婪法(Greedy)又叫登山法,它的根本思想是逐步到达山顶,即逐步获得最优解,是解决最优化问题时的一种简单但适用范围有限的策略."贪婪"可以理解为以逐步的局部最优,达到最终的全局最优. 贪婪算法没有固定的算法框架,算法设计的关键是贪婪策略的选择.一定要注意,选择的贪婪策略要具有无后向性,即某阶段状态一旦确定以后,不受这个状态以后的决策影响.也就是说某状态以后的过程不会影响以前的状态,只与当前状态有关,也称这种特性为无后效性.因此,适应用贪婪策略解决的问题类型较少,对所采用的贪婪策略一

经典算法宝典——分治思想(四)(1)

分治法(Divide and Conquer)的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的几个相似问题,以便各个击破,分而治之. 说明: 分治策略的应用很广,具体表现形式各异,比如:折半查找.合并排序.快速排序.二叉树遍历(先遍历左子树再遍历右子树).二叉排序树的查找等算法. 一.分治算法框架 1.算法设计思想 分治法求解问题的过程是,将整个问题分解成若干个小问题后分而治之.如果分解得到的子问题相对来说还太大,则可反复使用分治策略将这些子问题分成更小的同类型子问题,直至产生出方