0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

BLDC電機控制算法——FOC簡述

硬件攻城獅 ? 來源:CSDN-雪中嬉戲的柴犬 ? 2023-03-22 15:58 ? 次閱讀

最近做完了一個直流無刷電機電機調(diào)速項目,查閱了各種大神所寫的博客和論文,在這里我只做一下小小的總結(jié):(PS最近有遇到相關(guān)課題,發(fā)現(xiàn)以前的描述并不完整,因此又補充了一些。)

FOC(Filed Oriented Control)是采用數(shù)學(xué)方法實現(xiàn)三相馬達的力矩與勵磁的解耦控制。

主要是對電機的控制電流進行矢量分解,變成勵磁電流I d IdId 和交軸電流I q IqIq ,勵磁電流主要是產(chǎn)生勵磁,控制的是磁場的強度,而交軸電流是用來控制力矩,所以在實際使用過程中,我們常令I(lǐng) d = 0 Id=0Id=0 。之后我將詳細介紹一下這個算法的數(shù)學(xué)原理和一些自己的理解。

#FOC矢量控制總體算法簡述

輸入:位置信息,兩相采樣電流值,(3相電流、電機位置或者電機速度)

輸出:三相PWM波

所需硬件:兩個ADC,一個光電或磁編碼器,主控,依據(jù)電壓等級的不同有mosfet或者IGBT或者SiC功率模塊組成的三個半橋

FOC算法在本質(zhì)上就是一些線性代數(shù)中的矩陣變換,我在這里講述的是有傳感器的FOC算法,轉(zhuǎn)子的位置信息是通過絕對式磁編碼器反饋的,直接是數(shù)字量。

第一步:根據(jù)AD采樣得到cff0a27e-c884-11ed-bfe3-dac502259ad0.png兩相電流值;

通過ADC采樣得到電機的cff0a27e-c884-11ed-bfe3-dac502259ad0.png兩項電流信息,由于基爾霍夫電流定律,同一個節(jié)點流入電流值與流出電流相等,我們可以計算出d004314a-c884-11ed-bfe3-dac502259ad0.png。三個電流的相位差為120°。

d0166e82-c884-11ed-bfe3-dac502259ad0.png

d027b6b0-c884-11ed-bfe3-dac502259ad0.png

