无感FOC算法中解决单电阻采样重构三相电流的难题
大四在某公司實習,主要是做無刷電機控制算法,在學習FOC的過程中,因為公司要壓低產品成本,只能允許我用單電阻采樣的方式來做電流環。于是我就到處找單電阻采樣的資料,跑遍了各大論壇,資料少的可憐,只能講出大致原理,看完還是不知道怎么具體實現。后來沒辦法,逼著自己看了幾篇碩士論文和期刊,基本看明白了。(吐槽一下,碩士論文是要出書嗎,一篇就接近一百頁,看死我了)不多說了,開始說正經事
在低調制區域和扇區邊緣,由于采樣窗口期時間短,無法完成采樣
?在FOC算法中計算矢量作用時長的這一步,我們已經計算出來了當前扇區里兩個有效矢量作用時長分別是Ta、Tb。(Ta,Tb都是定時器計數值)因此我們能夠采樣的時間分別是Ta/2,Tb/2。
?以圖中情況為例在Ta/2時期下管狀態為100,此時采樣的電流為-Ia,在Tb/2時期下管狀態為110,采樣的電流為Ic,根據基爾霍夫定律Ia+Ib+Ic=0可以求出剩余一相Ib的電流。完成三相電流的重構。
如何判斷采樣窗口時間是否足夠?
首先要確定我們完成采樣需要多少時間,我們設這個時間是Tmin。
Tmin=Td+Tc+Ts
Td是死區時間,Tc是電流完全穩定需要的時間,Ts是AD采樣需要的時間。
(不知道時間是多少的話,有個笨方法,可以把Tmin這個時間從小到大一點點加,試出這個時間)
確定了Tmin之后就可以判斷采樣窗口期是否足夠了。
很顯然只要Ta/2和Tb/2大于Tmin,采樣窗口期就是足夠的。直接采樣就完事了。
反之Ta/2和Tb/2小于Tmin采樣窗口期就不夠我們去采樣。這時候就需要移相了。怎么移,移的規律是什么。我直接給出我的總結
當Ta/2<Tmin時,把最大的占空比的那一相左移Tmin-Ta/2
當Tb/2<Tmin時,把最小的占空比的那一相右移Tmin-Tb/2
?2.移相的代碼怎么寫?
?SVPWM輸出的時候是把值直接給到CCR里面,上面的圖可以看出我們左移的時間為t,也就是前文所提到的Tmin-Ta/2對應的計數值。在判斷需要移相后,我們只需要把SVPWM得出的值減去t,再給到CCR里,當計數器計到最大值時,也就是到達頂點時,再用SVPWM得出的值加上t,給到CCR里。這樣就完成了移相,并且占空比沒有改變。
3完善總結
生平第一次寫博客,希望大家多多點贊。
總結
以上是生活随笔為你收集整理的无感FOC算法中解决单电阻采样重构三相电流的难题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .Net 简单使用 Hangfire
- 下一篇: 打开模拟器上app的文件位置方法