最近在做一個項目,利用帶有編碼器的直流電機配合PID算法去做運動控制。直流電機本身存在的固有位置誤差,相信細心的人,都可以看到的。 要解決這樣的一個問題,就要加上編碼器,PID算法。
我用的是STM32的定時器來實現編碼器的功能。其中遇到的難題是,如何解決當CNT溢出的時候,自己的數據依然沒有被清0,也就是如何擴展16位的計數限制爲32位的。 第二個難題是,PID的整定,PID的輸出是什麼,PID的初始化該放在哪裏,如何快速找到P參數的整定範圍。這些都是需要親身試驗後才發現的。
目前項目已經接近尾聲,如果你也在做這個方面的,有問題,歡迎提出來,一起討論。