版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、全國大學生電子設(shè)計競賽風力擺控制系統(tǒng)32015年8月15日摘要本系統(tǒng)是以STM32ZET6為控制核心的風力擺控制系統(tǒng)。通過 MPU6050三軸角速度感測器檢測擺桿的擺動角度,并在12864液晶屏進行 實時的顯示,同時將檢測到的角度信息傳輸給32單片機。32單片機將此信 號進行PID算法處理后產(chǎn)生相應的pwm信號,控制軸流風機進行不同的動 作反應,帶動細桿旋轉(zhuǎn),以此實現(xiàn)不同的控制要求。通過按鍵選擇電機的 工作模式,實現(xiàn)設(shè)計的各項要求。關(guān)鍵詞:STM32 MPU6050 12864軸流風機PID算法目錄、方案論證.1、風機模塊的論證與選擇12、電機驅(qū)動模塊的論證與選擇13、三軸角速度感測器模塊論證
2、與選擇14、顯示模塊的論證與選擇25、控制系統(tǒng)的論證與選擇26、風力擺運動控制方案論證 2.2t 工告巫AA /k JL 2(1)控制算法 22、風力擺狀態(tài)的測量 33、風力擺運動控制的計算3三、系統(tǒng) 設(shè)計.31、系統(tǒng)結(jié)構(gòu) 3(1)系統(tǒng)總體框圖 3(2)軸流風機子系統(tǒng)框圖. 4(3)陀螺儀與顯示子系統(tǒng)框圖 42、電路設(shè)計 4(1)電路流程圖 4四、系統(tǒng)測試.51、測試方案 52、測試條件與儀器 53、測試數(shù)據(jù)及分析 5(1)測試數(shù)據(jù) 5(2)測試分析與結(jié)論 6五、結(jié)論與心得7六、參考文獻7風力擺控制系統(tǒng)(B題)【本科組】一、系統(tǒng)方案本系統(tǒng)以STM32ZET6單片機作為主控芯片,主要由風機模塊、
3、電機驅(qū)動 模塊、三軸角速度感測器模塊、顯示模塊、電源模塊組成,使用C語言編寫 程序,完成題目的要求。通過三軸角速度感測器檢測并讀出擺桿的擺動角 度,從而控制軸流風機的運動狀 態(tài),驅(qū)動電機帶動擺桿,并通過按鍵選擇電 機的工作模式,使激光畫出各項要求的圖形。下面分別論證這幾個模塊的選 擇。1、風機模塊的論證與選擇方案一:采用兩只直流風機作為動力。兩只風機分別位于擺桿兩側(cè)并 排同向而立,通過控制風機轉(zhuǎn)速控制風力擺使激光筆畫線畫圈,此方案風力 擺負載輕,但不易微調(diào)和快速靜止。方案二:采用4只軸流風機作為動力。4只軸流風機采用內(nèi)轉(zhuǎn)子電機 直聯(lián)傳動,安 裝方便牢固、質(zhì)量輕、振動小、噪聲低、運行平穩(wěn),不扭轉(zhuǎn)
4、風 管內(nèi)介質(zhì)的流向,安裝方便。此方案風力擺負載最重,但對于控制風力擺狀 態(tài)最為精確,且動力最足。本設(shè)計需要風速快、質(zhì)量輕、控制精準的方案,所以選擇了方案二。2、電機驅(qū)動模塊的論證與選擇方案一:采用THB7128電機驅(qū)動芯片。THB7128芯片內(nèi)部集成了細分、 電流調(diào)節(jié)、CMOS功率放大等電路,配合簡單的外圍電路即可實現(xiàn)高性能、多 細分、大電流的驅(qū)動電路。但THB7218這些性能優(yōu)勢使其更加適合驅(qū)動步進 電機,不適合本系統(tǒng)直流伺服電機的驅(qū)動。方案二:使用L298N電流電機驅(qū)動模塊。L298N電機驅(qū)動芯片工作電壓 高,輸出瞬間峰值電流可達3A ,持續(xù)工作電流2A,額定工作頻率25Wo內(nèi) 含兩個H橋
5、的高電壓電流全橋式驅(qū)動器可以很好的控制本系統(tǒng)中的直流伺服 電機,采用標準邏輯電平信號控制,控制直流電機更加簡單容易。根據(jù)實用性,本設(shè)計采用方案二。3、三軸角速度感測器模塊的論證與選擇方案一:選用雙軸傾角傳感器模塊LE-60-0EMLE-60-0E, M測量重力加速 度變化,轉(zhuǎn)為傾角變化,可測量雙向。具有穩(wěn)定性高、低功耗、結(jié)構(gòu)簡單等 優(yōu)點。響應速度為5Hz。它可以測量平衡板與水平方向的夾角,x,y方向 可以測,但z軸不可測。且操作復雜,軟件處理難度大。方案二:采用三軸角速度傳感器模塊。用三維角度傳感器時刻測量風力 擺當前姿態(tài),可準確追蹤快速與慢速動作,通過處理采集的姿態(tài)角數(shù)據(jù)控制 風機帶動風力擺
6、運動。此方案可精確測量風力擺當前姿態(tài),實現(xiàn)對風力擺的 精確控制。免除了組合陀螺儀與加 速器時之軸間差的問題。綜合考慮,基于操作簡便,性價比以及穩(wěn)定性,本設(shè)計采用方案二。4、顯示模塊的論證與選擇方案一:使用1602液晶模塊。性價比高,接口簡單,但1602只能顯示 字母,數(shù)字和符號,能顯示16*2個字符。但只有兩行,顯示字數(shù)少。方案二:使用12864液晶模塊。12864屏幕為64行,每行可以顯示 128個字符,能夠形象直觀的提示信息,且比1602強大。綜合顯示信息量,反應速度,以及性價比,本設(shè)計采用方案二。5、控制系統(tǒng)的論證與選擇方案一:采用ATMEL公司的ATM89c51單片機系統(tǒng)。它是一種帶4
7、K字節(jié) 閃爍可編程可擦除只讀存儲器的低電壓、高性能CMOS位8微處理器,具有 體積小、集成度高、結(jié)構(gòu)簡單、等特點,但其外圍接口少,功能和速度較32 單片機弱。方案二:采用STM公司的32F103ZET6單片機系統(tǒng),其擁有專為要求高性 能、低成 本、低功耗的嵌入式應用專門設(shè)計的ARM Cortex-M3內(nèi)核。 STM32F103ZET單6片機是片內(nèi)雙RC晶振,提供8M和32K的頻率并擁有42 個16位的后備寄存器32位微控制器。時鐘頻率達到72MHz,是同類產(chǎn)品中 性能最高的產(chǎn)品。綜合實用性、可靠性、性能,等方面,在控制模塊方面我們選擇方案* O6、控制系統(tǒng)的論證與選擇其原理是將角度的變化量變?yōu)?/p>
8、阻值的變化量,根據(jù)阻值的大小判斷角度 的大小。當線路連接好以后,通電,每經(jīng)過10ms, MPU6050就會刷新一次 值,往X軸正向轉(zhuǎn)動時,計數(shù)增加,轉(zhuǎn)動方向改變時,計數(shù)減?。╕軸原 理相同)。:、系統(tǒng)理論分析與計算上 八-LL(1)控制算法本系統(tǒng)采用PID算法來控制風機轉(zhuǎn)動的速度。風機工作后,MPU6050模 塊不斷采集當前風力擺姿態(tài)角狀態(tài),并與之前的狀態(tài)比較,使得風力擺的運 動狀態(tài)逐漸趨向于平 穩(wěn)。PID算法控制器由舵機轉(zhuǎn)動角度比例P、角度誤差 積分I和角度微分D組成。2、風力擺狀態(tài)的測量采用的陀螺加速度計MPU6050不斷采集風力擺角度數(shù)據(jù)。MPU6050集成 了 3軸MEMS陀螺儀,3軸
9、MEMS加速度計,以及一個可擴展的數(shù)字運動處 理器DMPo MPU6050和所有設(shè)備寄存器之間的通信采用400kHz的12c接 口,實現(xiàn)高速通信。且內(nèi)置的可編程卡爾 曼濾波器,采用最優(yōu)化自回歸數(shù)據(jù) 處理算法精確測量風力擺當前姿態(tài)角。MPU6050對陀螺儀和加速度計分別用了三個16位的ADC,將其測量的模擬量轉(zhuǎn)化為可輸出 的數(shù)字量,通過DMP處理器讀取測量數(shù)據(jù)然后通過串口輸出。3、風力擺運動控制的計算其原理是將角度的變化量變?yōu)樽柚档淖兓浚?根據(jù)阻值的大小判斷角度的大小。當線路連接好以后,通電,每經(jīng)過10ms, MPU6050就會刷新一次值,往X軸正向轉(zhuǎn)動時,計數(shù)增加,轉(zhuǎn)動方向改變 時,計數(shù)減小
10、(Y軸原理相同)。風力擺采用4只45W的直流風機為動力驅(qū) 動系統(tǒng)。MPU6050采集模塊采集風力擺當前角度,32單片機處理姿態(tài)角信 息調(diào)節(jié)輸出PWM的占空比,控制四只軸流風機的工作狀態(tài),從而實現(xiàn)對風力 擺的不同控制。三、系統(tǒng)設(shè)計1、系統(tǒng)結(jié)構(gòu)(1)系統(tǒng)總體框圖本系統(tǒng)以STM32F103ZET6為單片機控制器,通過三軸角速度感測器檢測 擺桿的擺動角度,在12864液晶屏上進行實時的顯示,并把檢測到的角度信 息傳輸給單片機生成 相應的pwm信號,控制4個軸流風機進行不同的動作 反應,帶動細管轉(zhuǎn)動,以此實現(xiàn) 不同的控制要求。通過按鍵選擇電機的工作5模式,實現(xiàn)設(shè)計的各項要求。系統(tǒng)的總體框圖1統(tǒng)總體框圖2
11、)軸流風機子系統(tǒng)框圖1、軸流風機子系統(tǒng)框圖直流伺服電機控制子系統(tǒng)主要包括電機驅(qū)動模 塊、軸流風機、STM32單片機。通過按鍵可以選擇直流電機的工作模式。直流伺服電機控制子系統(tǒng)框圖如下圖所示:軸流風機電機驅(qū)動模塊口STM32F103ZET6 按鍵輸入軸流風機子系(3)陀螺儀與顯示子系統(tǒng)框圖1、陀螺儀與顯示子系統(tǒng)框圖控制模塊STM32F103ZET6MPU6050陀螺儀12864液晶圖2陀螺儀與顯示子系統(tǒng)框圖2、電路設(shè)計1)電路流程圖主程序流程圖 開始系統(tǒng)菜單鍵按下發(fā)揮部分發(fā)揮部分一發(fā)揮部分一基本要求四基本要求二基本要求二一基本要求一四、系統(tǒng)測試1、測試方案 驅(qū)動風力擺工作,使激光筆穩(wěn)定地在地面畫
12、 出一條長度不短于50cm的直線段,來 回五次,記錄其由靜止至開始自由擺 時間及最大偏差距離。2、測試條件與儀器測試條件:檢查多次,仿真電路和硬件電路必須與系統(tǒng)原理圖完全相同,并且檢查 無誤,硬件電路保證無虛焊。測試儀器:(1)秒表(2)量角器(3)自制方向角度圖紙3、測試數(shù)據(jù)及分析1)要求1測試數(shù)據(jù)表1風力擺畫長于50cm直線測試時間(S)偏差1偏差2偏差3第一次數(shù)據(jù)13.22. 7 cm2. 4 cm2. 8 cm第二次數(shù)據(jù)12. 52. 3 cm2. 0 cm1. 9 cm第三次數(shù)據(jù)11. 71. 8 cm1. 9 cm1. 6 cm2)要求2測試數(shù)據(jù)表2風力擺畫不同長度直線測試時間(s
13、)偏差1偏差2偏差330cm直線13. 52. 32. 02. 140cm直線12.81.92. 01.850cm直線13. 71. 51. 61.260cm直線11.91. 81. 21.03)要求3測試數(shù)據(jù)表3風力擺畫不同角度直線測試時間(s)偏差1偏差2偏差39畫0度直線11.22. 21.81. 9畫90度直13.52. 32.62.4畫180度直13.32.62. 52. 1畫270度直12.41.92.02. 3畫360度直11.81.81.92.44)要求4測試數(shù)據(jù)表4風力擺恢復靜止測試時間(1)時間(2)時間(3)拉起30度4. 54. 34. 1拉起35度5. 04.24.
14、1拉起40度4.24. 54.6拉起45度4. 14.03.81)發(fā)揮部分1測試數(shù)據(jù)時間1偏差1時間2偏差2時間3偏差3半徑15cm28. 62. 123.91.920. 52. 1半徑20cm25. 31.625.82.022. 32.2半徑25cm26. 32.227.41.924.82. 5半徑30cm23.42. 124.61. 520.01.9半徑35cm26.41.826.41.918. 51. 5(2)測試分析與結(jié)論根據(jù)上述測試數(shù)據(jù),由此可以得出以下結(jié)論:1、本系統(tǒng)可以在15秒內(nèi)畫出不小于50cm的直線段,且最大誤差符合 要求;2、本系統(tǒng)可在15秒內(nèi)畫出30到60厘米間的直線段,
15、且誤差在不大于2. 5cm范圍內(nèi);3、本系統(tǒng)能在擺桿被拉起設(shè)定方向和角度后在規(guī)定時間內(nèi)擺動畫出不少于20cm的直線;4、本系統(tǒng)能夠畫出規(guī)定半徑的圓周,且能在被臺扇干擾后恢復圓周運 動;5、本系統(tǒng)能夠在拉起一定角度后,5秒內(nèi)恢復靜止。綜上所述,本設(shè) 計基本達到設(shè)計要求,且誤差在允許范圍內(nèi)。五、結(jié)論與心得通過這幾天的搭建硬件和不斷調(diào)試,我們的風力擺系統(tǒng)基本能實現(xiàn)大賽 所需要求,運用32單片機作為主控芯片,用L298N作為電機驅(qū)動,12864 作為顯示模塊,并用MPU6050測量角度,剛開始的手忙腳亂到最后的熟能生 巧,團隊之間的配合更加默契。六、參考文獻1譚浩強.C語言程序設(shè)計M.北京:清華大學出
16、版社,20122童詩白,華程英.模擬電子技術(shù)基礎(chǔ)(第四版)M.北京:高等教育 出版社,2009.3閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版)M.北京:高等教育出版社,2009.4黃智偉,王彥,陳文光等.全國大學生電子設(shè)計競賽訓練教程 M. 北京:電子工業(yè)出 版社,2007.5高吉祥,唐朝京.全國大學生電子設(shè)計競賽培訓系列教程(電子儀器 儀表設(shè)計)M.北京:電子工業(yè)出版社,2007./*預處理命令*/#include <reg52. h> / 包含單片機寄存器的頭文件 #include <string. h>#include <stdio. h> Sinclude &l
17、t;dianji.h>Sinclude "LCD.h Sinclude "anjian. hSinclude "fangxiang. h sbit four = P0"2; sbit one = P(T0; sbit two = P0 1; sbit san = P(T4; /sbit reset = P0 3; sbit fahuil=P05;unsigned char Re_buf11, counter; unsigned char ucStra6,ucStrw6, ucStrAngle6;int SetPoint_x; / 設(shè)定目標 Desi
18、red V alue double Proportion_x; / 比例常數(shù) Proportional Const double Integral_x; / 積分常數(shù) Integral Const double Derivative_x; / 微分常數(shù) Derivative Const int LastError_x; /Error-1 int PrevError_x; /Error-2 int SumError_x; int SetPoint_y; / 設(shè)定目標 Desired V alue double Proportion_y; / 比例常數(shù) Proportional Constdoub
19、le Integral_y; / 積分常數(shù) Integral Const double Derivative_y; / 微分常數(shù) Derivative Const int LastError_y; /Error-1 int PrevError_y; /Error-2 int SumError_y;int Value3;int x, y;/sbit yuyin = P3 6;void jiaoduO/ int Value3;/ int x, y; Value0 = (short) (ucStrAnglel<<8 ucStrAngle0)/ 32768. 0)*180;Valuel =
20、 (short) (ucStrAngle3«81 ucStrAngle2)/32768.0*180;Value2 = (short) (ucStrAngle5«8 | ucStrAngle4)/ if (x>0) (x=0)send(0, 0x90) ; send(l,'x'); send(l,' '); send(0, 0x91);send(l, x/10000+0x30); send(l,x%10000/1000+0x30);send(0,0x92); send(l, x%10000%1000/100+0x30);send(l,
21、39;,);/ / / / / / / / / / / / / / / / /send(0,0x93); send(l, x%10000%1000%100/10+0x30);send(l,x%10000%1000%100%10+0x30);if (x<0) x=-x; send(0, 0x90) ; send(l,'x'); send(l, send(0,0x91); send(l,x/10000+0x30); send(l,x%10000/1000+0x30); send(0,0x92); send(l,x%10000%1000/100+0x30); send(l,
22、39;,');send(0, 0x93);send(l, x%10000%1000%100/10+0x30);send(l, x%10000%1000%100%10+0x30);if(y>0) (y=0)send(0, 0x80) ; send(l,'y'); send(l,,');send(0,0x81); send(l, y/10000+0x30);send(l,y%10000/1000+0x30);send(0,0x82);send(l, y%10000%1000/100+0x30);send(l,'.);send(0, 0x83);send
23、(l, y%10000%1000%100/10+0x30);send(l,y%10000%1000%100%10+0x30);)if(y<0)y=-y; send(0, 0x80) ; send(l,'y');send(l,'; send(0, 0x81);send(l, y/10000+0x30);send(l, y%10000/1000+0x30);send(0, 0x82);send(l, y%10000%1000/100+0x30);send(l,'.);send(0, 0x83);send(l, y%10000%1000%100/10+0x30)
24、;voidxyzhi () send(l, y%10000%1000%100%10+0x30);32768. 0)*180 .32768.0*180;Value0 = (short) (ucStrAnglel<<81 ucStrAngle0)/Valuel = (short) (ucStrAngle3«8魏玲醐)/y=Valuel/ *軸PID/14*QcPIDInit (float angle,_x, double P._DA 儀 4瑟 le I_DATA_X, doubleD_DATA_X)(LastError_x = 0; /Error-1JPrevError_x
25、= 0; /Error-2 SumError_x=0;Proportion_x =P_DATA_X; / 比例常數(shù) Proportional Const Integral_x =I_DATA_X; / 積分常數(shù) Integral Const Derivative_x =D_DATA_X; / 微分 常數(shù) Derivative Const SetPoint_x =angle_x; / 目標是 0int XIncPIDCalc (int NextPoint)/ 位置 PIDfloat ierr,derr;int iout;ierr=NextPoint-SetPoint_x;SumError_x+=
26、 i err;derr= i err-LastError_x;LastError_x=ierr;iout=(int)(Proportion_x*ierr+Integral_x*SumError_x +Derivative_x*derr );return (iout);/ /*Y 軸 PID*void Y_IncPIDInit(float angle_y, double P_DATA_Y, double I_DATA_Y,double D_DATA_Y)(LastError_y = 0; /Error-1JPrevError_y = 0; /Error-2 SumError_y=0;Propor
27、tion_y =P_DATA_Y; / 比例常數(shù) Proportional ConstIntegral_y =I_DATA_Y; 積分常數(shù) Integral ConstDerivative_y =D_DATA_Y; 微分常數(shù) Derivative ConstSetPoint_y =angle_y; / 目標是 0 int YIncPIDCalc(int NextPoint)/ 位置PID float ierr,derr;int iout;ierr=NextPoint-SetPoint_y;SumError_y+= i err;derr= i err-LastError_y;LastError_
28、y=ierr;iout=(int) (Proportion_y*ierr+Integral_y*SumError_y +Derivative_y*derr ); if (ierr<5 && ierr > -5) iout = iout*2;return (iout);void main(void) (/ int Value3;int b, a;unsigned char i=0;X_IncPIDInit (-0. 6, 80, 0, 40);Y_IncPIDInit (-0. 5, 80, 0, 40) ; / lcd_init();TM0D=0x20; /用定時器
29、設(shè)置串口波特率9600THl=0xfd;TLl=0xfd;TRIE;TI=1;REN=1;/串口初始化SM0=0;SM1=1;EA=1; /開啟總中斷ES=1;/ send(0,0x93);/ send(l,' C');/ yuyin = 0;/ delay (5000);/ yuyin = 1; while(1)(/第四步if (four = 0)1delay (10);if (four = 0)while(1)lxyzhi ();a= XIncPIDCalc (x); b=YIncPIDCalc (y); if(a > 0) ltiaojiel (a); tiaoji
30、e3(0); else (tiaojiel(0) ; tiaojie3(-a); 1 if(b>0)(tiaojie2(b) ; tiaojie4(0);else (tiaojie2(0); tiaojie4(b); 1if (reset = 0)tiaojiel (0); tiaojie2 (0); tiaojie3(0); tiaojie4(0); break;/fahuilif(fahuil 二二 0) (delay (10);if (fahuil= 0) (while(1) (tiaojie2(1000); tiaojie4(0); delay(200); tiaojie2(0)
31、; tiaojie4(1000); delay(200); if (reset = 0) delay(10); if (reset = 0) :tiaojie2(0);tiaojie4(0); break; n/第一步if (one =二 0)delay(10); if (one = 0)while(1)ltiaojie2(1000); tiaojie4(0); delay(250); tiaojie2(0); tiaojie4(1000);delay (250); if (reset = 0) (delay (10); if (reset = 0) 1tiaojie2 (0);tiaojie4(0);break
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版樣機試制合作協(xié)議
- 2024年出租車租車合同模板
- 懷孕期間夫妻分手協(xié)議
- 城市軌道交通工程建筑信息模型(BIM)分類與編碼標準
- 建筑行業(yè)標準腳手架租賃合同
- 2024項目投資合同撰寫要點
- 購買混凝土合同范本
- 生物中圖版自主訓練:第三單元第一章第一節(jié)遺傳物質(zhì)的發(fā)現(xiàn)
- 簡單的賠償協(xié)議書2024年
- 2024屆畢業(yè)生就業(yè)協(xié)議書樣本
- 大數(shù)據(jù)和人工智能知識考試題庫600題(含答案)
- 2023年上海機場集團有限公司校園招聘筆試題庫及答案解析
- 鏡頭的角度和方位課件
- 污水處理常用藥劑簡介知識講解課件
- 五年級上冊英語課件-Unit 1《My future》第1課時牛津上海版(三起) (共28張PPT)
- 光交接箱施工規(guī)范方案
- 氣溫和降水學案
- 普及人民代表大會制度知識競賽試題庫(1000題和答案)
- 國家電網(wǎng)公司施工項目部標準化管理手冊(2021年版)線路工程分冊
- 《汽車低壓線束設(shè)計規(guī)范》
- 工程項目增加簽證單
評論
0/150
提交評論