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 | ? | ? | ? | ? | √ |