2019-08-07

02-01:????電磁線圈炮制作簡述

版權聲明:Copyright ? 2016-2019,Stardust Studio,All Rights Reserved

序言——凡塵

(1)筆者的驅動芯片為stm32f103系列,但不限于stm系列單片機、51、K6X、LPC、樹莓派等單片機;

(2)歡迎各位大牛投稿補充和完善;

(3)筆者一向崇尚開源分享精神,對于關鍵非涉密技術除外技術將會開源分享給各位讀者;

(4)本文參考自參賽隊伍—星塵“2019年全國大學生電子設計競賽-模擬電磁曲射炮(H題)“技術報告,筆者為該隊隊長、星塵工作室室長對上述文本享有修改和撰寫的權利;

(6)筆者并非專門從事電磁炮研究學者,更多的注重于算法控制,因而制作流程相對簡單,不足之處望大家投稿補充;


開始制作前思維導圖

看完思維導圖后請閱讀:模擬電磁曲射炮相關資料,之后開始后續(xù)的內容:

本文將從以下幾個方面展開簡述:

1.摘要

2. 設計任務與要求

????2.1?設計任務

? ??2.2 設計要求

3.系統方案

????3.1?系統結構

? ? 3.2 方案論證

? ? ? ? 3.2.1.主控的選擇

? ? ? ? 3.2.2電容充電電壓選擇

? ? 3.2.3仰角和水平角的實現方案

? ? 3.2.4尋靶與測距

? ? 3.2.5線圈選擇

4.理論分析與計算

????4.1 電磁炮的理論分析

????4.2線圈分析

????4.3模擬電磁炮簡化電路和發(fā)射理論能量計算

5.電路與程序設計

????5.1電路設計

5.2程序結構與設計

6.系統測試與誤差分析

????6.1測試方案及測試數據

????6.2測試結果分析

7.實測結果

8.附加福利:OpenMV識別色塊代碼(公開)

1.摘要

????????目前電磁炮按炮彈加速方式劃分可大致分為導軌炮、線圈炮、重接炮。模擬電磁曲射炮是采用電磁力將模擬炮彈發(fā)射出去。本設計采用了線圈電磁炮的原理,在炮管尾部纏繞了一個500匝的線圈(自重10克),通過電磁力將鐵質炮彈(長為60mm直徑10mm的鋼棒)從炮管發(fā)射出去,鐵質炮彈的射程通過控制炮管的仰角實現。仰角與射程的關系通過實驗進行了標定,并設定到了程序中,確定好目標距離,電磁炮就可以自動運行到相應的仰角。目標距離采用鍵盤輸入的方式獲取,或激光測距的方式測量獲取。水平方向的尋靶通過OpenMV識別引導標志,確定水平方位,電磁炮炮管自動運行到該方位。電磁炮水平方位和仰角通過控制水平舵機和垂直舵機的轉角分別來實現,以STM32F103C8T6單片機為核心處理器。

2. 設計任務與要求

? ??2.1 設計任務

????????????設計并制作一模擬電磁曲射炮。

? ??2.2 設計要求

????????????炮管水平方位及垂直仰角方向可調節(jié),用電磁力將彈丸射出,擊中目標環(huán)形靶,發(fā)射周期不得超過30 秒,電磁炮由直流穩(wěn)壓電源供電,電磁炮系統內允許使用容性儲能元件。

3.系統方案

? ??3.1 系統結構

????????????本系統基于電磁感應原理,由環(huán)繞于炮膛的一系列固定的加速線圈與環(huán)繞于彈丸的彈載運動線圈(彈丸線圈)構成。它利用加速線圈與彈丸線圈之間互感時產生的電磁力作為彈丸的加速力。系統主要包括電源模塊,控制模塊,識別模塊。

圖1·?系統方案圖

? ? 3.2 方案論證

? ? ? ? 3.2.1.主控的選擇

????????????????????系統需要控制兩自由度云臺的控制,兩個串口分別接收OpenMV靶標位置和激光測距模塊距離信息。STM32F103C8T6作為主控,其運行速度快,外圍接口可滿足設計需求,利用STM32作為主控,可以實現本系統的設計任務,且系統具有良好的響應速度,可精確控制。

? ? ? ? 3.2.2電容充電電壓選擇

????????????????????方案一:采用大容量的法拉電容組,法拉電容容量雖大,但其耐壓值往往只有幾伏,無法滿足設計需求。

