<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM與PID算法的開關(guān)電源控制系統(tǒng)

          基于ARM與PID算法的開關(guān)電源控制系統(tǒng)

          作者: 時(shí)間:2015-02-26 來源:網(wǎng)絡(luò) 收藏

            首先系統(tǒng)采用觸摸屏和LCD作為人機(jī)接口。S3C4480內(nèi)部集成了LCD控制器,可支持高達(dá)320×240分辨率,256色sTN—LCD),并通過DMA通道與CPU相連,可以快速動態(tài)地顯示彩色圖形,替代了廠家傳統(tǒng)的5l系列單片機(jī)與LED數(shù) 碼管組成的人機(jī)接口,使工人操作更加方便。S3C44BO外部GPIO接口,町以提供多種外部信號如表1所列。8個(gè)外部中斷,滿足對過流,過壓,缺相,超 溫等特殊情況的即時(shí)停機(jī)響應(yīng)。S3C44BO帶有外部存儲器接口,通過外擴(kuò)FLAsHSST39VF160和SDRAMHY641620保證了本數(shù)字控制 系統(tǒng)有足夠的空間保存和運(yùn)行程序。由于設(shè)計(jì)精度要求千分之一,未選用S3C4480片內(nèi)IOBIT—ADC,而是選用了AD7705這款雙通道、 168IT△一∑的ADC,并通過SIO同步端口與CPU連接。 AD7705的配置可見參考文獻(xiàn)[7],這里不再說明。

          本文引用地址:http://www.ex-cimer.com/article/270109.htm

            

           

            PWM控制原理

            采樣控制理論中有一個(gè)重要結(jié)論:沖量相等而形狀不同的窄脈沖加在慣性環(huán)節(jié)上時(shí),其效果基本相同。PWM控制技術(shù)就是以該結(jié)論為理論基礎(chǔ),對半導(dǎo)體開關(guān)器件的導(dǎo)通和關(guān)斷進(jìn)行控制,使輸出端得到一系列幅值相等而寬度不相等的脈沖,用這些脈沖列來代替正弦波或其他所需要的波形,并按照一定的規(guī)則對各個(gè)脈沖的寬度進(jìn)行調(diào)制。

            

           

            在本系統(tǒng)中,PWM波形由中央處理器S3C4480的時(shí)鐘TIMER0 輸出口T0UTO輸出。由于要求輸出頻率30kHz的PWM波,且精度在千分之一,所以通過設(shè)置TCFGO和TCFGl寄存器的設(shè)置,將4BIT分頻器設(shè) 置為O.5,預(yù)定標(biāo)寄存器設(shè)置為l,計(jì)數(shù)比較寄存器TCNTB0設(shè)置為1000,這樣,在S3C4480主頻于66MHz時(shí),TOUT0輸出的PWM波頻 率為30kHz。當(dāng)TIMER0 開始計(jì)時(shí)后,每次TCNTB0的值與定時(shí)器的向下計(jì)數(shù)器值相同時(shí),定時(shí)器控制PWM波電平改變。使得修改TC-NTB0的值可以控制PWM波的占空比,增 加或者減少1,則PWM輸出占空比增加或者減少千分之一,從而達(dá)到千分之一精度。圖2為輸出的PWM波形圖,我們可以看出,通過專用的定時(shí)器輸出口 TOUTO輸出的PWM波形,波形很好,經(jīng)過測試,上升沿與下降沿均在ns級。算法與軟件流程

            3.1主程序軟件流程

            由于采用了嵌入式芯片,使得在系統(tǒng)軟件實(shí)現(xiàn)中主要以C語言進(jìn)行驅(qū)動和應(yīng)用程序的開發(fā),僅在CPU初始化階段使用匯編語言。使用 S3C4480芯片外擴(kuò)了 2MFLASH,8MSDRAM大容量存儲器,完全滿足了系統(tǒng)程序運(yùn)行和數(shù)據(jù)的存儲,這樣充分發(fā)揮了S3C4480 ARM嵌入式系統(tǒng)存 儲器容量大,軟件編程簡單,速度快,精度高的優(yōu)勢。數(shù)字控制系統(tǒng)軟件流程如圖3所示。在系統(tǒng)開機(jī)后,首先要檢測系統(tǒng)外圍設(shè)備的狀態(tài)是否正常,以免出現(xiàn)故 障。在系統(tǒng)運(yùn)行中,為了防止軟件跑飛,還需要開啟看門狗功能,加入喂狗程序,這樣軟件上保證系統(tǒng)的可靠性和穩(wěn)定性。在ADC部分對采樣值進(jìn)行均值濾波,保 證采樣值的正確與穩(wěn)定。

            3.2控制算法

            在自動控制技術(shù)中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例(P)、積分(I)、微分(D)控制,簡稱控制,又稱Pm調(diào)節(jié)。其原理的關(guān)鍵是測量、比較和執(zhí)行。PID控制器將測量受控對象(在本系統(tǒng)中即電壓電流值)與設(shè)定值相比較,用這個(gè)誤差來調(diào)節(jié)系統(tǒng)的響應(yīng)。

            

           

            在電源數(shù)字PID控制系統(tǒng)中,使用比例環(huán)節(jié)控制電壓電流的輸出與輸入誤差信號成比例改變,但是實(shí)際值與給定值通常會存在偏差,這個(gè)偏差稱作穩(wěn)態(tài)誤差。因 此,需要引入積分環(huán)節(jié)的消除穩(wěn)態(tài)誤差功能提高精度,但是考慮到電源系統(tǒng)開機(jī)、關(guān)機(jī)或大幅增加電壓電流工作設(shè)定值時(shí),產(chǎn)生積分積累,就會引起電壓電流超調(diào), 甚至在給定值上下振蕩。所以為減小在運(yùn)行過程中積分環(huán)節(jié)對電壓電流動態(tài)性能的影響,采用了積分分離PID控制電壓電流,即當(dāng)電壓電流與設(shè)定工作值的誤差小 于一個(gè)范圍時(shí),再采用積分環(huán)節(jié)去消除系統(tǒng)比例環(huán)節(jié)產(chǎn)生的穩(wěn)態(tài)誤差。

            積分分離PID控制算法需設(shè)定積分分離閥ε,當(dāng) le(k)│>ε時(shí),即偏差值較大時(shí),僅采用PD控制環(huán)節(jié),減少超調(diào)量,使系統(tǒng)有較快響應(yīng);當(dāng)le(k)l≤ε時(shí),即偏差值比較小時(shí),采用PID 控制,以保證電壓電流精度和穩(wěn)定度。在開機(jī)后,按照固定步長打開PWM波寬度,使得電壓升高。在達(dá)到設(shè)定值一定范圍后,為防止電壓過沖,需要加入積分分離 PID控制算法進(jìn)行控制,防止電壓超調(diào)。在電壓達(dá)到千分之一進(jìn)度范圍后,需要加入積分環(huán)節(jié),完成電源開機(jī)時(shí)迅速穩(wěn)定的輸出。PID算法流程如圖3所示。

            結(jié)論

            該系統(tǒng)經(jīng)現(xiàn)場調(diào)試證明,設(shè)計(jì)合理、運(yùn)行可靠,為廠家實(shí)現(xiàn)了51系列8位單片機(jī)到ARM32位系統(tǒng)的升級,降低了成本并提高了產(chǎn)品的性能。

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


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


          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          c語言相關(guān)文章:c語言教程


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


          三相異步電動機(jī)相關(guān)文章:三相異步電動機(jī)原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM PID

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();