前言
本章節采用恒壓頻比的開環控制方法驅動永磁同步電機的轉動,首先分析恒壓頻比的控制原理,然后在Matlab/Simulink中進行永磁同步電機恒壓頻比開環控制系統的仿真分析,最后將Simulink中的恒壓頻比控制算法生成代碼加載到實際工程中進行工程實現。
一、 恒壓頻比(V/F)控制原理
永磁同步電機恒壓頻比控制方法與異步電機恒壓頻比控制方法相似,也是控制電機輸入電壓與頻率同時變化,從而使氣隙磁通保持恒定。該控制方法沒有電機電流、電壓、位置等物理量的反饋,動態性能較差,在給定目標轉速發生變化或者負載突變的情況下容易產生失步和震蕩的問題,但該控制方法勝在簡單,多適用于對轉速精度要求不高的場合。
永磁同步電機恒壓頻比開環控制系統Matlab/Simulink仿真框圖如下:
二、永磁同步電機恒壓頻比開環控制系統Matlab/Simulink仿真分析
2.1.仿真電路分析
2.1.1.恒壓頻比控制算法
恒壓頻比控制算法:永磁同步電機轉速與頻率的換算關系如下所示:
首先,將設定的電機目標轉速通過上式換算為頻率,由于該開環控制系統沒有自動限制啟動電流的作用,因此加入了一個斜坡函數使頻率有一個平緩的變化過程。例如仿真中設定的目標轉速為1200r/min,換算為頻率的過程如下圖所示:
然后,由恒壓頻比V/F控制算法特性(下圖所示),使輸入電壓與頻率同步變化,從而保持氣隙磁通恒定。低頻時Us和Eg都較小,定子電阻和漏感壓降所占分量比較顯著,不能再忽略,此時人為的把定子電壓抬高一些,近似的補償定子阻抗壓降,如下圖b線所示:
由上圖可知輸入電壓與頻率的關系為(帶低頻補償的b線,已知(0,U0)(f1N,UsN)):
將頻率通過上式換算為電壓,由電機的額定轉速計算出額定頻率f1N(永磁同步電機轉速與頻率的關系)。永磁同步電機的恒壓頻比控制為基頻以下調速,系統最高頻率不能超過額定頻率f1N,例如仿真中所選永磁同步電機的額定轉速為12540r/min,計算出額定頻率f1N為1463Hz,為系統最高設定頻率。
目標轉速設置為1200r/min,將轉速換算為頻率,再由頻率的變化得到輸入電壓的變化,如下圖所示:
此處作了一個歸一化處理,將電壓的變化除以電機額定電壓,使輸出電壓的范圍落在[0,1]區間內。
將頻率轉換為角速度,再對角速度求積分獲得當前的角度,如下圖所示:
此時已獲得輸入電壓的幅值Um與相角wt,再通過下式將幅值與相角的電壓表示轉化為兩相αβ坐標系下的電壓表示:
αβ坐標系下的電壓表示為:
接著采用反Clark變換,得到最終輸入到電機的三相電壓:
2.1.2.輸出處理
對恒壓頻比控制算法的輸出電壓做處理,使其落在[0,1]的范圍內:
2.1.3.主電路
主電路包括逆變電路與永磁同步電機,逆變電路如下圖所示,采用Average-Value Inverter模塊直接生成三相正弦電壓,下圖為目標轉速1200r/min下輸入到電機的電壓波形。
永磁同步電機采用BR2804-1700電機(電機的參數用ST Motor Proflier測得),參數如下:
2.2.仿真結果分析
2.2.1.設定目標轉速為1200r/min
目標轉速與實際轉速的波形曲線:
穩態時,目標轉速與實際轉速的誤差:
穩態時,電機定子電流:
電機轉子位置:
dq坐標系下的定子電流值:
電磁轉矩:
2.2.1.設定目標轉速為變化值
目標轉速:
目標轉速與實際轉速:
從圖中可以看出電機加減速有一段斜坡時間,電機加減速的快慢由恒壓頻比控制算法中由轉速換算為頻率時所設置的斜坡函數斜率有關。
三、永磁同步電機恒壓頻比開環控制系統代碼生成及工程實現
3.1.功能需求
實現永磁同步電機的恒壓頻比控制,可通過按鍵調節永磁同步電機的轉速。
3.2.硬件設計
控制板:STM32F302R8
驅動板:X-NUCLEO-IHM07M1
永磁同步電機:BR2804-1700
3.3.軟件設計
3.3.1.STM32CubeMX底層配置
1、RCC設置外接HSE(Crystal/Ceramic Resonator),時鐘設置為72MHz
2、PC10、PC11、PC12設置為推挽輸出、無上下拉電阻、高速,初始化狀態設為0; PB13設置為推挽輸出,下拉電阻、高速,初始化狀態為0; PC13設置為輸入,無上下拉電阻。
3、設置TIM1時鐘源為內部時鐘,TIM1_CH1(PA8)設置為PWM輸出,TIM1_CH2(PA9)設置為PWM輸出,TIM1_CH3(PA10)設置為PWM輸出;TIM1預分頻值設置為3-1,計數模式選為中央計數模式1,ARR設計為1200-1(1/(1/(72000000/3))*1200=20KHz),內部時鐘無分頻;使能TIM1更新中斷,中斷優先級設置為(1,0)
4、USART2設置為異步,115200波特率,8位數據位,無奇偶校驗位,1位停止位
5、Project Manager->工程名+IDE配置,Code Generator配置,生成工程代碼
3.3.2.應用層與底層的接口開發
Speed_Ref用于設定目標轉速;Duty[3]用于接收恒壓頻比控制算法生成的三相電壓,該三相電壓作為調制波,TIM1計數器(中央計數模式)作為載波,頻率20KHz與Simulink仿真設計一致。調制波與載波進行調制生成PWM,控制三相逆變電路的驅動輸出,此處采用SPWM控制方法進行控制;Vmin用于設定恒壓頻比控制算法中的補償電壓值U0。
3.3.3.Matlab/Simulink恒壓頻比控制算法代碼生成
3.3.4.應用層與底層的代碼集成
在主函數中調用:PMSM_VF_initialize()初始化函數。
/**
* @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初始化函數
/* 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更新中斷函數中調用:PMSM_VF_step(Speed_Ref, Duty)函數,實現恒壓頻比控制算法。
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
//Simulink函數 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.仿真驗證
編譯下載到開發板觀察實驗現象
總結
本章節采用恒壓頻比的開環控制方法驅動永磁同步電機的轉動,分析了恒壓頻比的控制原理,然后在Matlab/Simulink中進行了永磁同步電機恒壓頻比開環控制系統的仿真分析,最后將Simulink中的恒壓頻比控制算法生成代碼加載到實際工程中進行了工程實現,為后續章節的分析奠定基礎。
-
matlab
+關注
關注
185文章
2981瀏覽量
231010 -
永磁同步電機
+關注
關注
28文章
874瀏覽量
49677 -
軟件
+關注
關注
69文章
5013瀏覽量
88078 -
Simulink
+關注
關注
22文章
536瀏覽量
62673 -
開環控制系統
+關注
關注
1文章
11瀏覽量
5246
發布評論請先 登錄
相關推薦
評論