利用矢量旋轉(zhuǎn)求解平方根的算法及其FPGA實(shí)現(xiàn)*
先考察在[0,1]之間的任意實(shí)數(shù)。假設(shè)待開(kāi)方數(shù)為s,且s∈[0,1]。有:
本文引用地址:http://cafeforensic.com/article/96987.htm
參數(shù)討論
為了將該算法在FPGA上實(shí)現(xiàn),需要選擇合適的參數(shù)以降低實(shí)現(xiàn)的復(fù)雜度。在FPGA上實(shí)現(xiàn)加減法比較簡(jiǎn)單,而要實(shí)現(xiàn)乘法會(huì)比較復(fù)雜,在公式(3)中就涉及到乘法運(yùn)算,要是能通過(guò)移位實(shí)現(xiàn)乘法將大大提高運(yùn)算速度。因此Dq要盡量小,以獲得更高的近似度,而且這樣公式(3)中的cos(Dq)≈1,由此可簡(jiǎn)化計(jì)算;另外yi-1tan(Dq),xi-1tan(Dq)要能通過(guò)數(shù)據(jù)移位實(shí)現(xiàn)。因此選擇合適的Dq,使得,這樣公式(3)中的迭代運(yùn)算就可用右移k位實(shí)現(xiàn),公式(3)可以簡(jiǎn)化為:
但如果Dq太小,會(huì)使迭代次數(shù)增多,因此選取合適的Dq是必要的。
任意數(shù)的開(kāi)平方算法
直接利用VR算法只能計(jì)算[0,1]內(nèi)的平方根值,有一定的局限性。因此,設(shè)待開(kāi)方數(shù)T為任意正數(shù),當(dāng)T>1時(shí),可通過(guò)對(duì)其預(yù)處理后映射到[0,1]區(qū)間內(nèi)再進(jìn)行開(kāi)平方運(yùn)算。步驟如下:
矢量控制相關(guān)文章:矢量控制原理
評(píng)論