????????????????????方案二:采用耐高壓的電解電容,電容電壓越高放電時間越短電流越大,產生的洛侖磁力越大,能夠使炮彈的射程增加。?

? ? ? ? ? ? ? ? ? ? 綜上本系統選用方案二,選用了450V,1000uF的電解電容,。

? ? 3.2.3仰角和水平角的實現方案

????????????系統通過單片機對舵機進行控制,從而對仰角與水平角進行調整,利用位置式PID算法對舵機進行控制??刂圃砣鐖D2所示,位置PID計算公式如式(1)所示。

圖2??PID控制原理圖

????????????其中:P用于提高響應速度、I用于減小靜差、D用于抑制震蕩,通過對這三個參數的不斷調節(jié),本系統最終達到了對舵機精確控制的目的。

? ? 3.2.4尋靶與測距

引導靶標采用OpenMV進行左右位置識別,OpenMV是一款以STM32F427CPU為核心,集成了OV7725攝像頭芯片的機器視覺模塊,高效且功能強大,本系統中利用尋找色塊的方法尋找引導標識,先確定引導標識的閾值,找到色塊后再確定引導標識的中心坐標位置,通過圖像中心位置與引導標識的中心坐標位置做差,得到引導標識的偏移量,再將偏移量利用串口發(fā)送給STM32。

本系統采用激光測距,相比于微波測距儀,激光測距具有探測距離遠測距精度高,抗干擾性強,重量輕等特點。當串口接收到的偏差量為0時,控制舵機暫停運動,根據激光測到的引導標識調整炮筒角度。

? ? 3.2.5線圈選擇

????????????電感線圈長度過長,電感值將迅速減小,將會影響線圈的儲能。電感線圈過短時,彈丸加速路程是線圈長度的一半,將嚴重影響彈丸的初速,綜合考慮,本系統的線圈定在十層,每層50圈。

4.理論分析與計算

????4.1 電磁炮的理論分析

1、電磁炮原理分析

電磁炮利用電磁力沿軌道發(fā)射炮彈的武器,主要由電源、高壓逆變器、高壓電容組成電磁炮的電能,其中高壓電容存儲高壓電能。電磁加速器、開關構成電磁炮發(fā)射控制部分。線圈電磁炮磁場示意圖如圖3所示。

圖3 線圈電磁炮磁場示意圖

????4.2線圈分析

????????????在制作線圈時,匝數的選擇決定著威力和精度的大小,但這并不意味著單位長度內匝數越多磁場越強,因為必須要考慮電阻的問題,匝數越多電阻越大,電流也隨之減小,需要找到一個合適的平衡點。同時,線圈作為一種儲能元件,需要考慮它的電感??招木€圈的電感量是一個經驗公式如下。

其中?R 為線圈半徑,n 為線圈匝數,S 為線圈的截面積,h 為線圈的長度??梢娙绻€圈長度過長,電感將迅速減小,影響線圈的儲能。但彈丸加速路程是線圈長度的一半,h 過短將影響彈丸的初速。

圖4?電磁炮彈道示意圖

? ??4.2 彈道分析

????????????忽略空氣阻力,炮彈在離開炮筒后只考慮重力作用,做拋物線運動,分析如下:

????????????綜上可知,通過控制仰角可以將炮彈發(fā)射到指定位置。

????4.3模擬電磁炮簡化電路和發(fā)射理論能量計算

????????????電磁炮的發(fā)射電路,電容C充滿電后,通過單向可控硅控制導通后對電感線圈(電感L和電阻R模型串聯)的二階電路來進行簡化,各符號如圖5所示。

圖5?電磁炮電路簡化示意圖

將方程(9)-(11)帶入方程(12)可得:

5.電路與程序設計

????5.1電路設計

圖6?系統電路設計圖
圖7 系統電路材料清單

????5.2程序結構與設計

圖8 程序結構示意圖

6.系統測試與誤差分析

????6.1測試方案及測試數據

????????????測試方案:調節(jié)炮筒仰角,每個角度測量十次,數據結果見表1。

表1?仰角和距離測試數據表

????????????每個仰角的距離測量數據,去掉一個最小值,去掉一個最大值,剩下的距離取平均值,作為該仰角對應的射程數據。

以仰角數據作為因變量y,以對應的射程數據作為自變量x,對y和x的關系,進行形如:

函數形式的擬合。擬合結果為:

????6.2測試結果分析

