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
總結
以上是生活随笔為你收集整理的T型加速算法fpga实现思想研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu18.04下安装tomcat
- 下一篇: centos7 hadoop 2.8安装