1 模型仿真與實(shí)際應(yīng)用之間的區(qū)別
MBD(Model-Based Design,基于模型的設(shè)計(jì))是通過模型生成代碼的,所有我們有必要弄清楚模型仿真與實(shí)際應(yīng)用之間的區(qū)別。
仿真模型與實(shí)際應(yīng)用之間的區(qū)別本質(zhì)上是理論與實(shí)踐之間的差別,其中的差別可以說是兩個(gè)完全不同的話題。
這里又給大家更新三篇與電機(jī)控制實(shí)踐相關(guān)的文章。它們是由NXP的工程師編寫的電機(jī)控制應(yīng)用筆記,可以在NXP官網(wǎng)找到,也可以在對話框中回復(fù)關(guān)鍵詞“ NXP應(yīng)用筆記 ”,即可收到相應(yīng)資源。
這三篇應(yīng)用筆記分別是:
- 3-Phase Sensorless PMSM Motor Control Kit with S32K144
- 3-Phase Sensorless BLDC Motor Control Kit with S32K144
- 3-phase Sensorless Single-Shunt Current-Sensing PMSM Motor Control Kit with MagniV MC9S12ZVM
*NXP電機(jī)控制應(yīng)用筆記 * - From autoMBD
前兩篇分別以PMSM和BLDC為主題,介紹如何實(shí)現(xiàn)無感FOC控制;第三篇講的是單電阻無感控制方案,實(shí)現(xiàn)的也是FOC算法,軟件實(shí)現(xiàn)上是有一些區(qū)別的,也要復(fù)雜一些。
Tips :第三篇是基于MagniV MC9S12ZVM的,而不是S32K144,參考這篇文章時(shí),主要學(xué)習(xí)的是單電阻電機(jī)控制方案,這個(gè)方案也是完全可以移植到S32K1xx系列上的。
無感控制比有感控制要復(fù)雜,將無感的方案稍加改造就可以做出有感的控制方案,所以這三篇應(yīng)用筆記是很有實(shí)踐參考價(jià)值的。
這三篇應(yīng)用筆記給的都是 純代碼開發(fā)的方案 ,即介紹了工程實(shí)踐中如何從數(shù)學(xué)原理一步一步實(shí)現(xiàn)電機(jī)控制,主要內(nèi)容包括:
- 電機(jī)控制數(shù)學(xué)原理
- 電流、電壓采樣輸入和驅(qū)動輸出
- MCU模塊資源的使用
- 底層驅(qū)動配置和初始化
- 電機(jī)控制軟件架構(gòu)(狀態(tài)機(jī)、電機(jī)控制庫、MCAT等)
下面的這個(gè)框圖可以較為全面的展示 第1~4點(diǎn)在電機(jī)控制中的實(shí)際體現(xiàn) :系統(tǒng)從外部硬件(電機(jī)、逆變器、預(yù)驅(qū)芯片)起,經(jīng)過信號采集,再到MCU的外設(shè)模塊(白色方塊),再到底層驅(qū)動(SDK Driver/橙色方塊),然后進(jìn)入到FOC的軟件算法部分(綠色方塊),而FOC的輸出經(jīng)底層驅(qū)動、再到外設(shè)模塊(FTM模塊)輸出到預(yù)驅(qū)芯片,從而實(shí)現(xiàn)控制。第5點(diǎn)則是調(diào)度上述過程的狀態(tài)機(jī),關(guān)于第5點(diǎn)后文會更一步的講解。
*NXP電機(jī)控制軟硬件框圖 * - From NXP
從這五點(diǎn)我們就能引出我們要討論的問題: 模型仿真與實(shí)際應(yīng)用之間的區(qū)別到底有哪些 ?
簡單的說,模型仿真只能觸及上述的第1點(diǎn);如果對建模有更深入的研究,第2點(diǎn)也能做仿真,這部分實(shí)際上和硬件電路設(shè)計(jì)有關(guān),所以很少有在模型仿真中考慮這一點(diǎn);第3、4、5點(diǎn)就是完全的非理論了,與嵌入式、編程和芯片有較強(qiáng)的關(guān)聯(lián),是實(shí)實(shí)在在的實(shí)踐過程。
所以,在袁雷的《現(xiàn)代永磁同步電機(jī)控制原理及MATLAB仿真》中是完全不包括第2~5點(diǎn)的內(nèi)容的。
以電流采樣電阻為例,實(shí)際應(yīng)用場景中,為了測量電流信號的方向,一般會對采樣電阻進(jìn)行偏置處理。NXP開發(fā)的DEVKIT驅(qū)動板相電流采樣電阻為例,其電路設(shè)計(jì)如下圖所示:
*DEVKIT驅(qū)動板相電流采樣電阻 * - From NXP
可以看到,偏置電壓為參考電壓的一半,所以最終輸入到芯片ADC的電壓是以偏置電壓為中心對稱的。
根據(jù)大于偏置電壓還是小于偏置電壓,可以判定電流是正方向還是負(fù)方向。所以在信號處理中還需要將這個(gè)偏置電壓減去。
關(guān)于電流采樣,還有布置方式的不同,常見的采樣電阻布置方式有以下這些:
- 三電阻下橋臂采樣/相電流采樣
- 雙電阻下橋臂采樣/相電流采樣
- 單電阻母線采樣
Tips :這里列舉了常見采樣電阻布置方式,一般應(yīng)用中下橋臂采樣較多,相電流采樣多用于高性能、高效率電機(jī)控制的場合,而單電阻母線采樣是成本最低,但采樣方式最復(fù)雜的。
不同的布置方式,采集的電流是不同的,而控制算法是需要全部的三相電流的。三個(gè)采樣電阻可以直接得到三相電流信號,如何通過一個(gè)電阻或者兩個(gè)電阻得到三相電流數(shù)據(jù),也是有方法的。
雙電阻相對來說較為簡單,根據(jù) 三相電流和為零 ,可以直接求解出第三相電流。單電阻采樣的場景要復(fù)雜很多,具體可以參考 上述的第三篇應(yīng)用筆記 。
以上關(guān)于電流采樣的所有方法,在模型仿真中都沒有考慮,只是一根信號線連接到控制器 ,這就是理論仿真和實(shí)踐的巨大區(qū)別所在,如下圖所示(摘自袁雷的《現(xiàn)代永......仿真》):
*仿真模型示例 * - From 袁雷
Tips :因?yàn)槲覀円褂肕BD的開發(fā)方法,所以這里不再深入詳細(xì)展開講其他的區(qū)別,以后有需要的地方再做提示,有興趣的讀者可以自行參閱上述三篇NXP的應(yīng)用筆記。
當(dāng)我們了解了所有理論與實(shí)踐之間的區(qū)別,輔以嵌入式開發(fā)和編程的基礎(chǔ),一個(gè)簡單的電機(jī)控制項(xiàng)目就可以實(shí)現(xiàn)。
即使是一個(gè)產(chǎn)品級的電機(jī)控制軟件,也只是再補(bǔ)充通信、故障診斷、功能安全等其他需求的功能。復(fù)雜度可能會高很多,但開發(fā)和設(shè)計(jì)的本質(zhì)框架就是這樣的。
2 MBD拉近模型仿真****與實(shí)際應(yīng)用之間的距離
如果要更加嚴(yán)謹(jǐn)?shù)卣f,上面討論的也只是電機(jī)控制算法部分的工程實(shí)踐。一個(gè)完整的產(chǎn)品應(yīng)用,硬件設(shè)計(jì)和 軟件設(shè)計(jì) 。硬件設(shè)計(jì)可以交給硬件工程師,我們把重點(diǎn)放在軟件設(shè)計(jì)上。
上面三篇應(yīng)用筆記中提到的電機(jī)控制實(shí)現(xiàn)方案,是屬于軟件設(shè)計(jì)的一部分。傳統(tǒng)的開發(fā)中,就需要將選定的電機(jī)控制方案 轉(zhuǎn)化為一行行的代碼 ,這就又涉及到數(shù)學(xué)(理論)到編程語言(實(shí)踐)之間的轉(zhuǎn)換。入門門檻高,同時(shí)效率也較低。
Tips :以我自己的經(jīng)歷為例,上述應(yīng)用筆記內(nèi)容的代碼實(shí)現(xiàn)過程,我是完整的走過一遍的。我從對嵌入式一無所知,到學(xué)習(xí)嵌入式的基本模塊和開發(fā)方法,再到能寫一些基本的嵌入式代碼,花費(fèi)了3個(gè)月的時(shí)間,然后又花了差不多1個(gè)月的時(shí)間,才實(shí)現(xiàn)了一個(gè)簡單的電機(jī)控制嵌入式程序。這還是我對電機(jī)控制理論有了足夠的基礎(chǔ)之后的開發(fā)效率。
但利用MBD的開發(fā)方法,我們可以大大簡化這一步驟。模型我們是比較容易得到的, 利用模型直接生成代碼,能有效地縮近理論和實(shí)踐直接的距離 。更多MBD相關(guān)的內(nèi)容,請參考本公眾號 前面幾期內(nèi)容 ,或者在對話框中回復(fù)關(guān)鍵詞“ MBD入門 ”。
*MBD的開發(fā)流程 * - From ST
如果讀了上述三篇應(yīng)用筆記,就可以發(fā)現(xiàn),嵌入式軟件設(shè)計(jì)很多是可以通過建模的方式實(shí)現(xiàn)的。這里簡單的把軟件設(shè)計(jì)分為五類,它的軟硬件層級如下圖所示(軟件為虛線框部分):
*電機(jī)軟硬件層級示例 * - From autoMBD
下面是這五類軟件關(guān)于MBD建模實(shí)現(xiàn)的分析:
- 底層驅(qū)動 ,MCU、硬件電路強(qiáng)相關(guān)
底層驅(qū)動是和芯片和硬件電路設(shè)計(jì)緊密相關(guān)的,比如硬件引腳(Pin腳、外設(shè)、端口等)使用的不一樣,底層驅(qū)動的配置也就不一樣了。
原則上底層驅(qū)動是可以通過芯片廠商提供的MBD硬件支持包來實(shí)現(xiàn)的,但從靈活性和效率的角度來說,目前建議通過專門的底層驅(qū)動配置工具來配置底層驅(qū)動,例如NXP適用于S32K1系列的配置工具Processor Expert。
- 數(shù)字信號處理 ,硬件電路弱相關(guān)
數(shù)字信號處理(Digital Signal Processing,DSP)是將真實(shí)世界中的物理量(模擬量,例如電流、電壓等)轉(zhuǎn)換為控制器需要的量的過程。
還是以電流采樣為例,在前文給的電流采樣電路基礎(chǔ)上,ADC讀到的電壓實(shí)際上是一個(gè)12 bit的整數(shù),需要將其進(jìn)行偏置消除以及物理量轉(zhuǎn)換等操作,有必要的話會需要進(jìn)行濾波處理。
可以看到,這個(gè)過程和硬件電路設(shè)計(jì)有一定的聯(lián)系,硬件設(shè)計(jì)的不一樣,處理的細(xì)節(jié)可能存在一定的差異。但基本的信號處理方法是相通的,例如濾波器、積分、微分、移位運(yùn)算、邏輯運(yùn)算等。
這一過程是可以通過建模的方式實(shí)現(xiàn),并且信號處理越復(fù)雜,模型的優(yōu)勢就更明顯,畢竟模型很容易搭建,代碼寫起來就很費(fèi)勁了。
所以我們可以把軟件設(shè)計(jì)中的這一部分納入到MBD中,通過建模的方式自動生成代碼。
- 電機(jī)控制算法 ,硬件電路弱相關(guān)
數(shù)據(jù)信號處理后,將得到的數(shù)據(jù)傳遞到電機(jī)控制算法中??刂扑惴ㄖ幸话惆ㄗ鴺?biāo)變換、PI控制器、FOC、SVPWM等環(huán)節(jié)。電機(jī)控制算法會得到一個(gè)控制輸出量,一般是三相的占空比。
這些環(huán)節(jié)使用Simulink內(nèi)置的模塊,或者使用芯片廠商提供的MBD硬件支持包,是可以很方便快捷的實(shí)現(xiàn)的。這部分如果要編寫代碼,對初學(xué)者來說,甚至對有一定編程基礎(chǔ)的人來說,都算是不小的挑戰(zhàn)。
此外建??梢院芊奖愕卣{(diào)整控制算法的結(jié)構(gòu),開發(fā)初期這是很常見的。手寫代碼的話,每一次調(diào)整結(jié)構(gòu)就需要重復(fù)工作一遍,效率很低。
因此電機(jī)控制算法部分是很適合通過建模生成代碼來實(shí)現(xiàn)的。
這里解釋一下電機(jī)控制算法****為什么是硬件電路弱相關(guān) 。一般來說,通用的電機(jī)控制算法是可以做到與硬件電路無關(guān)的。
但在某些場景下,例如有的芯片具有硬件加速模塊,或者使用一些特殊的控制算法(無感和有感就有硬件上的差異),可能會影響控制算法的執(zhí)行,所以電機(jī)控制算法和硬件有一定的關(guān)聯(lián)。
- 狀態(tài)機(jī) ,與硬件電路無關(guān)
狀態(tài)機(jī)是與硬件電路完全無關(guān)的,而且在Simulink中提供的****Stateflow是專門用于狀態(tài)控制建模的工具 ,用它開發(fā)狀態(tài)機(jī)效率可以提高一個(gè)檔次。所以狀態(tài)機(jī)使用MBD來實(shí)現(xiàn)也是毫無問題的。
- 其他軟件 ,例如通信、失效檢查等,暫時(shí)我們不考慮這部分內(nèi)容
從上面的分析來看,除開底層驅(qū)動,其他軟件部分均可以通過MBD建模的方式實(shí)現(xiàn),并且能大大提高效率。
下圖是較為常見的V型開發(fā)流程,參考這個(gè)流程就可以開發(fā)一個(gè)基于MBD的電機(jī)控制軟件。
*V型開發(fā)流程 * - From ST
-
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
492瀏覽量
27541 -
PMSM
+關(guān)注
關(guān)注
14文章
246瀏覽量
41887 -
BLDC電機(jī)
+關(guān)注
關(guān)注
7文章
211瀏覽量
21487 -
MBD
+關(guān)注
關(guān)注
0文章
25瀏覽量
8970 -
FOC算法
+關(guān)注
關(guān)注
1文章
18瀏覽量
9671
發(fā)布評論請先 登錄
相關(guān)推薦
評論