【計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)】基于樹(shù)莓派的智能家居系統(tǒng)

1恨豁、 需求分析

智能家居作為一個(gè)新生產(chǎn)業(yè)奠骄,處于一個(gè)導(dǎo)入期與成長(zhǎng)期的臨界點(diǎn),市場(chǎng)消費(fèi)觀念還未形成剩瓶,但隨著智能家居市場(chǎng)推廣普及的進(jìn)一步落實(shí)驹溃,培育起消費(fèi)者的使用習(xí)慣,智能家居市場(chǎng)的消費(fèi)潛力必然是巨大的儒搭,產(chǎn)業(yè)前景光明。 正因?yàn)槿绱塑狡叮瑖?guó)內(nèi)優(yōu)秀的智能家居生產(chǎn)企業(yè)愈來(lái)愈重視對(duì)行業(yè)市場(chǎng)的研究搂鲫,特別是對(duì)企業(yè)發(fā)展環(huán)境和客戶需求趨勢(shì)變化的深入研究,一大批國(guó)內(nèi)優(yōu)秀的智能家居品牌迅速崛起磺平,逐漸成為智能家居產(chǎn)業(yè)中的翹楚! 智能家居至今在中國(guó)已經(jīng)歷了近12年的發(fā)展魂仍,從人們最初的夢(mèng)想,到今天真實(shí)的走進(jìn)我們的生活拣挪,經(jīng)歷了一個(gè)艱難的過(guò)程擦酌。

智能家居在中國(guó)的發(fā)展經(jīng)歷的四個(gè)階段,分別是萌芽期菠劝、開(kāi)創(chuàng)期赊舶、徘徊期、融合演變期

1.1萌芽期/智能小區(qū)期(1994年-1999年)

這是智能家居在中國(guó)的第一個(gè)發(fā)展階段赶诊,整個(gè)行業(yè)還處在一個(gè)概念熟悉笼平、產(chǎn)品認(rèn)知的階段,這時(shí)沒(méi)有出現(xiàn)專業(yè)的智能家居生產(chǎn)廠商舔痪,只有深圳有一兩家從事美國(guó)X-10智能家居代理銷售的公司從事進(jìn)口零售業(yè)務(wù)寓调,產(chǎn)品多銷售給居住國(guó)內(nèi)的歐美用戶。

1.2開(kāi)創(chuàng)期(2000年-2005年)

國(guó)內(nèi)先后成立了五十多家智能家居研發(fā)生產(chǎn)企業(yè)锄码,主要集中在深圳夺英、上海、天津滋捶、北京痛悯、杭州、廈門等地重窟。智能家居的市場(chǎng)營(yíng)銷灸蟆、技術(shù)培訓(xùn)體系逐漸完善起來(lái),此階段,國(guó)外智能家居產(chǎn)品基本沒(méi)有進(jìn)入國(guó)內(nèi)市場(chǎng)炒考。

1.3徘徊期(2006-2010年)

2005年以后可缚,由于上一階段智能家居企業(yè)的野蠻成長(zhǎng)和惡性競(jìng)爭(zhēng),給智能家居行業(yè)帶來(lái)了極大的負(fù)面影響:包括過(guò)分夸大智能家居的功能而實(shí)際上無(wú)法達(dá)到這個(gè)效果斋枢、廠商只顧發(fā)展代理商卻忽略了對(duì)代理商的培訓(xùn)和扶持導(dǎo)致代理商經(jīng)營(yíng)困難帘靡、產(chǎn)品不穩(wěn)定導(dǎo)致用戶高投訴率。行業(yè)用戶瓤帚、媒體開(kāi)始質(zhì)疑智能家居的實(shí)際效果描姚,由原來(lái)的鼓吹變得謹(jǐn)慎,市場(chǎng)銷售也幾年出來(lái)增長(zhǎng)減緩甚至部分區(qū)域出現(xiàn)了銷售額下降的現(xiàn)象戈次。2005年-2007年轩勘,大約有20多家智能家居生產(chǎn)企業(yè)退出了這一市場(chǎng),各地代理商結(jié)業(yè)轉(zhuǎn)行的也不在少數(shù)怯邪。許多堅(jiān)持下來(lái)的智能家居企業(yè)绊寻,在這幾年也經(jīng)歷了縮減規(guī)模的痛苦。正在這一時(shí)期悬秉,國(guó)外的智能家居品牌卻暗中布局進(jìn)入了中國(guó)市場(chǎng)澄步,而活躍在市場(chǎng)上的國(guó)外主要智能家居品牌都是這一時(shí)期進(jìn)入中國(guó)市場(chǎng)的,如羅格朗和泌、霍尼韋爾村缸、施耐德、Control4等。國(guó)內(nèi)部分存活下來(lái)的企業(yè)也逐漸找到自己的發(fā)展方向,例如天津瑞朗肠槽,青島愛(ài)爾豪斯门坷,海爾,科道等,用X10,深圳索科特做了空調(diào)遠(yuǎn)程控制,成為工業(yè)智控的廠家百姓。

1.4 融合演變期(2011-2020年)

進(jìn)入2011年以來(lái),市場(chǎng)明顯看到了增長(zhǎng)的勢(shì)頭况木,而且大的行業(yè)背景是房地產(chǎn)受到調(diào)控垒拢。智能家居的放量增長(zhǎng)說(shuō)明智能家居行業(yè)進(jìn)入了一個(gè)拐點(diǎn),由徘徊期進(jìn)入了新一輪的融合演變期火惊∏罄啵  接下來(lái)的三到五年,智能家居一方面進(jìn)入一個(gè)相對(duì)快速的發(fā)展階段屹耐,另一方面協(xié)議與技術(shù)標(biāo)準(zhǔn)開(kāi)始主動(dòng)互通和融合尸疆,行業(yè)并購(gòu)現(xiàn)象開(kāi)始出來(lái)甚至成為主流。  接下來(lái)的五到十年寿弱,將是智能家居行業(yè)發(fā)展極為快速犯眠,但也是最不可琢磨的時(shí)期,由于住宅家庭成為各行業(yè)爭(zhēng)奪的焦點(diǎn)市場(chǎng)症革,智能家居作為一個(gè)承接平臺(tái)成為各方力量首先爭(zhēng)奪的目標(biāo)筐咧。誰(shuí)能最終勝出,我們可以作種種分析噪矛,但最終結(jié)果量蕊,也許只有到時(shí)才知。但不管如何發(fā)展艇挨,這個(gè)階段國(guó)內(nèi)將誕生多家年銷售額上百億元的智能家居企業(yè)残炮。

1.5 爆發(fā)期

進(jìn)入到2014年以來(lái),各大廠商已開(kāi)始密集布局智能家居缩滨,盡管從產(chǎn)業(yè)來(lái)看势就,業(yè)內(nèi)還沒(méi)有特別成功的案例顯現(xiàn),這預(yù)示著行業(yè)發(fā)展仍處于探索階段楷怒,但越來(lái)越多的廠商開(kāi)始介入和參與已使得外界意識(shí)到蛋勺,智能家居未來(lái)已不可逆轉(zhuǎn)瓦灶。