第二步:通過Clark變換,將三相定子坐標系(三個軸互為120°d0366b06-c884-11ed-bfe3-dac502259ad0.png?)轉(zhuǎn)化為兩相的定子直角坐標系(d04ad370-c884-11ed-bfe3-dac502259ad0.png

這個過程有點類似于力的矢量分解,把三相映射到兩相的坐標軸之上,如下圖所示。

d06993f0-c884-11ed-bfe3-dac502259ad0.png

第三步:通過Park變換將兩相定子坐標系變換到兩相轉(zhuǎn)子坐標系

因為我們主要控制的是轉(zhuǎn)子的旋轉(zhuǎn),所以需要通過Park變換將兩相定子坐標系變換到兩相轉(zhuǎn)子坐標系(d06f5204-c884-11ed-bfe3-dac502259ad0.png),本質(zhì)上就是矩陣的旋轉(zhuǎn)變換,在這里,我們用到的轉(zhuǎn)子的位置信息。

d07ee8a4-c884-11ed-bfe3-dac502259ad0.png

d08f6184-c884-11ed-bfe3-dac502259ad0.png

該位置信息便是由磁編碼器返回的絕對角度信息,(其實也可以用增量式編碼器,我感覺應(yīng)該只是在電機位置校準的時候需要定義零點,其他的應(yīng)該一樣,我暫時還沒有做過,屬于猜想的,當(dāng)然有的還可以通過無位置的控制方式,通過三相采樣電流值計算轉(zhuǎn)子位置信息,還有需要注意的是得到的是角度信息,我們需要將其轉(zhuǎn)化為電角度信息, 電 角 度 = 角 度 ? 磁 極 對 數(shù) 電角度=角度*磁極對數(shù)電角度=角度?磁極對數(shù)),其中d09c3576-c884-11ed-bfe3-dac502259ad0.png為勵磁電流分量d0a37520-c884-11ed-bfe3-dac502259ad0.png為轉(zhuǎn)矩電流分量,可以建立兩個PI調(diào)節(jié)器分別對兩個電流分量進行調(diào)節(jié)。

當(dāng)勵磁電流分量為0時,磁通完全由永磁體提供。電機所有的電流全部用來產(chǎn)生電磁轉(zhuǎn)矩,只用控制d0ac15a4-c884-11ed-bfe3-dac502259ad0.png就可以控制電機轉(zhuǎn)矩,就實現(xiàn)了電機的靜態(tài)解耦。(其實這里很好理解,根據(jù)左手定則,F(xiàn)=BIL,這個公式中L是電機的固有參數(shù),B磁通由兩部分組成,一是由永磁體提供,二是由電流變化產(chǎn)生磁場;所以如果我們要實現(xiàn)給定的力距,需要控制單一變量:電流,則需要讓B保持恒定,也就是使d0bbead8-c884-11ed-bfe3-dac502259ad0.png

第四步:根據(jù)PI調(diào)節(jié)器輸出電壓d0ca424a-c884-11ed-bfe3-dac502259ad0.png

這里需要注意有一個前提調(diào)節(jié),那就是你已經(jīng)基本調(diào)通了SVPWM波,電機可以正在旋轉(zhuǎn)了,F(xiàn)OC控制算法主要是電機的穩(wěn)定性控制,而不是電機本體的驅(qū)動。d0ca424a-c884-11ed-bfe3-dac502259ad0.png本身的參考值已定,d0e842fe-c884-11ed-bfe3-dac502259ad0.png只是根據(jù)給定值與實際返回值得差值調(diào)節(jié)電機的穩(wěn)定性。

在調(diào)參的時候,人為給定d0f3d9e8-c884-11ed-bfe3-dac502259ad0.png?( 參 考 電 流 值 ) ,通過與實時采樣電流比較,調(diào)節(jié)電流環(huán)PID,調(diào)節(jié)的目標是啟動響應(yīng)速度足夠快,平穩(wěn)運動波動足夠小,通過DAC輸出實時采樣電流來進行調(diào)試;

第五步通過反Park變換將d10adaee-c884-11ed-bfe3-dac502259ad0.png(兩相轉(zhuǎn)子坐標系)轉(zhuǎn)換為d117333e-c884-11ed-bfe3-dac502259ad0.png兩相定子坐標系

d124299a-c884-11ed-bfe3-dac502259ad0.png

d12b869a-c884-11ed-bfe3-dac502259ad0.png

第六步:得到d13705ce-c884-11ed-bfe3-dac502259ad0.png之后,通過SVPWM算法計算d1448d34-c884-11ed-bfe3-dac502259ad0.png

SVPWM是磁場定向控制中常用的PWM波調(diào)制技術(shù)。其全稱是空間矢量脈寬調(diào)制(Space Vector Pulse Width Modulation)是由三相功率逆變器的六個功率開關(guān)原件組成的特定開關(guān)模式產(chǎn)生的脈寬調(diào)制波,能夠使輸出電流波形盡可能接近于理想的正弦波。理論基礎(chǔ)是平均值等效原理,即在一個開關(guān)周期內(nèi)通過對基本電壓矢量加以組合,使其平均值與給定電壓矢量相等。

假設(shè)三相電壓分別為d1523786-c884-11ed-bfe3-dac502259ad0.png,且相互之間相位差為120°,假設(shè)U m 為相電壓的有效值,f為電源頻率,則有:

d15bae74-c884-11ed-bfe3-dac502259ad0.png

則三相電壓空間矢量相加的合成空間矢量d166e640-c884-11ed-bfe3-dac502259ad0.png就可以表示為:

d170c49e-c884-11ed-bfe3-dac502259ad0.png

d166e640-c884-11ed-bfe3-dac502259ad0.png是一個旋轉(zhuǎn)的空間矢量,幅值不變,為相電壓的峰值,且以角頻率w=2πf按逆時針方向旋轉(zhuǎn),其在三相坐標軸上的投影就是對應(yīng)的三相正弦量。

其實SVPWM算法的原理我也搞得有點懵,不過應(yīng)用上倒是相對簡單,可以把SVPWM算法想象成一個字典,根據(jù)d190328e-c884-11ed-bfe3-dac502259ad0.png的大小關(guān)系確定輸出值。完全當(dāng)成一個表在查就好了。

FOC算法的優(yōu)點有:

1、當(dāng)負載變化時,速度響應(yīng)快而且精確;

2、電機的瞬時效率高;

3、能實現(xiàn)位置控制;

FOC和PID調(diào)節(jié)的方式參考了

http://bbs.elecfans.com/jishu_546001_1_1.html

主要為先調(diào)試內(nèi)環(huán)之后調(diào)試外環(huán);

1、首先應(yīng)該調(diào)試ADC和編碼器,看是否可以得到正確的采樣電流和編碼器數(shù)值;

2、調(diào)試FOC算法中的SVPWM環(huán)節(jié),認為的給定d19c5762-c884-11ed-bfe3-dac502259ad0.png兩個值,看電機是否運行,確保SVPWM沒問題

3、 人為給定d1a60000-c884-11ed-bfe3-dac502259ad0.png參考值,通過實時采樣電流,調(diào)節(jié)電流環(huán)的PID,調(diào)節(jié)的目標是啟動響應(yīng)速度足夠快,平衡運行波動足夠小,通過DAC輸出實時的采樣電流來進行觀測調(diào)試(這里我直接在算法中讓d1adcc18-c884-11ed-bfe3-dac502259ad0.png為0,所以只給定d1adcc18-c884-11ed-bfe3-dac502259ad0.png的值)。

4、人為給定速度,調(diào)試速度環(huán)PID,輸出d1adcc18-c884-11ed-bfe3-dac502259ad0.png,調(diào)節(jié)的目標是根據(jù)在足夠?qū)挼乃俣确秶鷥?nèi)平穩(wěn)啟動和運行??梢圆捎脤<襊ID算法;

