小弟剛好有幾年這方面經驗,希望可以對題主有幫助,
伺服驅動器韌體的工作大致可分為兩塊 : 驅動層和應用層
應用層 : 這一層比較雜,舉凡應用功能、韌體架構、IO控制、通訊協定可能
都會是工作內容,算是串聯上位機與驅動層之間的橋樑,將驅動層提供的API包裝出一個
完整的伺服驅動器是主要工作。例如上位機發命令要求馬達轉到某一個位置,應用層收
到後必須去呼叫驅動層提供的API,讓馬達轉到定位,同時也需要花時間處理IO、和處理
通訊封包,如何排程這些事件會是這一層需要考慮的部分。通訊若只有使用RS485就比較
單純,但若使用到Ethernet、Ethercat有些公司會專門找一個人去處理。另外有時候可
能需要兼職寫測試的UI。這一塊對於寫code的工作量較大,大公司對於人力配置會比較
好,小公司常會面臨多頭燒的窘境。
這一層需要知識 : C/C++語言、單晶片、一些硬體概念,如果懂作業系統、資料結構會
更好。
驅動層 : 這一層是專精在馬達控制的部分,若使用三相馬達可以去看FOC(向量控制),
有刷馬達則不用,演算法大宗是PID,搭配三環(電流、速度、位置)控制,這樣大致上
就能實現基本的伺服控制,看似簡單,但若想做得好,必須具備一些知識背景,
首先馬達驅動其實就是在做DC-AC轉換,韌體打多少duty時,會出現多少線電壓、線電流
要有一些概念,然後這部分也牽涉到馬達的R(穩態)與L(暫態),另外也要知道Kt,Ke參數
用途、T-N curve的意義。控制方面要能合理的調整PID參數而不是盲調,先決條件是系
統鑑別要做好,基本不外乎就是用step response、freq response,進階一點會做
成自動增益調教,也有公司會研究fuzzy/neural/optimal/adaptive之類的辦法去優化
參數,這一塊我也不是非常懂,我只會基本的。另外現在都是使用數位晶片在控制,
在連續控制器設計完後還必須轉到離散域要注意,也需要處裡回授信號,會需要
使用數位濾波器抑制雜訊/共振之類的,對頻域要有一些概念,大致上是這樣。
這一層需要的知識 : 控制系統必看,數位控制、信號與系統、電力電子、電機機械
也可以讀一下。
小弟之前的工作經驗較特殊,從UI到馬達驅動都稍微有涉略過,但涉略的廣就代表無法
太專精在某一項,因此若有寫得不好或不對的部分也請其他高手再補充或指證,感謝!
※ 引述《IsiahThomas (微笑刺客)》之銘言:
: 各位高手好,目前準備要從電控工程師轉職做伺服驅動器韌體工程師,除了C指標需加強外
: ,不知道還有什麼東西需要事先懂的,因為到新公司報到還有一個月時間,想用空閒時間來
: 增加自己不足之處,謝謝!