<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DSP的三相SPWM變頻電源的設計

基于DSP的三相SPWM變頻電源的設計

作者: 時(shí)間:2014-10-21 來(lái)源:網(wǎng)絡(luò ) 收藏

  系統軟件設計

本文引用地址:http://dyxdggzs.com/article/264217.htm

  系統上電后按照選定的模式自舉加載程序,跳轉到主程序入口,進(jìn)行相關(guān)變量、控制寄存器初始化設置和正弦表初始化等工作。接著(zhù)使能需要的中斷,啟動(dòng)定時(shí)器,然后循環(huán)進(jìn)行故障檢測和保護,并等待中斷。主要包括三部分內容:定時(shí)器周期中斷子程序、A/D采樣子程序和數據處理算法。主程序流程圖如圖5所示。

  

 

  圖5 主程序流程圖

  定時(shí)器周期中斷子程序

  主要進(jìn)行PI調節,更新占空比,產(chǎn)生波。定時(shí)器周期中斷流程圖如圖6所示。

  

 

  圖6 定時(shí)器周期中斷流程圖

  A/D采樣子程序

  主要完成線(xiàn)電流采樣和線(xiàn)電壓采樣。為確保電壓與電流信號間沒(méi)有相對相移,本部分利用TMS320F28335片上ADC的同步采樣方式。為提高采樣精度,在A(yíng)/D中斷子程序中采用均值濾波的方法。

  對A相電壓和電流A/D的同步采樣部分代碼如下:

  interrupt void adc_isr(void)

  {

  if(counter==0)

  {

  receive_a0_data[i++] = AdcRegs.ADCRESULT0>>4; //右移四位

  receive_b0_data[j++] = AdcRegs.ADCRESULT1>>4; //右移四位

  }

  if(counter>=1)

  { // 對結果取平均,平滑濾波

  receive_a0_data[i++] = (receive_a0_data[i0++]+(AdcRegs.ADCRESULT0>>4))/2;

  receive_b0_data[j++] = (receive_b0_data[j0++]+(AdcRegs.ADCRESULT1>>4))/2;

  }

  if(i==512) {i=0;i0=0;}

  if(j==512) {j=0;j0=0; counter++;}

  AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // 復位排序器

  AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // 清中斷標志位

  PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;// 開(kāi)中斷應答

  }

  數據處理算法

  本系統主要用到以下算法:(1)SVPWM算法(2)調節算法(3)頻率檢測算法

  SVPWM算法

  變頻電源的核心就是SVPWM波的產(chǎn)生,波是以正弦波作為基準波(調制波),用一列等幅的三角波(載波)與基準正弦波相比較產(chǎn)生PWM波的控制方式。當基準正弦波高于三角波時(shí),使相應的開(kāi)關(guān)器件導通;當基準正弦波低于三角波時(shí),使相應的開(kāi)關(guān)器件截止。由此,逆變器的輸出電壓波形為脈沖列,其特點(diǎn)是:半個(gè)周期中各脈沖等距等幅不等寬,總是中間寬,兩邊窄,各脈沖面積與該區間正弦波下的面積成比例。這種脈沖波經(jīng)過(guò)低通濾波后可得到與調制波同頻率的正弦波,正弦波幅值和頻率由調制波的幅值和頻率決定。

  本文采用不對稱(chēng)規則采樣法,即在三角波的頂點(diǎn)位置與低點(diǎn)位置對正弦波進(jìn)行采樣,它形成的階梯波更接近正弦波。不規則采樣法生成波原理如圖7所示。圖中,Tc是載波周期,M是調制度,N為載波比,Ton為導通時(shí)間。

  由圖7得:

 

  當k為偶數時(shí)代表頂點(diǎn)采樣,k為奇數時(shí)代表底點(diǎn)采樣。

  SVPWM算法實(shí)現過(guò)程:

  利用F28335內部的事件管理器模塊的3個(gè)全比較單元、通用定時(shí)器1、死區發(fā)生單元及輸出邏輯可以很方便地生成三相六路SPWM波形。實(shí)際應用時(shí)在程序的初始化部分建立一個(gè)正弦表,設置通用定時(shí)器的計數方式為連續增計數方式,在中斷程序中調用表中的值即可產(chǎn)生相應的按正弦規律變化的SPWM波。SPWM波的頻率由定時(shí)時(shí)間與正弦表的點(diǎn)數決定。

  SVPWM算法的部分代碼如下:

  void InitEv(void)

  {

  EALLOW;

  GpioMuxRegs.GPAMUX.all=0x00FF;

  EDIS;

  EvaRegs.EVAIFRA.all = 0xFFFF; // 清除中斷標志

  EvaRegs.T1PR= 2500; //定時(shí)器1周期值,定時(shí)0.4us*2500=1ms

  EvaRegs.T1CMPR = XPWM; //比較值初始化

  EvaRegs.T1CNT = 0; EvaRegs.T1CON.all = 0xF54E; //增模式, TPS系數80M/32=2.5M,T1使能,

  EvaRegs.ACTR.all = 0x0006; //PWM1,2低有效

  EvaRegs.DBTCONA.all = 0x0534; //使能死區定時(shí)器1,分頻80M/32=2.5M,死區時(shí)

  //間5*0.4us=2us

  EvaRegs.COMCONA.all = 0xA600; //比較控制寄存器

  EvaRegs.EVAIMRA.all = 0x0080;

  }

  調節算法

  在實(shí)際控制中很多不穩定因素易造成增量較大,進(jìn)而造成輸出波形的不穩定性,因此必須采用增量式算法對系統進(jìn)行優(yōu)化。PID算法數學(xué)表達式為

  Upresat(t)= Up(t)+ Ui(t)+ Ud(t)

  其中,Up(t)是比例調節部分,Ui(t)是積分調節部分,Ud(t)是微分調節部分。

  本文通過(guò)對A/D轉換采集來(lái)的電壓或電流信號進(jìn)行處理,并對輸出的SPWM波進(jìn)行脈沖寬度的調整,使系統輸出的電壓保持穩定。

  PID調節算法的部分代碼如下:

  float PIDCalc( PID *pp, int NextPoint )

  {

  int dError,Error;

  Error=pp->SetPoint*10-NextPoint; // 偏差

  pp->SumError+= Error; // 積分

  dError=pp->LastError-pp->PrevError; // 當前微分

  pp->PrevError = pp->LastError;

  pp->LastError = Error;

  return

  ((pp->Proportion) * Error // 比例項

  + (pp->Integral) * (pp->SumError) // 積分項

  + (pp->Derivative) * dError); // 微分項

  }

  頻率檢測算法

  頻率檢測算法用來(lái)檢測系統輸出電壓的頻率。用TMS320F28335片上事件管理器模塊的捕獲單元捕捉被測信號的有效電平跳變沿,并通過(guò)內部的計數器記錄一個(gè)周波內標頻脈沖個(gè)數,最終進(jìn)行相應的運算后得到被測信號頻率。

  實(shí)驗結果

  測量波形

  在完成上述硬件設計的基礎上,本文采用特定的PWM控制策略,使逆變器拖動(dòng)感應電機運行,并進(jìn)行了短路、電機堵轉等實(shí)驗,證明采用逆變器性能穩定,能可靠地實(shí)現過(guò)流和短路保護。圖8是電機在空載條件下,用數字示波器記錄的穩態(tài)電壓波形。幅度為35V,頻率為60Hz。

  

 

  圖7 不規則采樣法生成SPWM波原理圖

  

 

  圖8 輸出線(xiàn)電壓波形

  測試數據

  在不同頻率及不同線(xiàn)電壓情況下的測試數據如表1所示。

  表1 不同輸出頻率及不同線(xiàn)電壓情況下實(shí)驗結果

  

 

  結果分析

  由示波器觀(guān)察到的線(xiàn)電壓波形可以看出,波形接近正弦波,基本無(wú)失真;由表中數據可以看出,不同頻率下,輸出線(xiàn)電壓最大的絕對誤差只有0.6V,相對誤差為1.7%。

  結束語(yǔ)

  本文設計的三相正弦波變頻電源,由于采用了不對稱(chēng)規則采樣算法和PID算法使輸出的線(xiàn)電壓波形基本為正弦波,其絕對誤差小于1.7%;同時(shí)具有故障保護功能,可以自動(dòng)切斷輸入交流電源。因此本系統具有電路簡(jiǎn)單、抗干擾性能好、控制效果佳等優(yōu)點(diǎn),便于工程應用,具有較大的實(shí)際應用價(jià)值。

pid控制相關(guān)文章:pid控制原理


dc相關(guān)文章:dc是什么


手機電池相關(guān)文章:手機電池修復


pid控制器相關(guān)文章:pid控制器原理


電源濾波器相關(guān)文章:電源濾波器原理


衰減器相關(guān)文章:衰減器原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: DSP SPWM PID

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>