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