极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【E1249】2015年電賽控制類-STM32風(fēng)力擺控制系統(tǒng)資料+源程序

2021-09-20 13:24:25      索煒達電子      1184     

項目編號:E1249

文件大小:2.99M

源碼說明:帶中文注釋

開發(fā)環(huán)境:C編譯器

簡要概述:

風(fēng)力擺控制系統(tǒng)主要應(yīng)用了一個物理知識——李薩如圖形,李薩如圖形貫穿整個風(fēng)力擺設(shè)計的始終。無論是畫直線還是畫圓都應(yīng)用到了李薩如圖形,風(fēng)力擺可以看成是XY兩個方向上的簡諧運動。當兩個簡諧運動的相位和周期相等、幅值不等時,風(fēng)力擺會在下方畫出不同長度不同角度的直線;當兩個簡諧運動的幅值和周期相等、相位相差Π/2時,風(fēng)力擺會在下方畫出不同半徑的圓(具體請多了解一下李薩如圖形)。風(fēng)力擺的各種注意事項請大家仔細閱讀代碼中的READEME.txt文件,代碼框架和STM32F1的源代碼格式相同,方便大家理解。最后祝大家19年電賽都能取得一個好成績!

接線方式:
        OLED:
                SCL------PB5
                SDA------PB4
                RST------PB3
                D/C------PA15
        MPU6050:
                SCL------PB8
                SDA------PB9
        L298N:
                PWM1----PB1
                R_EN1----PB12
                L_EN1----PB13
                PWM2----PA1
                R_EN2----PB14
                L_EN2----PB15
        KEY:
                KEY1-----PA11
                KEY2-----PA12
                KEY3-----PB6
                KEY4-----PB7

【E1249】2015年電賽控制類-STM32風(fēng)力擺控制系統(tǒng)資料+源程序

【E1249】2015年電賽控制類-STM32風(fēng)力擺控制系統(tǒng)資料+源程序

風(fēng)力擺控制系統(tǒng)是一種利用風(fēng)力控制物體做簡諧運動的系統(tǒng),風(fēng)力的利用和控制技術(shù)在我國的發(fā)展尚未完善,國內(nèi)正處于起步階段。風(fēng)力擺的工作原理具有較為典型的自動化控制理論特點,其控制方法多種多樣。深入研究,在許多工程技術(shù)領(lǐng)域都有著廣闊的開發(fā)前景。風(fēng)力擺系統(tǒng)的擺體由風(fēng)扇構(gòu)成,通過調(diào)整風(fēng)扇的轉(zhuǎn)速實現(xiàn)擺動位置及擺動路線的控制,由于擺動機構(gòu)的滯后性,實現(xiàn)精確控制具有一定難度。通過合理的擺結(jié)構(gòu)設(shè)計,并利用擺線理論建模,設(shè)計并優(yōu)化控制策略,利用閉環(huán)結(jié)構(gòu)提升擺的軌跡運動準確性。其中的控制原理對于人們處理工業(yè)工程,同樣存在借鑒。系統(tǒng)對風(fēng)擺控制參數(shù)設(shè)定、抗擾因素測試等慣性滯后問題解決具有借鑒意義,同時也為分析該類問題建立了直觀的測試平臺。風(fēng)力擺是一種通過風(fēng)機作為唯一動力驅(qū)動的裝置,深入研究該系統(tǒng)對空間飛行器、四旋翼無人機的運動狀態(tài)和衛(wèi)星姿態(tài)控制具有重大意義。

三、主要研究內(nèi)容

1. 基本要求
(1) 從靜止開始,15s 內(nèi)控制風(fēng)力擺做類似自由擺運動,使激光筆穩(wěn)定地
在地面畫出一條長度不短于 50cm 的直線段,其線性度偏差不大于±
2.5cm,并且具有較好的重復(fù)性;
(2) 從靜止開始,15s 內(nèi)完成幅度可控的擺動,畫出長度在 30~60cm 間可設(shè)置,長度偏差不大于±2.5cm 的直線段,并且具有較好的重復(fù)性;
(3) 可設(shè)定擺動方向,風(fēng)力擺從靜止開始,15s 內(nèi)按照設(shè)置的方向(角度)
擺動,畫出不短于 20cm 的直線段;
(4) 將風(fēng)力擺拉起一定角度(30°~45°)放開,5s 內(nèi)使風(fēng)力擺制動達到靜止狀態(tài)。
2.發(fā)揮部分
(1) 以風(fēng)力擺靜止時激光筆的光點為圓心,驅(qū)動風(fēng)力擺用激光筆在地面畫圓,30s 內(nèi)需重復(fù) 3 次;圓半徑可在 15~35cm 范圍內(nèi)設(shè)置,激光筆畫出的軌跡應(yīng)落在指定半徑±2.5cm 的圓環(huán)內(nèi);
(2) 在發(fā)揮部分(1)后繼續(xù)作圓周運動,在距離風(fēng)力擺 1~2m 距離內(nèi)用一臺 50~60W 臺扇在水平方向吹向風(fēng)力擺,臺扇吹 5s 后停止,風(fēng)力擺能
夠在 5s 內(nèi)恢復(fù)發(fā)揮部分(1)規(guī)定的圓周運動,激光筆畫出符合要求的
軌跡;
(3) 其他。

