日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32 电机教程 12 - BLDC 闭环电流控制

發布時間:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 电机教程 12 - BLDC 闭环电流控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

無刷直流 (Brushless Direct Current, BLDC)電機是一種正快速普及的電機類型,它可在家用電器、汽車、航空航天、消費品、醫療、工業自動化設備和儀器等行業中使用。正如名稱指出的那樣,BLDC 電機不用電刷來換向,而是使用電子換向。BLDC 電機和有刷直流電機以及感應電機相比,有許多優點。其中包括:

? 更好的轉速-轉矩特性

? 快速動態響應

? 高效率

? 使用壽命長

? 運轉無噪音

? 較高的轉速范圍此外,

由于輸出轉矩與電機體積之比更高,使之在需要著重考慮空間與重量因素的應用中,大有用武之地。

無刷電機

?

上一節成功實現了BLDC電機開環速度控制,本節將用NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH快速實現BLDC的閉環電流控制!

本節所用電機為2836無刷電機,電機有兩組線(hall傳感器線和電機三相線),工作電壓24V,最大轉速12000rpm:

示例詳解

本節用到ST官方推出的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH 開發板。

NUCLEO-F103RB對應的大致原理接線圖:

X-NUCLEO-IHM07M1 3SH部分原理圖:

?

?

  • 準備操作

  • X-NUCLEO-IHM07M1 3SH是一款專門用于PMSM(永磁同步)或BLDC(直流無刷 )的電機驅動板,其電機驅動板驅動芯片型號為L6230(詳細數據手冊可在st官網下載),本節需用到IN1,IN2, IN3和OUT1,OUT2,OUT3, HALL傳感器信號接口H1,H2,H3以及單電阻電流采樣接口PC1。

  • ?

    需要用到的信號

    對應MCU引腳

    EN1

    PC10

    IN1

    PA8

    EN2

    PC11

    IN2

    PA9

    EN3

    PC12

    IN3

    PA10

    H1

    PA15

    H2

    PB3

    H3

    PB10

    電流采樣接口

    PC1

    ?

    為了更加簡單地介紹清楚BLDC 6 步方波控制的具體實現,為了實現電機的速度控制,本節直接使用STM32的TIM1產生三路PWM波對應信號IN1、IN2、IN3,通過調節PWM波占空比實現電機的速度控制;將EN1、EN2、EN3配置成普通輸出IO口輸出模式,H1,H2,H3配置成TIM2的hall傳感器模式,并開啟T1的捕獲中斷,中斷觸發模式為雙邊觸發模式,在中斷服務程序中實理更加快帶的電機換相(6步換步)操作,PC1配置成AD采樣引腳,本節以電機在2個PWM周期內采多個64,以這64個點的平均值作為電機的平均電流,對配合PID控制器實現對其閉環控制操作。

  • 在STM32CubeMX中,有專門的NUCLEO-F103RB工程模板,新建一個Cube工程,芯片型號為st32f103rb:

  • 生成一個簡單的工程模板實現了RCC,SYS,USART2接口的配置,同時還實現了LD2(LED)引腳的配置。接下來手動配置各功能模塊,首先是TIM1,配置成三路PWM 模式1輸出,PWM載波頻率是20Khz = 72M/(2+1)/(1199+1),各通道初始PWM波是500:

    ?

    使能TIM1的UPDATA中斷,在中斷服務程序中完成電流PID運算及控制:

    接下來是TIM2配置,開啟三路輸入捕獲功能,使能XOR功能,開啟定時器中斷:

    上圖中所述想要直接利用TIM2的HALL傳感器功能,僅在CUBE中配置是不點問題的,原因如下,在配置輸入捕獲通道時,很多模式不可選:

    而要直正實現STM32的定時器HALL傳感器接口功能,除了要開啟XOR功能外(在CUBE可直接勾選):

    還需要用到TI1F_ED(直接的雙邊沿檢測)信號,TRC信號..并最終產生CC1I中斷,完整的信號流圖如下圖:

    ?

    故還需要開啟中斷,并最終要在自動生成的TIM.C中進行適當修改(后面源碼上有介紹):

    配置ADC:

    本例ADC采電機電流工作在單電阻采樣模式下,如上圖所示,電機電流與ADC采樣電流之間的關系式為(JP1,JP2不接): V = 3*0.33*I,其中0.33為采樣電阻的阻值,I為電機電流,V為放大3倍后的電機。

    ?

    使能ADC的DMA功能:

    ?

    接著將PC10,PC11,PC12普通IO功能配置,GPIO_OUTPUT模式,默認輸出為低:

    最后是中斷優先級配置:

    生成工程:

    ?

  • 打開工程, 加入事先準備好的bldc.c,pid.c, visualscope.c 和bldc.h,pid.h, visualscope.h(.c在src文件夾中 .h在INC文件夾)文件:

  • 同時在tim.c及stm32f1xx_it.c中加入如下代碼:

    在dma.c中關閉dma中斷:

    在adc.c中加入求平均電流代碼:

    在adc.h中導出變量及函數名:

    最后在main.c中加入如下代碼:

    ?

    ?

    設置工程下載后自動運行:

    編譯代碼,調試代碼,通過修改PID的REF(紅色)電機電流的跟蹤情況(黃色),本例中對電機電流的計算方法較為簡單,直接把有值的數據加起來取平均,其實還可以加入一些濾波算法,使的電機電流波形更加平穩。

    ?

    下圖給出兩個示波器中觀察到的PC1引腳上的電壓波形圖:

    電機轉動時

    電機堵轉時

    ?

    OK,本期實驗完成!本節BLDC電流閉環控制內容到此結束,下一節將給大家介紹閉環速度控制。最后如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,每天都會有技術干貨推出!!

    ?

    ?

    文中源碼及資料下載,關注十三公眾號:

    在公眾號里給十三發送 “下載|STM32 電機教程 12” :

    ?

    ?

    總結

    以上是生活随笔為你收集整理的STM32 电机教程 12 - BLDC 闭环电流控制的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。