目前來(lái)看鸠删,智能家居經(jīng)過(guò)一年多產(chǎn)業(yè)磨合,已正處爆發(fā)前夜贼陶。業(yè)內(nèi)人士認(rèn)為刃泡,2015年隨著合作企業(yè)已普遍進(jìn)入到出成果時(shí)刻,智能家居新品將會(huì)層出不窮碉怔,業(yè)內(nèi)涌現(xiàn)的新案例也會(huì)越來(lái)越多烘贴。

1.6 智能家居現(xiàn)狀:

智能家居領(lǐng)域在國(guó)內(nèi)仍存在諸多瓶頸,如:缺乏殺手級(jí)應(yīng)用撮胧;標(biāo)準(zhǔn)不統(tǒng)一桨踪,包括網(wǎng)絡(luò)傳輸標(biāo)準(zhǔn)的不統(tǒng)一以及家電產(chǎn)品之間無(wú)法融合;仍然存在技術(shù)性問(wèn)題(包括人機(jī)交互技術(shù)芹啥、云計(jì)算锻离、大數(shù)據(jù)等)、缺乏各家電之間的互聯(lián)互通墓怀;產(chǎn)品價(jià)格太高汽纠;企業(yè)各自為政;產(chǎn)品功能相對(duì)單一傀履,產(chǎn)品同質(zhì)化很嚴(yán)重虱朵,功能雷同,創(chuàng)新不足;產(chǎn)品實(shí)用性差碴犬、用戶體驗(yàn)差絮宁;安全隱私等問(wèn)題。

在中國(guó)當(dāng)前的智能家居市場(chǎng)上翅敌,已經(jīng)有一大批國(guó)內(nèi)互聯(lián)網(wǎng)公司羞福,先后推出了機(jī)頂盒、路由器蚯涮、WIFI插座治专、智能開(kāi)關(guān)等智能家居產(chǎn)品。但縱觀市場(chǎng)遭顶,無(wú)論是智能化單品张峰,還是構(gòu)筑智能家居平臺(tái)和系統(tǒng),大多數(shù)的所謂智能化產(chǎn)品棒旗,還停留在“為智能化而智能化”喘批、“為了連接而連接”的層面,一些功能很明顯是為了傍上“智能產(chǎn)品”之名而設(shè)計(jì)铣揉,沒(méi)有找正用戶真正的“痛點(diǎn)”饶深,營(yíng)銷噱頭遠(yuǎn)遠(yuǎn)大于實(shí)用性,加上智能家居產(chǎn)品應(yīng)用場(chǎng)景較為固定逛拱,這也導(dǎo)致真正被消費(fèi)者接受和使用的少之又少敌厘。要解決智能家居普及的兩個(gè)問(wèn)題,一個(gè)是如何讓每個(gè)家電智能化朽合,二是如何讓每個(gè)家電互聯(lián)互通俱两,形成更智能的場(chǎng)景。

當(dāng)然曹步,不可否認(rèn)的是宪彩,智能家居將成為家電企業(yè)下一個(gè)競(jìng)爭(zhēng)的新戰(zhàn)場(chǎng)。在智能家居這個(gè)新硬件領(lǐng)域讲婚,真正可以實(shí)現(xiàn)產(chǎn)品市場(chǎng)規(guī)哪蚩祝化發(fā)展和引領(lǐng)市場(chǎng)潮流的或許還是傳統(tǒng)家電企業(yè)。目前傳統(tǒng)家電行業(yè)也正在逐步深入擁抱互聯(lián)網(wǎng)筹麸,產(chǎn)業(yè)的繁榮與發(fā)展最終也將為用戶帶來(lái)更好的體驗(yàn)活合。

1.7 國(guó)內(nèi)相關(guān)政策

截止2013年,全球范圍內(nèi)信息技術(shù)創(chuàng)新不斷加快竹捉,信息領(lǐng)域新產(chǎn)品芜辕、新服務(wù)、新業(yè)態(tài)大量涌現(xiàn)块差,不斷激發(fā)新的消費(fèi)需求侵续,成為日益活躍的消費(fèi)熱點(diǎn)倔丈。我國(guó)市場(chǎng)規(guī)模龐大,正處于居民消費(fèi)升級(jí)和信息化状蜗、工業(yè)化需五、城鎮(zhèn)化、農(nóng)業(yè)現(xiàn)代化加快融合發(fā)展的階段轧坎,信息消費(fèi)具有良好發(fā)展基礎(chǔ)和巨大發(fā)展?jié)摿暧省N覈?guó)政府為了推動(dòng)信息化、智能化城市發(fā)展也在2013年8月14日發(fā)表了關(guān)于促進(jìn)信息消費(fèi)擴(kuò)大內(nèi)需的若干意見(jiàn)缸血,大力測(cè)發(fā)展寬帶普及蜜氨、寬帶提速,加快推動(dòng)信息消費(fèi)持續(xù)增長(zhǎng)捎泻,這都為智能家居飒炎、物聯(lián)網(wǎng)行業(yè)的發(fā)展打下了堅(jiān)實(shí)的基礎(chǔ)。

政策摘要:增強(qiáng)信息產(chǎn)品供給能力

鼓勵(lì)智能終端產(chǎn)品創(chuàng)新發(fā)展笆豁。面向移動(dòng)互聯(lián)網(wǎng)郎汪、云計(jì)算、大數(shù)據(jù)等熱點(diǎn)闯狱,加快實(shí)施智能終端產(chǎn)業(yè)化工程煞赢,支持研發(fā)智能手機(jī)、智能電視等終端產(chǎn)品哄孤,促進(jìn)終端與服務(wù)一體化發(fā)展照筑。支持?jǐn)?shù)字家庭智能終端研發(fā)及產(chǎn)業(yè)化,大力推進(jìn)數(shù)字家庭示范應(yīng)用和數(shù)字家庭產(chǎn)業(yè)基地建設(shè)录豺。鼓勵(lì)整機(jī)企業(yè)與芯片朦肘、器件饭弓、軟件企業(yè)協(xié)作双饥,研發(fā)各類新型信息消費(fèi)電子產(chǎn)品。支持電信弟断、廣電運(yùn)營(yíng)單位和制造企業(yè)通過(guò)定制咏花、集中采購(gòu)等方式開(kāi)展合作,帶動(dòng)智能終端產(chǎn)品競(jìng)爭(zhēng)力提升阀趴,夯實(shí)信息消費(fèi)的產(chǎn)業(yè)基礎(chǔ)昏翰。

1.8 發(fā)展機(jī)遇

智慧家居是今后家居領(lǐng)域發(fā)展的必然趨勢(shì),雖然市場(chǎng)推廣才剛剛開(kāi)始刘急,但行業(yè)的競(jìng)爭(zhēng)已經(jīng)很激烈棚菊,光是寧波就有不下5家企業(yè)專門從事這方面開(kāi)發(fā)。

制造企業(yè)在產(chǎn)業(yè)調(diào)整和轉(zhuǎn)型中叔汁,都需要運(yùn)用到大數(shù)據(jù)统求。今后检碗,數(shù)據(jù)將成為推進(jìn)社會(huì)進(jìn)步的第四生產(chǎn)力。市場(chǎng)潛力巨大码邻,同時(shí)折剃,智慧家居所依托的大數(shù)據(jù)分析,也是傳統(tǒng)制造企業(yè)轉(zhuǎn)型升級(jí)的重要途徑像屋。

