欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8335|回復: 2
打印 上一主題 下一主題
收起左側

STC單片機+MPU6050風力擺控制系統設計報告

[復制鏈接]
跳轉到指定樓層
樓主
2015年全國大學生電子設計競賽
風力擺控制系統(B題)

摘要
本系統采用STC12C5A60S2為主控芯片,通過MPU6050傳感器提供反饋信息、采用PID控制算法調整軸流風機的工作狀態、在液晶和按鍵的作用下顯示并切換工作模式,形成一閉環測控系統。該測控系統通過控制驅動各風機,使風力擺按照一定規律運動,同時保證擺桿下方懸掛的激光筆能在地面畫出要求的軌跡。

目錄
摘要1
一、設計任務1
二、方案論證1
2.1 控制器模塊方案2
2.2位置檢測模塊2
2.3動力裝置方案設計2
2.4 外圍模塊方案設計2
2.4.1 功能調用模塊的設計2
2.4.2 顯示模塊的設計3
2.4.3 聲光提示模塊3
  2.4.4 電源模塊3
2.5硬件電路設計3
2.6 系統控制方案的整體設計3
2.6.1 風力擺擺直線過程分析4
2.6.2  風力擺擺圓過程分析4
三、理論分析與計算5
3.1運動控制6
3.1.1直線運動的控制6
3.1.2 擺圓運動的控制6
3.2  軟件實現6
3.2.1 所用算法6
3.2.2 程序部分6
四、測試結果與誤差分析7
4.1風機性能的測試7
4.2擺直線任務的測試7
4.3速停任務測試記錄7
4.4圓周軌跡任務測試7
4.5誤差分析7
五、結論心得體會8
5.1結論8
5.2心得體會8
參考文獻9
附錄1:電路原理圖10
附錄2:部分PCB設計圖11
附錄3:部分關鍵程序12
附錄4:系統整體照片13

風力擺控制系統

摘要:本系統采用STC12C5A60S2為主控芯片,通過MPU6050傳感器提供反饋信息、采用PID控制算法調整軸流風機的狀態、在液晶和按鍵的人機交互作用下顯示并切換工作模式,形成一閉環測控系統。該測控系統通過控制驅動各風機,使風力擺按照一定規律運動,同時保證擺桿下方懸掛的激光筆能在地面畫出要求的軌跡。

關鍵詞:風力擺  STC12單片機  軸流風機

設計任務

一長約 60cm~70cm 的細管上端用萬向節固定在支架上,下方懸掛一組(2~4 只)直流風機,構成一風力擺。風力擺上安裝一向下的激光筆,靜止時,激光筆的下端距地面不超過 20cm。設計一測控系統,控制驅動各風機使風力擺按照一定規律運動,激光筆在地面畫出要求的軌跡。具體要求可參看設計任務書。

二、方案論證

根據題目要求,此測控系統完成控制風力擺按照一定規律運動、使激光筆在地面上畫出規定軌跡的任務。其通過按鍵與LCD三級子菜單,在不同工作模式間切換,完成相應的控制任務,關鍵在于反饋信息的準確和對軸流風機的控制。為此我們將系統分為五個模塊,并對各個模塊的方案進行了評估選擇。系統整體方案框圖如圖 1 所示:


圖1 系統整體框圖
2.1控制器模塊方案
控制器是整個控制系統的核心,承載著執行控制算法,實現控制功能的作用。因此,要保證系統整體的控制質量,控制器的選擇非常重要!在控制器的選擇方案中,主要進行了如下對比:
方案一:選擇常見且應用廣泛的AT89C52作為控制芯片。對于這種單片機,我們有良好的知識基礎,上手快,成本低。然而對于本控制系統,程序量較大、所需I/O口較多,89單片機將很難滿足控制要求,難以勝任控制任務。因此,89單片機并不適合作為本系統的控制器。
方案二:較之89系列單片機,STC12單片機資源豐富,集成EEPROM、AD、 PCA可編程計數陣列等;其功能更強大,執行速度更快。對于本系統來說,足以完成控制任務。故而作為本控制系統的首選。
2.2位置檢測模塊
檢測模塊不僅是獲得被控系統所需信息的唯一渠道,而且從根本上決定了被控系統的控制精度,相當于控制系統中的“眼睛”;因此檢測模塊的設計對整個控制系統的設計至關重要!基于此,在選擇檢測元件時,主要做了如下對比:
方案一:選擇整合性6軸運動處理組件MPU6050,利用其自身集成的3軸MEMS陀螺儀,3軸 MEMS加速度計精確地對被控對象的運動狀態進行數據采集;在數據處理上采用卡爾曼濾波算法,測量精度極高。另外,該傳感器封裝小節省空間,對本系統的控制十分有利。
方案二:選擇角度、加速度模塊 MMA7361傳感器。這一模塊雖有壓降小,適合高噪聲電源環境工作等特點,但其測量精度及測量范圍等各方面性能不及MPU6050。綜合考慮,選取MMA7361作為檢測變送傳感器并不明智。
              經過上述對比,最終本系統選用了MPU6050作為位置檢測的傳感器。
