ST電機庫5.0完全開源對電機控制軟體工程師有何影響?
安裝了ST的MC_SDK後,生成工程比較麻煩,跟安裝的版本,插件都有關係,這樣子就很難讀到開源的代碼。
機緣巧合之下,發現可以直接在安裝路徑下看到源碼,路徑是:D:\Program Files (x86)\STMicroelectronics\MC_SDK_5.3.2\Middlewares\ST\MotorControl\MCSDK\MCLib\Any\Src
一般我是把這類軟體裝在D盤。原廠的源碼還是值得初學者學習的,祝大家好運,早日年薪百萬!
另外安裝5.3.2的版本,源碼反而比較少,安裝5.0.1版本,代碼豐富一些,還有高頻注入的源文件:
現在ST的Motor Profiler都更新到5.3.2了,聽同事說起過,ST的開原始碼效果一般,自己沒用過。
看到有些朋友在為"老工程師"擔憂,這個見仁見智,談下個人的看法。
據我所知,認識的變頻器或者伺服行業的「老工程師」,這些ST的代碼對他們來說意義並不大。比如匯川和英威騰最早做開發的一批人,早在2008年,匯川就有了1140VAC三相永磁同步電機的FOC控制,支持雙機主從控制驅動皮帶機這類啟動力矩要求極高的負載,並且要求雙機同步驅動。因為負載太大,一台電機拖不動,需要兩台機輸出同樣的力矩分擔負載。
英威騰在2008年左右就有了1140VAC三相交流異步電機的FOC控制,雖然性能不是特別穩定,但是在那個年代基本是最早的破冰者。
1140VAC電機的FOC能做,220VAC/380VAC/36VDC驅動,只是一個移植的問題吧。
以我有限的經歷來看,確實有些老工程師不願意交流,畢竟電氣傳動行業都是源於艾默生開枝散葉,裂變的各個公司在開發文化上就要求儘量做到內部保密,這些也可以理解。但是要說ST把代碼開源對他們造成很大衝擊,那就沒必要了~~
以ST為例,基本沒有HFI的驅動能力。國產公司里已經有不少開發出了基於方波高頻注入,脈振高頻注入的控制方法和初始位置辨識方法,這類方法主要用在IPM,ST主要面向家電和工具市場,很少涉獵IPM的驅動。
SPM的低速帶載能力,ST基本沒有,包括很多晶片廠家,清一色的If+SMO,複雜一點就是If+Luenberger,基本只有中高速能帶載。在通用電控行業,無傳感器PMSM都要求做到20:1的調速範圍,即5%的額定速度必須輸出額定力矩,速度精度滿足+/-0.5%,轉矩精度+/-5%。用到的方法有電流模型、磁鏈模型、可以動態補償的If(對於階躍負載不適用)。
到了高速範圍,SMO因為速度精度難以達標,基本沒有使用在通用電控行業,模型參考自適應因為低速比較差,對參數敏感在工業界鮮有使用。常見的是基於旋轉坐標系的拓展反電勢法或者磁鏈模型、電流模型,後兩者在全速度範圍內都可以使用,不需要切換。以上都是比較常見的方法,還有更多衍生的方法就不列舉了。
這些方法老工程師們參與了很多。
再說到環路,接觸的大多數晶片方案,比如峰岹Fortior或者技領Active-semi,速度環和電流環,弱磁,基本都是一個手動調試PI參數的方法,即使要求輸入電機參數,也沒有考慮建立數學模型進行參數自整定。離線自整定沒有,更不用說在線自整定了。電流環也沒有考慮過加前饋,更不用說考慮深度弱磁需要的復矢量電流環。轉動慣量沒辨識過,速度環增益完全靠調試。
以上都是一些基本的FOC環路,更加複雜的就包括:低速帶載對定子電阻的敏感性問題,在線參數辨識,自適應的死區補償,弱磁快速退飽和等等。
在伺服或者CNC工具機、主軸行業,對於在線慣量和負載辨識、smoothing卷積、在線自適應濾波,晶片廠家就更加沒有積累了。
ST的代碼開源對於初學者幫助很大,可以快速上手,建立對FOC的總體認識,間接促進了這個行業的整體發展。但是開源的代碼距離穩定的產品還是有很大距離,通過開原始碼上手了以後,長徵才剛剛開始,仍需結合實際的項目同時補充理論基礎,繼續努力。
畢竟電控不是以代碼量取勝,除非汽車行業,還是以手寫代碼為主,MBD比較少。各種具體控制算法和源碼,是無窮無盡的。真正重要的是開發和解決問題的方法和思路,加上經驗的積累,這是電控的核心,也是無法開源的,只能靠時間孤獨的積累。
如果我有幸能遇到老工程師,我會誠心向他們請教學習,也希望朋友們多多交流。