1.9發(fā)展

智能家居最初的發(fā)展主要以燈光遙控控制怕犁、電器遠(yuǎn)程控制和電動(dòng)窗簾控制為主,隨著行業(yè)的發(fā)展己莺,智能控制的功能越來(lái)越多奏甫,控制的對(duì)象不斷擴(kuò)展,控制的聯(lián)動(dòng)場(chǎng)景要求更高凌受,其不斷延伸到家庭安防報(bào)警扶檐、背景音樂(lè)、可視對(duì)講胁艰、門禁指紋控制等領(lǐng)域款筑,可以說(shuō)智能家居幾乎可以涵蓋所有傳統(tǒng)的弱電行業(yè),市場(chǎng)發(fā)展前景誘人腾么,因此和其產(chǎn)業(yè)相關(guān)的各路品牌不約而同加大力度爭(zhēng)奪智能家居業(yè)務(wù)奈梳,市場(chǎng)漸成春秋爭(zhēng)霸之勢(shì)。

圖1 智能家居市場(chǎng)規(guī)模

據(jù)《2015-2020年中國(guó)智能家居設(shè)備行業(yè)發(fā)展前景預(yù)測(cè)與投資機(jī)會(huì)分析報(bào)告》指出解虱,我國(guó)目前共有1億數(shù)量智能家居潛在用戶攘须,預(yù)計(jì)2020年智能家居產(chǎn)業(yè)規(guī)模將突破1萬(wàn)億元,硬件領(lǐng)域產(chǎn)業(yè)規(guī)模將占6000億殴泰,軟件規(guī)模將占4000億元于宙。

1.10 樹(shù)莓派在智能家居中的分析

隨著智能家居市場(chǎng)的迅猛發(fā)展,智能家居需求猛增悍汛,樹(shù)莓派在智能家居中得到了廣泛的應(yīng)用捞魁。

Raspberry Pi(中文名為“樹(shù)莓派”,簡(jiǎn)寫(xiě)為RPi,(或者RasPi / RPI) 是為學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)离咐,只有信用卡大小的微型電腦谱俭,其系統(tǒng)基于Linux。隨著Windows 10 IoT的發(fā)布宵蛀,我們也將可以用上運(yùn)行Windows的樹(shù)莓派昆著。
自問(wèn)世以來(lái),受眾多計(jì)算機(jī)發(fā)燒友和創(chuàng)客的追捧术陶,曾經(jīng)一“派”難求凑懂。別看其外表“嬌小”,內(nèi)“心”卻很強(qiáng)大梧宫,視頻接谨、音頻等功能通通皆有杭攻,可謂是“麻雀雖小,五臟俱全”疤坝。

樹(shù)莓派由注冊(cè)于英國(guó)的慈善組織“Raspberry Pi 基金會(huì)”開(kāi)發(fā)兆解,Eben·Upton/埃·厄普頓為項(xiàng)目帶頭人跑揉。2012年3月锅睛,英國(guó)劍橋大學(xué)埃本·阿普頓(Eben Epton)正式發(fā)售世界上最小的臺(tái)式機(jī),又稱卡片式電腦历谍,外形只有信用卡大小现拒,卻具有電腦的所有基本功能,這就是Raspberry Pi電腦板望侈,中文譯名"樹(shù)莓派"印蔬。這一基金會(huì)以提升學(xué)校計(jì)算機(jī)科學(xué)及相關(guān)學(xué)科的教育,讓計(jì)算機(jī)變得有趣為宗旨脱衙〗拟基金會(huì)期望這 一款電腦無(wú)論是在發(fā)展中國(guó)家還是在發(fā)達(dá)國(guó)家,會(huì)有更多的其它應(yīng)用不斷被開(kāi)發(fā)出來(lái)捐韩,并應(yīng)用到更多領(lǐng)域退唠。在2006年樹(shù)莓派早期概念是基于Atmel的 ATmega644單片機(jī),首批上市的10000“臺(tái)”樹(shù)莓派的“板子”荤胁,由中國(guó)臺(tái)灣和大陸廠家制造瞧预。

它是一款基于ARM的微型電腦主板,以SD/MicroSD卡為內(nèi)存硬盤仅政,卡片主板周圍有1/2/4個(gè)USB接口和一個(gè)10/100 以太網(wǎng)接口(A型沒(méi)有網(wǎng)口)垢油,可連接鍵盤、鼠標(biāo)和網(wǎng)線圆丹,同時(shí)擁有視頻模擬信號(hào)的電視輸出接口和HDMI高清視頻輸出接口滩愁,以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能只需接通電視機(jī)和鍵盤运褪,就能執(zhí)行如電子表格惊楼、文字處理玖瘸、玩游戲、播放高清視頻等諸多功能。 Raspberry Pi B款只提供電腦板岛抄,無(wú)內(nèi)存挨队、電源、鍵盤蔑匣、機(jī)箱或連線劣欢。

樹(shù)莓派的生產(chǎn)是通過(guò)有生產(chǎn)許可的三家公司Element 14/Premier Farnell棕诵、RS Components及Egoman。這三家公司都在網(wǎng)上出售樹(shù)莓派≡浣現(xiàn)在校套,你可以在諸如京東、淘寶等國(guó)內(nèi)網(wǎng)站購(gòu)買到你所想要的樹(shù)莓派牧抵。

樹(shù)莓派基金會(huì)提供了基于ARM的Debian和Arch Linux的發(fā)行版供大眾下載笛匙。還計(jì)劃提供支持Python作為主要編程語(yǔ)言,支持Java犀变、BBC BASIC (通過(guò) RISC OS 映像或者Linux的"Brandy Basic"克隆)妹孙、C 和Perl等編程語(yǔ)言.

樹(shù)莓派早期有A和B兩個(gè)型號(hào),主要區(qū)別:A型:1個(gè)USB获枝、無(wú)有線網(wǎng)絡(luò)接口蠢正、功率2.5W,500mA、256MB RAM省店;B型:2個(gè)USB嚣崭、支持有線網(wǎng)絡(luò)、功率3.5W懦傍,700mA有鹿、512MB RAM。

