1. <big id="vefm5"><em id="vefm5"></em></big>

          <code id="vefm5"></code>

            <th id="vefm5"><video id="vefm5"></video></th>
              <tr id="vefm5"></tr>
              1. <code id="vefm5"><nobr id="vefm5"><track id="vefm5"></track></nobr></code>

                <strike id="vefm5"><small id="vefm5"><ruby id="vefm5"></ruby></small></strike>
                技術文章
                當前位置:首頁 > 技術文章
                基于STM32F407的永磁同步電機伺服控制器設計
                點擊次數:2 發布時間:2020-11-25

                       自20世紀90年代以來,隨著現代電機技術、現代電力電子技術、微電子技術、控制理論及計算機技術等支撐技術的快速發展,交流伺服控制技術得到極大的發展,使得先前困擾著交流伺服系統的電機控制復雜、調速性能差等問題取得了突破性的進展。交流伺服系統的性能日漸提高,價格趨于合理,使得交流伺服系統取代直流伺服系統,尤其是在高精度、高性能、智能化、模塊化和網絡化要求的伺服控制工業控制板開發領域成了一個發展趨勢。

                 

                       在伺服控制器中,為了保證伺服控制良好的實時性、準確性及靈活性,常采用專用于電機控制的DSP(DSC)或FPGA作為控制核心,這些芯片都針對電機控制做了大量的優化,如:帶死區的互補型PWM,多種觸發、同步方式的快速ADC,高可靠性和抗干擾性。但它們都不約而同地將芯片的設計重心偏向了電機控制本身,而少了對網絡化的支持。由于現在伺服控制器正在向智能化、網絡化方向發展,DSP或FPGA作為伺服控制器的核心,不但應具有良好的電機控制特性,而且更要有良好的互聯性,以適應伺服單元與其它控制設備間飛速增長的互聯能力。這方面,意法半導體的基于ARM Cortex—M4內核的STM32F407系列芯片就做到非常到位,STM32F407芯片內置的單精度FPU和1MB的閃存,使它不但運算速度快(168 MHz,2.79Coremark/MHz)、運算精度高,PCBA方案開發使得復雜的電機控制算法得以實施,而且具有IEEE1588 v2 10/100 M以太網接口、CAN2.0接口和USART接口以方便和不同的控制設備互聯互通。另外,芯片自帶的加密/哈希硬件處理器保證了產品的知識產權不至輕易被盜。

                 

                       使用意法半導體(ST)的STM32F407芯片不但在硬件上大幅減小了外部器件的種類及數量,降低了生產成本,提高了產品的可靠性;而且提供了通用外設庫、DSP算法庫、交流永磁電機(Permanent Magnet Synchronous Motor以下簡稱:PMSM)的場定向(Field Oriented Control以下簡稱:FOC)庫,PCB控制板開發圖形化芯片外設配置軟件Microxplorer和支持實時變量監控及可視化調試的軟件STMStudio,以加快設計開發人員的產品開發速度。

                 

                       1 伺服控制器的方案設計

                 

                       1.1 伺服控制器設計原理

                 

                       由于伺服系統具有高帶寬、高精度、大扭矩的特點,為達到伺服控制要求,采用技術成熟的交流永磁同步電機作為被控對象,PCB電路板設計將伺服系統設計成一個具有電流環、速度環、位置環三閉環回路的復合控制系統。

                 

                       伺服系統最終追求的是外環定位的準確性和快速性,而外環的性能發揮在于內環的性能。電流內環的設計是高性能伺服系統的基礎和前提,是提高伺服系統控制精度和響應速度、改善控制性能的關鍵。

                 

                       1.2 基于STM32F407芯片的伺服控制器的硬件實現

                 

                       1.2.1 電源供電

                 

                       本方案中驅動的電機為24 V~48 V的中小功率PMSM,所以直流母線電壓應該在DC 24 V~48 V之間,最低不能低于DC18 V。

                 

                       采用L7815CP三端穩壓模塊將直流母線電壓降為15 V,供IGBT驅動器L6390使用;

                 

                       采用L7805CP三端穩壓模塊將15 V電壓降為5 V,供電機的碼盤、MCU開發電流傳感器ACS706、數據緩沖74LV244以及運放TSV994使用;

                 

                       采用AMS1117低壓差穩壓器將5 V轉為3.3 V,供SFM32F407芯片及UART PHY接口芯片C3222B、CAN PHY接口芯片SN65HVD234和以太網PHY接口芯片DP83848T供電。

                 

                       1.2.2 與上位機/PLC的接口電路

                 

                       本方案中與上位機/PLC的接口有三種方式,分別是RS232串口、CAN接口和以太網接口,因為STM32F407芯片不提供相應的物理層接口,STM32單片機開發為此選用ST公司的C3222B作為RS232的接口芯片,TI公司的SN65HVD234和DP83848T作為CAN和以太網的接口芯片。

                 

                       1.2.3 IGBT及其驅動電路

                 

                       本方案選用ST公司的IGBT,型號是STGF7NC60HD,該款IGBT的耐壓為Vce=600V,在100℃時的允許電流為Ic=6 A,飽和壓降Vces=2.4 V,柵極充電電荷Qg=48 nC,由于其Qg較小,所以其最大開關頻率可達70 kHz。

                 

                       選用的IGBT驅動芯片為ST公司的L6390半橋驅動芯片,它采用BCD離線技術,使其可以在600 V下工作。

                 

                       1.2.4 電壓電流采樣電路

                 

                       本方案先將直流母線電壓通過電阻分壓后,再用運放變換至合適的電平供STM32F407芯片內部的ADC采樣。STM32F407芯片通過采樣直流母線電壓來進行直流母線紋波補償。

                 

                       本方案選用allegro公司的HALL電流傳感器ACS706,來對V相、單片機控制器開發W相電流進行檢測,并根據檢測結果進行FOC控制算法,控制電機的轉動。之所以選用ACS706,是為了進行高低壓隔離,防止系統功率部分產生的干擾串入STM32F407芯片。

                 

                       1.2.5 故障保護電路

                 

                       在電流采樣電路的基礎上,通過比較器設定過流門限,當電流超限時,啟動制動電路,停止PWM輸出,并進行故障指示。

                 

                       在電壓采樣電路的基礎上,通過軟件設定過壓、欠壓門限,當電壓超限時,啟動制動電路,停止PWM輸出,并進行故障指示。

                 

                       1.2.6 碼盤接口電路

                 

                       本方案通過74LV244將電機的HALL碼盤信號由TTL電平變換為LVTTL信號,送STM32F407芯片進行處理。

                 

                       1.3 基于STM32F407芯片的伺服控制器的軟件實現

                 

                       基于STM32F407芯片的交流伺服控制器,采用基于永磁電機動態解耦數學模型的矢量控制一場定向控制算法(FOC)。在進行交流伺服控制器的軟件設計時,可使用ST公司的圖形化芯片外設配置軟件Microxplorer進行STM32F407芯片的選型及外設配置、智能控制器開發初始化代碼的生成;在PMSM電機的FOC算法設計階段可參考ST公司的PMSMFOC Library和Standard Peripherals Labrary-CMSlS進行開發,并且ST公司提供了DSP算法庫以供開發者使用;在系統的調試階段由于電機控制的特殊性,不能在電機運行時設置斷點進行調試,為此可采用ST公司的STMStudio軟件進行實時變量監控及可視化調試。

                 

                       1.3.1 交流伺服控制器軟件應具有的功能

                 

                       交流伺服控制器軟件應實現以下功能:

                 

                       ◆系統位置控制、速度控制和電流控制;

                 

                       ◆與上位機通信功能;

                 

                       ◆過流、過壓、欠壓的保護及故障指示。

                 

                       伺服控制器性能的好壞,電機的位置環、速度環和電流環控制是設計重點?,F將這幾部分分述如下:

                 

                       1.3.1.1 伺服系統位置環的實現

                 

                       STM32F407芯片根據上位機/PLC發出的位置指令,控制PMSM快速平穩的轉動到指定的角度。

                 

                       位置的控制算法采用三段法,即:位置誤差大時,物聯網控制板開發采用最大速度跟蹤,以快速消除誤差;位置誤差為中等偏差時,速度控制量為

                 

                       (其中:ε為加速度,e為當前位置誤差);在位置誤差較小時采用PI控制算法。

                 

                       1.3.1.2 伺服控制器速度環的實現

                 

                       由STM32F407芯片內部的正交編碼器接口的脈沖計數寄存器確定輸入的正交脈沖數,并且轉子每轉過一周,增量編碼器輸入一個零位標志脈沖信號,以消除因脈沖丟失引起的計數誤差。為使脈沖計數寄存器的計數不會溢出,因此轉子位置角最大采樣周期必須根據電機的最高工作頻率和控制精度確定,汽車整車控制器電機工作頻率和控制精度越高,則采樣周期越小??刂扑惴▌t采用PI算法。

                 

                       1.3.1.3 伺服控制器電流環的實現

                 

                       伺服控制器要求電流環具有輸出電流諧波分量小、響應速度快的特點,所以電流調節器必須滿足內環控制所需要的控制響應速度,能精確控制隨轉速變化的交流電流大小及頻率。但若電流環的響應速度過大,會使電流環調整時的音頻噪聲較大,同時在電流很小時會引起電流環的震蕩,建議電流環響應頻率的上限值是開關頻率的10%~20%為好。

                 

                       對電流環的控制算法則采用積分分離的PI控制算法。其基本思路:當被控量與設定值偏差較大時,取消積分作用,以免由于積分作用使系統穩定性降低,超調量增大;當被控量接近給定值時,引入積分控制,以便消除靜差,提高控制精度。

                 

                       這個方案用到了STM32F407芯片的眾多強大特性,如:DSP指令、浮點運算單元、大容量的RAM和Flash、168 MHz的高主頻、Ethernet和加密協處理器。通過ST公司的眾多軟、硬件設計參考和貫穿開發各個階段的免費軟件支持,車載DCDC轉換器使得廣大的電機控制開發工程師可以在最短的時間開發出性能強大的伺服控制產品。


                更多資訊:

                • QQ咨詢

                • 在線咨詢
                • 點擊這里給我發消息
                友情鏈接: 工控文章 
                    1. <big id="vefm5"><em id="vefm5"></em></big>

                      <code id="vefm5"></code>

                        <th id="vefm5"><video id="vefm5"></video></th>
                          <tr id="vefm5"></tr>
                          1. <code id="vefm5"><nobr id="vefm5"><track id="vefm5"></track></nobr></code>

                            <strike id="vefm5"><small id="vefm5"><ruby id="vefm5"></ruby></small></strike>