5、位置環(huán)調(diào)節(jié),輸出為速度,調(diào)節(jié)目標,從一個位置快速的到達另一個位置來回跑,停止靜差足夠小,速度增減足夠快,即瞬時速度大且需要合理的根據(jù)位置路徑的長度規(guī)劃一個速度曲線。

注意:如果要達到較高的速度精度,可能需要針對不同的速度值設(shè)置不同的速度PID參數(shù),且需要進一步實時的調(diào)節(jié)觀測器、PLL及速度PID參數(shù)。

其他的一些知識總結(jié):

FOC與DTC控制區(qū)別(參考知乎一位大神的):

來源:https://www.zhihu.com/question/265079828/answer/291686684

FOC(電機矢量控制)要求嚴格的轉(zhuǎn)子磁場定向,對于BLDC電機而言轉(zhuǎn)子磁場方向始終與轉(zhuǎn)子位置一致,因此其控制輸入需要準確的轉(zhuǎn)子絕對位置信號

DTC(直接轉(zhuǎn)矩控制)實際上與基于定子磁場定向,而定子磁場則是依據(jù)電壓積分估算獲得,在這個過程中跟轉(zhuǎn)子位置沒有關(guān)系,其控制過程中用到的量也都是靜止坐標系下的量,因此DTC控制相比于FOC控制要簡單很多,完全不需要求解三角函數(shù)、坐標變換,如果需要用DTC進行速度閉環(huán)則需要測量電機的速度,但是依然不需要準確的絕對位置。

總結(jié)下來,從硬件的角度DTC相比于FOC可以省略一個位置傳感器!當(dāng)然,現(xiàn)在有很多改進的DTC算法需要用到電機的絕對位置。

但是在電機控制中,無論是DTC控制還是FOC控制,最后倒要基于PID調(diào)節(jié)實現(xiàn)穩(wěn)定控制。

市場上電調(diào)分類

1、FOC電調(diào):矢量控制,效率高,轉(zhuǎn)矩脈動小,電機噪音小,減速制動快

2、普通電調(diào):六步換向控制,方波驅(qū)動

STM32有BLDC開發(fā)套件

BLDC電機控制算法:

PID控制,專家PID控制,模糊PID控制,神經(jīng)PID控制,基于遺傳算法整定的PID控制,魯棒控制,滑膜控制等;

電機方面的知識:

1、根據(jù)《無刷電機控制系統(tǒng)》中所講述:目前國內(nèi)外對無刷直流電機的定義一般有兩種:一種定義認為只有梯形波/方波無刷直流電機才可以稱為無刷直流電機,而正弦波無刷電機則被稱為永磁同步電機(Permanent Magnet Synchronous Motor,PMSM);另一種定義認為梯形波/方波無刷電機和正弦波無刷電機都是直流無刷電機。

2、直流電機的調(diào)速是用直流電壓來控制,電壓越高,轉(zhuǎn)的越快,不過單片機并不能輸出可調(diào)的直流電壓,于是只好變通采用PWM的方式來控制電機的輸入電壓。PWM占空比越高,等效電壓就越高,當(dāng)然單片機給出的PWM波形只是控制信號,而且最高電壓只有5V,其能量并不足以驅(qū)動無刷直流電機,所以必須要再接一個功率管來驅(qū)動電機,功率管可以是MOSFET(場效應(yīng)管),也可以是IGBT(絕緣柵雙極晶體管)。

3、一般而言,電機的繞組數(shù)量都和永磁極的數(shù)量是不一致的(比如用9繞組6極,而不是6繞組6極),這是為了防止定子的磁極與轉(zhuǎn)子的磁鋼相互吸引對其,產(chǎn)生類似于步進電機的效果,此種情況下轉(zhuǎn)矩會產(chǎn)生很大的波動。

4、外轉(zhuǎn)子無刷直流電機比內(nèi)轉(zhuǎn)子電機要慢,但是力矩更大,例如四旋翼等可以不通過減速器直接驅(qū)動螺旋槳旋轉(zhuǎn)。

5、無刷直流電機KV值定義為:轉(zhuǎn)速/V,意思是輸入電壓每增加1V,BLDC電機空轉(zhuǎn)轉(zhuǎn)速增加的轉(zhuǎn)速值。同系列同外形尺寸的無刷電機,根據(jù)繞線匝數(shù)的多少,會表現(xiàn)出不同的KV特性。繞線匝數(shù)多的,KV低,最高輸出電流小,扭力大;繞線匝數(shù)少的,KV高,最高輸出電流大,扭力??;

自己的一些經(jīng)驗:

1、計算角度信息一定要用電角度,而不能直接計算

2、電機的最高轉(zhuǎn)速與電流和編碼器采樣頻率也有一定關(guān)系;

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電流
    +關(guān)注

    關(guān)注

    40

    文章

    6488

    瀏覽量

    131103
  • 電機控制
    +關(guān)注

    關(guān)注

    3512

    文章

    1811

    瀏覽量

    267313
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4551

    瀏覽量

    92012
  • BLDC
    +關(guān)注

    關(guān)注

    201

    文章

    773

    瀏覽量

    96467
  • FOC
    FOC
    +關(guān)注

    關(guān)注

    20

    文章

    313

    瀏覽量

    42459