2014年7月和11月樹(shù)莓派分別推出B+和A+兩個(gè)型號(hào) 谎脯,主要區(qū)別:Model A沒(méi)有網(wǎng)絡(luò)接口葱跋,將4個(gè)USB端口縮小到1個(gè)。另外源梭,相對(duì)于Model B來(lái)講娱俺,Model A內(nèi)存容量有所縮小,并具備了更小的尺寸設(shè)計(jì)废麻。Model A可以說(shuō)是Model B廉價(jià)版本荠卷。雖說(shuō)是廉價(jià)版本,但新型號(hào)Model A也支持同Model B一樣的MicroSD卡讀卡器烛愧、40-pin的GPI連接端口油宜、博通BCM2385 ARM11處理器、256MB的內(nèi)存和HDMI輸出端口怜姿。[樹(shù)莓派model B+ 和A+兩個(gè)型號(hào) 慎冤,主要區(qū)別:Model A沒(méi)有網(wǎng)絡(luò)接口,將4個(gè)USB端口縮小到1個(gè)沧卢。另外蚁堤,相對(duì)于Model B來(lái)講,Model A內(nèi)存容量有所縮小但狭,并具備了更小的尺寸設(shè)計(jì)披诗。Model A可以說(shuō)是Model B廉價(jià)版本撬即。雖說(shuō)是廉價(jià)版本,但新型號(hào)Model A也支持同Model B一樣的MicroSD卡讀卡器呈队、40-pin的GPI連接端口剥槐、博通BCM2385 ARM11處理器、256MB的內(nèi)存和HDMI輸出端口宪摧。
從配置上來(lái)說(shuō)才沧,model B+使用了和model B相同的BCM2835芯片和512MB內(nèi)存,但和前代產(chǎn)品相比較绍刮,B+版本的功耗更低温圆,接口也更豐富。model B+將通用輸入輸出引腳增加到了40個(gè)孩革,USB接口也從B版本的2個(gè)增加到了4個(gè)岁歉,除此之外,model B+的功耗降低了約0.5W到1W膝蜈,舊款的SD卡插槽被換成了更美觀的推入式microSD卡槽锅移,音頻部分則采用了低噪供電。從外形上來(lái)看饱搏,USB接口被移到了主板的一邊非剃,復(fù)合視頻移到了3.5mm音頻口的位置,此外還增加了四個(gè)獨(dú)立的安裝孔推沸。

就像其他任何一臺(tái)運(yùn)行Linux 系統(tǒng)的臺(tái)式計(jì)算機(jī)或者便攜式計(jì)算機(jī)那樣备绽,利用Raspberry Pi 可以做很多事情。當(dāng)然鬓催,也難免有一點(diǎn)點(diǎn)不同肺素。普通的計(jì)算機(jī)主板都是依靠硬盤來(lái)存儲(chǔ)數(shù)據(jù),但是Raspberry Pi 來(lái)說(shuō)使用SD 卡作為“硬盤”宇驾,你也可以外接USB 硬盤倍靡。利用Raspberry Pi 可以編輯Office 文檔、瀏覽網(wǎng)頁(yè)课舍、玩游戲—即使玩需要強(qiáng)大的圖形加速器支持的游戲也沒(méi)有問(wèn)題塌西。

Raspberry Pi 的低價(jià)意味著其用途更加廣泛,將其打造成卓越的多媒體中心也是一個(gè)不錯(cuò)的選擇筝尾。利用Raspberry Pi 可以播放視頻捡需,甚至可以通過(guò)電視機(jī)的USB 接口供電。

基于樹(shù)莓派的智能家居以其方便編程忿等、容易改造栖忠、能發(fā)揮創(chuàng)造力、價(jià)格低廉的優(yōu)勢(shì)扮演著及其重要的角色贸街。

2庵寞、 項(xiàng)目?jī)?nèi)容

本項(xiàng)目完全基于樹(shù)莓派,Raspberry Pi 3 的硬件接口通過(guò)開(kāi)發(fā)板上的 40 排針 J8 公開(kāi)薛匪。功能包括:

2.1 超聲波測(cè)距捐川,檢測(cè)是否有人

2.1.1 硬件準(zhǔn)備

HC-SR04超聲波模塊

2.1.2 管腳介紹

VCC,超聲波模塊電源腳,接5V電源即可
Trig逸尖,超聲波發(fā)送腳古沥,高電平時(shí)發(fā)送出40KHZ出超聲波
Echo,超聲波接收檢測(cè)腳娇跟,當(dāng)接收到返回的超聲波時(shí)岩齿,輸出高電平
GND,超聲波模塊GND

2.1.3 接線
  • 樹(shù)莓派第2只腳為5V苞俘,給超聲波模塊供電盹沈,接VCC
  • 樹(shù)莓派第39只腳為GND,與超聲波模塊共地接GND
  • 樹(shù)莓派第1吃谣、3只腳分別為GPIO2和GPIO3乞封,分別作發(fā)送和接收用,分別與Trig和Echo相連接岗憋。
2.1.4 控制代碼(Python2)
1.  #! /usr/bin/python
2.  # -*- coding:utf-8 -*-
3.  import RPi.GPIO as GPIO
4.  import time
5.  def checkdist():
6.          #發(fā)出觸發(fā)信號(hào)
7.          GPIO.output(2,GPIO.HIGH)
8.          #保持15us的超聲波發(fā)射肃晚,避免能量太低無(wú)法返回
9.          time.sleep(0.000015)
10.         #然后置位2號(hào)管腳低電平,即停止發(fā)射超聲波
11.         GPIO.output(2,GPIO.LOW)
12.         while not GPIO.input(3):
13.                pass
14.         #發(fā)現(xiàn)高電平時(shí)開(kāi)時(shí)計(jì)時(shí)
15.         t1 = time.time()
16.         #如果有檢測(cè)到反射返回的超聲波仔戈,那么就持續(xù)計(jì)時(shí)关串,否則就跳出循環(huán),計(jì)時(shí)結(jié)束
17.         while GPIO.input(3):
18.                 pass
19.         #高電平結(jié)束停止計(jì)時(shí)
20.         t2 = time.time()
21.         #返回距離监徘,單位為米
22.         return (t2-t1)*340/2
23. GPIO.setmode(GPIO.BCM)
24. #第3號(hào)針悍缠,GPIO2
25. GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
26. #第5號(hào)針,GPIO3
27. GPIO.setup(3,GPIO.IN)
28. time.sleep(2)
29. try:
30.         while True:
31.                 print 'Distance: %0.2f m' %checkdist()
32.                 time.sleep(0.5)
33. except KeyboardInterrupt:
34.         GPIO.cleanup()
2.1.5 效果展示

在實(shí)際應(yīng)用中耐量,我們通過(guò)將超聲波模塊固定于房門口頂部的墻壁上飞蚓,因?yàn)轫敳康降撞康木嚯x一定,所以當(dāng)有人來(lái)的時(shí)候就會(huì)阻礙超聲波的傳輸廊蜒,從而使得測(cè)得的距離產(chǎn)生極大的變化趴拧。通過(guò)下面建立的控制模型進(jìn)行開(kāi)關(guān)門的執(zhí)行動(dòng)作。

2.2 樹(shù)莓派溫度控制

如果樹(shù)莓派運(yùn)行負(fù)載較高山叮,那么CPU可能會(huì)存在過(guò)熱的風(fēng)險(xiǎn)著榴,為了延長(zhǎng)設(shè)備壽命,我們需要對(duì)樹(shù)莓派的CPU及其周邊設(shè)備進(jìn)行溫度控制屁倔,方法是通過(guò)風(fēng)控脑又。即通過(guò)檢測(cè)樹(shù)莓派的溫度,然后經(jīng)由PID算法調(diào)節(jié)散熱風(fēng)扇電機(jī)的輸出功率來(lái)調(diào)節(jié)CPU的溫度至一個(gè)較“健康的”范圍。

2.2.1 硬件準(zhǔn)備

RK-380PH-4733高速微型直流電機(jī)问麸,L298N電機(jī)驅(qū)動(dòng)板模塊往衷、18650 4800mA鋰電池


