ZHCUBZ5A September 2021 – April 2024
圖 3-22 展示了固件的工程軟件流程圖,其中包括一個(gè)用于實(shí)時(shí)電機(jī)控制的 ISR、一個(gè)主循環(huán)用于在后臺(tái)循環(huán)中更新電機(jī)控制參數(shù)。ISR 將由 ADC 轉(zhuǎn)換結(jié)束 (EOC) 觸發(fā)。
為了簡化系統(tǒng)開發(fā)和設(shè)計(jì),將該軟件組織為四個(gè)增量構(gòu)建,這使得學(xué)習(xí)和熟悉電路板和軟件變得更加容易。這個(gè)方法對也適用于調(diào)試和測試電路板。
表 3-5 列出了要在該實(shí)驗(yàn)工程中使用的框架模塊。
| 模塊名稱 | 說明 | 算法 |
|---|---|---|
| ANGLE_GEN_run | 用于開環(huán)運(yùn)行的斜坡角度發(fā)生器 | eSMO、ENC、HALL |
| CLARKE_run | 針對電流或電壓的 Clarke 變換 | FAST、eSMO、ENC、HALL |
| collectRMSData、calculateRMSData | 收集采樣值以計(jì)算相電流和電壓的 RMS 值 | FAST、eSMO、ENC、HALL |
| DAC128S_writeData | 使用 SPI 將軟件變量轉(zhuǎn)換并發(fā)送到外部 DAC | 所有算法 |
| DATALOGIF_update | 將實(shí)時(shí)值存儲(chǔ)到中,以便使用圖形工具顯示 | 所有算法 |
| ENC_run | 根據(jù)編碼器計(jì)算轉(zhuǎn)子角度 | ENC |
| ESMO_run | 增強(qiáng)滑模觀測器 (eSMO) 以實(shí)現(xiàn)無傳感器 FOC | eSMO |
| EST_run | 適用于無傳感器 FOC 的 FAST 估算器 | FAST |
| EST_runTraj | 用于電機(jī)識(shí)別的電流和速度軌跡發(fā)生器 | FAST |
| EST_setupTrajState | 用于電機(jī)識(shí)別的電流和速度軌跡發(fā)生器設(shè)置 | FAST |
| HAL_readADCData | 以浮點(diǎn)格式返回 ADC 轉(zhuǎn)換值 | 所有算法 |
| HAL_writePWMDACData | 將軟件變量轉(zhuǎn)換為 PWM 信號(hào) | 所有算法 |
| HAL_writePWMData | 用于電機(jī)的 PWM 驅(qū)動(dòng) | 所有算法 |
| HALL_run | 根據(jù)霍爾傳感器計(jì)算轉(zhuǎn)子角度和速度 | HALL |
| IPARK_run | Park 逆變換 | FAST、eSMO、ENC、HALL |
| PARK_run | Park 變換 | FAST、eSMO、ENC、HALL |
| PI_run | 針對電流和速度的 PI 穩(wěn)壓器 | 所有算法 |
| SPDCALC_run | 基于來自編碼器信號(hào)的角度進(jìn)行速度測量 | ENC |
| SPDFR_run | 基于來自觀測器的角度測量速度 | eSMO |
| SVGEN_run | 具有正交控制的空間矢量 PWM | FAST、eSMO、ENC、HALL |
| TRAJ_run | 用于設(shè)置速度基準(zhǔn)的軌跡 | 所有算法 |
| VS_FREQ_run | 生成具有 v/f 曲線的矢量電壓 | FAST、eSMO、ENC、HALL |
表 3-6 總結(jié)了在每個(gè)增量系統(tǒng)構(gòu)建中測試的模塊。
| 軟件模塊 | DMC_LEVEL_1 | DMC_LEVEL_2 | DMC_LEVEL_3 | DMC_LEVEL_4 | |
|---|---|---|---|---|---|
| 50% PWM 占空比,驗(yàn)證 ADC 失調(diào)電壓校準(zhǔn)、PWM 輸出和相移 | 開環(huán)控制,用于驗(yàn)證電機(jī)電流和電壓檢測信號(hào) | 閉合電流環(huán)路,用于驗(yàn)證電流 在電路板上檢測和使用 PID 控制器進(jìn)行電流控制 | 采用估算器/觀測器的閉環(huán)運(yùn)行 | 使用 FAST 估算器識(shí)別電機(jī)參數(shù) | |
| HAL_readADCData | √√ | √ 1 | √ | √ | √ |
| HAL_writePWMData | √√ | √ | √ | √ | √ |
| ANGLE_GEN_run | √√ | √ | √(eSMO、ENC、HALL)* | ||
| VS_FREQ_run | √√ | ||||
| CLARKE_run(電流) | √ | √ | √ | √ | |
| CLARKE_run(電壓) | √ | √ (FAST)* 2 | √ (FAST)* | √ (FAST)* | |
| TRAJ_run | √√ | √ | √√ | ||
| EST_run | √(FAST)* | √ (FAST)* | √√ (FAST)* | √√ (FAST)* | |
| EST_setupTrajState | √√ (FAST)* | ||||
| EST_runTraj | √√ (FAST)* | ||||
| ESMO_run | √(eSMO)* | √(eSMO)* | √√ (eSMO)* | ||
| SPDFR_run | √(eSMO)* | √(eSMO)* | √√ (eSMO)* | ||
| ENC_run | √(ENC)* | √(ENC)* | √√(ENC)* | ||
| SPDCALC_run | √(ENC)* | √(ENC)* | √√(ENC)* | ||
| HALL_run | √(HALL)* | √(HALL)* | √√(HALL)* | ||
| PARK_run | √ | √ | √ | √ | |
| PI_run (Id) | √√ | √ | √ | ||
| PI_run (Iq) | √√ | √ | √ | ||
| PI_run(速度) | √√ | √ | |||
| IPARK_run | √√ | √ | √ | √ | |
| SVGEN_run | √√ | √ | √ | √ | |
| HAL_writePWMDACData | √** 3 | √** | √** | √** | |
| DATALOGIF_update | √ | √ | √ | √ | |
| DAC128S_writeData | √** | √** | √** | √** | |
通用實(shí)驗(yàn)工程可以單獨(dú)使用其中一種 FOC 算法進(jìn)行電機(jī)控制,或同時(shí)使用兩種 FOC 算法,如表 3-7 所示。如果在實(shí)驗(yàn)工程中實(shí)現(xiàn)了兩種算法,則可以快速平滑地切換正在使用的估算器。
| FAST(MOTOR1_FAST) | eSMO (MOTOR1_ESMO) | ENCODER (MOTOR1_ENC) | HALL (MOTOR1_HALL) | ISBLDC (MOTOR1_ISBLDC) | |
|---|---|---|---|---|---|
| FAST | √ 1 | √ | √ | √ | ? |
| eSMO | √ | √ | √ | ? | ? |
| 編碼器 | √ | √ | √ | ? | ? |
| HALL | √ | ? | ? | √ | ? |
| ISBLDC | ? | ? | ? | ? | √ |