四、總體思路與研究方案

1. 總體思路
風(fēng)力擺控制系統(tǒng)是一個極其不穩(wěn)定的系統(tǒng),擺桿的長度、風(fēng)機的安裝位置、萬向節(jié)的阻力等因素都會引起系統(tǒng)產(chǎn)生誤差,該系統(tǒng)中應(yīng)用了一個物理知識——李薩如圖形。李薩如圖形貫穿整個風(fēng)力擺控制系統(tǒng)的始終,畫直線時兩個方向上的簡諧運動相位相等,幅值不同就會畫出不同角度不同長度的直線;畫圓時兩個方向上的簡諧運動相位相差Π/2,幅值相同就會畫出不同半徑的圓。
設(shè)計整個系統(tǒng)時將角度傳感器mpu6050固定在擺桿上,傳感器返回的數(shù)據(jù)通過串口顯示在上位機上。在程序里設(shè)置兩條目標值曲線,根據(jù)上位機顯示的實際值波形與目標值曲線之間的差異進行PID參數(shù)的整定。實際上整個系統(tǒng)的目的就是讓實際值曲線沿著目標值曲線的軌跡運動。
2. 實施方案
(1)電機的論證和選擇
方案1:采用驅(qū)動、風(fēng)機一體化的軸流風(fēng)機
驅(qū)動、風(fēng)機一體化的軸流風(fēng)機有可以免去驅(qū)動的設(shè)計、節(jié)省結(jié)構(gòu)空間、控制方法簡單,散熱快等優(yōu)點,但是他的風(fēng)力較小而且重量大,響應(yīng)速度和其他電機相比也比較慢。
方案2:采用空心杯電機
空心杯電機重量小,風(fēng)力大,起動、制動迅速,響應(yīng)極快,能量轉(zhuǎn)換效率很高。但是他的抗干擾能力較弱容易受到很多外界因素的影響。

綜合以上兩種方案選擇方案2。
(2)驅(qū)動模塊的論證和選擇
方案1:采用TB6612FNG驅(qū)動模塊
TB6612FNG驅(qū)動模塊雙通道輸出,可同時驅(qū)動兩個電機。每個通道可以輸出最高1A的驅(qū)動電流,啟動峰值電流達2A。TB6612FNG是基于MOSFET的H橋集成電路,效率遠高于晶體管H橋驅(qū)動器。
方案2:采用L298N驅(qū)動模塊
L298N驅(qū)動模塊是一種高電壓、大電流的驅(qū)動模塊,它采用L298N雙H橋直流電機驅(qū)動芯片,單橋可以輸出的最大驅(qū)動電流為2A,驅(qū)動部分端子供電范圍為5V~35V。
綜合以上兩種方案選擇方案2。
(3)主控模塊的論證與選擇
方案1:采用STC89C51單片機
STC89C51單片機最高工作時鐘頻率為80MHz,內(nèi)含8K Bytes的可反復(fù)擦寫1000次的Flash只讀程序存儲器,芯片內(nèi)集成了通用8位 中央處理器和ISP Flash 存儲單元。
方案2:采用STM32單片機
STM32單片機是ST公司使用arm公司的cortex-M3為核心生產(chǎn)的32bit系列的單片機,他的內(nèi)部資源非常豐富,基本上接近于計算機的CPU了,最高工作頻率72MHz。
綜合以上兩種方案選擇方案2。
(4)角度檢測模塊的論證與選擇
方案1:采用角度傳感器
由UZZ9001和KMZ41組成角度測量模塊,并使用矩形磁鐵進行配合測量磁鐵與KMZ41芯片之間的角度。UZZ9001將KMZ41輸出的正余弦角度信號轉(zhuǎn)換為數(shù)字信號,并通過SPI串口輸出。但KMZ41調(diào)試比較困難,不方便用于測量傾角。
方案2:采用MPU6050模塊
MPU6050測量角度集成了三軸MEMS陀螺儀,三軸MEMS加速度計。MPU6050對陀螺儀和加速度計分別用了3個16位的ADC,將其測量的模擬量轉(zhuǎn)化為可輸出的數(shù)字量。測量范圍可控,通信采用I2C總線,操作簡單。
綜合以上兩種方案選擇方案2。
(5)電源的論證和選擇
方案1:采用航模電池,
航模電池可以輸出12V的電壓,可反復(fù)充電。此方案的優(yōu)點是風(fēng)力擺與外界無需電源連線統(tǒng)安裝方便,但電壓會有波動,不能長時間穩(wěn)定工作。
方案2:采用開關(guān)電源
利用開關(guān)電源雖然系統(tǒng)安裝較復(fù)雜,但功率較大,電壓穩(wěn)定。
綜合以上兩種方案選擇方案2