2.2.2 布線分析
  • 電源部分:
    12v power : 接 7~ 12 v 直流電源,4 節(jié)干電池組就可以严卖。接 5v (如樹(shù)莓派 GPIO口 輸出的5v)不知道能不能帶動(dòng)席舍。
    Power GND : 接直流電源地,和樹(shù)莓派的 GPIO 地哮笆。
    5v power: 這個(gè) 5v 是輸出的来颤,給樹(shù)莓派供電用的。不推薦使用稠肘,因?yàn)闃?shù)莓派和 L298n 最好分開(kāi)供電福铅。分開(kāi)供電的話這個(gè)腳懸空就行了!

  • 輸入部分
    A Enable : 接 GPIO 口 项阴。 電機(jī) A 使能和 PWM 調(diào)速滑黔。
    Logic Input : 接 4 個(gè) GPIO 口。 上面兩個(gè)腳 Input1 鲁冯、Input2 (靠近 A Enable )控制電機(jī) A ; 下面兩個(gè)腳 Input## 3拷沸、Input4 (靠近 B Enable)控制電機(jī) B。
    B Enable : 接 GPIO口薯演。 電機(jī) B 使能和 PWM 調(diào)速撞芍。

  • 輸出部分:
    Output A : 接電機(jī) A 。
    Output B : 接電機(jī) B 跨扮。

把 L289N 的直流電源接好序无,然后把樹(shù)莓派的 GND 與 L298N 的 GND 連在一起,因?yàn)楣驳睾?L298N 才能識(shí)別樹(shù)莓派發(fā)送的 IN## 1衡创、IN2 到底是高電平還是低電平帝嗡。 樹(shù)莓派的 ## 2、## 3璃氢、4 腳分別連到 A Enable哟玷、IN1 、IN2 一也。由控制表可知給 2 腳高電平巢寡,3 腳高電平,4 腳低電平椰苟,電機(jī)就會(huì)正轉(zhuǎn)抑月。通過(guò)電機(jī)帶動(dòng)風(fēng)扇,用PWM來(lái)調(diào)節(jié)風(fēng)速舆蝴,改善樹(shù)莓派的CPU溫度谦絮,從而能夠?qū)崿F(xiàn)對(duì)溫度的定性調(diào)節(jié)题诵。

2.2.3 控制代碼

控制代碼分三種,一種改變Kp层皱,在確定Kp的最佳參數(shù)為0.192左右之后性锭,調(diào)至0.83倍,令Kp=0.16奶甘,然后調(diào)節(jié)Ki從0.01-0.2改變篷店,最后調(diào)節(jié)至0.05附近最佳祭椰,最后確定Kd臭家,

####    Just_Changed_Kp.py   ####
1.    #coding: UTF-8
2.  import RPi.GPIO as GPIO
3.  import time
4.  import sys
5.  
6.  GPIO.setmode(GPIO.BCM)
7.  GPIO.setup(2,GPIO.OUT)
8.  GPIO.setup(3,GPIO.OUT)
9.  GPIO.setup(4,GPIO.OUT)
10. pwm=GPIO.PWM(2,80)
11. pwm.start(20)
12. GPIO.output(3,True)
13. GPIO.output(4,False)
14. file=open("/sys/class/thermal/thermal_zone0/temp")
15. Real_T=float(file.read())/1000
16. file.close()
17. Ideal_T=float(sys.argv[2])
18. Delta=[0.6]
19. Kp=float(sys.argv[1])
20. Ti=100000
21. Td=0
22. Output_PWM=5
23. # times=0
24. def All_of_List(a):
25.     s=0
26.     for i in range(len(a)):
27.         s=s+a[i]
28.     return s
29. 
30. def Real_Temp():
31.     file=open("/sys/class/thermal/thermal_zone0/temp")
32.     global Real_T
33.     Real_T=float(file.read())/1000
34.     file.close()
35. 
36. def Init(): 
37.     Real_Temp()
38.     # global Ideal_T
39.     # Ideal_T=33
40.     global Delta
41.     Delta=[0.5]
42.     global Output_PWM
43.     Output_PWM=5
44. 
45. def update_Output(Time_Gap,Kp):
46.     global Ideal_T
47.     global Delta
48.     global Ti
49.     global Td
50.     global Output_PWM
51.     global Real_T
52.     P=Kp
53.     I=Time_Gap/Ti
54.     D=Td/Time_Gap
55.     Increase=0
56.     Real_Temp()
57.     Delta.append(Real_T-Ideal_T)
58.     # if Delta[-1]>-0.5 and Delta[-1]<0.5:
59.     Increase=P*(Delta[-1] + I * All_of_List(Delta) + D * (Delta[-1]-Delta[-2]))
60.     Output_PWM=Output_PWM+Increase
61.     if Output_PWM>100:
62.         Output_PWM=100
63.     elif Output_PWM<10:
64.         Output_PWM=10
65. 
66. Usage_time=[]
67. # times=0
68. 
69. def Find_Kp(Kp):
70.     times=0
71.     while True:
72.         times=times+1
73.         # if(times>100):
74.         # times=0
75.         # Init()
76.         Time_Gap=1
77.         time.sleep(Time_Gap)
78.         if Delta[-1]<0.4 and Delta[-1]>-0.4 and times>100:
79.             Usage_time.append(times)
80.             print times
81.             break
82.         update_Output(Time_Gap,Kp)
83.         global Output_PWM
84.         pwm.ChangeDutyCycle(Output_PWM)
85.         print "%d:Temp %0.3f,Speed %0.3f"%(times,Real_T,Output_PWM)
86.     pwm.ChangeDutyCycle(10)
87. # delay=0
88. 
89.     # pwm.ChangeDutyCycle(0)
90. #TryTime=10
91. #while TryTime>0:
92. #    Real_Temp()
93.  #   while Real_T<32:
94.   #      pass
95.     # time.sleep(1)
96. #for i in range(2,6):
97. #   Kp=float(i/10)
98. print "Now the Kp:%f0.3"%Kp
99.  #   Init()
100.    #   while True:
101.    #   Real_Temp()
102.    #   while Real_T<32:
103.    #       pass
104.    
105.    Find_Kp(Kp)
106.        #break
107.    print "\n"
108.      #  Kp=1.2*Kp
109.      #  TryTime=TryTime-1
####    Just_Changed_Ki.py   ####
1.   #coding: UTF-8
2.  import RPi.GPIO as GPIO
3.  import time
4.  import sys
5.  
6.  GPIO.setmode(GPIO.BCM)
7.  GPIO.setup(2,GPIO.OUT)
8.  GPIO.setup(3,GPIO.OUT)
9.  GPIO.setup(4,GPIO.OUT)
10. pwm=GPIO.PWM(2,80)
11. pwm.start(20)
12. GPIO.output(3,True)
13. GPIO.output(4,False)
14. file=open("/sys/class/thermal/thermal_zone0/temp")
15. Real_T=float(file.read())/1000
16. file.close()
17. Ideal_T=float(sys.argv[2])
18. Delta=[0.6]
19. Kp=0.16
20. Ti=float(sys.argv[1])
21. Td=0
22. Output_PWM=5
23. # times=0
24. def All_of_List(a):
25.     s=0
26.     for i in range(len(a)):
27.         s=s+a[i]
28.     return s
29. 
30. def Real_Temp():
31.     file=open("/sys/class/thermal/thermal_zone0/temp")
32.     global Real_T
33.     Real_T=float(file.read())/1000
34.     file.close()
35. 
36. def Init(): 
37.     Real_Temp()
38.     # global Ideal_T
39.     # Ideal_T=33
40.     global Delta
41.     Delta=[0.5]
42.     global Output_PWM
43.     Output_PWM=5
44. 
45. def update_Output(Time_Gap,Kp):
46.     global Ideal_T
47.     global Delta
48.     global Ti
49.     global Td
50.     global Output_PWM
51.     global Real_T
52.     P=Kp
53.     I=Time_Gap/Ti
54.     D=Td/Time_Gap
55.     Increase=0
56.     Real_Temp()
57.     Delta.append(Real_T-Ideal_T)
58.     # if Delta[-1]>-0.5 and Delta[-1]<0.5:
59.     Increase=P*(Delta[-1] + I * All_of_List(Delta) + D * (Delta[-1]-Delta[-2]))
60.     Output_PWM=Output_PWM+Increase
61.     if Output_PWM>100:
62.         Output_PWM=100
63.     elif Output_PWM<10:
64.         Output_PWM=10
65. 
66. Usage_time=[]
67. # times=0
68. 
69. def Find_Ki(Kp):
70.     times=0
71.     while True:
72.         times=times+1
73.         # if(times>100):
74.         # times=0
75.         # Init()
76.         Time_Gap=1
77.         time.sleep(Time_Gap)
78.         if Delta[-1]<0.4 and Delta[-1]>-0.4 and times>150:
79.             Usage_time.append(times)
80.             print times
81.             break
82.         update_Output(Time_Gap,Kp)
83.         global Output_PWM
84.         pwm.ChangeDutyCycle(Output_PWM)
85.         print "%d:Temp %0.3f,Speed %0.3f"%(times,Real_T,Output_PWM)
86.     pwm.ChangeDutyCycle(10)
87. # delay=0
88. 
89.     # pwm.ChangeDutyCycle(0)
90. #TryTime=10
91. #while TryTime>0:
92. #    Real_Temp()
93.  #   while Real_T<32:
94.   #      pass
95.     # time.sleep(1)
96. #for i in range(2,6):
97. #   Kp=float(i/10)
98. print "Now the Ki:%0.3f"%(1/Ti)
99.  #   Init()
100.    #   while True:
101.    #   Real_Temp()
102.    #   while Real_T<32:
103.    #       pass
104.    
105.    Find_Ki(Kp)
106.        #break
107.    print "\n"
108.      #  Kp=1.2*Kp
109.      #  TryTime=TryTime-1
####    Just_Changed_Kd.py   ####
1.  #coding: UTF-8
2.  import RPi.GPIO as GPIO
3.  import time
4.  import sys