2.3動力裝置方案設計
動力裝置作為本控制系統中的執行機構,是控制系統中的重要組成部分。它將控制器送來的控制信號轉換成執行動作,從而操縱作用于被控對象的能量,將被控變量維持在所要求的數值上或一定的范圍內。軸流風機作為此系統的唯一動力裝置,其提供的動力是否充足、可調性是否優良將直接決定能否完成控制任務和控制質量的高低。為此考慮了成本、體積等因素,主要擬定了以下兩個方案。
方案一:選擇某牌直流12V-2.3A軸流小型風機。該風機體積小、質量輕,對擺桿的運動十分有利。另外,該種風機功率大、動力充足,能為控制系統提供充足的能量。
方案二:選擇與上述風機同品牌的12V-1.8A軸流風機。與上述風機相比,該風機質量較大,功率卻不及小型風機。其他方面,此二種風機并無差異。
上述方案的論證,似乎證明方案一將是本系統的不二之選,然而事實并非如此。在經過充分的實驗發現(詳見4.1中風機性能測試),方案一中風機啟動過慢、控制不及時,而且其提供風力并不比方案二中軸流風機大。因此,本系統最終確定以方案二作為動力裝置。
2.4外圍模塊方案設計
本系統中的外圍模塊,主要是指與對風機的控制不起直接作用的功能調用模塊、顯示模塊、聲光提示模塊、電源模塊。
主要是指鍵盤(按鍵)模塊和顯示模塊。由于該系統所涉及的控制任務較多,使用鍵盤按鍵進行不同那個任務間的相互切換,降低了對程序的邏輯要求,易于編程、方便實施。而顯示模塊將檢測到的信息直觀的顯示出來,利于對整個控制過程進行實時監控。這種良好的人機交互環境,也非常符合當前控制過程智能友好的趨勢。
2.4.1 功能調用模塊的設計
功能調用模塊主要完成切換系統工作模式的任務。這里工作模式的切換主要通過按鍵,常見的按鍵單元有:矩陣鍵盤、簡單鍵盤等。以下為兩種方案的對比:
方案一:矩陣鍵盤占用單片機的端口少、節約硬件資源;但電路設計較復雜、開發時間較長、軟件設計也相對復雜。主要針對多鍵盤設計,適用于控制要求高、控制功能多的系統。
方案二:簡單鍵盤設計簡單、易于實現、減少了系統的復雜度;尤其適合執行功能不多的系統。
在上面的對比中不難看出,利用簡單鍵盤進行功能調用將更加方便;對本系統的設計更有優勢。因此選用方案二。
2.4.2 顯示模塊的設計
作為人機交互的途徑,顯示模塊旨在占用最小的資源提供最多的可利用信息。常見的顯示模塊有1602液晶和12864液晶,本文對上述兩種液晶做了如下對比:
方案一:采用1602液晶。1602液晶體積小、引腳少,節省硬件資源;但其顯示信息量與其他液晶相比較小。
方案二:采用12864液晶。該種液晶微功耗、顯示信息量大、字跡清晰、美觀、視覺舒適;適合進行菜單顯示,使整個控制系統更加人性化。另外,其可在串行口模式下工作,工作時僅需引出兩根數據線和兩根電源線,更加節省I/O口。
考慮到以上信息、并結合了本系統的特點,最終本系統以12684液晶作為顯示單元。
2.4.3 聲光提示模塊
此模塊的設計主要考慮了設計任務的要求,即各項目中,運動達到要求時需有明顯的聲或光提示,以便開始測試及記錄。本系統的提示裝置為發光二極管和蜂鳴器,他們在系統中起到了提示作用,這里不再贅述。
2.4.4 電源模塊
在該控制系統中,要完成控制任務必須保證風機提供充足的動力。這就要求電源能提供風機工作所需的電流。在選擇電源時,主要從如下兩個方案中進行實驗對比:
方案一:采用類似于驅動直流電機的方法,通過L298N驅動四個風機。此方案在電機的控制中較為常見,軸流風機作為一種直流電機,應該也能正常工作。
方案二:使用兩個12V-3A的電源直接供電,每個電源分別為其中的兩個風機供電。這樣要控制風機,必須選擇帶有PWM控制線的風機。
通過實驗證實:方案一如果沒有采用必要的軟件控制和硬件補償,很難提供充足的動力使擺桿擺起足夠的角度。而方案二只要選擇帶有控制線的風機,便避免了方案一中的弊端。 故此系統電源選擇方案二。
2.5硬件電路設計

