版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)論文</b></p><p> 題 目: 太陽(yáng)跟蹤儀系統(tǒng)設(shè)計(jì) </p><p> 院 系: 自動(dòng)控制系 </p><p> 專業(yè)班級(jí): 自動(dòng)化 </p><p> 組 長(zhǎng)
2、: </p><p> 二○一三 年 一 月 十三 日</p><p><b> 太陽(yáng)跟蹤儀系統(tǒng)設(shè)計(jì)</b></p><p> 摘要:本論設(shè)計(jì)的是一個(gè)太陽(yáng)方位全自動(dòng)跟蹤儀,實(shí)現(xiàn)了利用攝像頭來(lái)始終跟蹤太陽(yáng)。實(shí)驗(yàn)以單片機(jī)89系列芯片STC89C51作為主控芯片來(lái)設(shè)計(jì)高精度的太陽(yáng)跟蹤儀,分
3、別通過(guò)高精度的永磁力矩直流電機(jī)精確控制其角位移。跟蹤儀利用攝像頭采集信息,根據(jù)得到的圖像灰度值,設(shè)定一個(gè)閥值進(jìn)行二值化,確定兩個(gè)方向的偏差,接著用PID算法來(lái)分別控制x和y兩個(gè)方向的偏差最終實(shí)現(xiàn)攝像頭實(shí)時(shí)精確地跟蹤太陽(yáng)。 </p><p> 關(guān)鍵詞:太陽(yáng)跟蹤,單片機(jī)89C51 ,攝像頭,二值化 ,PID算法</p><p><b> 引言</b></
4、p><p> 太陽(yáng)跟蹤儀是使得攝像頭能夠跟蹤上太陽(yáng)中心,如果可以實(shí)現(xiàn)這一功能,則在實(shí)際應(yīng)用中,可以改進(jìn)使得太陽(yáng)能電池板隨時(shí)正對(duì)太陽(yáng),讓太陽(yáng)光的光線隨時(shí)垂直照射太陽(yáng)能電池板的動(dòng)力裝置,采用太陽(yáng)能跟蹤儀能顯著提高太陽(yáng)能光伏組件的發(fā)電效率。</p><p> 所以本文是實(shí)現(xiàn)太陽(yáng)能高效率利用的前提實(shí)驗(yàn)。</p><p><b> 硬件介紹</b>&l
5、t;/p><p><b> 1.1單片機(jī)模塊</b></p><p> 單片機(jī)又稱單片微控制器, 是在一塊芯片中集成了CPU( 中央處理器)、RAM( 數(shù)據(jù)存儲(chǔ)器)、ROM( 程序存儲(chǔ)器)、定時(shí)器/ 計(jì)數(shù)器和多種功能的I/O( 輸入/ 輸出) 接口等一臺(tái)計(jì)算機(jī)所需要的基本功能部件,從而可以完成復(fù)雜的運(yùn)算、邏輯控制、通信等功能。</p><p>
6、 在簡(jiǎn)單了解了什么是單片機(jī)之后,然后我們來(lái)構(gòu)建單片機(jī)的最小系統(tǒng),單片機(jī)的最小系統(tǒng)就是讓單片機(jī)能正常工作并發(fā)揮其功能時(shí)所必須的組成部分,也可理解為是用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對(duì)51 系列單片機(jī)來(lái)說(shuō), 最小系統(tǒng)一般應(yīng)該包括: 單片機(jī)、時(shí)鐘電路、復(fù)位電路、輸入/ 輸出設(shè)備等。STC89C52單片機(jī)的引腳圖1-1-1所示:</p><p> 圖1-1-1 STC89C52單片機(jī)引腳圖</p>
7、;<p> 1.1.1 單片機(jī)最小系統(tǒng)</p><p> 單片機(jī)的最小系統(tǒng)框圖如圖1-1-2所示,單片機(jī)的最小系統(tǒng)的仿真圖如圖1-1-3所示:</p><p> 圖1-1-2 單片機(jī)最小系統(tǒng)框圖</p><p> 圖1-1-3 單片機(jī)最小系統(tǒng)仿真電路圖</p><p> 1.1.2 單片機(jī)復(fù)位電路</p>
8、<p> 復(fù)位是單片機(jī)的初始化操作,只要給RESET引腳加上2個(gè)機(jī)器周期以上的高電平信號(hào),即可使單片機(jī)復(fù)位。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)程序運(yùn)行出錯(cuò)或是操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫死鎖狀態(tài),也需要按復(fù)位鍵重新復(fù)位。</p><p> 在系統(tǒng)中,為了實(shí)現(xiàn)上述的兩項(xiàng)功能,采用常用的按鍵電平復(fù)位電路,這樣復(fù)位鍵有復(fù)位和停止兩個(gè)功能,如圖1-1-4所示:</p><p&
9、gt; 圖1-1-4 復(fù)位電路</p><p> 從圖中可以看出,當(dāng)系統(tǒng)得到工作電壓的時(shí)候,復(fù)位電路工作在上電自動(dòng)復(fù)位狀態(tài),通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn),只要Vcc的上升時(shí)間不超過(guò)1ms就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位功能。在本系統(tǒng)中,采用10uF的電容和100kΩ的電阻來(lái)實(shí)現(xiàn)復(fù)位電路。當(dāng)系統(tǒng)出錯(cuò)時(shí),直接按開(kāi)關(guān)實(shí)現(xiàn)模擬系統(tǒng)上電復(fù)位的功能,從而實(shí)現(xiàn)系統(tǒng)重新復(fù)位啟動(dòng)。</p><p> 1.
10、1.3 時(shí)鐘電路</p><p> 時(shí)鐘電路是用于產(chǎn)生單片機(jī)工作時(shí)所必需的時(shí)鐘信號(hào)。時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn)的,有條不紊地一拍一拍地工作。時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。在本系統(tǒng)中采用外部時(shí)鐘方式的電路,如圖1-1-5所示:</p><p> 圖1-1-5 系統(tǒng)時(shí)鐘電路</p><p&
11、gt; 在本設(shè)計(jì)中的電容C1、C2典型值為30±10 pF。外接代內(nèi)容的值雖然沒(méi)有嚴(yán)格的要求,但是電容的大小會(huì)影響振蕩器的穩(wěn)定性和起振的快速性。同時(shí),在系統(tǒng)中采用12MHz的晶體振蕩器來(lái)產(chǎn)生時(shí)鐘脈沖。這樣可以滿足系統(tǒng)在設(shè)計(jì)時(shí)的機(jī)器周期的需要。</p><p><b> 1.2圖像采集模塊</b></p><p> 1.2.1 攝像頭ov7620的介紹&
12、lt;/p><p> OV7620 是美國(guó)OmniVision 公司開(kāi)發(fā)的CMOS 彩色圖像傳感器芯片, 該芯片將CMOS 傳感器技術(shù)與數(shù)字接口組合, 用于視頻圖像應(yīng)用。OV7620 芯片的基本參數(shù)為:</p><p> 1) 單片1/ 3 英寸彩色/ 黑白數(shù)字圖像傳感器, 48 引腳。</p><p> 2) 隔行掃描或逐行掃描。</p><
13、p> 3) 圖像尺寸: 4. 86* 3. 64 mm。像素尺寸:</p><p> 7. 6 um ×7. 6 um</p><p> 4) 有效像素: 664* 492, 默認(rèn)值: 640* 480;</p><p> 5) 內(nèi)部10 bit 雙通道A/ D 轉(zhuǎn)換, 8/ 10b it 輸出。</p><p>
14、6) 曝光設(shè)定500: 1;</p><p> 7) 信噪比> 48 dB;</p><p> OV7620 是高性能的數(shù)字圖像傳感器, 可提供彩色/ 黑白多種格式的輸出, 且支持8/ 16 Bit 60H Z YCrCb 4: 2: 2格式, 8/ 16 Bit RGB RAW 數(shù)據(jù), 和CCIR601/ CCIR656 格式。并可用SCCB 進(jìn)行內(nèi)部寄存器編程。在輸出數(shù)字視頻
15、流的同時(shí)還提供像素時(shí)鐘PCLK、水平參考信號(hào)HREF、垂直同步信號(hào)VSYNC 便于外部電路讀取圖像, 并可編程設(shè)置HREF、V SYNC 在圖像局部開(kāi)窗, 輸出窗口圖像。它被廣泛應(yīng)用在網(wǎng)絡(luò)攝像頭、攝像手機(jī)等產(chǎn)品中。由它組成的圖像采集系統(tǒng),比較常見(jiàn)的設(shè)計(jì)方法為OV7620搭配OV5ll+或CPLD/FPGA。</p><p> OV7620有4個(gè)同步信號(hào),VSYNC(垂直同步信號(hào))、FODD(奇數(shù)場(chǎng)同步信號(hào))、H
16、SYNC(水平同步信號(hào))和PCLK(像素同步信號(hào))。采用連續(xù)掃描方式時(shí),只使用VSYNC和HSYNC、PCLK三個(gè)同步信號(hào),為檢測(cè)OV7620掃描窗口的有效大小,還引入HREF水平參考信號(hào)。ARM的三個(gè)外部中斷引腳分別作為3個(gè)同步信號(hào)的輸入,在內(nèi)存中定義一個(gè)二維數(shù)組存儲(chǔ)圖像數(shù)據(jù),一維用于水平同步信號(hào)計(jì)數(shù),二維用于像素同步信號(hào)計(jì)數(shù)。圖像采集的流程為:初始化好OV7620后,使能VSYNC對(duì)應(yīng)的中端,在中斷服務(wù)程序中判斷是否已取得一幀數(shù)據(jù),
17、接收到則進(jìn)行數(shù)據(jù)處理。</p><p> 1.2.2 工作原理</p><p> 圖像傳感器即攝像頭,是組成機(jī)器視覺(jué)系統(tǒng)的非常重要的元器件。根據(jù)其原理不同分?jǐn)z像頭主要分為兩種:CCD(Charge Coupled Device)攝像頭,CMOS攝像頭。CCD也稱電耦合器件,其工作原理是:被攝物體反射光線到攝像頭上,經(jīng)過(guò)鏡頭聚焦到CCD感光芯片上,感光芯片根據(jù)光線的強(qiáng)弱積聚相應(yīng)電荷,經(jīng)周
18、期性放電而產(chǎn)生表示圖像的電信號(hào)。CMOS攝像頭其實(shí)跟CCD差不多,也是將光轉(zhuǎn)換成電信號(hào)的器件。它們的差異之處就是圖像的掃描方式不同,CCD是采用連續(xù)掃描方式,即它只有等到最后一個(gè)像素掃描完成后才進(jìn)行放大;CMOS傳感器的每個(gè)像素都有一個(gè)將電荷放大為電信號(hào)的轉(zhuǎn)換器。 </p><p> CMOS傳感器的圖像采集方式為主動(dòng)式, 感光二極管所產(chǎn)生的電荷直接由晶體管放大輸出,不需要外加電壓,5V的電壓就可以工作,所以C
19、MOS的功耗比CCD要小。由于CMOS功耗小,較CCD要便宜,而且圖像質(zhì)量滿足要求。 本次設(shè)計(jì)采用的OV7620這一款攝像頭。</p><p> 1.2.3 工作時(shí)序 </p><p> OV7620的同步信號(hào)時(shí)序如下:場(chǎng)同步信號(hào)VSYN為兩個(gè)正脈沖之間掃描一幀的定時(shí),即完整的一幀圖像在兩個(gè)正脈沖之間;行同步信號(hào)HREF掃描該幀圖像中各行像素的定時(shí),即高電平時(shí)為掃描一行像素的有效時(shí)間;
20、像素同步信號(hào)PCLK為讀取有效像素值提供同步信號(hào),高電平時(shí)輸出有效圖像數(shù)據(jù)。VYNSC 是判斷是否一幅圖像開(kāi)始,周期是 20ms, 其中高電平持續(xù)時(shí)間很短;HREF 是判斷是否一行圖像的開(kāi)始,周期是 63us 左右,其中高電平持續(xù)時(shí)間為 40US,低電平持續(xù)時(shí)間 23US.攝像頭實(shí)物圖如圖1-2-1所示:</p><p> 圖1-2-1 攝像頭實(shí)物圖</p><p> PIN1-PIN
21、8 灰度信號(hào)輸出接口 Y0-Y7</p><p> PIN11 SCCB數(shù)據(jù)接口 SDA</p><p> PIN12 奇偶場(chǎng)同步信號(hào) PODD</p><p> PIN13 SCCB數(shù)據(jù)時(shí)鐘 SCL</p><p> PIN14 行中斷信號(hào) HREF</p><p> PIN16 場(chǎng)中斷信號(hào) VSYN<
22、;/p><p> PIN18 像素同步信號(hào) PCLK(也叫TCLK)</p><p> PIN32 模擬信號(hào)輸出接口 VTO</p><p><b> 1.3電機(jī)驅(qū)動(dòng)模塊</b></p><p> 1.3.1 L298N芯片的介紹</p><p> L298N是SGS公司的產(chǎn)品,是具有15引
23、腳的芯片,內(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ī)。L298N的引腳圖如圖1-3-1所示:</p><p> 圖1-3-1 L298N引腳圖</p><p> 1.3.2 L298N的內(nèi)部原理</p><p> L298N有兩路電源分別
24、為邏輯電源和動(dòng)力電源,上圖中VSS接6V為邏輯電源,VS接12V為動(dòng)力電源。IN1、IN2接控制信號(hào),EnA使能端A接入低電平。OUT1與OUT2分別為單片機(jī)控制兩個(gè)電機(jī)的輸入端。L298N的內(nèi)部原理圖如圖1-3-2所示,L298N的邏輯功能如表1-3-1所示:</p><p> 圖1-3-2 L298N的原理圖</p><p> 表1-3-1 L298N的邏輯功能</p>
25、;<p> 1.3.3 電機(jī)驅(qū)動(dòng)電路的仿真</p><p> 由單片機(jī)直接輸出的脈沖不足以驅(qū)動(dòng)步進(jìn)電機(jī)正常工作所以需要驅(qū)動(dòng)電路給直流電機(jī)提供電源,我們所使用的電機(jī)一般為直流電機(jī),主要用到永磁直流電機(jī)、伺服電機(jī)及步進(jìn)電機(jī)三種。直流電機(jī)的控制很簡(jiǎn)單,性能出眾,直流電源也容易實(shí)現(xiàn)。在本設(shè)計(jì)中采用型號(hào)為L(zhǎng)298N的芯片,使直流電機(jī)正常工作。驅(qū)動(dòng)信號(hào)由P1口的P1.0、P1.1、P1.2、P1.3輸出,分
26、別與驅(qū)動(dòng)芯片的IN1、IN2、IN3、IN4相連,電路如圖1-3-3所示:</p><p> 圖1-3-3電機(jī)驅(qū)動(dòng)電路</p><p><b> 1.4電源模塊</b></p><p> 1.4.1電機(jī)驅(qū)動(dòng)電源:可調(diào)電源</p><p> 可調(diào)電源是采用當(dāng)前國(guó)際先進(jìn)的高頻調(diào)制技術(shù),其工作原理是將開(kāi)關(guān)電源的電壓和電
27、流展寬,實(shí)現(xiàn)了電壓和電流的大范圍調(diào)節(jié),同時(shí)擴(kuò)大了目前直流電源供應(yīng)器的應(yīng)用。與傳統(tǒng)電源相比高頻直流電源就較具有體積小、重量輕、效率高等優(yōu)點(diǎn),同時(shí)也為大功率直流電源減小體積創(chuàng)造了條件,此電源又稱高頻可調(diào)式開(kāi)關(guān)電源??烧{(diào)直流穩(wěn)壓電源保護(hù)功能齊全,過(guò)壓、過(guò)流點(diǎn)可連續(xù)設(shè)置并可預(yù)視,輸出電壓可通過(guò)觸控開(kāi)關(guān)控制。但其缺點(diǎn)也很明顯,大功率的可調(diào)電源體積龐大,攜帶不方便。可調(diào)電源實(shí)物如圖1-4-1所示:</p><p> 圖1-
28、4-1 可調(diào)電源</p><p> 1.4.2單片機(jī)穩(wěn)壓電源:LM2940</p><p> LM2940是常用的串聯(lián)型線性穩(wěn)壓管,它具有紋波小、電路結(jié)構(gòu)簡(jiǎn)單的優(yōu)點(diǎn),對(duì)于單片機(jī),需要提供穩(wěn)定的5V電源,由于LM2940的穩(wěn)壓的線性度非常好,所以選用LM2940單獨(dú)對(duì)其進(jìn)行供電;LM2940/2940C還含有一個(gè)靜態(tài)電流降低電路,當(dāng)輸入輸出壓差超過(guò)3V時(shí),可以減少地電流。在輸出電流為1A
29、或輸入輸出壓差為5V時(shí),靜態(tài)電流僅為30MA.此外,該電路內(nèi)還設(shè)有防反接電路,防止輸入電壓反接對(duì)電路造成損害。因此,LM2940/2940C特別適合于汽車、機(jī)動(dòng)車輛、船舶等的使用。LM2940CT的接線圖如圖1-4-2所示:</p><p> 圖1-4-2 LM2940CT接線圖</p><p> 輸出電壓固定的低壓差三端穩(wěn)壓器;輸出電壓5V;輸出電流1A;輸出電流1A時(shí),最小輸入
30、輸出電壓差小于0.8V;最大輸入電壓26V;工作溫度-40~+125℃;內(nèi)含靜態(tài)電流降低電路、電流限制、過(guò)熱保護(hù)、電池反接和反插入保護(hù)電路。LM2940CT的實(shí)物圖如圖1-4-3所示,LM2940引腳圖如1-4-4所示:</p><p> 圖1-4-3 LM2940CT實(shí)物圖</p><p> 圖1-4-4 LM2940CT引腳介紹</p><p><b&
31、gt; 1.5系統(tǒng)原理敘述</b></p><p> 本方案的太陽(yáng)光跟蹤系統(tǒng)是有OV7620攝像頭、STC89C52單片機(jī)、時(shí)鐘電路、穩(wěn)壓電源模塊、電機(jī)驅(qū)動(dòng)模塊等主要模塊組成。經(jīng)過(guò)攝像頭OV7620采集圖像,通過(guò)對(duì)采集到的圖像經(jīng)過(guò)單片機(jī)計(jì)算出相應(yīng)的太陽(yáng)相對(duì)的角度值,太陽(yáng)光控制電路根據(jù)太陽(yáng)的位置移動(dòng)。系統(tǒng)總框圖如圖1-5-1所示,系統(tǒng)進(jìn)程框圖如圖1-5-2所示:</p><p&g
32、t; 圖1-5-1 系統(tǒng)總框圖</p><p> 圖1-5-2 系統(tǒng)進(jìn)程框圖</p><p><b> 2. 系統(tǒng)程序設(shè)計(jì)</b></p><p><b> 2.1程序流程 </b></p><p> 系統(tǒng)的總體程序流程如圖2-1-1所示:</p><p> 圖2
33、-1-1 總體程序流程圖</p><p><b> 2.2 C語(yǔ)言實(shí)現(xiàn)</b></p><p> 用C語(yǔ)言實(shí)現(xiàn)圖像的二值化和中心的確定,將拍出來(lái)的圖像看做一個(gè)數(shù)組,用0、1分別代表明、暗,這樣拍出來(lái)的圖像就相當(dāng)于0和1組成的矩陣,求出值為0的區(qū)域的中心就是太陽(yáng)的中心。</p><p> 2.2.1 圖像的二值化</p>&
34、lt;p> 首先,采集到的圖像是一個(gè)個(gè)灰度值,我們需要用一個(gè)閥值來(lái)使這些灰度值二值化,凡是小于閥值的都設(shè)1,大于閥值的都設(shè)為0。下面就是二值化的子程序:</p><p> void ezh() // 二值化子程序</p><p><b> { </b></p><p>&l
35、t;b> int i,j;</b></p><p> for(i=0;i<hang_max;i++) </p><p> for(j=0;j<lie_max;j++)</p><p> {if(pic_data[i][j]>=fz) //像素值大于閾值,將該像素設(shè)為0</p><p&
36、gt; pic_data[i][j]=0; </p><p> else //像素值小于閾值,將該像素設(shè)為1</p><p> pic_data[i][j]=1; </p><p><b> }</b></p><p><b>
37、}</b></p><p> 2.2.2 確定太陽(yáng)的中心</p><p> 二值化以后,能夠給出太陽(yáng)的大概輪廓,是一塊為像素為0的連續(xù)區(qū)域。如圖2-2-1所示:</p><p> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 </p><p> 1 1 1 1 1 1 1 1 0 0 1 1
38、1 1 1 1 1 1 1</p><p> 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1</p><p> 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1</p><p> 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 </p><p> 1 1
39、 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 </p><p> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 </p><p> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 </p><p> 圖2-2-1 二值化后的矩陣圖</p><p> 灰度
40、值為0的點(diǎn)的坐標(biāo)為(x,y),由于區(qū)域連續(xù),首先求二值化后的矩陣中值最小的那一行為中心點(diǎn)x值,接著求二值化后的矩陣中值最小的那一列為中心點(diǎn)y值,這樣得到的(x,y)這個(gè)點(diǎn)就是太陽(yáng)的中心點(diǎn)。</p><p> 求太陽(yáng)中心的程序如下:</p><p> void center() //求中心點(diǎn)子程序</p><p>&l
41、t;b> {</b></p><p> int min=20,i,j,sum=0;</p><p> for(i=0;i<hang_max;i++) //求二值化后的矩陣中值最小的那一行為中心點(diǎn)x值</p><p><b> {</b></p><p> for(j=
42、0;j<lie_max;j++) </p><p> { sum=sum+pic_data[i][j]; }</p><p> if(min>sum)</p><p><b> { </b></p><p><b> min=sum;</b></p>
43、<p> center_x=i; //中心行號(hào)</p><p><b> }</b></p><p><b> sum=0; </b></p><p> } </p><p> sum=0;min=20;</p>
44、<p> for(i=0;i<lie_max;i++) //求二值化后的矩陣中值最小的那一列為中心點(diǎn)y值</p><p><b> {</b></p><p> for(j=0;j<hang_max;j++)</p><p> { sum=sum+pic_data[i][j]; }</p&
45、gt;<p> if(min>sum)</p><p><b> { </b></p><p><b> min=sum;</b></p><p> center_y=i; //中心列號(hào)</p><p><b> }<
46、/b></p><p><b> sum=0; </b></p><p><b> } </b></p><p><b> }</b></p><p> 2.2.3誤差的PID算法</p><p> 采用增量式的控制算法如下:</
47、p><p> signed int pid(signed int a ) // pid算法子程序</p><p><b> { </b></p><p> float q0,q1,q2; //定義比例項(xiàng),積分項(xiàng),微分項(xiàng)輸出項(xiàng)</p><p> ei=center_imgx-a;
48、 //x軸向誤差</p><p> if(k==0&&ti==0&&td==0) //比例項(xiàng)系數(shù),積分項(xiàng),微分項(xiàng)系數(shù)為0時(shí)各項(xiàng)輸出為0</p><p><b> { q0=0;</b></p><p><b> q1=0;</b></p><p>
49、<b> q2=0;</b></p><p><b> }</b></p><p> if(k!=0&&ti!=0) //比例項(xiàng),微分項(xiàng)系數(shù)不為0時(shí),通過(guò)pid公式計(jì)算各項(xiàng)輸出值</p><p><b> {</b></p><p> q0=
50、k*(ei-e1);</p><p> q1=k*Ts*ei/ti;</p><p> q2=k*td*(ei-2*e1+e2)/Ts; </p><p><b> }</b></p><p> if(ti==0) //積分項(xiàng)系數(shù)為0時(shí),各項(xiàng)輸出值</p><
51、p><b> {</b></p><p> q0=k*(ei-e1);</p><p><b> q1=0;</b></p><p> q2=k*td*(ei-2*e1+e2)/Ts;</p><p><b> }</b></p><p>
52、; e2=e1; //將上一次所的誤差賦值給e2</p><p> e1=ei; //將這一次所的誤差賦值給e1</p><p> if(q1>5){q1=5;}</p><p> if(q1<-5){q1=-5;}</p><p> op=op
53、+q0+q1+q2; //計(jì)算最后輸出值</p><p> if(op>5){op=5;} //限幅</p><p> if(op<-5){op=-5;}</p><p> return op; //返回最后輸出值</p><p><b>
54、; }</b></p><p> 2.2.4 單片機(jī)控制電機(jī)正反轉(zhuǎn) 的PWM信號(hào)</p><p> 下面就是電機(jī)正反轉(zhuǎn)的子程序:</p><p> void zfzx() //x軸電機(jī)正反轉(zhuǎn)子程序</p><p><b> { </b></p>
55、<p> if(opx>0) //x軸pid輸出誤差為正向誤差,電機(jī)正向轉(zhuǎn)動(dòng)</p><p><b> {</b></p><p> fzx=0; //關(guān)閉x軸l298n反向橋路</p><p> zzx=px; //將電機(jī)驅(qū)動(dòng)信號(hào)給x軸l2
56、980n正向橋路</p><p><b> }</b></p><p> if(opx<0) //x軸pid輸出誤差為負(fù)向誤差,電機(jī)反向轉(zhuǎn)動(dòng)</p><p><b> {</b></p><p> zzx=0; //關(guān)閉x軸l298n正
57、向橋路</p><p> fzx=px; //將電機(jī)驅(qū)動(dòng)信號(hào)給x軸l2980n反向橋路 </p><p><b> } </b></p><p><b> }</b></p><p> void zfzy() //
58、y軸電機(jī)正反轉(zhuǎn)子程序</p><p><b> { </b></p><p> if(opy>0) //y軸pid輸出誤差為正向誤差,電機(jī)正向轉(zhuǎn)動(dòng)</p><p><b> {</b></p><p> fzy=0; //關(guān)閉
59、y軸l298n反向橋路</p><p> zzy=py; //將電機(jī)驅(qū)動(dòng)信號(hào)給y軸l2980n正向橋路</p><p><b> } </b></p><p> if(opy<0) //y軸pid輸出誤差為負(fù)向誤差,電機(jī)反向轉(zhuǎn)動(dòng)</p><p><b&g
60、t; {</b></p><p> zzy=0; //關(guān)閉y軸l298n正向橋路 </p><p> fzy=py; //將電機(jī)驅(qū)動(dòng)信號(hào)給y軸l2980n反向橋路 </p><p><b> } </b></p><p><b> } </b&
61、gt;</p><p><b> 3.軟件的調(diào)試</b></p><p> 3.1 把程序送到單片機(jī)</p><p> 我們把寫好的程序送給單片機(jī)用到了Stc-isp這個(gè)軟件,使用如下:</p><p> 第一步 打開(kāi)stp_isp_v480.exe 如圖3-1-1所示:</p><p>
62、; 圖3-1-1 stp_isp_v480.exe文件</p><p> 第二步 選擇單片機(jī)類型、com口、最低和最高波特率 如圖3-1-2所示:</p><p> 圖3-1-2 步驟二附圖</p><p> 第三步 打開(kāi)并添加要燒錄的文件。如圖3-1-3所示:</p><p> 圖3-1-3 步驟三附圖</p>&l
63、t;p> 第四步 點(diǎn)擊下載,如圖3-1-4所示:</p><p> 圖3-1-4 步驟四附圖</p><p> 第五步 給單片機(jī)開(kāi)發(fā)板上電,如圖3-1-5所示:</p><p> 圖3-1-5 步驟五附圖</p><p> 第六步 燒錄程序完成,如圖3-1-6所示:</p><p> 圖3-1-6
64、 步驟六附圖</p><p> 3.2 模擬電路仿真</p><p> 在繪制完電路圖后,將編好的程序輸入軟件內(nèi)檢查所編程序是否正確,檢查程序無(wú)誤后裝入單片機(jī)內(nèi),用Proteus進(jìn)行仿真,該環(huán)節(jié)主要模擬了將太陽(yáng)跟蹤系統(tǒng)的X,Y軸向的誤差轉(zhuǎn)換成電機(jī)所需要的驅(qū)動(dòng)信號(hào)。本方案的Proteus仿真圖中的KEY1模擬了太陽(yáng)中心處于以攝像頭OV7620中心為原點(diǎn)的坐標(biāo)的第一象限,設(shè)Y軸正方向?yàn)橄蛏?/p>
65、,X軸正方向?yàn)橄蛳?。即在X軸,Y軸上兩方向的誤差均屬于正向誤差位移,此時(shí)將該誤差轉(zhuǎn)換成電機(jī)驅(qū)動(dòng)信號(hào),控制X軸方向的電機(jī)與控制Y軸方向的電機(jī)均向正方向轉(zhuǎn)動(dòng) ,到達(dá)太陽(yáng)中心。同理,KEY2模擬了第二象限的誤差位移,KEY3模擬了第三象限的誤差位移,KEY4模擬了第四象限的誤差位移。而KEY5則模擬了X,Y電機(jī)在轉(zhuǎn)動(dòng)過(guò)程中,從而攝像頭OV7620不斷接近太陽(yáng)中心,每按下KEY5則減小電機(jī)驅(qū)動(dòng)信號(hào)的占空比,當(dāng)?shù)竭_(dá)太陽(yáng)中心,此時(shí)的占空比為0,電機(jī)
66、也停止轉(zhuǎn)動(dòng),從而實(shí)現(xiàn)成功跟蹤太陽(yáng)。Proteus仿真圖如圖3-2-1所示:</p><p> 圖3-2-1 Protueus仿真圖</p><p> 系統(tǒng)進(jìn)入仿真模式后,令KEY1按鈕閉合,代表了太陽(yáng)中心處于以攝像頭OV7620中心為原點(diǎn)的坐標(biāo)的第一象限,使X軸直流電機(jī)正轉(zhuǎn)工作,Y軸直流電機(jī)正轉(zhuǎn)工作,到達(dá)太陽(yáng)中心。此時(shí)需要不斷調(diào)整KEY5來(lái)使誤差不斷減小,最后使X軸直流電動(dòng)機(jī)和Y軸直
67、流電動(dòng)機(jī)同時(shí)停止工作,即已經(jīng)到達(dá)太陽(yáng)中心。當(dāng)按下KEY1時(shí)的仿真圖如圖3-2-2所示,當(dāng)按下多次KEY5時(shí)的仿真圖如圖3-2-3所示:</p><p> 圖3-2-2 按下KEY1時(shí)的仿真圖</p><p> 圖3-2-3 多次按下KEY5后的仿真圖</p><p> 3.3程序的調(diào)試心得</p><p> 一,用頭腦去分析思考與錯(cuò)誤
68、征兆有關(guān)的信息。二,避開(kāi)死胡同。三,只把調(diào)試工具當(dāng)做手段。利用調(diào)試工具,可以幫助思考,但不能代替思考,因?yàn)檎{(diào)試工具給的是一種無(wú)規(guī)律的調(diào)試方法。四,避免用試探法,最多只能把它當(dāng)做最后手段。五,再出現(xiàn)錯(cuò)誤的地方,可能還有別的錯(cuò)誤。六,修改錯(cuò)誤的一個(gè)常見(jiàn)失誤是只修改了這個(gè)錯(cuò)誤的征兆或這個(gè)錯(cuò)誤的表現(xiàn),而沒(méi)有修改錯(cuò)誤本身。如果提出的修改不能解釋與這個(gè)錯(cuò)誤有關(guān)的全部線索,那就表明只修改了錯(cuò)誤的一部分。七,注意修正一個(gè)錯(cuò)誤的同時(shí)可能會(huì)引入新的錯(cuò)誤。八
69、,修改錯(cuò)誤的過(guò)程將迫使人們暫時(shí)回到程序設(shè)計(jì)階段。修改錯(cuò)誤也是程序設(shè)計(jì)的一種形式。九,修改源代碼程序,不要改變目標(biāo)代碼。</p><p><b> 總結(jié)</b></p><p> 4.1團(tuán)隊(duì)管理的心得體會(huì) </p><p> 對(duì)于每一個(gè)小組成員,我們都應(yīng)明確他所善長(zhǎng)和能勝任的方面,并且每一成員都應(yīng)自發(fā)地承接自己所擅長(zhǎng)的工作,遇到問(wèn)題時(shí)要與大
70、家一起商量討論,找出切實(shí)可行的方案,這樣才能發(fā)揮每一個(gè)成員的作用,發(fā)揮出小組團(tuán)隊(duì)的能力,更好的完成課題。 </p><p> 我們小組在本此課題中正是這樣做的。我們首先共同商討,根據(jù)小組成員能力和一些技術(shù)上的問(wèn)題,發(fā)揮自己的創(chuàng)新意識(shí)和對(duì)現(xiàn)實(shí)的應(yīng)用價(jià)值,一起確定了設(shè)計(jì)思想。小組成員根據(jù)自己能力提出自己接受的任務(wù),最后再根據(jù)實(shí)際情況,大家一起均衡分配工作任務(wù)。并在各自完成任務(wù)的同時(shí),周期性地一起討論課程的進(jìn)程,并對(duì)
71、遇到的一些問(wèn)題,提出來(lái)一起解決,這樣我們小組成員可對(duì)整個(gè)項(xiàng)目有一個(gè)全面的了解,知道自己下一步該如何做,其中最重要的是解決遇到的問(wèn)題,不會(huì)因一個(gè)小方面的問(wèn)題而使整個(gè)項(xiàng)目無(wú)法完成,與此同時(shí)還要善于與其他小組交流,并一起對(duì)所交流問(wèn)題一起研討。這樣才能從討論中找出最好的方法,這就是我們小組在本次課題中的基本過(guò)程。 </p><p> 在設(shè)計(jì)中,我們遇到了很多問(wèn)題和困難,在程序的編寫上,我們始終無(wú)法實(shí)現(xiàn)實(shí)驗(yàn)的要求,于是我
72、們組的成員們冒著嚴(yán)寒跑到圖書館里參考相關(guān)的書籍,有的組員利用研究生還沒(méi)有回這個(gè)機(jī)會(huì),抓緊時(shí)間去請(qǐng)教研究生學(xué)長(zhǎng),最后經(jīng)過(guò)同學(xué)們的努力,我們的程序終于調(diào)試成功了。我們的成功來(lái)之不易,凝聚著成員們多少辛勤的汗水??! </p><p> 4.2 課程設(shè)計(jì)的心得體會(huì) </p><p> 在通過(guò)本次課程設(shè)計(jì)中,我們遇到很多問(wèn)題,與此同時(shí),我們也學(xué)到了很多,對(duì)于本次課題的心得體會(huì),我們覺(jué)得有以下幾點(diǎn)
73、: </p><p> 1、不管做什么事,計(jì)劃是很重要的。沒(méi)有一個(gè)完好的計(jì)劃,做事情就會(huì)沒(méi)有一個(gè)好的順序,做事情會(huì)比較亂,很難成功。而有一個(gè)好的計(jì)劃,不管做什么事都會(huì)事半功倍,而且做事心中有數(shù),明確重點(diǎn)和緩急,不會(huì)有疏漏。這樣才能提高成功率。 </p><p> 2、做事要多動(dòng)腦,選出最好的方法。一件事往往有多種解決方法,一個(gè)好的方法,不僅能使事情事半功倍,而且往往決定最后的成與敗,所
74、以做事時(shí)一定要多動(dòng)一下腦筋,想出最好的方法。 </p><p> 3、要注意細(xì)節(jié)。細(xì)節(jié)決定成敗,這句話在這次課題中不僅一次得到了印證,特別是在軟件的編程過(guò)程中,一點(diǎn)點(diǎn)的錯(cuò)誤就會(huì)使你整個(gè)程序不能運(yùn)行。因此我們不僅僅要有整體意識(shí),也要注意細(xì)節(jié),不要因一個(gè)關(guān)鍵地方的一個(gè)細(xì)節(jié)而導(dǎo)致滿盤皆輸。 </p><p> 4、團(tuán)隊(duì)合作很重要。團(tuán)隊(duì)做一件事時(shí),要發(fā)揮出門一個(gè)人的長(zhǎng)處。人無(wú)完人,但一個(gè)團(tuán)隊(duì)可
75、以互相幫助,互相補(bǔ)充,只要互相合作,個(gè)人完成各自專長(zhǎng)的,離成功就只有一步之遙。除此之外,人人總是有疏漏的方面,但是只要互相合作,互相交流,就會(huì)考慮問(wèn)題更全面化,在本次課題中,我們組團(tuán)結(jié)合作不僅事半功倍,而且發(fā)現(xiàn)了一些好的有趣的構(gòu)想,使我們對(duì)單片機(jī)有了更濃的興趣。 </p><p> 5、最后,也是最重要的一點(diǎn),通過(guò)這次課題,我們學(xué)到了很多有關(guān)單片機(jī)方面的知識(shí),也對(duì)單片機(jī)有了更深入的了解,使我們受益匪淺。<
76、/p><p><b> 參考文獻(xiàn):</b></p><p> [ 1] 苑瑋琦, 劉麗微. 基于視覺(jué)的太陽(yáng)方位檢測(cè)裝置的研究[ J] .計(jì)算機(jī)測(cè)量與控制, 2008, 16( 7) : 911- 913.</p><p> [ 2] 吳靜. 太陽(yáng)自動(dòng)跟蹤系統(tǒng)的研究[ D] . 重慶: 重慶大學(xué), 2008.</p><
77、p> [ 3] 付忠良. 圖像閾值選取方法——Otsu 方法的推廣[ J] . 計(jì)算機(jī)應(yīng)用, 2000, 20( 5) : 37- 39.</p><p> [ 4] 劉京誠(chéng), 任松林, 李敏, 等. 智能型雙軸太陽(yáng)跟蹤控制系統(tǒng)的設(shè)計(jì)[ J] . 傳感器與微系統(tǒng), 2008, 27( 9) : 69- 71.</p><p> [ 5] 劉巍, 王志超, 沈垣, 等. 太
78、陽(yáng)自動(dòng)跟蹤系統(tǒng)的研究與設(shè)計(jì) [ J] . 水電能源科學(xué), 2009( 27) : 215- 218.</p><p> [ 6] 呂文華, 賀曉雷, 于賀軍, 等. 全自動(dòng)太陽(yáng)跟蹤器的研制和應(yīng)用[ J] . 光學(xué)精密工程, 2008, 12( 16) : 2544- 2550.</p><p> [ 7] 關(guān)繼文; 孔令成; 張志華; 高精度太陽(yáng)能跟蹤控制器設(shè)計(jì)與實(shí)現(xiàn) 自動(dòng)化與儀器
79、儀表,2012年03期</p><p> [ 8] 杜云峰,基于單片機(jī)的太陽(yáng)自動(dòng)跟蹤系統(tǒng)的研究1、湖南文理學(xué)院電氣與信息工程學(xué)院,湖南常德415000;2、電子科技大學(xué)自動(dòng)化工程學(xué)院,四川成都610054)</p><p> [ 9] 劉京誠(chéng) , 任松林, 李敏 , 羅勇 , 楊慶峰,智能型雙軸太陽(yáng)跟蹤控制系統(tǒng)的設(shè)計(jì)(1. 重慶大學(xué)光電技術(shù)及系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室,重慶400044;
80、 2. 四川理工學(xué)院機(jī)電系,四川自貢643000)</p><p> [10] 一種新型的太陽(yáng)自動(dòng)跟蹤系統(tǒng)研究鄒建, 姬 興, 杜海濤; ( 1. 光電技術(shù)及應(yīng)用教育部重點(diǎn)實(shí)驗(yàn)室, 重慶400044; 2. 重慶大學(xué)光電工程學(xué)院, 重慶400044)</p><p> [11] 施玉川.太陽(yáng)能應(yīng)用[M].陜西科學(xué)出版社,2001.</p><p> [12
81、] 高峰,孫成權(quán),劉全根.太陽(yáng)能開(kāi)發(fā)利用的現(xiàn)狀及發(fā)展趨勢(shì)[J].世界科技研究與發(fā)展,2001,23(4):35-39.</p><p> [13] 任松林.主動(dòng)式太陽(yáng)跟蹤及驅(qū)動(dòng)系統(tǒng)研究與設(shè)計(jì)[D].重慶大學(xué),2008</p><p> [14] 詹華,姚士洪.對(duì)我國(guó)能源現(xiàn)狀及未來(lái)發(fā)展的幾點(diǎn)思考[J].能源工程, 2003(3):1-4.</p><p>
82、 [15] 張寶星.太陽(yáng)能利用的跟蹤與聚焦系統(tǒng)研究[D].合肥工業(yè)大學(xué),2006.</p><p> [16] 幻余海.太陽(yáng)能利用綜述及提高其利用率的途徑[J].能源研究與利用, 2004,79(3):8-9.</p><p> [17] 賀曉雷,于賀軍,李建英.太陽(yáng)方位角的公式求解及其應(yīng)用[J].太陽(yáng)能學(xué)報(bào), 2008,29(1):69-72.</p><p
83、> [18] 王炳忠,湯潔.幾種太陽(yáng)位置計(jì)算方法的比較研究[J].太陽(yáng)能學(xué)報(bào),2001, 22(4):413-417.</p><p> [19] 王國(guó)安,米鴻濤,鄧天宏.太陽(yáng)高度角和日出日落時(shí)刻太陽(yáng)方位角年變化范圍的計(jì)算[J].氣象與環(huán)境科學(xué),2007,30:161-163.</p><p> [20] 王延杰,宋建中.一種實(shí)時(shí)自適應(yīng)圖像二值化方法[J].光學(xué)精密工程,
84、 1994,5(2):7-20</p><p> [21] 李鑒慶,左坤隆.圖像閾值選取的一種快速算法[J].計(jì)算機(jī)與現(xiàn)代化, 2001,6:11-14.</p><p> [22] 孫光靈,周慶松,方傳剛.基于最小類內(nèi)方差的快速閾值分割算法[J].安徽理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,25(1):39-42.</p><p> [23] 陳冬嵐,劉
85、南京,余玲玲.幾種圖像閾值選取方法的比較與研究[J].電氣技術(shù)與自動(dòng)化,2003,2(1):77-80.</p><p> [24] Ashok Kumar Saxena and V.Dutta A VERSATILE MICROPROCESSOR BASED CONTROLLER FOR SOLAR TRACKING,Photovoltaic Laboratory ,Centre for Energy St
86、udies Indian Institute of Technology , New Delhi (INDIA)</p><p> [25] D.C. Riawan and C.V. Nayar, Senior Member, IEEE Analysis and Design of a Solar Charge Controller Using Cuk Converter,Department of Elec
87、trical and Computer Engineering Curtin University of Technology, Perth, WA 6845, Australia</p><p> 附錄1:太陽(yáng)跟蹤誤差模擬仿真程序代碼</p><p> #include<reg52.h></p><p> #include<math.h&g
88、t;</p><p> char center_x; //攝像頭拍攝圖像中心</p><p> char center_y;</p><p> sbit zzx=P1^0; //x軸電機(jī)正轉(zhuǎn)信號(hào)輸出口</p><p> sbit fzx
89、=P1^1; //x軸電機(jī)反轉(zhuǎn)信號(hào)輸出口</p><p> sbit zzy=P1^2; //y軸電機(jī)正轉(zhuǎn)信號(hào)輸出口</p><p> sbit fzy=P1^3; //y軸電機(jī)反轉(zhuǎn)信號(hào)輸出口</p><p>
90、sbit ox=P2^0; //攝像頭與預(yù)定圖像中心點(diǎn)誤差處于第一象限</p><p> sbit twx=P2^1; //攝像頭與預(yù)定圖像中心點(diǎn)誤差處于第二象限</p><p> sbit thx=P2^2; //攝像頭與預(yù)定圖像中心點(diǎn)
91、誤差處于第三象限</p><p> sbit fx=P2^3; //攝像頭與預(yù)定圖像中心點(diǎn)誤差處于第四象限</p><p> int opx=0,opy=0; //x,y軸軸向pid控制后輸出誤差</p><p> int a=0,b=0,c=0;</p>
92、;<p> int px; //x,y軸電機(jī)驅(qū)動(dòng)信號(hào)</p><p><b> int py;</b></p><p> int flag; //定義標(biāo)志位</p><p> void main(void)
93、 //主函數(shù)</p><p><b> {</b></p><p> TMOD=0x01; //選用定時(shí)器一</p><p> EA=1; //開(kāi)總中斷</p><p> EX0=1;
94、 //開(kāi)外部中斷0</p><p> IT0=1; //外部中斷下降沿有效</p><p> ET0=1; //開(kāi)定時(shí)器0中斷</p><p> TL0=0x18; //定時(shí)初值1ms</p><
95、;p> TH0=0xfc;</p><p> TR0=1; //開(kāi)定時(shí)器0</p><p> while(1); //循環(huán)等待中斷</p><p><b> }</b></p><p> chuzhi()
96、 // 設(shè)定center_x,center_y初值函數(shù)</p><p><b> {</b></p><p> if(ox==0) //當(dāng)ox端為低電平時(shí),表示中心點(diǎn)在第一象限</p><p> {flag=1; /
97、/令標(biāo)志位為1,為下面pid處理做準(zhǔn)備</p><p> center_x=4; //設(shè)置太陽(yáng)中心點(diǎn)x,y坐標(biāo)在第一象限的值</p><p> center_y=5;</p><p><b> }</b></p><p> if(twx==0)
98、 //當(dāng)twx端為低電平時(shí),表示中心點(diǎn)在第二象限</p><p> {flag=2; //令標(biāo)志位為2,為下面pid處理做準(zhǔn)備</p><p> center_x=-4; //設(shè)置太陽(yáng)中心點(diǎn)x,y坐標(biāo)在第二象限的值</p><p> center_y=5;<
99、/p><p><b> }</b></p><p> if(thx==0) //當(dāng)thx端為低電平時(shí),表示中心點(diǎn)在第三象限</p><p><b> { </b></p><p> flag=3; //令標(biāo)
100、志位為3,為下面pid處理做準(zhǔn)備</p><p> center_x=-4; //設(shè)置太陽(yáng)中心點(diǎn)x,y坐標(biāo)在第三象限的值</p><p> center_y=-5;</p><p><b> }</b></p><p> if(fx==0)
101、 //當(dāng)fx端為低電平時(shí),表示中心點(diǎn)在第四象限</p><p><b> {</b></p><p> flag=4; //令標(biāo)志位為4,為下面pid處理做準(zhǔn)備</p><p> center_x=4; //設(shè)置太陽(yáng)中心點(diǎn)x,y坐標(biāo)在第四
102、象限的值</p><p> center_y=-5;</p><p><b> } </b></p><p><b> }</b></p><p> signed int pidx(signed int x ) //x軸pid調(diào)整</p><p>
103、;<b> { </b></p><p> int i=1;</p><p> if(flag==1) //標(biāo)志位為1,中心點(diǎn)x坐標(biāo)在第一象限</p><p> { if(x==0) //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差為0</p><p><
104、;b> x=0;</b></p><p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p><b> {</b></p><p> x=x*i; //誤差值</p><p> x--; //x軸電機(jī)正轉(zhuǎn),誤差
105、減1</p><p><b> }</b></p><p><b> }</b></p><p> if(flag==2) //標(biāo)志位為2,中心點(diǎn)x坐標(biāo)在第一象限</p><p> { if(x==0) //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差
106、為0</p><p> x=0;</p><p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p><b> {</b></p><p> x=x*i; //誤差值</p><p> x++;
107、//x軸電機(jī)反轉(zhuǎn),誤差加1</p><p><b> }</b></p><p><b> }</b></p><p> if(flag==3) //標(biāo)志位為3,中心點(diǎn)x坐標(biāo)在第三象限</p><p> { if(x==0) //調(diào)整后的中心點(diǎn)與期望中心
108、點(diǎn)重合時(shí),誤差為0</p><p><b> x=0;</b></p><p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p><b> {</b></p><p> x=x*i; //誤差值</p><
109、;p> x++; //x軸電機(jī)反轉(zhuǎn),誤差加1</p><p><b> }</b></p><p><b> }</b></p><p> if(flag==4) //標(biāo)志位為4,中心點(diǎn)x坐標(biāo)在第四象限</p><p> { if(x==0)
110、 //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差為0</p><p><b> x=0;</b></p><p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p><b> {</b></p><p> x=x*i;
111、 //誤差值</p><p> x--; //x軸電機(jī)正轉(zhuǎn),誤差減1</p><p><b> }</b></p><p><b> }</b></p><p> return x;</p><p><b> }</b>
112、;</p><p> signed int pidy(signed int y )</p><p><b> { </b></p><p><b> int j=1;</b></p><p> if(flag==1) //標(biāo)志位為1,中心點(diǎn)y坐標(biāo)在第一象限<
113、;/p><p><b> {</b></p><p> if(y==0) //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差為0</p><p><b> y=0;</b></p><p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p>
114、;<p> { y=y*j; //誤差值</p><p> y--; //y軸電機(jī)正轉(zhuǎn),誤差減1</p><p><b> }</b></p><p><b> }</b></p><p> if(flag==2)
115、//標(biāo)志位為2,中心點(diǎn)y坐標(biāo)在第二象限</p><p><b> {</b></p><p> if(y==0) //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差為0</p><p><b> y=0;</b></p><p> else //調(diào)整后的中
116、心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p> { y=y*j; //誤差值</p><p> y--; //y軸電機(jī)正轉(zhuǎn),誤差減1</p><p><b> }</b></p><p><b> } </b></p><
117、p> if(flag==3) //標(biāo)志位為3,中心點(diǎn)y坐標(biāo)在第三象限</p><p><b> {</b></p><p> if(y==0) //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差為0</p><p><b> y=0;</b></p><
118、p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p> { y=y*j; //誤差值</p><p> y++; //y軸電機(jī)反轉(zhuǎn),誤差加1</p><p><b> }</b></p><p>&l
119、t;b> } </b></p><p> if(flag==4) //標(biāo)志位為4,中心點(diǎn)y坐標(biāo)在第四象限</p><p><b> {</b></p><p> if(y==0) //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)重合時(shí),誤差為0</p><p>
120、;<b> y=0;</b></p><p> else //調(diào)整后的中心點(diǎn)與期望中心點(diǎn)不重合時(shí),調(diào)整誤差</p><p> { y=y*j; //誤差值</p><p> y++; //y軸電機(jī)反轉(zhuǎn),誤差加1</p><p><b>
121、 }</b></p><p><b> } </b></p><p><b> return y;</b></p><p><b> } </b></p><p> void zfzx()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì)
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì).txt
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì).txt
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì).doc
- 太陽(yáng)能自動(dòng)跟蹤系統(tǒng)的設(shè)計(jì)
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì).doc
- 1 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì).doc
- 1 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì).doc
- 基于ARM的太陽(yáng)自動(dòng)跟蹤系統(tǒng)設(shè)計(jì).pdf
- 太陽(yáng)能自動(dòng)跟蹤系統(tǒng)的設(shè)計(jì).pdf
- 太陽(yáng)光線跟蹤系統(tǒng)設(shè)計(jì)及其跟蹤方式優(yōu)化研究.pdf
- 畢業(yè)設(shè)計(jì)---太陽(yáng)能跟蹤機(jī)理及系統(tǒng)設(shè)計(jì)
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告.doc
- 點(diǎn)光源跟蹤系統(tǒng)課程設(shè)計(jì)
- 太陽(yáng)能單軸跟蹤系統(tǒng)的plc設(shè)計(jì)
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì)開(kāi)題報(bào)告.doc
- 太陽(yáng)跟蹤偏差檢測(cè)系統(tǒng).pdf
- 自動(dòng)跟蹤太陽(yáng)智能型太陽(yáng)能系統(tǒng)設(shè)計(jì)(全套含cad圖紙)
- 太陽(yáng)自動(dòng)跟蹤系統(tǒng)研究.pdf
- 太陽(yáng)自動(dòng)跟蹤系統(tǒng)的研究.pdf
評(píng)論
0/150
提交評(píng)論