5.  GPIO.setmode(GPIO.BCM)
6.  GPIO.setup(2,GPIO.OUT)
7.  GPIO.setup(3,GPIO.OUT)
8.  GPIO.setup(4,GPIO.OUT)
9.  pwm=GPIO.PWM(2,80)
10. pwm.start(20)
11. GPIO.output(3,True)
12. GPIO.output(4,False)
13. file=open("/sys/class/thermal/thermal_zone0/temp")
14. Real_T=float(file.read())/1000
15. file.close()
16. Ideal_T=float(sys.argv[2])
17. Delta=[0.6]
18. Kp=0.16
19. Ti=0.05
20. Td=float(sys.argv[1])
21. Output_PWM=5
22. # times=0
23. def All_of_List(a):
24. s=0
25. for i in range(len(a)):
26. s=s+a[i]
27. return s

28. def Real_Temp():
29. file=open("/sys/class/thermal/thermal_zone0/temp")
30. global Real_T
31. Real_T=float(file.read())/1000
32. file.close()

33. def Init():
34. Real_Temp()
35. # global Ideal_T
36. # Ideal_T=33
37. global Delta
38. Delta=[0.5]
39. global Output_PWM
40. Output_PWM=5

41. def update_Output(Time_Gap,Kp):
42. global Ideal_T
43. global Delta
44. global Ti
45. global Td
46. global Output_PWM
47. global Real_T
48. P=Kp
49. I=Time_Gap/Ti
50. D=Td/Time_Gap
51. Increase=0
52. Real_Temp()
53. Delta.append(Real_T-Ideal_T)
54. # if Delta[-1]>-0.5 and Delta[-1]<0.5:
55. Increase=P*(Delta[-1] + I * All_of_List(Delta) + D * (Delta[-1]-Delta[-2]))
56. Output_PWM=Output_PWM+Increase
57. if Output_PWM>100:
58. Output_PWM=100
59. elif Output_PWM<10:
60. Output_PWM=10

61. Usage_time=[]
62. # times=0

63. def Find_Kp(Kp):
64. times=0
65. while True:
66. times=times+1
67. # if(times>100):
68. # times=0
69. # Init()
70. Time_Gap=1
71. time.sleep(Time_Gap)
72. if Delta[-1]<0.4 and Delta[-1]>-0.4 and times>150:
73. Usage_time.append(times)
74. print times
75. break
76. update_Output(Time_Gap,Kp)
77. global Output_PWM
78. pwm.ChangeDutyCycle(Output_PWM)
79. print "%d:Temp %0.3f,Speed %0.3f"%(times,Real_T,Output_PWM)
80. pwm.ChangeDutyCycle(10)
81. # delay=0

82. # pwm.ChangeDutyCycle(0)
83. #TryTime=10
84. #while TryTime>0:
85. #    Real_Temp()
86. #   while Real_T<32:
87. #      pass
88. # time.sleep(1)
89. #for i in range(2,6):
90. #   Kp=float(i/10)
91. print "Now the Ki:%0.3f"%(1/Ti)
92. #   Init()
93. #   while True:
94. #   Real_Temp()
95. #   while Real_T<32:
96. #       pass

97. Find_Kp(Kp)
98. #break
99. print "\n"
100.    #  Kp=1.2*Kp
101.    #  TryTime=TryTime-1
2.2.4 獲取的數(shù)據(jù)和圖像及數(shù)據(jù)處理

數(shù)據(jù)見(jiàn)附件,log可以直接查看方淤,mat后綴文件為Matlab變量空間形式钉赁。下面是圖片附圖:

第一組:改變Kp


第二組:改變Ki

上圖為后來(lái)補(bǔ)測(cè)的,電池電壓較低携茂,數(shù)據(jù)不是很準(zhǔn)確你踩,應(yīng)該丟棄!

第三組:改變Kd

在實(shí)驗(yàn)過(guò)程中使用18650鋰電池會(huì)隨著時(shí)間的推移而逐漸降低電壓讳苦。所以后面的數(shù)據(jù)相對(duì)前面沒(méi)那么準(zhǔn)確带膜。因?yàn)殡姍C(jī)同樣的占空比下輸出的功率是不一樣的。不過(guò)我們可以大致看出一個(gè)趨勢(shì)鸳谜,因?yàn)橄嗤囊唤M數(shù)據(jù)膝藕,基本上都是在差不多同一個(gè)時(shí)間范圍內(nèi)測(cè)試的。