在硬件方面,本系統采用了STC12C5A60S2最小系統板、12864液晶以及其他外圍模塊。相應的電路圖和PCB板可參看附錄1。

2.6 系統控制方案整體設計
選擇好各模塊合適的方案后,系統整體控制方案的設計就相當重要了。首先是系統結構設計,如圖2所示是系統的機械結構。
圖2 系統結構模型                                                                                      圖3 風機擺放位置
值得注意的是③風機的擺放位置,為便于設計分析,風機應擺放為十字型如圖3所示。
控制系統各部分的關系如圖4控制方框圖所示。

圖4 控制系統控制方框圖
明確了控制流程和系統結構,系統控制任務的完成就完全依賴于對擺運動過程的理解。這里首先對系統結構進行說明,然后將系統的運動過程分為擺直線和擺圓周兩個部分,進行簡要分析。
2.6.1 風力擺擺直線過程分析
其簡化的模型如圖5所示。很顯然,在該模型中擺桿的位置到圓心A的距離與角度α成單值函數關系。在執行風力擺擺直線的工作模式時,只要根據反饋的角度α,在確定了擺桿的長度的前提下,即可由式1得到擺桿所能擺直線的長度D:
由于 ,而事實上,擺桿擺起的高度可以近似忽略,則
D=l*tanα,      (公式1)
即:α=arctan(D/l)   (公式2)
其中l為擺桿長度。在具體工作時,可將控制器的輸出信號作用于風機,以此來改變其擺動的幅度。此為風力擺擺直線的簡單分析。
圖5 風力擺簡化模型
              2.6.2風力擺擺圓過程分析
力擺擺圓過程其實可以分解為兩個方向(x軸、y軸)的運動,如圖6所示。
在該過程中,四個軸流風機控制了擺桿沿如圖所示的x、y方向的運動。只要使在x方向的運動與y向的運動頻率相同、幅度相等,相位相差90°,即可完成畫圓任務。因此利用反饋的位置信息,可控制四個風機的工作狀態;進而改變擺桿所處位置,完成控制任務。
圖6風力擺擺圓簡易模型
三、理論分析與計算
3.1運動控制
在2.5部分,對擺的運動狀況已經有了一個基本的了解。下文的敘述將在上述運動狀態的基礎上,以設計任務為最終目的,結合采用的控制算法進行分析論證。
3.1.1直線運動的控制
設計任務中,要求本系統做類似自由擺運動,使激光筆穩定地在地面畫出一條長度不短于 50cm 的直線段,其線性度偏差不大于±2.5cm,并且具有較好的重復性。這顯然是一個開環控制,通過粗略調節便可實現設計任務。在2.5.1中的運動分析部分已經明確,要求激光筆繪制的距離需要控制的其實是擺桿的角度,而擺桿的角度是通過控制軸流風機的轉速產生空氣推力來間接控制的。為了使激光筆繪制的軌跡達到設定值,我們就需要控制擺桿的傾角,這個個傾角可以直接計算出來;然后,通過簡單的開環調節,給風機以相應的PWM波,風機帶動擺桿擺動,便可輕易實現直線任務。
3.1.2 擺圓運動的控制
在2.5.2的基礎上,可做如下分析。如圖7運動分解,并結合公式1和公式2不難得出如下公式:
,  (公式3)
其中,θ是自行設置的,知道軸向風機應產生空氣推力的比例之后,MCU 將控制電機的 PWM 置為相應比例,反復調節幾次便可以使擺動角度達到要求。
圖7  運動分解圖示

3.2  軟件實現

在有了一定的理論基礎,并構建了相應的硬件電路之后,控制任務將完全依賴于程序實現。而此系統的關鍵在于,根據反饋角度對軸流風機進行較精確的控制。這一精確控制體現在PWM的控制中,因此控制算法的選擇尤為重要。

3.2.1所用算法

本系統采用增量式PID控制公式:(如下所示)

△u(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)],  (公式4)

其中,△u(k)系統應增加的輸出
Kp為比例系數
Ki積分時間
Kd微分時間
e(k)第K次采樣的誤差
e(k-1) 第k-1次采樣的誤差
e(k-2) 第k-2次采樣的誤差