????????????仰角和射程的數據測量和擬合曲線如圖8所示。紅色曲線為實際測量數據,藍色曲線為二次擬合曲線。

圖9 仰角和射程的測量數據和matlab擬合曲線

7.實測結果

????????實測結果相當理想,筆者按照電賽要求寫了三級菜單,實驗室測試模式一靶心距離(200-300cm)隨機測試5次,全部十環(huán)中靶,模式二自動尋靶(200-300cm)測試10次,平均九環(huán),模式二自動尋靶(250cm)測試10次,平均九環(huán)。但測評前一天因為俯仰舵機松脫導致參數變更,測評當天成績三個模式只有9環(huán)6環(huán)和4環(huán)成績,未能全中九環(huán)及以上,甚為遺憾。

圖10 電磁炮整機演示圖

8.附加福利:OpenMV識別色塊代碼(公開)

? ? ? ? 基于pathon,采用usart串口3輸出,波特率為115200,識別到紅心后輸出中心偏差值。

import sensor, image, time

red_threshold_01 = (40, 100, 40, 80, 20, 70)

sensor.reset() # Initialize the camera sensor.

sensor.set_pixformat(sensor.RGB565) # use RGB565.

sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.

sensor.skip_frames(10) # Let new settings take affect.

sensor.set_auto_whitebal(False)

#關閉白平衡。白平衡是默認開啟的,在顏色識別中,需要關閉白平衡。

clock = time.clock() # Tracks FPS.

from pyb import UART

uart = UART(3, 115200)

while(True):

? ? clock.tick() # Track elapsed milliseconds between snapshots().

? ? img = sensor.snapshot() # Take a picture and return the image.

? ? #? pixels_threshold=100, area_threshold=100

? ? blobs = img.find_blobs([red_threshold_01], area_threshold=150)

? ? for blob in blobs:

? ? #如果找到了目標顏色

? ? ? ? #print(blob.cx())

? ? ? ? m=str(blob.cx())

? ? ? ? m=m+'d'

? ? ? ? n=str(blob.cy())

? ? ? ? m=m+n

? ? ? ? m=m+'sp'? ? ? ? ? ? ? ? #sp為校驗位

? ? ? ? print(m)

? ? ? ? uart.write(m)

? ? ? ? img.draw_cross(blob.cx(), blob.cy()) #在目標顏色區(qū)域的中心畫十字形標記

? ? ? ? #for b in blobs:

? ? ? ? #迭代找到的目標顏色區(qū)域

? ? ? ? ? ? # Draw a rect around the blob.

? ? ? ? ? ? #img.draw_rectangle(b[0:4]) # rect

? ? ? ? ? ? #用矩形標記出目標顏色區(qū)域

? ? ? ? ? ? #img.draw_cross(b[5], b[6]) # cx, cy

? ? ? ? ? ? #在目標顏色區(qū)域的中心畫十字形標記

后記——凡塵

時間匆忙,未能用篇幅舉代碼實例幫大家理解和校對錯誤,更多的是結構和整體壓縮的內容,如有錯別字和內容不合理的地方歡迎大家批評指正,如有想深入探討或是項目需求的朋友歡迎加入QQ群(星塵科技技術交流群①):694372729?說明需求一起探討學習。

個人郵箱:fanchen995@gmail.com

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今天師兄鉆聯賽第二場所有人都早早起來起來談今天早上這賽車因為今天的任務特別的難。今天要經過一隊超級飛船飛船的數量大...
    后翼張景源閱讀 272評論 0 0
  • 戶外廣告對城市形象的影響及對策 摘要:戶外廣告與城市形象有著密切聯系。評價了戶外廣告對塑造城市形象的積極意義。指出...
    函谷非雪閱讀 250評論 0 0
  • 孩子中考在即,時間緊迫,老師的焦慮更甚于我們。 那天開家長會,因為某一位家長不能到請了假,班主任...
    暖如初見閱讀 977評論 17 16
  • 喜歡熱鬧,喜歡喧囂,喜歡唱歌,讓全世界都聽到...這些是以前的我! 更愿意安靜,愿意獨處,喜歡唱歌,讓自己傾聽.....
    不想訴說的秘密閱讀 290評論 5 1
  • 1.8,夜班。 第一次夜班前所未有的黑,幾乎從六點半開始一直忙到十二點半,中間只休息了一個小時。病人一堆一堆的...
    七月秋講故事閱讀 44評論 0 0

友情鏈接更多精彩內容