五、主要研究結(jié)果
經(jīng)過我們團隊的不懈努力,風(fēng)力擺控制系統(tǒng)現(xiàn)在可以完成一下要求:
(1) 從靜止開始,15s 內(nèi)控制風(fēng)力擺做類似自由擺運動,使激光筆穩(wěn)定地
在地面畫出一條長度不短于 50cm 的直線段,其線性度偏差不大于±
2.5cm,并且具有較好的重復(fù)性;
(2) 從靜止開始,15s 內(nèi)完成幅度可控的擺動,畫出長度在 30~60cm 間可設(shè)置,長度偏差不大于±2.5cm 的直線段,并且具有較好的重復(fù)性;
(3) 可設(shè)定擺動方向,風(fēng)力擺從靜止開始,15s 內(nèi)按照設(shè)置的方向(角度)
擺動,畫出不短于 20cm 的直線段;
(4) 將風(fēng)力擺拉起一定角度(30°~45°)放開,5s 內(nèi)使風(fēng)力擺制動達到靜止狀態(tài)。
(5) 以風(fēng)力擺靜止時激光筆的光點為圓心,驅(qū)動風(fēng)力擺用激光筆在地面畫圓,30s 內(nèi)需重復(fù) 3 次;圓半徑可在 15~35cm 范圍內(nèi)設(shè)置,激光筆畫出的軌跡應(yīng)落在指定半徑±2.5cm 的圓環(huán)內(nèi);
(6) 在發(fā)揮部分(1)后繼續(xù)作圓周運動,在距離風(fēng)力擺 1~2m 距離內(nèi)用一臺 50~60W 臺扇在水平方向吹向風(fēng)力擺,臺扇吹 5s 后停止,風(fēng)力擺能
夠在 5s 內(nèi)恢復(fù)要求(5)規(guī)定的圓周運動,激光筆畫出符合要求的軌跡;


六、存在的問題及今后努力方向
這個風(fēng)力擺控制系統(tǒng)在畫圓的時候畫出來的圓不是太完美,即使理論值我都算出來了并且按照理論值設(shè)定各參數(shù)但是理論和實際之間總有差距,引起這一現(xiàn)象可能的因素有萬向節(jié)阻力、激光束是否和擺桿在一條直線上、MPU6050的安放位置等。我嘗試著改變兩個簡諧運動曲線的幅值和相位差,如果這幾個因素改變的程度過低風(fēng)力擺表現(xiàn)得不太明顯,如果過高風(fēng)力擺畫出來的就是一個橢圓,很難找到一個非常非常完美的參數(shù)。今后我會更加刻苦的學(xué)習(xí)PID算法、信號的分析和處理等知識,致知于行,學(xué)以致用,讓理論能很好的應(yīng)用到實踐中。