于本控制系統而言,誤差即給定值與反饋的到的姿態角之間的差值。經過計算得到u(k)作為控制器的輸出,調節風機轉速,這一改變直接作用于被控對象,最終達到控制效果。這一過程中控制質量的優劣,關鍵在于PID控制算式中比例系數Kp、積分時間Ki和微分時間Kd的整定。本系統整定主要采用了經驗試湊法,這里不再贅述。

3.2.2 程序部分
A.主程序流程圖如8所示:
圖8  程序流程圖
B關鍵算法的程序實現
在任務一和二中,采用了開環控制,這里不再給出其實現程序。在其他基礎任務和發揮部分,用到了PID控制方法,其實現代碼見附錄三。
四、測試結果與誤差分析
4.1風機性能的測試
將占空比恒定的PWM波分別加到兩組風機上,在其他狀況完全相同的情況下,記錄啟動N秒后擺桿所能擺動的幅度,以此來進行其性能比較。如下表1所示:
風機類型

風機數
小風機啟動N秒后的擺動幅度(單位:厘米)
大風機啟動N秒后的擺動幅度(單位:厘米)
3
5
10
15
20
3
5
10
15
20
1
3
4
17
25
24
4
4
15
29
35
2
3
5
28
30
35
4
15
37
49
55
表1風機性能的測試
對比上述測試數據,不難發現小風機雖然功率大,但實際的吹風效果并不及大風機,且風機數量越多越利于擺出較大幅度。
4.2擺直線任務的測試
在任務一和任務二中,都是完成擺直線的任務。所以這里僅給出部分測試數據,下表2所示的記錄,是設定擺擺動幅度為55cm時的數據。表中的偏離程度是指,所擺軌跡偏離給定直線的距離。
次數
項目
1
2
3
4
5
6
7
8
9
所用時間
12.3‘
12.5’
10’
11.5’
12.3’
11.7’
11.8’
13.9’
11.2’
偏離程度
±1.5
±1.0
±2.0
±1.0
±0.5
±0.8
±1.0
±2.5
±1.5
表2擺直線任務測試記錄
4.3速停任務測試記錄:
將擺桿拉起不同的角度,記錄其停止時間。多次進行試驗后,數據記錄如下:
起角及耗時
次數

30°

35°

40°