首先我們分析Kp也就是比例系數(shù)咐扭。從上面的數(shù)據(jù)我們可以看到芭挽,其接近平穩(wěn)的程度是隨著從0.15到0.6的過(guò)程中先上后下的。最終穩(wěn)定下的風(fēng)速占空比應(yīng)該是30%到40%之間蝗肪。所以我們可以很清晰的看到Kp在0.2左右的時(shí)候有比較好的效果袜爪,而且其最大超調(diào)量變比較小。

而對(duì)于積分系數(shù)Ki由于其電量不是非常足薛闪。所以稍有波動(dòng)辛馆。但是也大概看出在0.05左右有對(duì)靜差調(diào)節(jié)的最好效果。

而對(duì)于微分系數(shù)Kd的調(diào)節(jié)豁延,由于是第二天進(jìn)行的實(shí)驗(yàn)昙篙,環(huán)境溫度變化較大,并且電池經(jīng)過(guò)一晚的充電术浪,相同占空比的輸出功率產(chǎn)生了變化瓢对。所以僅參考趨勢(shì),不對(duì)具體的數(shù)據(jù)做過(guò)多要求胰苏,另外由于樹(shù)莓派CPU的溫度變化稍有延遲硕蛹,所以沒(méi)法精確地讀出細(xì)微的溫度變化趨勢(shì)。不過(guò)仍然可以看到,在Kd=0.2附近法焰,即將形成第三個(gè)波峰秧荆,說(shuō)明其穩(wěn)定速度是所有的參數(shù)中最快的。所以我們簡(jiǎn)單取Kd=0.2埃仪。
最后的結(jié)果是:Kp=0.192乙濒,Ki=0.05,Kd=0.2卵蛉。圖像本來(lái)應(yīng)該最后的輸出風(fēng)速趨于穩(wěn)定的颁股,但是因?yàn)殡姵仉娏坑邢蓿绻鹊阶詈筝敵龇€(wěn)定傻丝,進(jìn)行試驗(yàn)的時(shí)間會(huì)延長(zhǎng)太多甘有,所以請(qǐng)老師見(jiàn)諒了。

3葡缰、 技術(shù)難點(diǎn)(PID控制過(guò)程)

3.1 目的:

樹(shù)莓派工作過(guò)程中溫度會(huì)升高亏掀,為了保持正常的工作溫度:如34℃,需要根據(jù)溫度調(diào)節(jié)散熱風(fēng)扇的轉(zhuǎn)速加強(qiáng)或減弱散熱作用以保證恒定的溫度泛释。

3.2原理:

在過(guò)程控制中滤愕,按偏差的比例(P)愧驱、積分(I)和微分(D)進(jìn)行控制的PID控制器(亦稱PID調(diào)節(jié)器)是應(yīng)用最為廣泛的一種自動(dòng)控制器爵憎。它具有原理簡(jiǎn)單走诞,易于實(shí)現(xiàn)兼吓,適用面廣花颗,控制參數(shù)相互獨(dú)立笛质,參數(shù)的選定比較簡(jiǎn)單等優(yōu)點(diǎn)汽纤;而且在理論上可以證明瑞筐,對(duì)于過(guò)程控制的典型對(duì)象──“一階滯后+純滯后”與“二階滯后+純滯后”的控制對(duì)象胰丁,PID控制器是一種最優(yōu)控制随橘。PID調(diào)節(jié)規(guī)律是連續(xù)系統(tǒng)動(dòng)態(tài)品質(zhì)校正的一種有效方法,它的參數(shù)整定方式簡(jiǎn)便锦庸,結(jié)構(gòu)改變靈活(PI机蔗、PD、…)甘萧。PID是比例萝嘁、積分、微分的縮寫(xiě)扬卷,將偏差的比例(P)牙言、積分(I)和微分(D)通過(guò)線性組合構(gòu)成控制量,用這一控制量對(duì)被控對(duì)象進(jìn)行控制怪得,這樣的控制器稱PID控制器咱枉。

通過(guò)PID算法進(jìn)行負(fù)反饋調(diào)節(jié)卑硫,輸入當(dāng)前溫度,通過(guò)PID算法得出所需轉(zhuǎn)速蚕断,然后進(jìn)行實(shí)時(shí)調(diào)控欢伏,確保溫度恒定在一定值。
PID控制器的控制規(guī)律為:

比例環(huán)節(jié)的作用是對(duì)偏差瞬間做出快速反應(yīng)亿乳。偏差一旦產(chǎn)生硝拧,控制器立即產(chǎn)生控制作用,使控制量向減少偏差的方向變化葛假≌咸眨控制作用的強(qiáng)弱取決于比例系數(shù)KP, KP越大桐款,控制越強(qiáng)咸这,但過(guò)大的KP會(huì)導(dǎo)致系統(tǒng)震蕩夷恍,破壞系統(tǒng)的穩(wěn)定性魔眨。

積分環(huán)節(jié)的作用是把偏差的積累作為輸出。在控制過(guò)程中酿雪,只要有偏差存在遏暴,積分環(huán)節(jié)的輸出就會(huì)不斷增大。直到偏差e(t)=0指黎,輸出的u(t)才可能維持在某一常量朋凉,使系統(tǒng)在給定值r(t)不變的條件下趨于穩(wěn)態(tài)。積分環(huán)節(jié)的調(diào)節(jié)作用雖然會(huì)消除靜態(tài)誤差醋安,但也會(huì)降低系統(tǒng)的響應(yīng)速度杂彭,增加系統(tǒng)的超調(diào)量。積分常數(shù)T I 越大吓揪,積分的積累作用越弱亲怠。增大積分常數(shù)T I 會(huì)減慢靜態(tài)誤差的消除過(guò)程,但可以減少超調(diào)量柠辞,提高系統(tǒng)的穩(wěn)定性团秽。所以,必須根據(jù)實(shí)際控制的具體要求來(lái)確定TI 叭首。

微分環(huán)節(jié)的作用是阻止偏差的變化习勤。它是根據(jù)偏差的變化趨勢(shì)(變化速度)進(jìn)行控制。偏差變化得越快焙格,微分控制器的輸出越大图毕,并能在偏差值變大之前進(jìn)行修正。微分作用的引入眷唉,將有助于減小超調(diào)量予颤,克服震蕩损肛,使系統(tǒng)趨于穩(wěn)定。但微分的作用對(duì)輸入信號(hào)的噪聲很敏感荣瑟,對(duì)那些噪聲大的系統(tǒng)一般不用微分治拿,或在微分起作用之前先對(duì)輸入信號(hào)進(jìn)行濾波。適當(dāng)?shù)剡x擇微分常數(shù)TD 笆焰,可以使微分的作用達(dá)到最優(yōu)劫谅。

