限流工作的軟件設計無刷直流電機的電流控制能體現無刷直流電機控制系統的好壞。電流的控制關鍵在于準確和及時。準確、及時正是對電流經過LM2904放大后由AD采樣的到的值經過處理控制PWM波形而言的。準確性體現在電流AD采樣和轉換的時刻。所使用的PSoC的AD模塊為SAR8,采用其對齊觸發采樣的方式。因為以PWM波驅動的無刷直流電機電流與PWM波同頻率,但相位滯后一定時間的脈動電流波形,合適的采樣點在上升沿過后一定時間內。及時主要體現在采樣的次數上,因為電流的變化很快,在一個PWM周期內可能會有很大的起伏,所以最好是一個PWM周期內采樣多次,但是由于SAR8的采樣和轉換時間為3.3μs,單片機的速度受限,且改變PWM脈寬寄存器的值不會立即改變PWM占空比,要到下一個PWM周期開始才改變,所以一個周期采集一次足矣。
采集到電流AD值后,可以根據其值對PWM脈寬做調節控制,用逐漸增減PWM脈寬值的方法。采集到的電流AD值乘以占空比得計算的平均電流值,當平均值大于限流值時,減小PWM脈寬值,當平均值小于限流值時,不馬上恢復原先的PWM脈寬值,而是有一個環帶,當電流值低于環帶值時才開始逐漸增加PWM脈寬值,當恢復到原有值時就停止更新脈寬值。所以用平均值來控制PWM脈寬值時,當占空比很小時,電流即時值就相當大,所以還需要最大值的控制,當電流及時值大于最大值時,同樣執行增減PWM脈寬值程序代碼。當即時值大于過流保護值時,開啟過流保護使PWM脈寬快速減為0,確保MOSFET的安全。