原文標題:BLDC電機控制算法——FOC簡述

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FOC控制算法是什么?

    FOC(Field-Oriented Control),即磁場定向控制,也稱矢量變頻,是目前高效控制無刷直流電機BLDC)和永磁同步
    的頭像 發(fā)表于 12-02 10:53 ?6309次閱讀
    <b class='flag-5'>FOC</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>是什么?

    必學(xué)的BLDC電機控制算法——FOC簡述

    =0Id=0 。之后我將詳細介紹一下這個算法的數(shù)學(xué)原理和一些自己的理解。FOC矢量控制總體算法簡述輸入:位置信息,兩相采樣電流值,(3相電流
    發(fā)表于 10-14 10:51

    電機控制板塊帖子推薦第二期,這些高大上的項目設(shè)計都離不開電機!

    ——FOC簡述推薦理由:對FOC矢量控制總體算法進行透徹分析,幫你從另一個角度學(xué)習(xí)電機
    發(fā)表于 10-14 17:27

    什么是FOC?帶你看看無傳感器FOCBLDC電機驅(qū)動芯片及解決方案

    獲得更大的競爭力。什么是 FOC?FOC(Field-Oriented Control),即磁場定向控制,也稱矢量變頻,是目前高效控制無刷直流電機
    發(fā)表于 06-10 11:40

    基于 MSPM0 MCU 實現(xiàn)使用無傳感器 FOC 算法BLDC/ PMSM 控制

    或 PMSM的控制方法,磁場定向控制 (FOC) 算法被用于電機需要以高效率和超小可聞噪聲平穩(wěn)運行的許多應(yīng)用。MSPM0MCU 憑借其低價
    發(fā)表于 04-12 14:38

    笙泉BLDC MCU: 應(yīng)用于FOC無感控制

    和其它日常事務(wù)控制,MOC內(nèi)核用于完成電機FOC運算控制。繁瑣的FOC運算控制不再由軟件完成,
    發(fā)表于 05-08 12:39

    利用恩智浦LPC1500微控制器簡化BLDCFOC電機控制

    利用恩智浦LPC1500微控制器簡化BLDCFOC電機控制
    發(fā)表于 09-21 08:55 ?12次下載
    利用恩智浦LPC1500微<b class='flag-5'>控制</b>器簡化<b class='flag-5'>BLDC</b>和<b class='flag-5'>FOC</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>

    介紹了解TI永磁同步BLDC電機控制FOC控制方案

    TI永磁同步BLDC電機控制FOC控制方案演示
    的頭像 發(fā)表于 06-13 06:02 ?1.1w次閱讀

    簡化BLDC馬達設(shè)計的FOC控制技術(shù)

    簡化BLDC馬達設(shè)計的FOC控制技術(shù)(開關(guān)電源技術(shù)教程pdf)-簡化BLDC馬達設(shè)計的FOC控制
    發(fā)表于 09-18 17:20 ?121次下載
    簡化<b class='flag-5'>BLDC</b>馬達設(shè)計的<b class='flag-5'>FOC</b><b class='flag-5'>控制</b>技術(shù)

    BLDC電機控制算法(瑞薩)

    BLDC電機控制算法(瑞薩)(電源技術(shù)在線作業(yè)一)-BLDC電機
    發(fā)表于 09-23 12:06 ?203次下載
    <b class='flag-5'>BLDC</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>(瑞薩)

    無刷直流電機、永磁同步電機FOC控制算法簡介

    無刷直流電機BLDC)、永磁同步電機電機(PMSM)電機以及FOC控制
    發(fā)表于 03-09 10:09 ?20次下載
    無刷直流<b class='flag-5'>電機</b>、永磁同步<b class='flag-5'>電機</b>及<b class='flag-5'>FOC</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>簡介

    BLDC電機控制算法FOC簡述

    最近做完了一個直流無刷電機電機調(diào)速項目,查閱了各種大神所寫的博客和論文,在這里我只做一下小小的總結(jié):(PS最近有遇到相關(guān)課題,發(fā)現(xiàn)以前的描述并不完整,因此又補充了一些。) FOC(Filed Oriented Contr
    的頭像 發(fā)表于 05-19 16:34 ?1903次閱讀
    <b class='flag-5'>BLDC</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>之<b class='flag-5'>FOC</b><b class='flag-5'>簡述</b>

    【技術(shù)干貨】為什么電機FOC控制越來越流行?

    FOC控制算法為什么FOC越來越流行?什么是FOCFOC(Field-OrientedCont
    的頭像 發(fā)表于 07-14 14:15 ?1244次閱讀
    【技術(shù)干貨】為什么<b class='flag-5'>電機</b><b class='flag-5'>FOC</b><b class='flag-5'>控制</b>越來越流行?

    如何控制BLDC電機的運動 基于Arm MCU的BLDC電機控制算法研究

    在逐漸興起的BLDC電機控制應(yīng)用中,磁場定向控制FOC)技術(shù)正變得越來越流行,這樣能夠確保電機
    發(fā)表于 08-04 12:51 ?656次閱讀
    如何<b class='flag-5'>控制</b><b class='flag-5'>BLDC</b><b class='flag-5'>電機</b>的運動 基于Arm MCU的<b class='flag-5'>BLDC</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>研究

    BLDC電機控制算法詳解

    算法。本文將詳細介紹BLDC電機控制算法,包括電速算法、電流環(huán)
    的頭像 發(fā)表于 06-14 10:49 ?523次閱讀