三相電動(dòng)機(jī)編程控制解決方案
聯(lián)系Email: Denny.Yip@renesas.com
通過變頻技術(shù)和脈寬調(diào)制技術(shù)對(duì)交流電動(dòng)機(jī)轉(zhuǎn)速和位置進(jìn)行數(shù)字控制是電動(dòng)機(jī)控制的發(fā)展趨勢,永磁式同步電動(dòng)機(jī)(PMSM)具有結(jié)構(gòu)簡單、體積小、易于控制、性能優(yōu)良等優(yōu)點(diǎn)。用單片機(jī)對(duì)電動(dòng)機(jī)進(jìn)行數(shù)字控制是實(shí)現(xiàn)電動(dòng)機(jī)數(shù)字控制的最常用的手段。
本文介紹了采用Renesas公司M16C/28和R8C/11系列的CPU產(chǎn)品,運(yùn)用120°梯形波交變,通過電動(dòng)機(jī)感應(yīng)電壓的過零點(diǎn)來估測轉(zhuǎn)子位置,從而實(shí)現(xiàn)表面安裝永磁式同步電動(dòng)機(jī)(SPMSM)的無位置傳感器型驅(qū)動(dòng)的方法。
一 與電動(dòng)機(jī)控制有關(guān)的基本概念
1 逆變器控制
電能(商用電源)一般是通過一個(gè)電源系統(tǒng)來提供的。在這種場合,商用電源的電壓、頻率和相位在嚴(yán)格的控制之下被固定于一個(gè)精確的水平上。如果把一個(gè)商用電源直接提供給電動(dòng)機(jī)的負(fù)載,則感應(yīng)式電動(dòng)機(jī)(IM)可以被起動(dòng),而同步電動(dòng)機(jī)(比如永磁式同步電動(dòng)機(jī)PMSM)則不能被起動(dòng)。
在逆變器控制過程中,商用電源未與負(fù)載相連。一個(gè)轉(zhuǎn)換器件首先把交流(AC)電流轉(zhuǎn)換成直流(DC)電源,然而再由一個(gè)逆變器將直流電源轉(zhuǎn)換成交流電源,以便向電動(dòng)機(jī)輸送具有期望電壓和頻率的交流電源。如果輸出電壓和頻率是根據(jù)負(fù)載和擾動(dòng)來控制的,則這將使得同步電動(dòng)機(jī)能夠起動(dòng)和旋轉(zhuǎn),并達(dá)到節(jié)能的效果。
2 感應(yīng)電壓
電動(dòng)機(jī)可以起發(fā)電機(jī)的作用。因此,當(dāng)把一盞燈連接至電動(dòng)機(jī)并旋轉(zhuǎn)電動(dòng)機(jī)的軸時(shí),燈將會(huì)發(fā)光。這是因?yàn)楫a(chǎn)生了感應(yīng)電動(dòng)勢的緣故,而產(chǎn)生的電壓就被稱為“感應(yīng)電壓”。
當(dāng)電動(dòng)機(jī)停止轉(zhuǎn)動(dòng)時(shí),將不會(huì)產(chǎn)生感應(yīng)電壓。因此,當(dāng)起動(dòng)電動(dòng)機(jī)時(shí),將強(qiáng)迫它在某一特定方向上旋轉(zhuǎn),以找到轉(zhuǎn)子的位置。
在采用180°正弦波交變的電動(dòng)機(jī)控制中,由于電動(dòng)機(jī)中有電流連續(xù)流過,故不能直接監(jiān)視電動(dòng)機(jī)中產(chǎn)生的感應(yīng)電壓。因此,在無位置傳感器的控制中,轉(zhuǎn)子位置是通過電動(dòng)機(jī)電流來估測的。
二 用于電動(dòng)機(jī)控制的硬件和軟件規(guī)范
1 硬件構(gòu)成
l 表面安裝永磁式同步電動(dòng)機(jī)(SPMSM)
l A/D轉(zhuǎn)換器
l 三相PWM輸出
l 感應(yīng)電壓的過零點(diǎn)檢測
四部分組成的框圖如下:
2 軟件功能
控制方法 |
采用梯形波的120°交變 |
轉(zhuǎn)子位置檢測 |
由電動(dòng)機(jī)的感應(yīng)電壓來檢測 |
載頻 |
20kHz |
轉(zhuǎn)速控制的范圍 |
正轉(zhuǎn):500rpm~3000rpm (-33.3×2π至200×2πrad/s) |
反轉(zhuǎn):-500rpm~-3000rpm (-33.3×2π至-200×2πrad/s) | |
誤差檢測 |
由于MCU起到了防止正相和負(fù)相同時(shí)處于運(yùn)行狀態(tài)的作用,因此有可能在上臂和下臂(布線分支)之間引起短路的波形將不會(huì)被輸出。 |
IPM的FO信號(hào)(強(qiáng)制停機(jī)信號(hào))是至MCU的NMI引腳的輸入信號(hào)。因此,如果FO信號(hào)電平走低,則三相輸出被強(qiáng)制停止,而且三相輸出引腳被置于高阻抗?fàn)顟B(tài)。 | |
在正常操作期間,如果連續(xù)500ms未檢測到來自編碼器的Z信號(hào),則認(rèn)為電動(dòng)機(jī)被鎖定,而且三相輸出引腳上的輸出將被關(guān)斷。 注:編碼器的Z信號(hào)以這種方式來使用,旨在確保更高的安全性。不過,在電動(dòng)機(jī)控制中并未采用Z信號(hào)。 |
三.用于電動(dòng)機(jī)控制的CPU及其周圍設(shè)備的功能說明
(1)A/D轉(zhuǎn)換
項(xiàng)目 |
說明 |
轉(zhuǎn)換模式 |
重復(fù)掃描模式0 |
掃描引腳 |
AN0~AN7(8個(gè)引腳) |
觸發(fā)器類型 |
軟件 |
轉(zhuǎn)換定時(shí) |
在完成了A/D轉(zhuǎn)換的初始設(shè)置之后,A/D轉(zhuǎn)換在重復(fù)掃描模式0中繼續(xù)進(jìn)行。 |
Vref的連接 |
Vref被連接。 |
分辨率 |
10位 |
A/D轉(zhuǎn)換模式 |
利用采樣及保持電路進(jìn)行操作 |
A/D轉(zhuǎn)換端口 |
P10端口組 |
頻率 |
fAD/2 |
A/D轉(zhuǎn)換中斷 |
未用 |
(2)三相PWM輸出
l 采用鋸齒波來進(jìn)行調(diào)制和采用了三相模式0實(shí)現(xiàn)120°交變驅(qū)動(dòng)電機(jī)
l 在采用梯形波的120°交變中,轉(zhuǎn)速基本與電壓成正比。
(3)三相電動(dòng)機(jī)感應(yīng)電壓的過零點(diǎn)檢測
在本軟件中,感應(yīng)電壓的過零點(diǎn)是通過按下表對(duì)外部中斷功能進(jìn)行配置的方法來檢測的。
項(xiàng)目 |
說明 |
中斷檢測 |
兩個(gè)脈沖邊沿 |
INT中斷 |
未使用中斷。 通過中斷請(qǐng)求位的輪詢來檢測INT中斷(外部中斷) |
四 用于利用梯形波交變來實(shí)現(xiàn)SPMSM的無位置傳感器型驅(qū)動(dòng)的軟件描述
軟件描述了如何使用梯形波的120°交變來實(shí)現(xiàn)SPMSM的無傳感器型驅(qū)動(dòng)。內(nèi)容包括:
(1) 由電動(dòng)機(jī)中的感應(yīng)電壓來檢測轉(zhuǎn)子位置和采用梯形波的120°交變控制旋轉(zhuǎn)速度在±500 rpm~3000 rpm范圍。系統(tǒng)配置入系統(tǒng)構(gòu)成框圖。
(2) 對(duì)8個(gè)控制模塊的描述。包括:
l A/D轉(zhuǎn)換器、
l 感應(yīng)電壓的檢測、
l 實(shí)際轉(zhuǎn)速的計(jì)算、
l 目標(biāo)轉(zhuǎn)速的計(jì)算、
l PWM占空比的計(jì)算、
l 確定輸出模式、
l 初始啟動(dòng)處理、
l 其他一些CPU關(guān)于系統(tǒng)異常動(dòng)作的監(jiān)測和檢測。
(3) CPU寄存器的存儲(chǔ)變換
Ø CPU具有12個(gè)寄存器,包括:
l 數(shù)據(jù)寄存器、
l 地址寄存器、
l 幀寄存器、
l 中斷表寄存器、
l 程序指針寄存器、
l 用戶堆棧指針(USP)寄存器
l 中斷堆棧指針)(ISP)寄存器、
l 狀態(tài)寄存器、
l 標(biāo)志寄存器:進(jìn)位標(biāo)志寄存器、調(diào)試標(biāo)志寄存器、0標(biāo)志寄存器、符號(hào)標(biāo)志寄存器、寄存器組選擇標(biāo)志寄存器、溢出標(biāo)志寄存器、中斷使能標(biāo)志寄存器。
l 堆棧指針選擇標(biāo)志寄存器
l 處理器中斷優(yōu)先級(jí)寄存器
l 預(yù)留域寄存器
Ø 存儲(chǔ)變換
包括:
l 線性地址空間、固定中斷的矢量、內(nèi)部RAM、SFR區(qū)域、特殊的頁面矢量等的地址分配。
l 用于本軟件的存儲(chǔ)變換和段配置
(4)系統(tǒng)的主要軟件模塊
模塊名稱 |
標(biāo)簽名稱 |
參數(shù) |
說明 | |
輸入 |
輸出 | |||
電動(dòng)機(jī)控制主處理 |
main_pwm_120slc20() |
— |
— |
用于通過120°交變來實(shí)現(xiàn)一個(gè)SPMSM的無傳感器型驅(qū)動(dòng)的主處理。 |
初始化處理 |
initial() |
— |
— |
設(shè)定A/D轉(zhuǎn)換的初始值,感應(yīng)電壓過零點(diǎn)檢測,以及三相PWM。 |
PWM中斷處理 |
pwm_int() |
— |
— |
調(diào)用停止、啟動(dòng)和正常處理功能。 |
停止處理 |
pwm_stop() |
— |
— |
關(guān)斷三相PWM輸出,并檢查是否繼續(xù)進(jìn)行啟動(dòng)操作。 |
啟動(dòng)處理 |
pwm_kido() |
— |
— |
執(zhí)行啟動(dòng)操作(將旋轉(zhuǎn)速度命令和電壓命令固定1秒的時(shí)間),并檢查正常操作轉(zhuǎn)換。 |
正常處理 |
pwm_tujo() |
— |
— |
執(zhí)行無傳感器型控制(感應(yīng)電壓過零點(diǎn)檢測和輸出模式轉(zhuǎn)換)。 |
實(shí)際轉(zhuǎn)速計(jì)算處理 |
cal_sub_wr_duty() |
— |
— |
計(jì)算實(shí)際轉(zhuǎn)速和PWM占空比。 |
轉(zhuǎn)速命令計(jì)算處理 |
cal_wr_ref() |
UI16 AD5 輸入值 |
SI16轉(zhuǎn)速命令 |
將A/D輸入值轉(zhuǎn)換為轉(zhuǎn)速命令。 |
總線電壓計(jì)算處理 |
cal_vdc_ref() |
UI16 AD5 輸入值 |
— |
將A/D輸入值轉(zhuǎn)換為總線電壓。 |
電動(dòng)機(jī)鎖定檢測處理 |
motor_lock_chk() |
— |
— |
檢測電動(dòng)機(jī)鎖定狀態(tài)。 |
停止檢查處理 |
stop_chk() |
— |
SI16停止檢查結(jié)果 |
檢查處理是由一個(gè)轉(zhuǎn)速命令停止的還是由一個(gè)誤差停止的。 |
(5)與三相輸出有關(guān)的SFR的初始設(shè)定值
l AD轉(zhuǎn)換器的控制寄存器0~3的設(shè)置
l 電動(dòng)機(jī)感應(yīng)電壓檢測
l 三相輸出PWM設(shè)置(24個(gè)寄存器)
(6)通過120°梯形波交變來實(shí)現(xiàn)SPMSM無傳感器型驅(qū)動(dòng)控制流程
l 用于通過120°梯形波交變來實(shí)現(xiàn)SPMSM的無傳感器型驅(qū)動(dòng)的主處理
l 初始化處理
l PWM中斷處理
l 停止處理
l 啟動(dòng)處理
l 正常處理
l 實(shí)際轉(zhuǎn)速計(jì)算處理
l 轉(zhuǎn)速命令計(jì)算處理
l 總線電壓計(jì)算處理
l 電動(dòng)機(jī)鎖定檢測處理
l 停止檢查處理