前言
本章節(jié)采用恒壓頻比的開環(huán)控制方法驅(qū)動永磁同步電機的轉(zhuǎn)動,首先分析恒壓頻比的控制原理,然后在Matlab/Simulink中進行永磁同步電機恒壓頻比開環(huán)控制系統(tǒng)的仿真分析,最后將Simulink中的恒壓頻比控制算法生成代碼加載到實際工程中進行工程實現(xiàn)。
一、 恒壓頻比(V/F)控制原理
永磁同步電機恒壓頻比控制方法與異步電機恒壓頻比控制方法相似,也是控制電機輸入電壓與頻率同時變化,從而使氣隙磁通保持恒定。該控制方法沒有電機電流、電壓、位置等物理量的反饋,動態(tài)性能較差,在給定目標轉(zhuǎn)速發(fā)生變化或者負載突變的情況下容易產(chǎn)生失步和震蕩的問題,但該控制方法勝在簡單,多適用于對轉(zhuǎn)速精度要求不高的場合。
永磁同步電機恒壓頻比開環(huán)控制系統(tǒng)Matlab/Simulink仿真框圖如下:
二、永磁同步電機恒壓頻比開環(huán)控制系統(tǒng)Matlab/Simulink仿真分析
2.1.仿真電路分析
2.1.1.恒壓頻比控制算法
恒壓頻比控制算法:永磁同步電機轉(zhuǎn)速與頻率的換算關(guān)系如下所示:
首先,將設(shè)定的電機目標轉(zhuǎn)速通過上式換算為頻率,由于該開環(huán)控制系統(tǒng)沒有自動限制啟動電流的作用,因此加入了一個斜坡函數(shù)使頻率有一個平緩的變化過程。例如仿真中設(shè)定的目標轉(zhuǎn)速為1200r/min,換算為頻率的過程如下圖所示:
然后,由恒壓頻比V/F控制算法特性(下圖所示),使輸入電壓與頻率同步變化,從而保持氣隙磁通恒定。低頻時Us和Eg都較小,定子電阻和漏感壓降所占分量比較顯著,不能再忽略,此時人為的把定子電壓抬高一些,近似的補償定子阻抗壓降,如下圖b線所示:
由上圖可知輸入電壓與頻率的關(guān)系為(帶低頻補償?shù)腷線,已知(0,U0)(f1N,UsN)):
將頻率通過上式換算為電壓,由電機的額定轉(zhuǎn)速計算出額定頻率f1N(永磁同步電機轉(zhuǎn)速與頻率的關(guān)系)。永磁同步電機的恒壓頻比控制為基頻以下調(diào)速,系統(tǒng)最高頻率不能超過額定頻率f1N,例如仿真中所選永磁同步電機的額定轉(zhuǎn)速為12540r/min,計算出額定頻率f1N為1463Hz,為系統(tǒng)最高設(shè)定頻率。
目標轉(zhuǎn)速設(shè)置為1200r/min,將轉(zhuǎn)速換算為頻率,再由頻率的變化得到輸入電壓的變化,如下圖所示:
此處作了一個歸一化處理,將電壓的變化除以電機額定電壓,使輸出電壓的范圍落在[0,1]區(qū)間內(nèi)。
將頻率轉(zhuǎn)換為角速度,再對角速度求積分獲得當前的角度,如下圖所示:
此時已獲得輸入電壓的幅值Um與相角wt,再通過下式將幅值與相角的電壓表示轉(zhuǎn)化為兩相αβ坐標系下的電壓表示:
αβ坐標系下的電壓表示為:
接著采用反Clark變換,得到最終輸入到電機的三相電壓:
2.1.2.輸出處理
對恒壓頻比控制算法的輸出電壓做處理,使其落在[0,1]的范圍內(nèi):
2.1.3.主電路
主電路包括逆變電路與永磁同步電機,逆變電路如下圖所示,采用Average-Value Inverter模塊直接生成三相正弦電壓,下圖為目標轉(zhuǎn)速1200r/min下輸入到電機的電壓波形。
永磁同步電機采用BR2804-1700電機(電機的參數(shù)用ST Motor Proflier測得),參數(shù)如下:
2.2.仿真結(jié)果分析
2.2.1.設(shè)定目標轉(zhuǎn)速為1200r/min
目標轉(zhuǎn)速與實際轉(zhuǎn)速的波形曲線:
穩(wěn)態(tài)時,目標轉(zhuǎn)速與實際轉(zhuǎn)速的誤差:
穩(wěn)態(tài)時,電機定子電流:
電機轉(zhuǎn)子位置:
dq坐標系下的定子電流值:
電磁轉(zhuǎn)矩:
2.2.1.設(shè)定目標轉(zhuǎn)速為變化值
目標轉(zhuǎn)速:
目標轉(zhuǎn)速與實際轉(zhuǎn)速:
從圖中可以看出電機加減速有一段斜坡時間,電機加減速的快慢由恒壓頻比控制算法中由轉(zhuǎn)速換算為頻率時所設(shè)置的斜坡函數(shù)斜率有關(guān)。
三、永磁同步電機恒壓頻比開環(huán)控制系統(tǒng)代碼生成及工程實現(xiàn)
3.1.功能需求
實現(xiàn)永磁同步電機的恒壓頻比控制,可通過按鍵調(diào)節(jié)永磁同步電機的轉(zhuǎn)速。
3.2.硬件設(shè)計
控制板:STM32F302R8
驅(qū)動板:X-NUCLEO-IHM07M1
永磁同步電機:BR2804-1700
3.3.軟件設(shè)計
3.3.1.STM32CubeMX底層配置
1、RCC設(shè)置外接HSE(Crystal/Ceramic Resonator),時鐘設(shè)置為72MHz
2、PC10、PC11、PC12設(shè)置為推挽輸出、無上下拉電阻、高速,初始化狀態(tài)設(shè)為0; PB13設(shè)置為推挽輸出,下拉電阻、高速,初始化狀態(tài)為0; PC13設(shè)置為輸入,無上下拉電阻。
3、設(shè)置TIM1時鐘源為內(nèi)部時鐘,TIM1_CH1(PA8)設(shè)置為PWM輸出,TIM1_CH2(PA9)設(shè)置為PWM輸出,TIM1_CH3(PA10)設(shè)置為PWM輸出;TIM1預(yù)分頻值設(shè)置為3-1,計數(shù)模式選為中央計數(shù)模式1,ARR設(shè)計為1200-1(1/(1/(72000000/3))*1200=20KHz),內(nèi)部時鐘無分頻;使能TIM1更新中斷,中斷優(yōu)先級設(shè)置為(1,0)
4、USART2設(shè)置為異步,115200波特率,8位數(shù)據(jù)位,無奇偶校驗位,1位停止位
5、Project Manager->工程名+IDE配置,Code Generator配置,生成工程代碼
3.3.2.應(yīng)用層與底層的接口開發(fā)
Speed_Ref用于設(shè)定目標轉(zhuǎn)速;Duty[3]用于接收恒壓頻比控制算法生成的三相電壓,該三相電壓作為調(diào)制波,TIM1計數(shù)器(中央計數(shù)模式)作為載波,頻率20KHz與Simulink仿真設(shè)計一致。調(diào)制波與載波進行調(diào)制生成PWM,控制三相逆變電路的驅(qū)動輸出,此處采用SPWM控制方法進行控制;Vmin用于設(shè)定恒壓頻比控制算法中的補償電壓值U0。
3.3.3.Matlab/Simulink恒壓頻比控制算法代碼生成
3.3.4.應(yīng)用層與底層的代碼集成
在主函數(shù)中調(diào)用:PMSM_VF_initialize()初始化函數(shù)。
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
uint8_t count=0;
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM1_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
PMSM_VF_initialize(); //Simulink初始化函數(shù)
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(Key_Scany(KEY_GPIO_Port,KEY_Pin)==1)
{
HAL_GPIO_WritePin(GPIOC, EN1_Pin|EN2_Pin|EN3_Pin, GPIO_PIN_SET); //使能三相橋臂
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); //使能三路PWM
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);
__HAL_TIM_ENABLE_IT(&htim1,TIM_IT_UPDATE); //使能TIM1更新中斷
__HAL_TIM_CLEAR_FLAG(&htim1,TIM_IT_UPDATE);
Speed_Ref+=500;
if(Speed_Ref>=12000)
Speed_Ref=12000;
}
HAL_Delay(1);
count++;
if(count%50==0)
{
count=0;
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //程序運行指示燈
}
}
/* USER CODE END 3 */
}
在TIM1更新中斷函數(shù)中調(diào)用:PMSM_VF_step(Speed_Ref, Duty)函數(shù),實現(xiàn)恒壓頻比控制算法。
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
//Simulink函數(shù) 20KHz V/F控制
PMSM_VF_step(Speed_Ref, Duty);
for(int i=0;i<3;i++)
{
Duty[i]=(1-Duty[i])*htim1.Init.Period;
}
TIM1->CCR1=Duty[0]; //進行SPWM控制
TIM1->CCR2=Duty[1];
TIM1->CCR3=Duty[2];
}
/* USER CODE END 1 */
3.4.仿真驗證
編譯下載到開發(fā)板觀察實驗現(xiàn)象
總結(jié)
本章節(jié)采用恒壓頻比的開環(huán)控制方法驅(qū)動永磁同步電機的轉(zhuǎn)動,分析了恒壓頻比的控制原理,然后在Matlab/Simulink中進行了永磁同步電機恒壓頻比開環(huán)控制系統(tǒng)的仿真分析,最后將Simulink中的恒壓頻比控制算法生成代碼加載到實際工程中進行了工程實現(xiàn),為后續(xù)章節(jié)的分析奠定基礎(chǔ)。
-
matlab
+關(guān)注
關(guān)注
187文章
2990瀏覽量
232726 -
永磁同步電機
+關(guān)注
關(guān)注
28文章
876瀏覽量
50063 -
軟件
+關(guān)注
關(guān)注
69文章
5084瀏覽量
88739 -
Simulink
+關(guān)注
關(guān)注
22文章
538瀏覽量
63407 -
開環(huán)控制系統(tǒng)
+關(guān)注
關(guān)注
1文章
11瀏覽量
5289
發(fā)布評論請先 登錄
相關(guān)推薦
在Matlab/Simulink中進行永磁同步電機流頻比I/F控制系統(tǒng)的仿真分析

太實用!永磁同步電機控制方案及MATLAB仿真模型大全
永磁同步電機直接轉(zhuǎn)矩控制系統(tǒng)中的MATLAB/Simulink建模方法
Simulink永磁同步電機控制仿真系列
永磁同步電機控制原理及MATLAB仿真
Ansys Simplorer和Matlab/Simulink聯(lián)合仿真來實現(xiàn)永磁同步電機的矢量控制
永磁同步電機控制系統(tǒng)設(shè)計

基于Matlab-Simulink的永磁同步電機(PMSM)矢量控制仿真
永磁同步電機控制系統(tǒng)的模型建立和仿真資料說明

永磁同步電機控制筆記:中點平移法svpwm實現(xiàn)分析

永磁同步電機恒壓頻比開環(huán)控制系統(tǒng)Matlab/Simulink仿真分析(二)

評論