目錄│文件列表:

 └ 15年電賽控制類-風(fēng)力擺

    │ MiniBalance波形顯示上位機.exe

    │ 電子設(shè)計競賽項目報告.doc

    └ 風(fēng)力擺

       │ keilkilll.bat

       ├ CORE

       │  │ core_cm3.c

       │  │ core_cm3.h

       │  │ startup_stm32f10x_cl.s

       │  │ startup_stm32f10x_hd.s

       │  │ startup_stm32f10x_hd_vl.s

       │  │ startup_stm32f10x_ld.s

       │  │ startup_stm32f10x_ld_vl.s

       │  │ startup_stm32f10x_md.s

       │  │ startup_stm32f10x_md_vl.s

       │  └ startup_stm32f10x_xl.s

       ├ HARDWARE

       │  ├ control

       │  │  │ control.c

       │  │  └ control.h

       │  ├ DataScope_DP

       │  │  │ DataScope_DP.C

       │  │  └ DataScope_DP.h

       │  ├ EXTI

       │  │  │ exti.c

       │  │  └ exti.h

       │  ├ KEY

       │  │  │ key.c

       │  │  └ key.h

       │  ├ OLED

       │  │  │ oled.c

       │  │  │ oled.h

       │  │  └ oledfont.h

       │  ├ show

       │  │  │ show.c

       │  │  └ show.h

       │  └ TIMER

       │     │ timer.c

       │     └ timer.h

       ├ MyCode

       │  ├ DMP

       │  │  │ dmpKey.h

       │  │  │ dmpmap.h

       │  │  │ inv_mpu.c

       │  │  │ inv_mpu.h

       │  │  │ inv_mpu_dmp_motion_driver.c

       │  │  └ inv_mpu_dmp_motion_driver.h

       │  ├ IIC

       │  │  │ IOI2C.c

       │  │  └ IOI2C.h

       │  ├ led

       │  │  │ LED.c

       │  │  └ LED.h

       │  └ MPU6050

       │     │ MPU6050.c

       │     └ mpu6050.h

       ├ OBJ

       │  └ main.hex

       ├ STM32_FWLIB

       │  ├ inc

       │  │  │ misc.h

       │  │  │ stm32f10x_adc.h

       │  │  │ stm32f10x_bkp.h

       │  │  │ stm32f10x_can.h

       │  │  │ stm32f10x_cec.h

       │  │  │ stm32f10x_crc.h

       │  │  │ stm32f10x_dac.h

       │  │  │ stm32f10x_dbgmcu.h

       │  │  │ stm32f10x_dma.h

       │  │  │ stm32f10x_exti.h

       │  │  │ stm32f10x_flash.h

       │  │  │ stm32f10x_fsmc.h

       │  │  │ stm32f10x_gpio.h

       │  │  │ stm32f10x_i2c.h

       │  │  │ stm32f10x_iwdg.h

       │  │  │ stm32f10x_pwr.h

       │  │  │ stm32f10x_rcc.h

       │  │  │ stm32f10x_rtc.h

       │  │  │ stm32f10x_sdio.h

       │  │  │ stm32f10x_spi.h

       │  │  │ stm32f10x_tim.h

       │  │  │ stm32f10x_usart.h

       │  │  └ stm32f10x_wwdg.h

       │  └ src

       │     │ misc.c

       │     │ stm32f10x_adc.c

       │     │ stm32f10x_bkp.c

       │     │ stm32f10x_can.c

       │     │ stm32f10x_cec.c

       │     │ stm32f10x_crc.c

       │     │ stm32f10x_dac.c

       │     │ stm32f10x_dbgmcu.c

       │     │ stm32f10x_dma.c

       │     │ stm32f10x_exti.c

       │     │ stm32f10x_flash.c

       │     │ stm32f10x_fsmc.c

       │     │ stm32f10x_gpio.c

       │     │ stm32f10x_i2c.c

       │     │ stm32f10x_iwdg.c

       │     │ stm32f10x_pwr.c

       │     │ stm32f10x_rcc.c

       │     │ stm32f10x_rtc.c

       │     │ stm32f10x_sdio.c

       │     │ stm32f10x_spi.c

       │     │ stm32f10x_tim.c

       │     │ stm32f10x_usart.c

       │     └ stm32f10x_wwdg.c

       ├ SYSTEM

       │  ├ delay

       │  │  │ delay.c

       │  │  └ delay.h

       │  ├ sys

       │  │  │ sys.c

       │  │  └ sys.h

       │  └ usart

       │     │ usart.c

       │     └ usart.h

       └ USER

          │ JLinkSettings.ini

          │ main.c

          │ main.uvgui.Administrator

          │ main.uvgui.adong

          │ main.uvgui.Grenter

          │ main.uvgui.HP

          │ main.uvgui.yong

          │ main.uvopt

          │ main.uvproj

          │ README.txt

          │ stm32f10x.h

          │ stm32f10x_conf.h

          │ stm32f10x_it.c

          │ stm32f10x_it.h

          │ stm32f10x_spi.c

          │ system_stm32f10x.c

          └ system_stm32f10x.h

TAG風(fēng)力擺
  • 9 次
  • 10 分