45°
1
3.8s
4.0s
3.7s
5.0s
2
3.7s
4.0s
5.1s
4.7s
3
3.7s
3.8s
3.9s
3.8s
4
4.0s
4.5s
3.8s
6.7s
5
4.6s
6.2s
4.8s
5.0s
6
3.9s
3.6s
6.3s
3.9s
7
4.2s
3.8s
4.0s
4.9s
8
4.1s
4.5s
3.7s
7.8s
表3速停任務記錄
4.4圓周軌跡任務測試
該部分數據為設定擺圓半徑,記錄其軌跡穩定完成規定任務時所用時間:
半徑
次數
15cm
20cm
25cm
30cm
1
12.4s
15.2s
17.3s
20.1s
2
13.5s
13.4s
19.8s
22.8s
3
13.9s
12.1s
18.3s
19.8s
4
15.0s
14.9s
17.6s
17.9s
5
14.7s
16.2s
17.8s
21.8s
6
14.0s
15.2s
16.3s
22.3s
7
13.8s
15.3s
21.2s
23.9s
8
13.0s
16.7s
18.2s
18.9s
表4圓周軌跡任務測試
4.5誤差分析
由表中數據可知,在每一項數據中都在時間和擺動軌跡上存在誤差。分析其產生原因,主要有四:一是參數整定不足夠優良,這是最根本的;二是機械結構不夠穩固,在擺桿運動過程中其引起系統震動,這一干擾在系統中很難消除;三是控制器通信存在時間滯后,難以消除;還有第四點就是測量是可能存在誤差。不過,這些誤差都是在所允許的范圍內,故而可以認定系統是滿足設計要求的。
結論心得體會
5.1結論
經過足夠多次的測試,在允許的誤差范圍內,本系統基本完成了設計任務。測試中,該系統充分展示了其較高穩定性和較強的魯棒性。附錄中給出了相關的程序和電路圖等,以供說明使用。
5.2心得體會
眼看結項之日臨近,心中難免感慨萬千。從確定題目、到制定方案、到程序調試……我們經歷了漫長而又最最充實的四天三夜!
熱愛下“控制之種”
源于對控制學科的熱愛,試題未出,本團隊成員便達成一致意見:無論控制類題目的難易,一定做控制題。
工作一展開,我們團隊便按事先的準備明確分工、通力配合。這種和諧特別體現在搭建系統機械架構和最后的程序調試過程中。整個工作過程中,我們相互鼓勵,最終完成了既定任務。
汗水澆灌成功之花
在作品最終定型那一刻,我們所有的疲憊都化為烏有,我們所有的汗水都化作成功的喜悅。此時,最終的結果都已不再重要,我們有所付出、有所收獲、有所感動,這便是我們最大的成功。
從項目開始到最終完成,我們遇到的困難從硬件資源不足,到算法實現困難,又到程序調試困難重重;然而,我們沒有被嚇倒,因為我們堅信:一切困難都是紙老虎!達不到期望的性能,我們可以不吃飯、不睡覺;我們不認為苦,因為我們樂在其中!最終我們做到了讓自己滿意,We did it!
稍有遺憾,收獲頗豐
當然,這個過程中我們還是留有一些遺憾。因為系統仍有不足,未能完善到我們理想的狀態。主要有三:一是對機械部分的構建,現有設備畢竟有限,主要利用了木材作為支撐設備,其柔性對系統的干擾,我們很難克服;二是對算法和程序的優化不足,造成程序略顯冗余,給日后本團隊完善作品、添加功能造成不便;三是原本計劃的發揮功能未能成功添加到系統中,如實現檢測信號顯示到手機上,進行實時監控的功能等。
談到收獲,那應該就是這次賽事所給我們帶來的項目經驗了。我們層層障礙,最終完成作品;成功將理論聯系實際。我們很享受這個過程,這四天三夜的充實工作,必將是我們團隊終生銘記!
致謝
最后我們要感謝主辦方、學校和指導老師,感謝你們為我們創造的這一平臺,讓我們有機會將自己的理論與實踐結合,讓我們的動手能力提高到新的臺階!
參考文獻
1.《單片機實用系統設計與仿真經典實例》,電子工業出版社,周潤景 劉曉霞著
2.《全國大學生電子設計競賽培訓系列教程<數字系統與自動控制系統設計>》,電子工業出版社,高吉祥主編
附錄1:電路原理圖
1.1單片機資源分配
1.2電源轉接板原理圖
附錄2:部分PCB設計圖
注:由于條件限制,所畫板子為單層板;且由于設備原因,布線很粗,圖中出現了警告,但并不影響正常使用。
2.1電源轉接板PCB
2.2 顯示模塊LCD12864轉接
附錄3部分關鍵程序
3.1  PID控制算法實現程序

static float Kpx=18.7; //X 軸傾角乘以相應系數進行歸一化處理

static float Kdx=0.20; // X 軸角速度歸一化

static float Kpy=20.4; //Y 軸傾角實時傾角乘以相應系數進行歸一化處理

static float DY=0.20; // Y 軸角速度歸一化

float R;//半徑長度;

float θ;//目標傾角;

void Angle (void)

{

int X_PWM, Y_PWM;

int nSpeed;

int nPx, nDx;

int nPy, nDy;

θ = arctan(R/L);

nPx= (int)(θ-angle x)*Kpx; //X 軸傾角與目標值的偏差,比例環節

nDx = (int)speed_x*Kdx; //擺桿 X 軸向角速度,微分環節

nSpeedx = nDx + nPx; //實時角度+實時角速度,作為控制輸入量

nPy= (int)(0-angel_y)*Kpy; //擺桿 Y 軸向傾角,比例環節

nDy = (int)speed_y*Kdy; //擺桿 Y 軸向角速度,微分環節

nSpeedy = nDy + nPy; //實時角度+實時角速度,作為控制輸入量

X_PWM = nSpeedx*; //轉化成 PWM 脈寬調制的直接控制量

Y_PWM = nSpeedy;

Motor (X_PWM, Y_PWM);//輸出 PWM 信號作用于軸流風機

}

在本系統的PID控制中,所采用的方法基本與上述程序相同。不同之處在于,完成不同的控制任務,所整定的參數是不一樣的。這里不一一列舉。
附錄4:系統整體照片
4.1系統外觀
4.2 風機排布
4.3工作中計時器
4.4工作中的菜單顯示模塊


完整的Word格式文檔51黑下載地址:
風力擺控制系統.docx (1.35 MB, 下載次數: 68)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:374498 發表于 2018-7-19 04:19 | 只看該作者
源碼等完整資料打包下載:http://www.raoushi.com/bbs/dpj-128740-1.html
回復

使用道具 舉報

板凳
ID:544737 發表于 2019-5-22 15:51 | 只看該作者
好棒,樓主這個想法不錯
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表