購(gòu)買設(shè)計(jì)請(qǐng)充值后下載,,資源目錄下的文件所見即所得,都可以點(diǎn)開預(yù)覽,,資料完整,充值下載可得到資源目錄里的所有文件。。?!咀ⅰ浚篸wg后綴為CAD圖紙,doc,docx為WORD文檔,原稿無水印,可編輯。。。具體請(qǐng)見文件預(yù)覽,有不明白之處,可咨詢QQ:12401814
目 錄
摘 要 1
關(guān)鍵字 1
1前言 2
2總體方案設(shè)計(jì) 2
2.1總體方案簡(jiǎn)述 2
2.2各模塊論證與選擇 3
2.2.1中央處理模塊 3
2.2.2直流電機(jī)及其驅(qū)動(dòng)模塊 3
2.2.3循跡模塊 5
2.2.4速度檢測(cè)模塊 5
2.2.5通信模塊 6
3硬件部分設(shè)計(jì) 8
3.1中央處理模塊 8
3.2直流電機(jī)及其驅(qū)動(dòng)模塊 10
3.3循跡模塊 11
3.3.1循跡原理分析 11
3.3.3AD采樣芯片簡(jiǎn)介 12
3.4避障模塊 13
3.5測(cè)速模塊 14
3.6電源模塊 15
3.7輸入和輸出顯示模塊 16
3.7.1模塊分析 16
3.7.2按鍵消抖 16
3.8硬件抗干擾措施 17
3.9印制電路板可靠性和抗干擾設(shè)計(jì) 17
4算法的方案論證 18
4.1循跡板采集算法 18
4.2控制算法 18
4.2.1總控制方案的確定 18
4.2.2PID算法簡(jiǎn)介 19
4.2.3模糊控制介紹 20
4.3方向控制 21
4.3.1PID算法設(shè)計(jì) 21
4.3.2PID控制算法的具體實(shí)現(xiàn) 22
4.3.3濾波算法介紹 23
5軟件部分設(shè)計(jì) 25
5.1程序流程圖 25
5.1.1主控板程序流程圖 25
5.1.2循跡控制板程序流程圖 26
5.1.3路徑偏差計(jì)算流程圖 27
5.2PWM產(chǎn)生 28
5.3通信模式的選擇 29
5.3.1USART簡(jiǎn)介 30
5.3.2USART寄存器說明與選擇 31
6開發(fā)與調(diào)試 32
7結(jié)論 33
參考文獻(xiàn) 33
致謝 34
附錄 35
附錄1 主控板程序代碼 36
附錄2 循跡控制板程序代碼 53
湖南農(nóng)業(yè)大學(xué)全日制普通本科生畢業(yè)設(shè)計(jì)
誠(chéng) 信 聲 明
本人鄭重聲明:所呈交的本科畢業(yè)設(shè)計(jì)是本人在指導(dǎo)老師的指導(dǎo)下,進(jìn)行研究工作所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體在文中均作了明確的說明并表示了謝意。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。
畢業(yè)設(shè)計(jì)作者簽名:
年 月 日
全向機(jī)器人控制系統(tǒng)設(shè)計(jì)
學(xué) 生:
指導(dǎo)老師:
(湖南農(nóng)業(yè)大學(xué)工學(xué)院,長(zhǎng)沙 410128)
摘 要:本機(jī)器人控制系統(tǒng)由中央處理單元模塊、循跡采樣模塊與電機(jī)驅(qū)動(dòng)模塊等組成。中央處理單元模塊由AVR8位微處理器ATMEGA128、ATMEGA16為主控芯片,通過循跡采樣模塊采集信號(hào)并處理,利用串口通信將信號(hào)傳給中央處理單元,由中央處理單元根據(jù)信號(hào)控制機(jī)器人伺服電機(jī)的運(yùn)轉(zhuǎn)狀態(tài),從而實(shí)現(xiàn)對(duì)機(jī)器人運(yùn)動(dòng)狀態(tài)的控制。電機(jī)驅(qū)動(dòng)電路采用四通道集成芯片L297和L298。通過循跡技術(shù)來實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)路徑和運(yùn)動(dòng)位置的判定。循跡部分采用光敏電阻接收發(fā)光二級(jí)管經(jīng)過物體反射回來的光從而實(shí)現(xiàn)機(jī)器人按照預(yù)定軌跡移動(dòng)。經(jīng)試驗(yàn)證明,該機(jī)器人控制系統(tǒng)能較好完成任務(wù)。
關(guān)鍵詞:機(jī)器人控制系統(tǒng);循跡;ATMEGA128;光敏電阻;
Universal wheel robot control system design
Student: Long Jingui
Tutor: Kang Jiang
(College of Engineering,Hunan Agricultural University,Changsha 410128,China)
Abstract: The robot control system consists of a central processing unit module, a tracking sampling module and the motor driver module. A central processing unit module for the master chip microprocessor from AVR8 of ATMEGA128, ATMEGA16 collection signal by tracking the sampling module and processing, the use of serial communication signals to the central processing unit, by a central processing unit according to the signal to control the robot servo motor operating state, in order to achieve the control of the state of motion of the robot. Motor drive circuit using four-channel chip L297 and L298.By tracking technology to achieve the determination of the path of movement and the movement position of the robot..The tracking part photoresistor receiving a light emitting diode, the light reflected by the object in order to achieve the robot moves in accordance with a predetermined trajectory. The test proved that the robot control system can better complete the task.
Key words: Robot control system; tracking; ATmega128; Guangmin Resistance;
1 前言
機(jī)器人作為人類最偉大的發(fā)明之一,長(zhǎng)久以來一直受到國(guó)內(nèi)外的研究人員的關(guān)注,而全向機(jī)器人的研究無疑是智能機(jī)器人研究中最具有挑戰(zhàn)性的研究課題之一。它涵蓋了自動(dòng)控制技術(shù)、計(jì)算機(jī)技術(shù)、電子技術(shù)、智能控制理論、傳感器技術(shù)等諸多學(xué)科的知識(shí),基如此使得對(duì)全向機(jī)器人的研究已經(jīng)成為了人工智能和機(jī)器人學(xué)的研究熱點(diǎn)。每年舉辦一次的亞太機(jī)器人國(guó)內(nèi)選拔賽中是典型的全向機(jī)器人的比賽平臺(tái)。全向機(jī)器人比賽既是高科技應(yīng)用于娛樂的一種體現(xiàn),也是培養(yǎng)人工智能、自動(dòng)化領(lǐng)域科技人才的重要窗口,同時(shí)也是促進(jìn)全向機(jī)器人領(lǐng)域科技進(jìn)步的有效途徑,其研究意義深遠(yuǎn)而重大。
隨著近年來全向機(jī)器人比賽的熱烈展開,吸引了越來越多的國(guó)內(nèi)外大學(xué)投入更多人力物力到比賽中,各參賽隊(duì)伍的水平也在逐年提高。然而比賽過程中全向機(jī)器人普遍存在中斷不受控制、啟動(dòng)及控制較慢、無法達(dá)到預(yù)定位置、啟動(dòng)轉(zhuǎn)矩較小、運(yùn)行速度較小、動(dòng)作的精度不高等問題。全向機(jī)器人要想在比賽中完成既定任務(wù),必須有一個(gè)控制精度高、穩(wěn)定性好的運(yùn)動(dòng)控制系統(tǒng)。全向機(jī)器人的運(yùn)動(dòng)控制是指控制機(jī)器人按照預(yù)先規(guī)劃好的運(yùn)動(dòng)軌跡運(yùn)動(dòng),運(yùn)動(dòng)控制系統(tǒng)對(duì)機(jī)器人性能有最直接的影響。
本設(shè)計(jì)是機(jī)器人控制系統(tǒng)的綜合研究,初步實(shí)現(xiàn)了多學(xué)科的綜合研究及機(jī)電一體化專業(yè)各個(gè)課程的應(yīng)用。對(duì)畢業(yè)生能實(shí)現(xiàn)一個(gè)全面的鍛煉。
2 總體方案設(shè)計(jì)
2.1 總體方案簡(jiǎn)述
本設(shè)計(jì)是基于ATMEGA128單片機(jī)[2]的機(jī)器人。本系統(tǒng)主要由中央處理模塊、直流電機(jī)驅(qū)動(dòng)模塊、循跡模塊、避障模塊、速度檢測(cè)模塊、通信模塊、人機(jī)交互模塊與電源模塊等組成。
中央處理模塊是整個(gè)系統(tǒng)的核心。它與其它各個(gè)模塊之間通過各種電路和接口協(xié)議進(jìn)行相連。循跡模塊、速度檢測(cè)模塊、避障模塊等傳感器輸入部分對(duì)系統(tǒng)外界信息進(jìn)行采集和處理后,將數(shù)據(jù)通過異步串行通信等方式發(fā)送到中央處理模塊。由中央處理模塊根據(jù)軟件設(shè)計(jì)中的流程圖和所設(shè)計(jì)的算法,對(duì)數(shù)據(jù)進(jìn)行分析與處理。從而得到相關(guān)的最優(yōu)輸出操作,通過輸出PWM(Pulse Width Modulation,脈寬調(diào)制)波的方式進(jìn)行驅(qū)動(dòng)直流電機(jī)模塊進(jìn)行工作;按照通信協(xié)議,接口協(xié)議等要求和其他模塊進(jìn)行信息交換。其對(duì)應(yīng)的系統(tǒng)方框圖如圖1所示。
電機(jī)驅(qū)動(dòng)模塊
中央處理模塊
ATMEGA128
循跡模塊
速度檢測(cè)模塊
空心杯電機(jī)
人機(jī)交互模塊
電源模塊
通信模塊
壁障模塊
圖1系統(tǒng)方框圖
Figure1 Schematic Block Diagram
2.2 各模塊論證與選擇
2.2.1 中央處理模塊
中央處理模塊是整個(gè)機(jī)器人的核心環(huán)節(jié)。它是實(shí)現(xiàn)信息處理、命令輸出與智能算法等的場(chǎng)所。本設(shè)計(jì)提出以下兩種方案。
方案一:采用ATMEL公司的AT89C51。51單片機(jī)的價(jià)格便宜,應(yīng)用廣泛,但是功能單一。本系統(tǒng)需要進(jìn)行尋跡采集信息,要處理的量比較大,電機(jī)控制需要同時(shí)輸出三路PWM調(diào)制波,實(shí)現(xiàn)較為困難。此外,51單片機(jī)還需要仿真器來實(shí)現(xiàn)硬件調(diào)試,較為繁瑣。
方案二:采用ATMEL公司研制發(fā)的ATMEGA128與ATMEGA16。AVR單片機(jī)是高速嵌入式單片機(jī)[1],數(shù)據(jù)處理速度快、中斷響應(yīng)迅速。其次,AVR單片機(jī)耗能低,且其快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標(biāo)代碼的大小、執(zhí)行效率,部分型號(hào)FLASH非常大,特別適用于使用高級(jí)語(yǔ)言進(jìn)行開發(fā)。
由于AVR單片機(jī)具有更優(yōu)良的性能,我們選擇了ATMEGA128與ATMEGA16作為中央處理單元的控制芯片。即選擇方案二?!?
2.2.2 直流電機(jī)及其驅(qū)動(dòng)模塊
直流電機(jī)驅(qū)動(dòng)模塊是機(jī)器人的動(dòng)力系統(tǒng),通過接收來自中央處理模塊傳來的的PWM,來實(shí)現(xiàn)對(duì)電機(jī)的智能控制。
(1)電機(jī)的論證和選擇。電機(jī)模塊選擇是整個(gè)方案的關(guān)鍵部分,按照設(shè)計(jì)要求,需要實(shí)現(xiàn)對(duì)機(jī)器人的高精度運(yùn)動(dòng)控制,高精度的運(yùn)動(dòng)能讓系統(tǒng)的調(diào)整算法與控制壓力大大減小。因此,普通的直流電機(jī)很難滿足題目的要求。為此,我們提出如下兩種方案。
方案一:采用步進(jìn)電機(jī)來實(shí)現(xiàn)對(duì)機(jī)器人運(yùn)動(dòng)的控制。步進(jìn)電機(jī)有較高的定位精度,無位置累積誤差,但如果控制不當(dāng)容易產(chǎn)生共振,難以運(yùn)轉(zhuǎn)到較高的轉(zhuǎn)速。另外,步進(jìn)電機(jī)在體積重量方面沒有優(yōu)勢(shì),能源利用率低。
方案二:采用空心杯直流伺服控制機(jī)器人運(yùn)動(dòng)??招谋妱?dòng)機(jī)具有突出的節(jié)能特性、靈敏方便的控制特性和穩(wěn)定的運(yùn)行特性,作為高效率的能量轉(zhuǎn)換裝置,代表了電動(dòng)機(jī)的發(fā)展方向??招谋姍C(jī)具有十分突出的節(jié)能、控制和拖動(dòng)特性,而直流減速電機(jī)力矩大轉(zhuǎn)動(dòng)速度快,采用閉環(huán)的控制控制系統(tǒng)后,能達(dá)到更高的精度。
由于步進(jìn)電機(jī)在重量、高速轉(zhuǎn)動(dòng)和能源利用率方面不如空心杯直流伺服電機(jī),本系統(tǒng)最終選擇了方案二。
(2)驅(qū)動(dòng)方案的論證與選擇。
方案一:采用線性驅(qū)動(dòng)方式。線性驅(qū)動(dòng)方式可以看做是個(gè)數(shù)控電壓源。其中該驅(qū)動(dòng)方式的優(yōu)點(diǎn)是驅(qū)動(dòng)電機(jī)的力矩紋波很小,可應(yīng)用于對(duì)電機(jī)轉(zhuǎn)速精度要求非常高的地方,但是實(shí)現(xiàn)它的成本較高,比較復(fù)雜。由于線性放大驅(qū)動(dòng)方式效率和散熱問題嚴(yán)重,尤其是要提高電機(jī)的驅(qū)動(dòng)功率,相應(yīng)的成本將大幅度的增加,需要耗費(fèi)大量的時(shí)間精力來完成。
方案二:采用達(dá)林頓管或MOS(Metal-Oxide-Semiconductor,金屬半場(chǎng)效應(yīng)晶體管的簡(jiǎn)稱)管搭制H橋的開關(guān)驅(qū)動(dòng)方式。采用達(dá)林頓管或MOS管搭制H橋PWM脈寬調(diào)制體積較大,由于分立元器件的特性不同,使得驅(qū)動(dòng)器具有一定的離散性;此外,由于功率管的開關(guān)電阻比較大,因此功耗也很大,需要散熱片,這無疑進(jìn)一步加大了驅(qū)動(dòng)器的體積。
方案三:采用驅(qū)動(dòng)芯片L297、L298[3]來驅(qū)動(dòng)電機(jī)的開關(guān)驅(qū)動(dòng)方式。隨著技術(shù)的迅猛發(fā)展,基于大功率MOS管的H橋驅(qū)動(dòng)芯片逐漸顯示出了它的優(yōu)勢(shì)。L298是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路,是一種二相和四相電機(jī)的專用驅(qū)動(dòng)芯片,即內(nèi)部含有兩個(gè)H橋高壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL(Transistor-Transistor Logic,邏輯門電路)邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)。
由于方案三的芯片L298、L298不僅能滿足電路本身的功能,其集成的電路使得它的體積很小,失真度底,功耗也很小,這正符合電路設(shè)計(jì)中節(jié)能和穩(wěn)定的基本要求。我們最終選擇方案三。
2.2.3 循跡模塊
方案一:用激光二極管做反射式光電傳感器光源,通過紅外對(duì)管來實(shí)現(xiàn)。激光二極管測(cè)量距離近,靈敏、準(zhǔn)確,且發(fā)出的光的頻率較集中,傳感器只接收很窄的頻率范圍信號(hào),不容易被干擾但價(jià)格較貴。
方案二:用普通的發(fā)光二級(jí)管和光敏電阻實(shí)現(xiàn)。光敏電阻和發(fā)光二極管價(jià)格低廉,響應(yīng)快速,功耗較小。雖然這種方案容易受到外界環(huán)境的干擾影響,但是采用對(duì)反射光強(qiáng)進(jìn)行測(cè)量的方法和一定的機(jī)械結(jié)構(gòu)優(yōu)化可以提高系統(tǒng)的可靠性和準(zhǔn)確性。
經(jīng)綜合考慮成本及控制難度等因素,我們選擇了方案二的尋跡方案。
2.2.4 速度檢測(cè)模塊
隨著電池電壓的逐漸下降,電機(jī)供給電壓也會(huì)隨之降低,導(dǎo)致電機(jī)的轉(zhuǎn)速不斷下降。若采用閉環(huán)控制,將車輪轉(zhuǎn)速信息反饋給控制器,從而使電機(jī)的實(shí)際轉(zhuǎn)速值等于指令轉(zhuǎn)速值,就能提高速度的準(zhǔn)確性。根據(jù)常用的有兩種測(cè)速傳感器:
本設(shè)計(jì)提出以下兩種方案。
方案二: 模擬轉(zhuǎn)速計(jì) 它也被安裝到電機(jī)的輸出軸上,但輸出的是正比于電機(jī)轉(zhuǎn)速的電壓。
方案一: 軸編碼器 它常被用來測(cè)量旋轉(zhuǎn)軸的位置和轉(zhuǎn)速?!敖^對(duì)式位置編碼器”被用來測(cè)量軸的實(shí)際位置,這種編碼器長(zhǎng)被用于伺服系統(tǒng)中來獲得一定的轉(zhuǎn)軸位置。“增量式軸編碼器”常被用來測(cè)量轉(zhuǎn)軸的轉(zhuǎn)速(速率和方向)。增量式軸編碼器可以產(chǎn)生直接對(duì)應(yīng)于軸轉(zhuǎn)速的脈沖序列,如果采用有兩相信號(hào)輸出的增量式軸編碼器實(shí)際只能稱之為轉(zhuǎn)速計(jì)。工程中應(yīng)用最多的是光學(xué)編碼器,但也有一些利用電磁原理制成的霍爾效應(yīng)編碼器。
比較兩種方案,從輸出信號(hào)的格式看,軸編碼器輸出的是方波信號(hào),很容易輸入到控制器中,而模擬轉(zhuǎn)速器輸出的是模擬信號(hào),還需AD轉(zhuǎn)換,另外,模擬轉(zhuǎn)速器對(duì)動(dòng)力大小也有影響,而軸編碼器對(duì)它幾乎沒有影響,要對(duì)智能車進(jìn)行速度的測(cè)量,故比較之下選用方案二增量式軸編碼器。
增量式軸編碼器又可分為反射式光學(xué)編碼器、光柵式編碼器和基于霍爾效應(yīng)的編碼器。如圖3所示。
光柵式編碼器的可靠性高于反射式編碼器,而基于霍爾效應(yīng)的編碼器采用純機(jī)械的方法無法承受長(zhǎng)時(shí)間的使用,且精度不高。因此,速度的測(cè)量采用光柵式編碼器。其實(shí)物見圖2空心杯電機(jī)實(shí)物圖,其尾部為編碼盤。
圖3增量式軸編碼器原理圖
Figure3 Schematic diagram of incremental shaft encoder principle
2.2.5 通信模塊
通信方式的選擇。由于串行通信方式具有使用線路少,成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了并行通信中多條線路的特性不一致,因而被廣泛的采用。在串行通信時(shí),要求通信雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同設(shè)備可以方便的連接起來通信。RS-232-C(recommended standard,一種推薦串行通信接口標(biāo)準(zhǔn))是目前最常用的一種串行通信接口。它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)[4]。由于串口通信的優(yōu)勢(shì)和普及性,其技術(shù)已經(jīng)趨于普及和成熟,本設(shè)計(jì)亦選擇串口通信方式。
2.2.6 避障模塊
壁障模塊主要用來檢測(cè)前方是否有障礙物。對(duì)此,我們提出兩種方案來實(shí)現(xiàn)。
方案一:采用紅外測(cè)距的方式。利用紅外測(cè)距傳感器測(cè)量出機(jī)器人和障礙物之間的距離。然后計(jì)算出與障礙物之間的距離,從而實(shí)現(xiàn)智能的避障路線。但是紅外測(cè)距傳感器容易產(chǎn)生測(cè)量誤差,如焊接時(shí)溫度過高,環(huán)境中不同顏色對(duì)紅外線反射效果不同,接收時(shí)間差等因素都可以導(dǎo)致測(cè)量出現(xiàn)問題。
方案二:采用光電開關(guān)檢測(cè)障礙物。它是利用被檢測(cè)物體對(duì)紅外光束[5]的遮光或反射,由同步回路選通而檢測(cè)物體的有無,其物體不限于金屬,對(duì)所有能反射光線的物體均可檢測(cè)。
由于方案一中的紅外測(cè)距傳感器的不穩(wěn)定性。本設(shè)計(jì)選用方案二。方案二中的光電開關(guān),通過軟件上的提前預(yù)防與及時(shí)對(duì)檢測(cè)到的障礙物進(jìn)行避開措施,同樣能達(dá)到很好的避障效果。
2.2.7 人機(jī)交互模塊
人機(jī)交互模塊主要為了讓我們能在調(diào)試過程中便于對(duì)機(jī)器人操作和及時(shí)查看調(diào)試過程中的系統(tǒng)所處狀態(tài)。1602液晶[6]它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成進(jìn)行輸入設(shè)置相關(guān)參數(shù)。它具有微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧等特點(diǎn),常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。
由于本設(shè)計(jì)的輸入要求不高,只需要在采樣時(shí)和系統(tǒng)開始,系統(tǒng)復(fù)位時(shí)用到輸入。因此,輸入部分本設(shè)計(jì)選用普通的按鍵。
2.2.8 電源模塊
電源模塊為整個(gè)系統(tǒng)提供穩(wěn)定高質(zhì)量的電源,是所有設(shè)計(jì)能最終實(shí)現(xiàn)的重要保障。本設(shè)計(jì)提出以下兩種方案。
方案一:采用電池組進(jìn)行供電,電池組的重量輕,便于安放,但是其供電的能力不夠,不能長(zhǎng)期的供應(yīng)較大的電流。
方案二:采用高性能的li-poly電池,它能直接提供穩(wěn)定的12V、3.3A、30C的電源,滿足機(jī)器人的所有模塊供電要求。
為了提供穩(wěn)定高性能的電源,我們采用了方案二中的li-poly電池。
3 硬件部分設(shè)計(jì)
3.1 中央處理模塊
本設(shè)計(jì)中采用ATMEL公司研制發(fā)的ATMEGA128。ATMEGA128是基于AVR RISC結(jié)構(gòu)的8位低功耗CMOS(Complementary Metal Oxide Semiconductor)微處理器。中斷響應(yīng)迅速,數(shù)據(jù)處理速度快,其數(shù)據(jù)吞吐率高達(dá)1MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。其次,AVR單片機(jī)耗能低,且其快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標(biāo)代碼的大小、執(zhí)行效率,部分型號(hào)FLASH非常大,特別適用于使用高級(jí)語(yǔ)言進(jìn)行開發(fā)。
圖5為ATMEGA128的引腳配置圖、圖6 為機(jī)器人最小控制系統(tǒng)圖。
圖5 ATMEGA128的引腳配置圖
Figure5 The ATMEGA128 pins configuration diagram
機(jī)器人最小控制系統(tǒng)主要包括晶振電路、JTAG(Joint Test Action Group,聯(lián)合測(cè)試行為組織,一種測(cè)試訪問端口和邊界掃描結(jié)構(gòu)標(biāo)準(zhǔn))電路[7],復(fù)位按鍵電路、AD參考電源電路等部分。其原理圖如圖5所示。
圖6機(jī)器人最小控制系統(tǒng)圖
Figure6 The minimize control system of Car
晶振電路:晶振電路的主要元器件為晶體振蕩器,它結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,為系統(tǒng)提供基本的時(shí)鐘信號(hào)。兩端與單片機(jī)的XTAL0腳和XTAL1腳,為了電路的穩(wěn)定性起見,ATMEL公司建議在晶振的兩引腳處接進(jìn)兩個(gè)10pf-50pf的瓷片電容接地來削減諧波對(duì)電路的穩(wěn)定性的影響,沒有什么計(jì)算公式。
JTAG電路:JTAG也是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,相關(guān)JTAG引腳的定義為:TCK為測(cè)試時(shí)鐘輸入;TDI為測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI引腳輸入JTAG接口;TDO為測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO引腳從JTAG接口輸出;TMS為測(cè)試模式選擇,TMS用來設(shè)置JTAG接口處于某種特定的測(cè)試模式。
復(fù)位按鍵電路:?jiǎn)纹瑱C(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU(Central Processing Unit,計(jì)算機(jī)中央處理器)及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。手動(dòng)按鈕復(fù)位需要在復(fù)位輸入端RST上加入高電平,在RST端和正電源Vcc之間接一個(gè)按鈕。電路如圖3所示。
根據(jù)ATMEGA128數(shù)據(jù)使用手冊(cè)、以及基本的電路知識(shí),設(shè)計(jì)出如圖3所示的機(jī)器人最小控制系統(tǒng)圖。
3.2 直流電機(jī)及其驅(qū)動(dòng)模塊
本設(shè)計(jì)采用驅(qū)動(dòng)芯片L297、L298來驅(qū)動(dòng)電機(jī)[8]。隨著技術(shù)的迅猛發(fā)展,基于大功率MOS管H橋驅(qū)動(dòng)芯片逐漸顯示出了它的優(yōu)勢(shì)。L298是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路,是一種二相和四相電機(jī)的專用驅(qū)動(dòng)芯片,即內(nèi)部含有兩個(gè)H橋高壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)[22]。
芯片L298、L298不僅能滿足電路本身的功能,其集成的電路使得它的體積很小,失真度底,功耗也很小,這正符合電路設(shè)計(jì)中節(jié)能和穩(wěn)定的基本要求。其驅(qū)動(dòng)電路圖如圖7所示。SYNG引腳為斬波器輸出端。A、B、C、D四個(gè)引腳分別是A、B、C、D四相的輸出端。INH1引腳為控制A相和B相的驅(qū)動(dòng)極,INH2與之功能類似,控制C相和D相,當(dāng)引腳為低電平時(shí),A相和B相的驅(qū)動(dòng)控制被禁止。CONTROL引腳為斬波器功能控制端。當(dāng)它為低電平時(shí)使INH1和INH2起作用,當(dāng)它為高電平時(shí)A、B、C、D起作用。
圖7電機(jī)驅(qū)動(dòng)電路圖
Figure7 Circuit diagram of Motor driver
3.3 循跡模塊
3.3.1 循跡原理分析
發(fā)光二極管發(fā)出的調(diào)制光經(jīng)地面反射到光敏電阻。光敏電阻接收到光信號(hào)后,其阻值發(fā)生變化,使得電路產(chǎn)生電流與電平的變化。當(dāng)機(jī)器人偏離了應(yīng)走的黑線,循跡板上的光敏電阻就會(huì)得到對(duì)應(yīng)的不同的電阻值和電平值,通過專用的AD轉(zhuǎn)換芯片[9]得到其AD值,再由單片機(jī)在算法上進(jìn)行處理,就可以把這種變化檢測(cè)出來,判斷某一個(gè)檢測(cè)點(diǎn)是否在黑色引導(dǎo)線的上方,從而判斷智能電動(dòng)機(jī)器人和黑色引導(dǎo)線的相對(duì)位置。循跡板包括LED(Light Emitting Diode,發(fā)光二極管)燈電路圖和信號(hào)放大與選擇電路圖。如圖8、圖9所示:
圖8 LED燈電路圖
Figure8Circuit diagram of LED
3.3.2 復(fù)用開關(guān)芯片簡(jiǎn)介
MAX306CWI為多路復(fù)用開關(guān),高精度,單輸出,COMS模擬多路復(fù)用器[10]。具有較快的開關(guān)速度。表1為MAX306CWI的邏輯真值表。本設(shè)計(jì)中,將EN引腳經(jīng)過電阻后接到電源,使EN引腳保持高電平,從而簡(jiǎn)化了芯片工作過程中的設(shè)置。
表1 MAX306CWI的邏輯真值表
Table1 Logic really value table of MAX306CWI
A3 A2 A1 A0 EN ON/Switch
X X X X 0 None
0 0 0 0 1 1
0 0 0 1 1 2
0 0 1 0 1 3
0 0 1 1 1 4
續(xù)表1
A3 A2 A1 A0 EN ON/Switch
0 1 0 0 1 5
0 1 0 1 1 6
0 1 1 0 1 7
0 1 1 1 1 8
1 0 0 0 1 9
1 0 0 1 1 10
1 0 1 0 1 11
1 0 1 1 1 12
1 1 0 0 1 13
1 1 0 1 1 14
1 1 1 0 1 15
1 1 1 1 1 16
圖9 信號(hào)放大與選擇電路圖
Figure9 Circuit diagram of amplification and choose
3.3.3 AD采樣芯片簡(jiǎn)介
AD976是一個(gè)單電源供電的高速、低功耗16位逐次逼近式MD轉(zhuǎn)換器,轉(zhuǎn)換速度為100kSPS,功耗為100mW。AD976的集成性好,內(nèi)部包含2.5v參考電壓源、高速并行接口和時(shí)鐘。出廠前芯片的所有線性誤差都得到了補(bǔ)償,并且諸如信噪比和總諧波失真等的交流參數(shù)及失調(diào)、增益和線性度都得到全面測(cè)試。以下為部分引腳介紹:
其中IN引腳為模擬輸入,該引腳與模擬信號(hào)源連接一個(gè)的電阻。如圖8中所示。和同為模擬地。作為REF引腳的參考地。REF引腳為基準(zhǔn)輸入輸出。該引腳為內(nèi)部基準(zhǔn)的輸出或從該引腳輸出一個(gè)外部基準(zhǔn)。一般都是在該引腳和地之間接入的鉭電容。如圖8中電容所示。引腳為字節(jié)選擇腳,為片選輸入。當(dāng)為低電平時(shí),數(shù)據(jù)輸出從高到低,當(dāng)為低電平時(shí),讀/轉(zhuǎn)換輸入引腳才能有效工作。為忙輸出檢測(cè)腳。經(jīng)參考AD976[11]數(shù)據(jù)手冊(cè)及相關(guān)應(yīng)用論文,得到圖10所示的AD976電路圖,其程序代碼見附錄。
圖10 AD976電路圖
Figure10 Circuit diagram of AD976
3.4 避障模塊
避障模塊主要由光電開關(guān)組成。屬于光電接近開關(guān)。它是利用被檢測(cè)物體對(duì)紅外光束的遮光或反射,由同步回路選通而檢測(cè)物體的有無,其物體不限于金屬,對(duì)所有能反射光線的物體均可檢測(cè)。
根據(jù)光電開關(guān)在檢測(cè)物體時(shí),發(fā)射器所發(fā)出的光線被折射回接到接收器的途徑的不同,可分為漫反射式,鏡反射式,對(duì)射式等。綜合考慮到本設(shè)計(jì)中需要面對(duì)的障礙物的復(fù)雜多樣性,因此本設(shè)計(jì)采用的為漫反射式。輸出形式:分NPN二線、NPN三線、NPN四線、PNP二線、PNP三線、PNP四線、AC二線、AC五線(自帶繼電器),及直流NPN/PNP/常開/常閉多功能等幾種常用的輸出形式。本設(shè)計(jì)中選用分NPN三線常開式。
當(dāng)無檢測(cè)物體時(shí),常開型的光電開關(guān)所接通的負(fù)載由于光電開關(guān)內(nèi)部的輸出晶體管的截止而不工作,PD1端口通過上拉電阻使得PD1引腳為高電平,當(dāng)檢測(cè)到物體時(shí),晶體管導(dǎo)通,負(fù)載得電工作。PD1端口變?yōu)榈碗娖?。圖11為光電開關(guān)電路圖。
圖11 光電開關(guān)電路圖
Figure11 Circuit diagram of photoelectric switch circuit
3.5 測(cè)速模塊
圖12編碼盤采樣電路
Figure12 Circuit diagram of coding dish sampling
如圖12所示測(cè)試模塊主要有編碼盤來實(shí)現(xiàn)。HCP2-2630[12]為優(yōu)質(zhì)小型大功率繼電器,當(dāng)1和2端輸入差值達(dá)到一定數(shù)值時(shí)候,7腳會(huì)引起動(dòng)作。同理,1、3腳的變化能引起6腳的動(dòng)作,。圖中的兩個(gè)二極管的作用為保護(hù)1和4引腳電壓不至于過低。兩個(gè)電容為濾波電容,用來濾除尖刺和防止干擾信號(hào)。通過采樣輸入模塊,把信號(hào)送入ATMEGA128的IC1和IC3腳。
3.6 通信模塊
MAX232芯片是美信公司為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5v單電源供電。MAX232芯片的作用是將單片機(jī)輸出的TTL電平轉(zhuǎn)換成PC機(jī)能接收的232電平或?qū)C機(jī)輸出的232電平轉(zhuǎn)換成單片機(jī)能接收的TTL電平。內(nèi)部結(jié)構(gòu)基本可分三個(gè)部分:
第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。
第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT輸出;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。
第三部分是供電。15腳DNG、16腳VCC(+5v)。圖13為MAX232接線圖。
其中P8為向外傳輸數(shù)據(jù)的接口。
圖13 MAX232電路圖
Figure13 Circuit diagram of MAX232
3.6 電源模塊
電源模塊為系統(tǒng)其他各個(gè)模塊提供所需要的電源。設(shè)計(jì)中,除了需要考慮電壓范圍和電流容量等基本參數(shù)之外,還要在電源轉(zhuǎn)換效率、降低噪聲、防止干擾和電路簡(jiǎn)單等方面進(jìn)行優(yōu)化??煽康碾娫捶桨甘钦麄€(gè)硬件電路穩(wěn)定可靠運(yùn)行的基礎(chǔ)。本設(shè)計(jì)中采用高性能的Li-Poly電池,高性能的電池能減輕硬件電路設(shè)計(jì)的難度,直接提供穩(wěn)定的12V、3.3A、30C的電源,滿足機(jī)器人的所有模塊供電要求。
此外,機(jī)器人的不同模塊所需的電壓不同,如主控板和循跡板需要電壓為5V,電機(jī)則為12V。因此,我們需要對(duì)主控板進(jìn)行減壓穩(wěn)壓,穩(wěn)壓芯片選型為:REG1117-5。圖14為電源電路圖。
圖14電源電路圖
Figure14 Circuit diagram of power supply
3.7 輸入和輸出顯示模塊
3.7.1 模塊分析
為了完善智能電動(dòng)機(jī)器人控制系統(tǒng)的功能,使其更加人性化,同時(shí)也為了方便調(diào)試,在設(shè)計(jì)中,我們加入了輸入和輸出顯示模塊。通過顯示模塊把系統(tǒng)狀態(tài)下一些重要的參數(shù)顯示出來。圖15為按鍵電路和1602顯示電路原理圖[13]。其中R為上拉電阻。
圖15按鍵電路和1602顯示電路圖
Figure15 Circuit diagram of key circuits and 1602 display
為了簡(jiǎn)化控制系統(tǒng)電路及算法代碼的復(fù)雜程度,本電路的輸入部分使用按鍵來實(shí)現(xiàn),輸出顯示部分使用LCD1602液晶顯示器。根據(jù)設(shè)計(jì)任務(wù),按鍵的需要完成的功能主要為采樣時(shí)按鍵、復(fù)位按鍵、參數(shù)調(diào)整與選擇按鍵。通過液晶顯示出的對(duì)應(yīng)提示,我們的每個(gè)按鍵可以實(shí)現(xiàn)在不同階段起到不同作用。
3.7.2 按鍵消抖
由于按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng), 抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為5ms~10ms。
為確保CPU對(duì)按鍵的一次閉合僅作一次處理,必須去除鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí)讀取鍵的狀態(tài),并且必須判別到鍵釋放穩(wěn)定后再作處理。常用軟件方法去抖,即檢測(cè)出按鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms~10ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。按鍵的程序代碼見附錄。
3.8 硬件抗干擾措施
在嵌入式系統(tǒng)中,系統(tǒng)的抗干擾技術(shù)是系統(tǒng)可靠性的重要方面。一個(gè)系統(tǒng)的正確與否,不僅取決于系統(tǒng)的設(shè)計(jì)思想和方法,同時(shí)還取決于系統(tǒng)的抗干擾措施。
嵌入式系統(tǒng)的干擾源一般有三個(gè)渠道:一是空間干擾,電磁信號(hào)通過空間輻射進(jìn)入系統(tǒng);二是過程通道干擾,干擾信號(hào)通過與系統(tǒng)相連的前、后通道及與其它系統(tǒng)的連接通道進(jìn)入,它疊加在有用信號(hào)之上,擾亂信號(hào)傳輸,使有效信號(hào)產(chǎn)生畸變。使得數(shù)據(jù)采集誤差加大,導(dǎo)致控制狀態(tài)失靈,導(dǎo)致程序運(yùn)行失常;三是系統(tǒng)干擾,電磁信號(hào)通過供電通道進(jìn)入系統(tǒng)或系統(tǒng)本身產(chǎn)生干擾 。
雖然抗干擾問題是嵌入式系統(tǒng)在實(shí)際應(yīng)用中最令人頭疼的問題,而且沒有一定之規(guī),也沒有一成不變的方法,但若進(jìn)行科學(xué)的分析并加以合理的設(shè)計(jì),采取一定的措施,將系統(tǒng)的硬件和軟件結(jié)合起來,是可以有效地提高應(yīng)用系統(tǒng)的可靠性的。
3.9 印制電路板可靠性和抗干擾設(shè)計(jì)
印制電路板是嵌入式系統(tǒng)中,器件、信號(hào)、電源線的高密度集合體,印刷電路板設(shè)計(jì)的好壞對(duì)抗干擾能力的影響很大[14]。
設(shè)計(jì)時(shí)應(yīng)合理走線、合理接地,三總線分開走線[15]。盡量將數(shù)字、模擬電路分開走線,電源線和地線應(yīng)盡量加寬,同時(shí)使電源線、地線的走向與數(shù)據(jù)傳遞的方向一致。應(yīng)盡量使用45°折線而不要使用90°折線,以減少高頻信號(hào)對(duì)外的發(fā)射與耦合,減少互感振蕩;將接地和屏蔽正確結(jié)合起來使用。
CPU、RAM、ROM等主芯片以及VCC、GND之間接電解電容和瓷片電容;去掉高、低頻干擾脈沖;石英晶體振蕩器的外殼接地而不要走信號(hào)線,且要適當(dāng)加大接地面積;時(shí)鐘線要盡量短,并用地線將時(shí)鐘區(qū)圈起來,使周圍電場(chǎng)盡可能地減小。獨(dú)立系統(tǒng)結(jié)構(gòu),減少接插件與連線;輸入輸出驅(qū)動(dòng)器件、功率放大器件應(yīng)盡量靠近線路板邊的引出接插件;提高可靠性,減少故障率。集成塊與插座接觸可靠,用雙簧插座,最好集成塊直接焊在印制板上,防止器件接觸不良。信號(hào)的輸入、輸出端以使用光耦進(jìn)行光電隔離為好。這樣既可以防止外圍器件動(dòng)作時(shí)產(chǎn)生的回流沖擊系統(tǒng),又可使輸入端的干擾信號(hào)沒有足夠的功率去干擾發(fā)光二極管的正常工作。
4 算法的方案論證
4.1 循跡板采集算法
采用整齊均勻排列的發(fā)光二級(jí)管—光敏電阻循跡板,對(duì)于簡(jiǎn)單又普通的路面條件(主要是白色和另外一種較深顏色),將采集到的電壓值和一個(gè)適當(dāng)?shù)碾妷哼M(jìn)行比較,從而標(biāo)識(shí)為高電壓和低電壓。從而可以判斷該對(duì)應(yīng)的光敏電阻是否在白線之上。由于循跡板上光敏電阻有一定數(shù)量,此算法能大致的判斷出車身相對(duì)于道路的位置,確定路徑信息。這種離散算法的優(yōu)勢(shì)主要為簡(jiǎn)便易行,對(duì)硬件及算法要求都比較低,在傳感器數(shù)目較多的情況下也可以實(shí)現(xiàn)較高的識(shí)別準(zhǔn)確性。
但是,這種算法有個(gè)致命的缺陷,由于采集后的數(shù)據(jù)是離散的,循跡板無法識(shí)別兩個(gè)傳感器之間的“盲區(qū)”,因此,在機(jī)器人沿著曲線運(yùn)動(dòng)時(shí),機(jī)器人無法較高精度的識(shí)別路徑,同時(shí)也會(huì)造成無法及時(shí)發(fā)現(xiàn)路線的偏移,導(dǎo)致調(diào)整方向時(shí)需要通過較大的調(diào)整幅度來實(shí)現(xiàn)補(bǔ)償,較大的波動(dòng)將導(dǎo)致系統(tǒng)的不穩(wěn)定和性能的下降。
由于離散算法在較快速的運(yùn)動(dòng)中,無法快速的識(shí)別和控制難度大。因此,在較復(fù)雜的控制系統(tǒng)中,連續(xù)化的數(shù)據(jù)采集量成為了實(shí)現(xiàn)真正智能的關(guān)鍵。事實(shí)上,光敏電阻特性并非如方案一那么簡(jiǎn)單(白色區(qū)高電壓,深色區(qū)低電壓),其電壓大小與光明電阻受到光照程度有關(guān)。在常見的白色線為引導(dǎo)線的路面中,離白色越近,其電壓越高;離白色越遠(yuǎn),其電壓越低。具體的對(duì)應(yīng)關(guān)系與光明電阻的特性及電路等有關(guān),只要掌握了傳感器電壓-偏移距離的特性關(guān)系,通過相關(guān)算法,就可以得到循跡板相對(duì)于標(biāo)記線連續(xù)的相對(duì)位置信息。從而消除了傳感器間隙“盲區(qū)”,實(shí)現(xiàn)連續(xù)路徑的識(shí)別。
4.2 控制算法
4.2.1 總控制方案的確定
對(duì)智能車的控制就是對(duì)機(jī)器人的速度與方向進(jìn)行控制,我們比較了模糊控制和PID控制的優(yōu)缺點(diǎn),鑒于模糊控制在控制智能車運(yùn)動(dòng)方面的天然優(yōu)勢(shì),我們選用了模糊控制算法來控制機(jī)器人,達(dá)到了較理想的效果。在橫向上,即對(duì)機(jī)器人的方向控制,我們采用了由偏轉(zhuǎn)量、直行車速、轉(zhuǎn)彎速度三個(gè)變量組成的模糊控制器來控制;在縱向上,即對(duì)模型車的速度控制,我們采用了基于模型車當(dāng)前速度和轉(zhuǎn)彎速度為輸入的模糊控制。
機(jī)器人控制算法總體框架如圖16所示。
道路識(shí)別傳感器
賽車
車體
PID控
制器
旋轉(zhuǎn)速度分量
線條軌跡 轉(zhuǎn)角偏差 旋轉(zhuǎn)控制 旋轉(zhuǎn)速度
直流電機(jī)
車速PID控制
路徑識(shí)別(判別直道彎道)
速度給定值 前進(jìn)速度
圖16 控制算法總體框架圖
Figure16 Diagram of control algorithm framework
4.2.2 PID算法簡(jiǎn)介
PID控制器問世至今已有近70年歷史,它以其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),控制理論的其它技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來確定,這時(shí)應(yīng)用PID控制技術(shù)[16]最為方便。
?。?)比例(P)控制。比例控制是一種最簡(jiǎn)單的控制方式。其控制器的輸出與輸入誤差信號(hào)成比例關(guān)系。當(dāng)僅有比例控制時(shí)系統(tǒng)輸出存在穩(wěn)態(tài)誤差。
(2)積分(I)控制。在積分控制中,控制器的輸出與輸入誤差信號(hào)的積分成正比關(guān)系。對(duì)一個(gè)自動(dòng)控制系統(tǒng),為了消除穩(wěn)態(tài)誤差,在控制器中必須引入“積分項(xiàng)”。積分項(xiàng)對(duì)誤差取決于時(shí)間的積分,隨著時(shí)間的增加,積分項(xiàng)會(huì)增大。這樣,即便誤差很小,積分項(xiàng)也會(huì)隨著時(shí)間的增加而加大,它推動(dòng)控制器的輸出增大使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零。
(3)微分(D)控制。在微分控制中,控制器的輸出與輸入誤差信號(hào)的微分(即誤差的變化率)成正比關(guān)系。微分控制用來解決自動(dòng)控制系統(tǒng)在克服誤差的調(diào)節(jié)過程中可能會(huì)出現(xiàn)振蕩甚至失穩(wěn)。它能預(yù)測(cè)誤差變化的趨勢(shì),提前使抑制誤差的控制作用等于零,甚至為負(fù)值,從而避免了被控量的嚴(yán)重超調(diào)。
PID控制器的參數(shù)整定是控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容。它是根據(jù)被控過程的特性確定PID控制器的比例系數(shù)、積分時(shí)間和微分時(shí)間的大小。PID控制器參數(shù)整定的方法很多,概括起來有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計(jì)算確定控制器參數(shù)。這種方法所得到的計(jì)算數(shù)據(jù)未必可以直接用,還必須通過工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡(jiǎn)單、易于掌握,在工程實(shí)際中被廣泛采用。
PID控制器參數(shù)的工程整定方法,主要有臨界比例法、反應(yīng)曲線法和衰減法。三種方法各有其特點(diǎn),本設(shè)計(jì)采用的是臨界比例法。利用該方法進(jìn)行PID控制器參數(shù)的整定步驟如下:
1)首先預(yù)選擇一個(gè)足夠短的采樣周期讓系統(tǒng)工作;
2)僅加入比例控制環(huán)節(jié),直到系統(tǒng)對(duì)輸入的階躍響應(yīng)出現(xiàn)臨界振蕩,記下這時(shí)的比例放大系數(shù)和臨界振蕩周期;
3)在一定的控制度下通過公式計(jì)算得到PID控制器的參數(shù)。
4.2.3 模糊控制介紹
模糊控制實(shí)質(zhì)上是用計(jì)算機(jī)去執(zhí)行操作人員的控制策略,因而可以避開對(duì)象復(fù)雜的數(shù)學(xué)模型,力圖對(duì)人們關(guān)于某個(gè)控制問題的成功與失敗的經(jīng)驗(yàn)進(jìn)行加工,總結(jié)出知識(shí),從中提煉出控制規(guī)則,實(shí)現(xiàn)復(fù)雜系統(tǒng)的控制。
模糊控制有以下的特點(diǎn):
1)模糊工程的計(jì)算方法雖然是運(yùn)用模糊集理論進(jìn)行的模糊算法,但最后得到的控制規(guī)律是確定性的、定量的條件語(yǔ)句。
2)不需要根據(jù)機(jī)理與分析建立被控對(duì)像的數(shù)學(xué)模型,對(duì)于某些系統(tǒng),要建立數(shù)學(xué)模型是很難的,甚至是不可能的。
3)與傳統(tǒng)的控制方法相比,模糊控制系統(tǒng)依賴于行為規(guī)則庫(kù),由于是用自然語(yǔ)言表達(dá)的規(guī)則,更接近于人的思維方法和推理習(xí)慣,因此,便于現(xiàn)場(chǎng)操作人員的理解和使用,便于人機(jī)對(duì)話,以得到更有效的控制規(guī)律。
模糊控制與計(jì)算機(jī)密切相關(guān)。從控制角度看,它實(shí)際上是一個(gè)由很多條件語(yǔ)句組成的軟件控制器。目前,模糊控制還是應(yīng)用二值邏輯的計(jì)算機(jī)來實(shí)現(xiàn),模糊規(guī)律經(jīng)過運(yùn)算,最后還是進(jìn)行確定性的控制。模糊推理硬件的研制和模糊計(jì)算機(jī)的開發(fā),使得計(jì)算機(jī)將像人腦那樣隨心所欲地處理模棱兩可的信息,協(xié)助人們決策和進(jìn)行信息處理。
模糊控制器是模糊控制系統(tǒng)的核心,是模糊控制系統(tǒng)控制品質(zhì)的主要保證,因此,在模糊控制系統(tǒng)中,設(shè)計(jì)和調(diào)整模糊控制器的工作是很重要的。模糊控制是以控制人員的經(jīng)驗(yàn)為基礎(chǔ)實(shí)施的一種智能控制,它并不需要精確的數(shù)學(xué)模型去描述系統(tǒng)的動(dòng)態(tài)過程,因此,它的設(shè)計(jì)方法與常規(guī)控制器的設(shè)汁方法有所不同。模糊控制器的設(shè)計(jì),一般是先在經(jīng)驗(yàn)的基礎(chǔ)上確定各個(gè)相關(guān)參數(shù)及其控制規(guī)則,然后在運(yùn)行中反復(fù)進(jìn)行調(diào)整,以達(dá)到最佳控制效果。模糊控制器的設(shè)計(jì)主要考慮以下幾項(xiàng)主要內(nèi)容:
1)確定模糊控制器的輸人變量和輸出變量(即控制量);
2)設(shè)計(jì)模糊控制器的控制規(guī)則;
3)確立模糊化和解模糊的方法;
4)選擇模糊控制器的輸入變最及輸出變量的論域,并確定模糊控制器的參數(shù)(如量化因子、比例因子等);
5)編制模糊控制算法的應(yīng)用程序。
4.3 方向控制
4.3.1 PID算法設(shè)計(jì)
為了能夠更好的反映曲線的變化方向性,我們?nèi)“拙€偏離循跡板中心點(diǎn)位置的差值作為控制的偏差Error。我們用最近幾次偏差值的第二大值作為偏差值,通過絕對(duì)位置的偏差,我們可以確定機(jī)器人目前所在行駛路徑的曲率半徑。偏差值越大,則速度得越慢。由于用最近幾次采樣的偏差值之和作為積分控制,這樣做的好處是使得位置式算法中的積分量只是根據(jù)最近的采集信息有關(guān)系,而不是跟過去整個(gè)狀態(tài)都有關(guān),這樣不容易產(chǎn)生較大的積累誤差。積分值越大,則說明所走的路線曲率變大或者機(jī)器人整體偏移比較嚴(yán)重。
采用最近幾次采樣數(shù)據(jù)差值的絕對(duì)值第二大值作為微分量,用來確定機(jī)器人所在白線的曲率變化率,若差值為正數(shù),則說明曲率還在繼續(xù)加大,曲率半徑仍然在減小,機(jī)器人需要進(jìn)一步減速,加大轉(zhuǎn)彎速度;若差值為負(fù),則表明所走路線逐漸變得直緩,機(jī)器人可以適當(dāng)?shù)奶崴俸蜏p小轉(zhuǎn)彎速度。
在對(duì)三個(gè)系數(shù)進(jìn)行調(diào)節(jié)的時(shí)候,要注意下面的規(guī)律:
2 曲線振蕩很頻繁,比例度盤要放大;
2 曲線漂浮繞大灣,比例度盤往小扳;
2 曲線偏離回復(fù)慢,積分時(shí)間往下降;
2 曲線波動(dòng)周期長(zhǎng),積分時(shí)間再加長(zhǎng);
2 曲線振蕩頻率快,先把微分降下來;
2 動(dòng)差大來波動(dòng)慢,微分時(shí)間應(yīng)加長(zhǎng)。
在機(jī)器人轉(zhuǎn)向的控制中,我們給以直行時(shí)的0°作為初始角度,記為SetPoint,而根據(jù)上面循跡板檢測(cè)的信號(hào)經(jīng)過必要的處理后,得到了一個(gè)偏離的NextPoint,用參考輸入減去NextPoint即可得到偏差信號(hào)Error,即:
Error = SetPoint - NextPoint
通過不斷調(diào)節(jié)PID量,從而實(shí)現(xiàn)對(duì)舵機(jī)轉(zhuǎn)向的控制。
4.3.2 PID控制算法的具體實(shí)現(xiàn)
PID控制的C語(yǔ)言描述方法,首先定義一個(gè)結(jié)構(gòu)體,里面包含PID控制的控制參數(shù)Kp、Ki和Kd,以及給定值和反饋值和偏差值等,PID控制的精華就是通過不斷調(diào)節(jié)Kp、Ki、Kd的值,得到適合的一組參數(shù)值,從而實(shí)現(xiàn)控制的目的。此外,在程序的具體實(shí)現(xiàn)中,還有PID_Init函數(shù)來實(shí)現(xiàn)參數(shù)的初始化,以方便參數(shù)的修改。而實(shí)現(xiàn)控制的程序則為PID_Control,計(jì)算偏差的積分和微分,返回各個(gè)控制參數(shù)和相應(yīng)的偏差量的乘積的和,即可實(shí)現(xiàn)控制。
結(jié)構(gòu)體的定義如下:
Typedef struct
{
int NextPoint;
??????? int ThisPoint;????? //設(shè)定目標(biāo) Desired value
?????int Kp;???????????? //比例常數(shù) Proportional Const
?????int Ki;???????????? //積分常數(shù) Integral Const
?????int Kd;???????????? //微分常數(shù) Derivative Const
???? int LastError;????? //Error[-1]
??????int PrevError;????? //Error[-2]
??????int SumError;?????? //Sums of Errors
} SteerPID
SteerPID stPID;
而初始化函數(shù)的初步設(shè)計(jì)如下:
void PIDinit(void)
{
stPID.ThisPoint=0;?????? //設(shè)定目標(biāo) Desired value
stPID.Kp=1500;???????????? //比例常數(shù) Proportional Const
stPID.Ki=600;????????????? //積分常數(shù) Integral Const
stPID.Kd=60;???????????? //微分常數(shù) Derivative Const
stPID.LastError=0;?????? //Error[-1]
stPID.PrevError=0;?????? //Error[-2]
stPID.SumError=0;??????? //Sums of Errors??
}
PID控制函數(shù)設(shè)計(jì)如下:
int steerPIDCalc (steerPID *pp)
{
int dError,Error;
Error=pp->ThisPoint-pp->NextPoint; //偏差
pp->SumError+=Error; //積分
dError=pp->LastError-pp->PrevError; //當(dāng)前微分
pp->PrevError=pp->LastError;
pp->LastError=Error;
return (pp->Kp*Error??????// 比例項(xiàng)
??????? +pp->Ki*pp->SumError // 積分項(xiàng)
??????? +pp->Kd*dError);?? //微分項(xiàng)
}
通過上面的程序即可實(shí)現(xiàn)智能電動(dòng)機(jī)器人轉(zhuǎn)向的PID控制。
4.3.3 濾波算法介紹
由于系統(tǒng)在采集數(shù)據(jù)時(shí),難免受到外界環(huán)境變化影響,或是受到自身系統(tǒng)設(shè)計(jì)不足而導(dǎo)致穩(wěn)定性不足的影響。采集的數(shù)據(jù)可能出現(xiàn)一些不太正常的起伏波動(dòng)。如果這種錯(cuò)誤的數(shù)據(jù)也被納入計(jì)算的數(shù)據(jù)里,必然會(huì)引起處理后的數(shù)據(jù)也出現(xiàn)不正常的起伏波動(dòng),嚴(yán)重的情況可能會(huì)使系統(tǒng)無法采集到正確的數(shù)據(jù)、且對(duì)后面的數(shù)據(jù)產(chǎn)生長(zhǎng)遠(yuǎn)的誤差影響。因此,濾波算法成為了必要[17]。
4.3.4 濾波算法的具體實(shí)現(xiàn)
本設(shè)計(jì)中主要有三個(gè)的