版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 前言1</b></p><p><b> 1 緒論1</b></p><p> 1.1 恒壓供水系統(tǒng)的提出1</p><p> 1.2 變頻恒壓供水系統(tǒng)主要特點(diǎn)1</p>
2、;<p> 1.3 恒壓供水技術(shù)實(shí)現(xiàn)2</p><p> 2 變頻恒壓調(diào)速供水系統(tǒng)的工作原理2</p><p> 2.1 系統(tǒng)工作過程4</p><p> 2.2 變頻調(diào)速的基本調(diào)速原理5</p><p> 2.3 水泵變頻調(diào)速節(jié)能分析7</p><p> 2.4 本章小結(jié)8<
3、;/p><p> 3 變頻恒壓調(diào)速供水系統(tǒng)硬件設(shè)計(jì)9</p><p> 3.1 硬件總體說明9</p><p> 3.2 555定時(shí)器復(fù)位電路9</p><p> 3.3 LED數(shù)值顯示 D/A數(shù)值采集 D/A數(shù)值反饋11</p><p> 3.3.1 LED數(shù)值顯示模塊11</p>&l
4、t;p> 3.3.2 數(shù)據(jù)采集A/D轉(zhuǎn)換電路12</p><p> 4 變頻恒壓調(diào)速供水系統(tǒng)軟件設(shè)計(jì)13</p><p> 4.1 編程軟件13</p><p> 4.1.1 C051編譯器介紹13</p><p> 4.1.2 KEIL編譯器14</p><p> 4.2 單片機(jī)資料14
5、</p><p> 4.3 軟件的程序設(shè)計(jì)圖16</p><p><b> 5 結(jié)論18</b></p><p><b> 附錄19</b></p><p><b> 參考文獻(xiàn)27</b></p><p> 基于單片機(jī)恒壓供水系統(tǒng)設(shè)計(jì)&
6、lt;/p><p><b> 前言 </b></p><p> 隨著人民生活水平的日趨提高,新技術(shù)和先進(jìn)設(shè)備的應(yīng)用,使供水設(shè)計(jì)得到了新的發(fā)展機(jī)遇,當(dāng)前住宅建筑的規(guī)劃趨向于更具有人性化的多層次住宅組合,人們不再僅僅追去立面和平面的美觀和合理,而是追求空間上布局的流暢和設(shè)計(jì)中貫徹以人為本的理念,特別是在市場(chǎng)經(jīng)濟(jì)的浪潮中,力求土地使用效率的最大化。于是選擇一種符合各方面規(guī)范
7、、安全又經(jīng)濟(jì)合理的供水方式,對(duì)我們供水系統(tǒng)設(shè)計(jì)帶來了新的挑戰(zhàn)。恒壓供水是指在供水管網(wǎng)中用水量發(fā)生變化時(shí),出口壓力保持不變的供水方式。供水壓力值是根據(jù)用戶需求確定的,傳統(tǒng)的恒壓供水方式是采用水塔、高位水箱、氣壓罐等設(shè)施來實(shí)現(xiàn),隨著變頻調(diào)速技術(shù)的日益成熟和廣泛應(yīng)用,利用變頻器、PID調(diào)節(jié)器、傳感器、PLC等器件的有機(jī)組合,構(gòu)成控制系統(tǒng),調(diào)節(jié)水泵的輸出流量,實(shí)現(xiàn)恒壓供水。</p><p><b> 1 緒
8、論</b></p><p> 1.1 恒壓供水系統(tǒng)的提出</p><p> 水已經(jīng)成為中國(guó)21世紀(jì)的熱點(diǎn)問題,水有其自然屬性,它既是一種特殊的、不可替換的資源,又是一種可重復(fù)使用、可再生的資源;水又有其經(jīng)濟(jì)和社會(huì)屬性,不僅工業(yè)、農(nóng)業(yè)的發(fā)展要靠水,水更是城市發(fā)展、人民生活的生命線。</p><p> 變頻調(diào)速恒壓供水技術(shù)其節(jié)能、安全、供水高品質(zhì)等優(yōu)
9、點(diǎn),在供水行業(yè)得到了廣泛應(yīng)用。恒壓供水調(diào)速系統(tǒng)實(shí)現(xiàn)水泵電動(dòng)機(jī)無級(jí)調(diào)速,依據(jù)用水量的變化(實(shí)際上為供水管網(wǎng)的壓力變化)自動(dòng)調(diào)節(jié)系統(tǒng)的運(yùn)行參數(shù),在用水量發(fā)生變化時(shí)保持水壓恒定以滿足用水要求是當(dāng)今先進(jìn)、合理的節(jié)能型供水系統(tǒng)。在實(shí)際應(yīng)用中如何充分利用變頻器內(nèi)置的各種功能,對(duì)合理設(shè)計(jì)變頻器調(diào)速恒壓供水設(shè)備,降低成本、保證產(chǎn)品質(zhì)量等有著重要意義。 </p><p> 1.2 變頻恒壓供水系統(tǒng)主要特點(diǎn)</p>
10、<p> a. 節(jié)能,可以實(shí)現(xiàn)節(jié)電20%~40%,能實(shí)現(xiàn)綠色省電。</p><p> b. 占地面積小,投資少,效率高。</p><p> c. 配置靈活,自動(dòng)化程度高,功能齊全,靈活可靠。</p><p> d. 運(yùn)行合理,由于是軟啟和軟停,不但可以消除水錘效應(yīng),而且電機(jī)軸上的平均扭矩和磨損減小,減小了維修量和維修費(fèi)用,并且水泵的壽命大大提高。
11、</p><p> e. 由于變頻恒壓調(diào)速直接從水源供水,減少了原有供水方式的二次污染,防止了很多傳染疾病。</p><p> f. 通過通信控制,可以實(shí)現(xiàn)五人職守,節(jié)約了人力物力。</p><p> 1.3 恒壓供水技術(shù)實(shí)現(xiàn)</p><p> 通過安裝在管網(wǎng)上的壓力傳感器,把水轉(zhuǎn)換成4~20mA的模擬信號(hào),通過變頻器內(nèi)置的PID控
12、制器,來改變電動(dòng)水泵轉(zhuǎn)速。當(dāng)用戶用水量增大,管網(wǎng)壓力低于設(shè)定壓力時(shí),變頻調(diào)速的輸出頻率將增大,水泵轉(zhuǎn)速提高,供水量加大,當(dāng)達(dá)到設(shè)定壓力時(shí),電動(dòng)機(jī)水泵的轉(zhuǎn)速不再變化,使管網(wǎng)壓力恒定在設(shè)定壓力上;反之亦然。</p><p> 目前交流電機(jī)變頻調(diào)速技術(shù)是一項(xiàng)業(yè)已廣泛應(yīng)用的技能技術(shù),由于電子技術(shù)的飛速發(fā)展,變頻器的性能有了極大的提高,它可以實(shí)現(xiàn)控制設(shè)備軟啟停,不僅可以降低設(shè)備故障率,還可以大幅縮減電耗,確保系統(tǒng)安全、穩(wěn)
13、定、長(zhǎng)周期運(yùn)行。</p><p> 長(zhǎng)期以來區(qū)域的供水系統(tǒng)都是由市政管網(wǎng)經(jīng)過二次加壓和水塔或天而水池來滿足用戶對(duì)供水壓力的要求。在供水系統(tǒng)中加壓泵通常是用最不利水電的水壓要求來確定相應(yīng)的揚(yáng)程設(shè)計(jì),然后泵組根據(jù)流量變化情況來選配,并確定水泵的運(yùn)行方式。由于用水有著季節(jié)和時(shí)段的明顯變化,日常供水運(yùn)行控制就常采用水泵的運(yùn)行方式調(diào)整加上出口閥開度調(diào)節(jié)供水的水量水壓,大量能量因消耗在出口閥而浪費(fèi),而且存在著水池“二次污染
14、”的問題。變頻調(diào)速技術(shù)在給水泵站上的應(yīng)用,成功解決了能耗和污染兩大難題[1]。</p><p> 2 變頻恒壓調(diào)速供水系統(tǒng)的工作原理</p><p> 在變頻調(diào)速供水系統(tǒng)中,是通過變頻調(diào)速來改變水泵的轉(zhuǎn)速?gòu)亩淖兯霉ぷ鼽c(diǎn)來達(dá)到調(diào)節(jié)供水流量的目的。反應(yīng)水泵運(yùn)行工程的水泵工作點(diǎn)也稱為水泵工況點(diǎn),是指水泵在確定的管路系統(tǒng)中,實(shí)際運(yùn)行時(shí)所具有的揚(yáng)程、流量以及相應(yīng)的效率、功率等參數(shù)。調(diào)節(jié)水泵
15、轉(zhuǎn)速的過程中,水泵工況點(diǎn)的調(diào)節(jié)是一個(gè)十分關(guān)鍵的問題。如果水泵工況點(diǎn)偏離設(shè)計(jì)工作點(diǎn)較遠(yuǎn),不僅會(huì)引起水泵運(yùn)行效率降低、功率升高或者發(fā)生嚴(yán)重的氣穴現(xiàn)象,還可能導(dǎo)致管網(wǎng)壓力不穩(wěn)定而影響正常的供水。水泵在實(shí)際運(yùn)行時(shí)的工作點(diǎn)取決于水泵性能、管路水力損失以及所需實(shí)際揚(yáng)程,這三種因素任一項(xiàng)發(fā)生變化,水泵的運(yùn)行工況都會(huì)發(fā)生變化因此水泵工況點(diǎn)的確定和工況調(diào)節(jié)與這三者密切相關(guān)。</p><p> 圖2-1 變頻恒壓供水系統(tǒng)組成框圖
16、</p><p> 圖2-1就是一個(gè)典型的由8051單片機(jī)控制的恒壓調(diào)速供水系統(tǒng)。系統(tǒng)由微機(jī)控制器、交流變頻調(diào)速器、水泵機(jī)組、供水管網(wǎng)和壓力傳感器等組成,控制系統(tǒng)結(jié)構(gòu)原理如圖2-2所示。8051單片計(jì)算機(jī)在這里主要起壓力采集,PID調(diào)節(jié)器計(jì)算、功能判斷處理、消防處理、邏輯切換、壓力顯示和聲光報(bào)警等作用[2]。</p><p> 圖2-2 單片機(jī)的變頻恒壓調(diào)速系統(tǒng)原理框圖</p&
17、gt;<p> 2.1 系統(tǒng)工作過程</p><p> 根據(jù)現(xiàn)場(chǎng)生產(chǎn)的實(shí)際狀況,白天一般只需開動(dòng)一臺(tái)水泵,就能滿足生產(chǎn)生活需要,小機(jī)工頻運(yùn)行作恒速泵使用,大機(jī)變頻運(yùn)行作變量泵;晚上用水低峰時(shí),只需開動(dòng)一臺(tái)大機(jī)就滿足供水需要,因此可采用一大一小搭配進(jìn)行設(shè)計(jì),即把1#水泵電機(jī)(160KW)和2#水泵電機(jī)(220KW)為一組,自動(dòng)控制系統(tǒng)可以根據(jù)運(yùn)行時(shí)間的長(zhǎng)短來調(diào)整選擇不同的機(jī)組運(yùn)行。</p&
18、gt;<p> 分析自動(dòng)控制系統(tǒng)機(jī)組Ⅰ(1#、2#水泵機(jī)組)工作過程,可分為以下三個(gè)工作狀態(tài):a.1#電機(jī)變頻啟動(dòng);b.1#電機(jī)工頻運(yùn)行,2#電機(jī)變頻運(yùn)行;c.2#電機(jī)單獨(dú)變頻運(yùn)行,一般情況下,水泵電機(jī)都處于這三種工作狀態(tài)中,當(dāng)管網(wǎng)壓力突變時(shí),三種工作狀態(tài)就要發(fā)生相應(yīng)變換,因此這三種工作狀態(tài)對(duì)應(yīng)著三個(gè)切換過程。</p><p><b> 切換過程Ⅰ</b></p>
19、;<p> 1#電機(jī)變頻啟動(dòng),頻率達(dá)到50Hz,1#電機(jī)工頻運(yùn)行,2#電機(jī)變頻運(yùn)行。系統(tǒng)開始工作時(shí),管網(wǎng)水壓低于設(shè)定壓力下限P。按下相應(yīng)的按鈕,選擇機(jī)組Ⅰ運(yùn)行,在PLC可編程控制器控制下,KM2得電,1#電機(jī)先接至變頻器輸出端,接著接通變頻器FWD端。變頻器對(duì)拖動(dòng)1#泵的電動(dòng)機(jī)采用軟啟動(dòng),1#電機(jī)啟動(dòng),運(yùn)行一段時(shí)間后,隨著運(yùn)行頻率的增加,當(dāng)變頻器輸出頻率增至工頻f0可編程控制器發(fā)出指令,接通變頻器BX端,變頻器FWD端斷
20、開,KM2失電,1#電機(jī)自變頻器輸出端斷開,KM1得電,1#電機(jī)切換至工頻運(yùn)行,1#電機(jī)自變頻器輸出端斷開,KM1得電1#電機(jī)切換至工頻運(yùn)行。1#電機(jī)工頻運(yùn)行后,開啟1#泵閥門,1#泵工作在工頻狀態(tài)。接著KM3得電,2#電機(jī)接至變頻器輸出端,接通變頻器FWD端,變頻器BX端斷開,2#電機(jī)開始軟啟動(dòng),運(yùn)行一段時(shí)間后,開啟2#泵閥門,2#水泵電機(jī)工作在變頻狀態(tài)。從而實(shí)現(xiàn)1#水泵由變頻切換至工頻電網(wǎng)運(yùn)行,2#水泵接入變頻器并啟動(dòng)運(yùn)行,在系統(tǒng)調(diào)
21、節(jié)下變頻器輸出頻率不斷增加,直到管網(wǎng)水壓達(dá)到設(shè)定值(Pi<P<Pm)為止。</p><p><b> 切換過程Ⅱ</b></p><p> 由1#電機(jī)工頻運(yùn)行,2#電機(jī)變頻運(yùn)行轉(zhuǎn)變?yōu)?#電機(jī)單獨(dú)變頻運(yùn)行狀態(tài)。當(dāng)晚上用水量大量減少時(shí),水壓增加,2#水泵電機(jī)在變頻器作用下,變頻器輸出頻率下降,電機(jī)轉(zhuǎn)速下降,水泵輸出流量減少,當(dāng)變頻器輸出頻率下降到指定值fmin,電機(jī)轉(zhuǎn)
22、速下降到指定值,水管水壓高于設(shè)定水壓上限Pk時(shí)(2#電機(jī),f=fmin,P<Pk),在PLC可編程控制器控制下,1#水泵電機(jī)在工頻斷開,2#水泵繼續(xù)在變頻器拖動(dòng)下變頻運(yùn)行。</p><p><b> 切換過程Ⅲ</b></p><p> 由2#電機(jī)變頻運(yùn)行轉(zhuǎn)變?yōu)?#電機(jī)變頻停止,1#電機(jī)變頻運(yùn)行狀態(tài)。當(dāng)早晨用水量再次增加時(shí),2#電動(dòng)機(jī)工作在調(diào)速運(yùn)行狀態(tài),當(dāng)變頻器輸
23、出頻率增至工頻fi(即50Hz),水管水壓低于設(shè)定水壓上限Pi時(shí)(2#電機(jī)f=fi,P≦Pi),接通變頻器BX端,變頻器FWD斷開,KM3斷開,2#電機(jī)自變頻器輸出端斷開;KM2得電,1#電機(jī)接至變頻器輸出端;接通變頻器FWD端,于此同時(shí)變頻器BX端斷開。1#電機(jī)開始軟啟動(dòng)??刂葡到y(tǒng)又回到初始工作狀態(tài)Ⅰ,開始新一輪循環(huán)。</p><p> 圖2.1-1 1#和2#機(jī)組工作過程流程圖</p>&l
24、t;p> 2.2 變頻調(diào)速的基本調(diào)速原理</p><p> 水泵機(jī)組應(yīng)用變頻調(diào)速技術(shù)。即通過改變電動(dòng)機(jī)定子電源效率來改變電動(dòng)機(jī)轉(zhuǎn)速可以相應(yīng)的改變水泵轉(zhuǎn)速及工況,使其流量與揚(yáng)程適應(yīng)管網(wǎng)用水量的變化,保持管網(wǎng)最不利點(diǎn)壓力恒定,達(dá)到節(jié)能效果。</p><p> 如圖2.2-1所示,n為水泵特性曲線,A管路特性曲線,H0為管網(wǎng)末端的服務(wù)壓力,H1為泵出口壓力。當(dāng)用水量達(dá)到最大Qmax
25、時(shí),水泵全速運(yùn)轉(zhuǎn),出口閥門全開,達(dá)到了滿負(fù)荷運(yùn)行,水泵的特性n0和用水管特性曲線A0匯交于b點(diǎn),此時(shí),水泵輸出口壓力為H,末端服務(wù)壓力剛好為H0.當(dāng)用水量從Qmax減少到Q1的過程中,采用不同的控制方案,其水泵的能耗也不同[3]。</p><p> 圖2.2-1 節(jié)能分析曲線圖</p><p> ★ 水泵全速運(yùn)轉(zhuǎn),靠關(guān)小泵出口閥門來控制;此時(shí),管路阻力特性曲線變陡(A2),水泵的工況點(diǎn)
26、由b點(diǎn)上滑到c點(diǎn),而管路所需的揚(yáng)程將由b點(diǎn)滑到d點(diǎn),這樣c點(diǎn)和d點(diǎn)揚(yáng)程的差值即為全速水泵的能量浪費(fèi)。</p><p> ★ 水泵變速運(yùn)轉(zhuǎn),靠泵的出口壓力恒定來控制;此時(shí),當(dāng)用水量由Qmax下降時(shí),控制系統(tǒng)降低水泵轉(zhuǎn)速來改變其特性。但由于采用泵出口壓力恒量方式工作。所以其工況點(diǎn)是在H上平移。在水量到達(dá)Q1時(shí),相應(yīng)的水泵特性趨向?yàn)閚x。而管路的特性曲線將向上平移到A1,兩線交點(diǎn)e即為此時(shí)的工況點(diǎn),這樣,在水量減少到
27、Q1時(shí),將導(dǎo)致管網(wǎng)不利點(diǎn)水壓升高到H0﹥H1,則H1即為水泵的能量浪費(fèi)。</p><p> ★ 水泵變速運(yùn)轉(zhuǎn),靠管網(wǎng)取不利點(diǎn)壓力恒定來控制;此時(shí),當(dāng)用水量由Qmax下降到Q1時(shí),水泵降低轉(zhuǎn)速,水泵的特性曲線n1,其工況點(diǎn)為d點(diǎn),正好落在管網(wǎng)特性曲線A0上,這樣可以使水泵的工作點(diǎn)式中沿著A0滑動(dòng),管網(wǎng)的服務(wù)壓力H0恒定不變,其揚(yáng)程與系統(tǒng)阻力相適應(yīng),沒有能量的浪費(fèi)。此方案與泵出口恒壓松散水相比,其能耗下降了h1。&
28、lt;/p><p> 根據(jù)水泵相似原理: Q1/Q2=n1/n2</p><p> H1/H2=(n1/n2)*2</p><p> P1/P2=(n1/n2)*3</p><p> 式中,Q、H、P、n分別為泵流量、壓力、軸功率和轉(zhuǎn)速。即通過控制轉(zhuǎn)速可以減少軸功率。根據(jù)以上分析表明,選擇供水管網(wǎng)最不利點(diǎn)允許的最低壓力為
29、控制參數(shù),通過壓力傳感器以獲得壓力信號(hào),組成閉環(huán)壓力自控調(diào)速系統(tǒng),以使水泵的轉(zhuǎn)速保持與調(diào)速裝置所設(shè)定的控制壓力相匹配,使調(diào)速技術(shù)和自控技術(shù)相結(jié)合,達(dá)到最佳節(jié)能效果。</p><p> 采用變頻恒壓供水系統(tǒng)除可節(jié)能外,還可以使水泵組啟動(dòng),降低了起動(dòng)電流,避免了對(duì)供電系統(tǒng)產(chǎn)生沖擊負(fù)荷,提高了供水供電的安全可靠性。另外,變頻器本身具有過電流、過電壓、失壓等多種保護(hù)功能,提高了系統(tǒng)的安全可靠性。</p>
30、<p> 目前水泵電機(jī)絕大部分是三相交流異步電動(dòng)機(jī),根據(jù)交流電機(jī)的轉(zhuǎn)速特性,電機(jī)的</p><p> 轉(zhuǎn)速n為 n=120(1-s)/p</p><p> 式中s為電機(jī)的滑差(s=0.02),p為電機(jī)極對(duì)數(shù),f為定子供電頻率。當(dāng)水泵電機(jī)選定后,p和s為定值,也就是說電機(jī)轉(zhuǎn)速與電源的頻率高低成正比,頻率越高,轉(zhuǎn)速越高,反之,轉(zhuǎn)速越低,
31、變頻調(diào)速時(shí)是根據(jù)這一公式來實(shí)現(xiàn)無級(jí)調(diào)速的。</p><p> 由流體力學(xué)知:管網(wǎng)壓力P、流量Q和功率N的關(guān)系為</p><p><b> N=PQ</b></p><p> 由功率與水泵電機(jī)轉(zhuǎn)速成三次方正比關(guān)系,基于轉(zhuǎn)速控制比,基于流量控制可以大幅度降低軸頻率[4]。</p><p> 2.3 水泵變頻調(diào)速節(jié)能
32、分析</p><p> 水泵運(yùn)行工況點(diǎn)A是水泵性能曲線n1和管道性能曲線R1的交點(diǎn)。在常規(guī)供水系統(tǒng)中,采用閥門控制流量,需要減少流量時(shí)關(guān)小閥門,管路性能曲線有R1變?yōu)镽2。運(yùn)行工況點(diǎn)沿著水泵性能曲線從A點(diǎn)移到D點(diǎn),揚(yáng)程從H0上升到H1,流量從Q0減少到Q1。采用變頻調(diào)速控制時(shí),管路性能曲線R1保持不變,水泵的特性取決于轉(zhuǎn)速,如果水泵轉(zhuǎn)速?gòu)膎0降到n1,水泵性能曲線從n0平移到n1,運(yùn)行工況點(diǎn)沿著水泵性能曲線從A
33、點(diǎn)移到C點(diǎn),揚(yáng)程從H0下降到H1,流量從Q0減少到Q1。在圖2.3-1中水泵運(yùn)行在B點(diǎn)時(shí)消耗的軸功率與H1BQ1O的面積成正比,運(yùn)行在C點(diǎn)時(shí)消耗的軸功率與H2CQ1O的面積成正比,從圖2-6上可以看出,在流量相同的情況下,采用變頻調(diào)速控制比恒速泵控制節(jié)能效果明顯。</p><p> 圖2.3-1 變頻調(diào)速恒壓供水單臺(tái)水泵工況調(diào)節(jié)圖</p><p> 求出運(yùn)行在B點(diǎn)的泵的軸功率 <
34、;/p><p> 運(yùn)行在C點(diǎn)泵的軸功率 </p><p> 兩者之差 </p><p> 也就是說,采用閥門控制流量時(shí)有ΔV的功率被白白浪費(fèi)了,而且損耗閥門的關(guān)小而增加。相反,采用變頻調(diào)速控制水泵電機(jī)時(shí),當(dāng)轉(zhuǎn)速在允許范圍內(nèi)降低時(shí),功率以轉(zhuǎn)速的三次方下降,在可調(diào)節(jié)范圍內(nèi)與恒速泵供水方式中用閥門增加阻力的流量控制方式相比,節(jié)能效果顯著。</p&
35、gt;<p><b> 2.4 本章小結(jié)</b></p><p> 本章從水泵理論和管網(wǎng)特性曲線分析入手討論水泵工作點(diǎn)的確定方法。接著介紹了水泵工況調(diào)節(jié)的幾種常用方法。在變頻調(diào)速恒壓供水系統(tǒng)中,水泵工況的調(diào)節(jié)是通過改變水泵性能曲線得以實(shí)現(xiàn)的。本章重點(diǎn)對(duì)變頻調(diào)速恒壓供水系統(tǒng)中水泵能耗機(jī)理進(jìn)行深入研究,得到以下幾個(gè)結(jié)論:</p><p> a. 水泵
36、的工作點(diǎn)就是在同一坐標(biāo)系中水泵的性能曲線和管路性能曲線的交點(diǎn),水泵工作點(diǎn)是水泵運(yùn)行的理想工作點(diǎn),實(shí)際運(yùn)行時(shí)水泵的工作點(diǎn)并非總是固定不變的。</p><p> b. 水泵工況的調(diào)節(jié)就是采用改變管路性能曲線或改變水泵性能曲線的方法來移動(dòng)工作點(diǎn),使其符合要求。</p><p> 3 變頻恒壓調(diào)速供水系統(tǒng)硬件設(shè)計(jì)</p><p> 3.1 硬件總體說明</p
37、><p> 單片機(jī)系統(tǒng)的硬件結(jié)構(gòu)框架圖如圖3.1-1所示。</p><p> 本系統(tǒng)以8951單片機(jī)為核心,它有4KEPROM,所以不用外擴(kuò)EPROM,這樣可以利用P0、P2口作為輸入、輸出I/O口,簡(jiǎn)化了硬件結(jié)構(gòu)。系統(tǒng)的顯示采用4片74LS164驅(qū)動(dòng)LED,使用8951的串行通訊口TXD,DXD。93C46為串行EEPROM,用于保存開機(jī)設(shè)定的原始參數(shù)[5]。</p>&l
38、t;p> 圖3.1-1 系統(tǒng)硬件結(jié)構(gòu)框圖</p><p> 3.2 555定時(shí)器復(fù)位電路</p><p> 用NE555組成的硬件定時(shí)復(fù)位系統(tǒng),可以有效地防止程序死機(jī)現(xiàn)象。</p><p><b> NE555封裝</b></p><p> 圖3.2-1 NE555封裝圖</p>&l
39、t;p> 如圖3.2-1和圖3.2-2可知,NE555定時(shí)電路V0口輸出連續(xù)的脈沖信號(hào)至RST,達(dá)到定時(shí)復(fù)位的效果。電路使用電阻電容產(chǎn)生RC定時(shí)電路,用于設(shè)定脈沖的周 期和脈沖的寬度。調(diào)節(jié)RW或者電容C,可以得到不同的時(shí)間常數(shù)。</p><p> 脈沖寬度計(jì)算公式:TW =0.7(R1+RW+R2)C</p><p> 振蕩周期計(jì)算公式:T=0.7(R1+ RW+2*R2)C&
40、lt;/p><p> 從而通過控制振蕩周期和脈沖寬度就可以控制定時(shí)時(shí)間。</p><p><b> 內(nèi)部結(jié)構(gòu)圖</b></p><p> 圖3.2-2 NE555內(nèi)部結(jié)構(gòu)</p><p> 圖 3.2-3 NE555定時(shí)電路及工作波形</p><p> 3.3 LED數(shù)值顯示 D/A數(shù)
41、值采集 D/A數(shù)值反饋</p><p> 3.3.1 LED數(shù)值顯示模塊</p><p> 數(shù)碼管由7 個(gè)發(fā)光二極管組成,行成一個(gè)日字形,它門可以共陰極,也可以共陽極。通過解碼電路得到的數(shù)碼接通相應(yīng)的發(fā)光二極而形成相應(yīng)的字,這就是它的工作原理。基本的半導(dǎo)體數(shù)碼管是由7 個(gè)條狀的發(fā)光二極管(LED)按圖1 所示排列而成的,可實(shí)現(xiàn)數(shù)字"0~9"及少量字符的顯示。另外為
42、了顯示小數(shù)點(diǎn),增加了1 個(gè)點(diǎn)狀的發(fā)光二極管,因此數(shù)碼管就由8 個(gè)LED 組成,我們分別把這些發(fā)光二極管命名為"a,b,c,d,e,f,g,dp",排列順序如下圖3.3.1-1。</p><p> 圖3.3.1-1 共陰數(shù)碼管引腳圖</p><p> 3.3.2 數(shù)據(jù)采集A/D轉(zhuǎn)換電路 </p><p> a. AD0809的邏輯結(jié)構(gòu)&l
43、t;/p><p> ADC0809 是8位逐次逼近型A/D轉(zhuǎn)換器。它由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存譯碼器、一個(gè)A/D 轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成,如圖3.3.2-1。多路開關(guān)可選通8個(gè)模擬通道,允許8 路模擬量分時(shí)輸入,共用A/D 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D 轉(zhuǎn)換完的數(shù)字量,當(dāng)OE 端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。</p><p> 圖3.3.2
44、-1 AD0809內(nèi)部結(jié)構(gòu)</p><p> b. AD0809的工作原理</p><p> IN0-IN7:8 條模擬量輸入通道</p><p> ADC0809 對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是0-5V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路[6]。</p>
45、<p> c. AD0809轉(zhuǎn)換電路</p><p> 電路見圖3.3.2-2,主要由AD 轉(zhuǎn)換器AD0809,頻率發(fā)生器SUN7474,單片機(jī)AT89S51及顯示用數(shù)碼管組成。AD0809的啟動(dòng)方式為脈沖啟動(dòng)方式,啟動(dòng)信號(hào)START啟動(dòng)后開始轉(zhuǎn)換,EOC 信號(hào)在START 的下降沿10us后才變?yōu)闊o效的低電平。這要求查詢程序待EOC無效后再開始查詢,轉(zhuǎn)換完成后,EOC 輸出高電平,再由OE 變?yōu)楦?/p>
46、電平來輸出轉(zhuǎn)換數(shù)據(jù)。我們?cè)谠O(shè)計(jì)程序時(shí)可以利用EOC 信號(hào)來通知單片機(jī)(查詢法或中斷法)讀入已轉(zhuǎn)換的數(shù)據(jù),也可以在啟動(dòng)AD0809 后經(jīng)適當(dāng)?shù)难訒r(shí)再讀入已轉(zhuǎn)換的數(shù)據(jù)。AT89S51的輸出頻為晶振頻的1/6(2MHZ),AT89S1 與SUN7474連接經(jīng)與7474的ST腳提供AD0809 的工作時(shí)鐘。AD0809 的工作頻范圍為10KHZ-1280KHZ,當(dāng)頻率范圍為500KHZ 時(shí),其轉(zhuǎn)換速度為128us。</p><
47、;p> AD0809 的數(shù)據(jù)輸出公式為:Dout=Vin*255/5=Vin*51,其中Vin為輸入模擬電壓,Vout為輸出數(shù)據(jù)。</p><p> 圖3.3.2-2 A/D轉(zhuǎn)換電路</p><p> 4 變頻恒壓調(diào)速供水系統(tǒng)軟件設(shè)計(jì)</p><p><b> 4.1 編程軟件</b></p><p>
48、; 4.1.1 C051編譯器介紹</p><p> 現(xiàn)在比較流行的51系列編程軟件</p><p> a. American Automation:編譯器通過#asm和endasm預(yù)處理選擇支持匯編語言。</p><p> b. IAR: 瑞典的IAR是支持分體切換的編譯器。</p><p> c. Bso/Tasking:是I
49、ntel,LSI,Motorola,Philips,Simens和Texas Instruments嵌入式系統(tǒng)的配套軟件工具</p><p> d. Dunfield Shareware:非專業(yè)的軟件包,不支持floats,longs或結(jié)構(gòu)等</p><p> e. KEIL:KEIL在代碼生成方面處于領(lǐng)先地位,可以產(chǎn)生最少的代碼。它支持浮點(diǎn)或長(zhǎng)整數(shù)、重入和遞推。使用單片機(jī)模式,KEI
50、L是最好的選擇</p><p> f. Intermetrics:使用起來比較困難,要由可執(zhí)行的宏語句控制編譯、匯編和鏈接,且選項(xiàng)很多。</p><p> 編譯器的算法技術(shù)支持(float和long)很重要。生成代碼的大小比編譯速度重要,這里KEIL具有性能領(lǐng)先、緊湊的代碼和使用方便等優(yōu)點(diǎn),所以本系統(tǒng)用KEIL編譯器[7]。</p><p> 4.1.2 K
51、EIL編譯器</p><p> KEIL開發(fā)工具套件可用于編譯C源程序、匯編源程序、鏈接和定位目標(biāo)文件及庫(kù),創(chuàng)建HEX文件以及調(diào)試目標(biāo)程序。</p><p> a. uVision2 for Windows:是一個(gè)集成開發(fā)環(huán)境。它將項(xiàng)目管理、源代碼編輯和程序調(diào)試等組合在一個(gè)強(qiáng)大功能的環(huán)境中。</p><p> b. CX51國(guó)際標(biāo)準(zhǔn)優(yōu)化C交叉編譯器:從C源代碼
52、產(chǎn)生可重定位的目標(biāo)模塊。</p><p> c. AX51宏匯編器:從8051匯編源代碼產(chǎn)生可重定位的目標(biāo)模塊。</p><p> d. BL51鏈接器/定位器:組合有CX51和AX51產(chǎn)生的可重定位的目標(biāo)模塊,生成絕對(duì)目標(biāo)模塊。</p><p> e. LIB51庫(kù)管理器:從目標(biāo)模塊生成鏈接器可以使用的庫(kù)文件。</p><p> f
53、. OH51目標(biāo)文件至HEX格式的轉(zhuǎn)換器:從絕對(duì)目標(biāo)模塊生成Intel HEX文件。</p><p> g. RTX-51實(shí)時(shí)操作系統(tǒng):簡(jiǎn)化了復(fù)雜的實(shí)時(shí)應(yīng)用軟件項(xiàng)目的設(shè)計(jì)[8]。</p><p> 4.2 單片機(jī)資料</p><p> 單片微型計(jì)算機(jī)簡(jiǎn)稱為單片機(jī),有稱為微型控制器,是微型計(jì)算機(jī)的一個(gè)重要分支。單片機(jī)是70年代中期發(fā)展起來的一種大規(guī)模集成電路芯
54、片,是CPU、RAM、ROM、I/O接口和中斷系統(tǒng)于同一硅片的器件。80年代以來,單片機(jī)發(fā)展迅速,各類新產(chǎn)品不斷涌現(xiàn),出現(xiàn)了許多高性能新型機(jī)種,現(xiàn)已逐漸成為工廠自動(dòng)化和各控制領(lǐng)域的支柱產(chǎn)業(yè)之一。 </p><p> ALE/PROG 地址鎖存控制信號(hào):在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。ALE與74LS373鎖存器的G相連接,當(dāng)CPU對(duì)外部進(jìn)行存取時(shí)
55、,用以鎖住地址的低位地址,即P0口輸出。ALE有可能是高電平也有可能是低電平,當(dāng)ALE是高電平時(shí),允許地址鎖存信號(hào),當(dāng)訪問外部存儲(chǔ)器時(shí),ALE信號(hào)負(fù)跳變(即由正變負(fù))將P0口上低8位地址信號(hào)送入鎖存器。當(dāng)ALE是低電平時(shí),P0口上的內(nèi)容和鎖存器輸出一致。</p><p> 在沒有訪問外部存儲(chǔ)器期間,ALE以1/6振蕩周期頻率輸出(即6分頻),當(dāng)訪問外部存儲(chǔ)器以1/12振蕩周期輸出(12分頻)。當(dāng)系統(tǒng)沒有進(jìn)行擴(kuò)展
56、時(shí)ALE會(huì)以1/6振蕩周期的固定頻率輸出,因此可以做為外部時(shí)鐘,或者外部定時(shí)脈沖使用。 </p><p> PORG為編程脈沖的輸入端:在8051單片機(jī)內(nèi)部有一個(gè)4KB或8KB的程序存儲(chǔ)器(ROM),ROM的作用就是用來存放用戶需要執(zhí)行的程序的,通過編程脈沖輸入才能寫進(jìn)去的,這個(gè)脈沖的輸入端口就是PROG。 </p><p> EA/VPP 訪問和序存儲(chǔ)器控制信號(hào) </p>
57、;<p> a. 接高電平時(shí): CPU讀取內(nèi)部程序存儲(chǔ)器(ROM)。 </p><p> 擴(kuò)展外部ROM:當(dāng)讀取內(nèi)部程序存儲(chǔ)器超過0FFFH(8051)1FFFH(8052)時(shí)自動(dòng)讀取外部ROM。 </p><p> b. 接低電平時(shí):CPU讀取外部程序存儲(chǔ)器(ROM)。 在前面的學(xué)習(xí)中我們已知道,8031單片機(jī)內(nèi)部是沒有ROM的,那么在應(yīng)用8031單片機(jī)時(shí),這個(gè)腳是一
58、直接低電平的。 </p><p> c. 8051寫內(nèi)部EPROM時(shí),利用此腳輸入21V的燒寫電壓。 </p><p> RST 復(fù)位信號(hào):當(dāng)輸入的信號(hào)連續(xù)2個(gè)機(jī)器周期以上高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作,當(dāng)復(fù)位后程序計(jì)數(shù)器PC=0000H,即復(fù)位后將從程序存儲(chǔ)器的0000H單元讀取第一條指令碼。 </p><p> XTAL1和XTAL2 外
59、接晶振引腳。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。 </p><p> VCC:電源+5V輸入 </p><p> VSS:GND接地。 </p><p> AVR和pic都是跟8051結(jié)構(gòu)不同的8位單片機(jī),因?yàn)榻Y(jié)構(gòu)不同,所以匯編指令也有所不同,而且區(qū)別于使用CISC指令集的8051,他們都是RIS
60、C指令集的,只有幾十條指令,大部分指令都是單指令周期的指令,所以在同樣晶振頻率下,較8051速度要快。</p><p> ARM實(shí)際上就是32位的單片機(jī),它的內(nèi)部資源(寄存器和外設(shè)功能)較8051和PIC、AVR都要多得多,跟計(jì)算機(jī)的CPU芯片很接近了[9]。</p><p> 4.3 軟件的程序設(shè)計(jì)圖</p><p><b> a. 主程序框圖&
61、lt;/b></p><p> 圖 4.3-1 主程序流程圖</p><p> b. 繼電器控制子程序</p><p> 圖4.3-2 繼電器控制流程圖</p><p><b> c. A/D子程序</b></p><p> 圖4.3-3 A/D子程序流程圖</p>
62、;<p> d. PID控制子程序</p><p> 圖4.3-4 PID計(jì)算子程序流程圖</p><p><b> 5 結(jié)論</b></p><p> 本文在分析和比較用于供水行業(yè)的控制系統(tǒng)的發(fā)展和現(xiàn)狀的基礎(chǔ)上,結(jié)合我國(guó)供水的現(xiàn)狀,設(shè)計(jì)了一套一拖多的控制系統(tǒng),在這個(gè)畢業(yè)設(shè)計(jì)中有如下認(rèn)識(shí);</p><
63、;p> a. 在變頻調(diào)速恒壓供水系統(tǒng)中,單臺(tái)水泵工況的調(diào)節(jié)是通過變頻器來改變電源的頻率f,來改變電機(jī)的轉(zhuǎn)速n,從而改變水泵性能曲線得以實(shí)現(xiàn)的,分析水泵工況點(diǎn)激流調(diào)節(jié)和變速調(diào)節(jié)能耗比較土,可以看出利用變頻調(diào)速實(shí)現(xiàn)恒壓供水,當(dāng)轉(zhuǎn)速降低時(shí)。流量與轉(zhuǎn)速成正比,功率以轉(zhuǎn)速的三次方下降,與恒速泵供水方式中用閘閥增加阻力節(jié)流相比,在一定程度上可以減少能量損耗,能夠明顯節(jié)能。水泵轉(zhuǎn)速的工礦調(diào)節(jié)必須限制在一定范圍以內(nèi),也就是不要使變頻器頻率下降得
64、過低,避免水泵在低效率段運(yùn)行。</p><p> b. 通過對(duì)供水控制模式進(jìn)行分析,發(fā)現(xiàn)傳統(tǒng)的生產(chǎn)控制模式是一種被動(dòng)的控制方式,沒有對(duì)供水管網(wǎng)的水量平衡進(jìn)行綜合考慮。針對(duì)傳統(tǒng)控制模式的缺陷,提出了綜合考慮水壓和水量平衡的自適應(yīng)平衡調(diào)節(jié)方法,為該供水控制系統(tǒng)的設(shè)計(jì)提供了依據(jù)。</p><p> 附錄1: A/D數(shù)據(jù)采集轉(zhuǎn)化及顯示子程序</p><p> #inc
65、lude <at89x51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit st=P3^2;</p><p> sbit oe=P3^1;</p><p> sbit
66、eoc=P3^0;</p><p> uchar codetab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//數(shù)碼管顯示段碼</p><p> uchar codetd[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先擇數(shù)組</p><p>
67、uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0;</p><p> uchar m,number;</p><p> uchar x[8];//八通道數(shù)據(jù)待存數(shù)組</p><p> void delaynms(uint x);//nms延時(shí)程序</p><p> void displa
68、y();//顯示程序</p><p> void ad0809();//芯片啟動(dòng)程序</p><p> void key();//鍵掃描程序</p><p><b> main()</b></p><p><b> {</b></p><p><b> n
69、umber=1;</b></p><p><b> P1=0x00;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> ad0809();//調(diào)AD0809 啟動(dòng)子程序</p>
70、<p> key();//調(diào)按鍵子程序</p><p> ad_0809=x[number];//把相關(guān)通道數(shù)據(jù)給ad_0809</p><p> display();//調(diào)顯示</p><p><b> }}</b></p><p> //nms 延時(shí)程序</p><p>
71、 void delaynms(uint x)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> while(x-->0)</p><p><b> {</b></p><p> f
72、or(i=0;i<125;i++)</p><p><b> {;}}}</b></p><p> void display()</p><p><b> {</b></p><p><b> uchar a;</b></p><p>
73、ad_data1=(ad_0809*49/25)/100;//讀得的數(shù)據(jù)乘以2 再乘以98%除以100 得百位</p><p> ad_data2=((ad_0809*49/25)%100)/10;//讀得的數(shù)據(jù)乘以2 再乘以98%再分出十位</p><p> ad_data3=(((ad_0809*49/25)%100)%10);//讀得的數(shù)據(jù)乘以2 再乘以98%再分出個(gè)位</
74、p><p> for(a=0;a<10;a++)</p><p><b> {</b></p><p> P0=tab[ad_data3];//送小數(shù)點(diǎn)后第二位顯示</p><p> P2=0x07;//選通第一個(gè)數(shù)碼管</p><p> delaynms(3);</p>
75、<p> P0=tab[ad_data2];//送小數(shù)點(diǎn)后第一位顯示</p><p> P2=0x0b;//選通第二個(gè)數(shù)碼管</p><p> delaynms(3);</p><p> P0=tab[ad_data1];//送整數(shù)顯示</p><p> P0_7=0;//點(diǎn)亮第三個(gè)數(shù)碼管小數(shù)點(diǎn)</p>&
76、lt;p> P2=0x0d;// 選通第三個(gè)數(shù)碼管</p><p> delaynms(3);</p><p> P0=tab[number];//送通道號(hào)顯示</p><p><b> P2=0x0e;</b></p><p> delaynms(3);</p><p><
77、b> }}</b></p><p> void ad0809()</p><p><b> {</b></p><p> uchar i,m=1;</p><p> for(i=0;i<8;i++)</p><p><b> {</b>&l
78、t;/p><p> P0=td[i];//選通通道</p><p> oe=0;//以下三條指令為起動(dòng)AD0809</p><p><b> st=0;</b></p><p><b> st=1;</b></p><p><b> st=0;</b&g
79、t;</p><p> delaynms(1);</p><p> while(!eoc);//等待轉(zhuǎn)換結(jié)束</p><p> oe=1;//取出讀得的數(shù)據(jù)</p><p> x[m]=P2;//送相關(guān)通道數(shù)組</p><p><b> oe=0;</b></p><
80、p><b> m++;</b></p><p><b> }}</b></p><p> void key()</p><p><b> {</b></p><p> if(!P3_5)//P3.5 是否按下</p><p><b&
81、gt; {</b></p><p> delaynms(20);//延時(shí)判誤</p><p> if(!P3_5)//再一次判斷P3。5 是否按下</p><p><b> {</b></p><p> while(!P3_5);//等待P3。5 為高電平</p><p>
82、 number++;//通道號(hào)顯示加一</p><p> if(number>8)number=1;//八通道</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
83、; 附錄2: PID控制子程序</p><p> #include <stdio.h></p><p> #include<math.h></p><p> #include<at89x52.h></p><p> struct _pid {</p><p> int p
84、v; /*integer that contains the process value*/</p><p> int sp; /*integer that contains the set point*/</p><p> float integral;</p><p> float pgain;</p><p> float ig
85、ain;</p><p> float dgain;</p><p> int deadband;</p><p> int last_error;</p><p><b> };</b></p><p> struct _pid warm,*pid;</p><p&
86、gt; int process_point, set_point,dead_band; </p><p> float p_gain, i_gain, d_gain, integral_val,new_integ;; </p><p> /*------------------------------------------------------------------------
87、 </p><p><b> pid_init </b></p><p> DESCRIPTION This function initializes the pointers in the _pid structure </p><p> to the process variable and the setpoint. *pv and
88、 *sp are </p><p> integer pointers. </p><p> ------------------------------------------------------------------------*/ </p><p> void pid_init(struct _pid *warm, int process_poin
89、t, int set_point)</p><p><b> { </b></p><p> struct _pid *pid; </p><p> pid = warm; </p><p> pid->pv = process_point; </p><p> pid->s
90、p = set_point; </p><p><b> } </b></p><p> /*------------------------------------------------------------------------ </p><p><b> pid_tune </b></p>
91、<p> DESCRIPTION Sets the proportional gain (p_gain), integral gain (i_gain), </p><p> derivitive gain (d_gain), and the dead band (dead_band) of </p><p> a pid control structure _pid. &
92、lt;/p><p> ------------------------------------------------------------------------*/ </p><p> void pid_tune(struct _pid *pid, float p_gain, float i_gain, float d_gain, int dead_band) </p>
93、<p><b> { </b></p><p> pid->pgain = p_gain; </p><p> pid->igain = i_gain; </p><p> pid->dgain = d_gain; </p><p> pid->deadband = dead
94、_band; </p><p> pid->integral= integral_val; </p><p> pid->last_error=0; </p><p><b> } </b></p><p> /*--------------------------------------------
95、---------------------------- </p><p> pid_setinteg </p><p> DESCRIPTION Set a new value for the integral term of the pid equation. </p><p> This is useful for setting the initial
96、 output of the </p><p> pid controller at start up. </p><p> ------------------------------------------------------------------------*/ </p><p> void pid_setinteg(struct _pid *pi
97、d,float new_integ)</p><p><b> { </b></p><p> pid->integral = new_integ; </p><p> pid->last_error = 0; </p><p><b> } </b></p>&l
98、t;p> /*------------------------------------------------------------------------ </p><p> pid_bumpless </p><p> DESCRIPTION Bumpless transfer algorithim. When suddenly changing </p>
99、<p> setpoints, or when restarting the PID equation after an </p><p> extended pause, the derivative of the equation can cause </p><p> a bump in the controller output. This function wil
100、l help </p><p> smooth out that bump. The process value in *pv should </p><p> be the updated just before this function is used. </p><p> ----------------------------------------
101、--------------------------------*/ </p><p> void pid_bumpless(struct _pid *pid) </p><p><b> { </b></p><p> pid->last_error = (pid->sp)-(pid->pv); </p>
102、<p><b> } </b></p><p> /*------------------------------------------------------------------------ </p><p><b> pid_calc </b></p><p> DESCRIPTION Per
103、forms PID calculations for the _pid structure *a. This function uses the positional form of the pid equation, and incorporates an integral windup prevention algorithim. Rectangular integration is used, so this function m
104、ust be repeated on a consistent time basis for accurate control. </p><p> RETURN VALUE The new output value for the pid loop. </p><p> USAGE #include "control.h"*/ </p><p&
105、gt; float pid_calc(struct _pid *pid)</p><p><b> { </b></p><p><b> int err;</b></p><p> float pterm, dterm, result, ferror; </p><p> err = (
106、pid->sp) - (pid->pv); </p><p> if (abs(err) > pid->deadband) </p><p><b> { </b></p><p> ferror = (float) err; /*do integer to float conversion only once*/
107、 </p><p> pterm = pid->pgain * ferror; </p><p> if (pterm > 100 || pterm < -100)</p><p><b> {</b></p><p> pid->integral = 0.0; </p>&
108、lt;p><b> }</b></p><p><b> else </b></p><p><b> { </b></p><p> pid->integral += pid->igain * ferror; </p><p> if (pid-&
109、gt;integral > 100.0) </p><p><b> {</b></p><p> pid->integral = 100.0; </p><p><b> }</b></p><p> else if (pid->integral < 0.0) pi
110、d->integral = 0.0; </p><p><b> } </b></p><p> dterm = ((float)(err - pid->last_error)) * pid->dgain; </p><p> result = pterm + pid->integral + dterm; <
111、/p><p><b> } </b></p><p> else result = pid->integral; </p><p> pid->last_error = err; </p><p> return (result); </p><p><b> }<
112、;/b></p><p> void main(void)</p><p><b> {</b></p><p> float display_value;</p><p> int count=0;</p><p> pid = &warm;</p><
113、;p> // printf("Enter the values of Process point, Set point, P gain, I gain, D gain \n");</p><p> // scanf("%d%d%f%f%f", &process_point, &set_point, &p_gain, &i_gain,
114、 &d_gain);</p><p> process_point = 30;</p><p> set_point = 40;</p><p> p_gain = (float)(5.2);</p><p> i_gain = (float)(0.77);</p><p> d_gain = (fl
115、oat)(0.18);</p><p> dead_band = 2;</p><p> integral_val =(float)(0.01);</p><p> printf("The values of Process point, Set point, P gain, I gain, D gain \n");</p>
116、<p> printf(" %6d %6d %4f %4f %4f\n", process_point, set_point, p_gain, i_gain, d_gain);</p><p> printf("Enter the values of Process point\n");</p><p> while(count<
117、;=20)</p><p><b> {</b></p><p> Scanf("%d",&process_point);</p><p> pid_init(&warm, process_point, set_point);</p><p> pid_tune(&wa
118、rm, p_gain,i_gain,d_gain,dead_band);</p><p> pid_setinteg(&warm,0.0); //pid_setinteg(&warm,30.0);</p><p> //Get input value for process point</p><p> pid_bumpless(&wa
119、rm);</p><p> // how to display output</p><p> display_value = pid_calc(&warm); </p><p> printf("%f\n", display_value); </p><p> //printf("\n%f%f%
120、f%f",warm.pv,warm.sp,warm.igain,warm.dgain); </p><p><b> count++; </b></p><p><b> } </b></p><p><b> }</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒壓供水系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于單片機(jī)的恒壓供水系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)控制的高樓恒壓供水系統(tǒng)
- 畢業(yè)設(shè)計(jì)---單片機(jī)控制恒壓供水系統(tǒng)的設(shè)計(jì)論文
- 畢業(yè)論文——單片機(jī)恒壓供水系統(tǒng)的設(shè)計(jì)
- 基于單片機(jī)恒壓供水系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的恒壓供水系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的恒壓供水系統(tǒng)的設(shè)計(jì)【開題報(bào)告】
- 基于單片機(jī)的恒壓變頻供水系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的恒壓供水系統(tǒng)的設(shè)計(jì)【任務(wù)書】
- 基于單片機(jī)的恒壓變頻供水系統(tǒng)設(shè)計(jì)【開題報(bào)告】
- 畢業(yè)論文范文——單片機(jī)恒壓供水系統(tǒng)的設(shè)計(jì)
- 畢業(yè)論文范文——單片機(jī)恒壓供水系統(tǒng)的設(shè)計(jì)
- 基于單片機(jī)的恒壓變頻供水系統(tǒng)設(shè)計(jì)【任務(wù)書】
- 恒壓供水系統(tǒng)畢業(yè)設(shè)計(jì)
- 恒壓供水系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---恒壓供水系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于plc的恒壓供水系統(tǒng)設(shè)計(jì)
- 恒壓供水系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于plc的恒壓供水系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論