由于計(jì)算機(jī)的出現(xiàn),計(jì)算機(jī)進(jìn)入了控制領(lǐng)域嚷掠。人們將模擬PID 控制規(guī)律引入到計(jì)算機(jī)中來(lái)捏检。由于計(jì)算機(jī)控制是一種采樣控制,它只能根據(jù)采樣許可的偏差計(jì)算控制量不皆,而不能象模擬控制那樣連續(xù)輸出控制量贯城,進(jìn)行連續(xù)控制。由于這一特點(diǎn)霹娄,公式中的積分和微分項(xiàng)不能直接使用能犯,必須進(jìn)行離散化處理。離散化處理的方法為:以T 作為采樣周期犬耻,k 作為采樣序號(hào)踩晶,則離散采樣時(shí)間kT 對(duì)應(yīng)著連續(xù)時(shí)間 t,用求和的形式代替積分枕磁,用增量的形式代替微分渡蜻,可將其寫(xiě)成如下形式:

如果采樣周期取得足夠小,則以上近似計(jì)算可獲得足夠精確的結(jié)果计济,離散控制過(guò)程與連續(xù)控制過(guò)程十分接近茸苇。三個(gè)參數(shù)要綜合考慮,一般先將K I, KD設(shè)為0沦寂,調(diào)好KP,達(dá)到基本的響應(yīng)速度和誤差学密,再加上K I,,使誤差為0,這時(shí)再加入KD,三個(gè)參數(shù)要反復(fù)調(diào)試凑队,最終達(dá)到較好的結(jié)果。

在實(shí)際的應(yīng)用中漩氨,更多的是通過(guò)湊試法來(lái)確定PID的參數(shù)西壮。增大比例系數(shù)KP,一般將加快系統(tǒng)的響應(yīng),在有靜差的情況下有利于減小靜差叫惊,但是過(guò)大的比例系數(shù)會(huì)使系統(tǒng)有比較大的超調(diào)款青,并產(chǎn)生振蕩,使穩(wěn)定性變壞霍狰。增大積分時(shí)間K I,有利于減小超調(diào)抡草,減小振蕩饰及,使系統(tǒng)的穩(wěn)定性增加,但是系統(tǒng)靜差消除時(shí)間變長(zhǎng)康震。增大微分時(shí)間KD有利于加快系統(tǒng)的響應(yīng)速度燎含,使系統(tǒng)超調(diào)量減小,穩(wěn)定性增加腿短,但系統(tǒng)對(duì)擾動(dòng)的抑制能力減弱屏箍。

PID參數(shù)的設(shè)定可按如下確定:
參數(shù)整定找最佳,從小到大順序查橘忱;先是比例后積分赴魁,最后再把微分加;曲線振蕩很頻繁钝诚,比例度盤要放大颖御;曲線漂浮繞大灣,比例度盤往小扳凝颇;曲線偏離回復(fù)慢潘拱,積分時(shí)間往下降;曲線波動(dòng)周期長(zhǎng)祈噪,積分時(shí)間再加長(zhǎng)泽铛;曲線振蕩頻率快,先把微分降下來(lái)辑鲤;動(dòng)差大來(lái)波動(dòng)慢。微分時(shí)間應(yīng)加長(zhǎng)杠茬;理想曲線兩個(gè)波月褥,前高后低;一看二調(diào)多分析瓢喉,調(diào)節(jié)質(zhì)量不會(huì)低宁赤。
具體該溫度控制系統(tǒng)的參數(shù)確定方法如下:

  • ⑴ 讓調(diào)節(jié)器參數(shù)積分系數(shù)S0=0,實(shí)際微分系數(shù)k=0,控制系統(tǒng)投入閉環(huán)運(yùn)行,由小到大改變比例系數(shù)S1,讓擾動(dòng)信號(hào)作階躍變化,觀察控制過(guò)程,直到獲得滿意的控制過(guò)程為止。
  • ⑵ 取比例系數(shù)S1為當(dāng)前的值乘以0.83,由小到大增加積分系數(shù)S0,同樣讓擾動(dòng)信號(hào)作階躍變化,直至求得滿意的控制過(guò)程栓票。
  • (3) 積分系數(shù)S0保持不變,改變比例系數(shù)S1,觀察控制過(guò)程有無(wú)改善,如有改善則繼續(xù)調(diào)整,直到滿意為止决左。否則,將原比例系數(shù)S1增大一些,再調(diào)整積分系數(shù)S0,力求改善控制過(guò)程。如此反復(fù)試湊,直到找到滿意的比例系數(shù)S1和積分系數(shù)S0為止走贪。
  • ⑷ 引入適當(dāng)?shù)膶?shí)際微分系數(shù)k和實(shí)際微分時(shí)間TD,此時(shí)可適當(dāng)增大比例系數(shù)S1和積分系數(shù)S0佛猛。和前述步驟相同,微分時(shí)間的整定也需反復(fù)調(diào)整,直到控制過(guò)程滿意為止

注意:仿真系統(tǒng)所采用的PID調(diào)節(jié)器與傳統(tǒng)的工業(yè) PID調(diào)節(jié)器有所不同,各個(gè)參數(shù)之間相互隔離,互不影響,因而用其觀察調(diào)節(jié)規(guī)律十分方便。

PID參數(shù)是根據(jù)控制對(duì)象的慣量來(lái)確定的坠狡。大慣量如:大烘房的溫度控制,一般P可在10以上,I=3-10,D=1左右继找。小慣量如:一個(gè)小電機(jī)帶 一水泵進(jìn)行壓力閉環(huán)控制,一般只用PI控制。P=1-10,I=0.1-1,D=0,這些要在現(xiàn)場(chǎng)調(diào)試時(shí)進(jìn)行修正的逃沿。 本控制對(duì)象屬于小慣量婴渡,故選擇時(shí)根據(jù)小慣量的參數(shù)選擇開(kāi)始選擇調(diào)試幻锁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市边臼,隨后出現(xiàn)的幾起案子哄尔,更是在濱河造成了極大的恐慌,老刑警劉巖柠并,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件究飞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡堂鲤,警方通過(guò)查閱死者的電腦和手機(jī)亿傅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瘟栖,“玉大人葵擎,你說(shuō)我怎么就攤上這事“胗矗” “怎么了酬滤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)寓涨。 經(jīng)常有香客問(wèn)我盯串,道長(zhǎng),這世上最難降的妖魔是什么戒良? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任体捏,我火速辦了婚禮,結(jié)果婚禮上糯崎,老公的妹妹穿的比我還像新娘几缭。我一直安慰自己,他們只是感情好沃呢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布年栓。 她就那樣靜靜地躺著,像睡著了一般薄霜。 火紅的嫁衣襯著肌膚如雪某抓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天惰瓜,我揣著相機(jī)與錄音否副,去河邊找鬼。 笑死鸵熟,一個(gè)胖子當(dāng)著我的面吹牛副编,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼痹届,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼呻待!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起队腐,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蚕捉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后柴淘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體迫淹,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年为严,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敛熬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡第股,死狀恐怖应民,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情夕吻,我是刑警寧澤诲锹,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站涉馅,受9級(jí)特大地震影響归园,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜稚矿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一庸诱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盐捷,春花似錦偶翅、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)母剥。三九已至滞诺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間环疼,已是汗流浹背习霹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炫隶,地道東北人淋叶。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像伪阶,于是被迫代替她去往敵國(guó)和親煞檩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子处嫌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容