基于單片機的風洞模型姿態(tài)控制系統(tǒng)設(shè)計
1、 引言 風洞是能人工產(chǎn)生和控制氣流,用以模擬飛行器或物體周圍氣體的流動,并可量度氣流對物體的作用以及觀察物體現(xiàn)象的一種管道試驗設(shè)備。風洞在空氣動力學研究和飛行器設(shè)計中起著十分重要的作用,它的發(fā)展與航空航天技術(shù)的發(fā)展密切相關(guān)[1]?! D1總體設(shè)計方案 目前的風洞大多以計算機為核心配以其它硬件資源完成風洞的風速及模型姿態(tài)控制。本文重點介紹以自整角機及其變送器代替?zhèn)鹘y(tǒng)的光電編碼器作為角度傳感器完成模型姿態(tài)控制的原理及方法。 2、 硬件總體結(jié)構(gòu) 系統(tǒng)用單片機作控制器,采用定位精確的步進電機作為模型姿態(tài)執(zhí)行元件,高精度的角位移傳感器做測量元件,實現(xiàn)對模型的精確控制。系統(tǒng)由微控制器、鍵盤、顯示、攻角及側(cè)滑角采集、姿態(tài)控制、風速采集、試驗計時等模塊組成,總體方案如圖1所示。 2.1模型姿態(tài)測量與控制單元硬件組成 模型姿態(tài)即攻角α和側(cè)滑角β的測量控制如圖2所示。所選用fb900c系列角位傳感器及變送器其本身為一單片機系統(tǒng),與系統(tǒng)單片機采用串行通訊。工作過程為通過鍵盤設(shè)置α和β角度,通過角位傳感器和變送器測量系統(tǒng)當前角度,計算出要轉(zhuǎn)過的角度,控制兩個步進電機轉(zhuǎn)動并送顯示。 圖2模型姿態(tài)控制系統(tǒng)方框圖 系統(tǒng)采用atmel公司的at89c52單片機,該芯片為51系列增強型,內(nèi)部有8k flash rom,三個16位定時計數(shù)器和256字節(jié)ram?! 纹瑱C與步進電機接口使用p1.0~p1.3四條口線控制兩臺步進電機,p1.0和p1.2用來輸出方波信號,p1.1和p1.3用來輸出方向信號?! b900c系列角位變送器采用自整角機或旋轉(zhuǎn)變壓器作檢測元件,運用最新檢測技術(shù),將旋轉(zhuǎn)物體轉(zhuǎn)過的角度經(jīng)微處理器進行處理后換算成角位移或直線位移,然后以4~20ma的模擬量或串行口輸出。該變送器用自整角機或旋轉(zhuǎn)變壓器組合相當于8~16位的絕對編碼器測量精度,其性價比遠高于編碼器測量方式,是工業(yè)現(xiàn)場最為理想的角位測量模塊?! ?.2模型姿態(tài)測量與控制程序設(shè)計 2.2.1 角度測量程序設(shè)計 α、β兩個角度的測量是風洞數(shù)據(jù)采集和控制系統(tǒng)的重點,測量角度的精度直接影響到系統(tǒng)的控制精度。因此,測量中的各子程序的要求比較高,又由于角位移傳感器的輸出為ascⅱ碼,且數(shù)據(jù)最大為79 9999所以,程序中采用了浮點數(shù)運算子程序、整數(shù)與浮點數(shù)之[2]間相互轉(zhuǎn)換子程序,角度測量程序[2]流程如圖3所示?! 〕绦蚴紫葟睦奂悠髦腥〉靡獪y量的方向,并把該方向存放在r2中,若r2的值錯誤,程序直接返回不進行任何操作。通過串口取得相應方向角位置數(shù)據(jù)后,調(diào)用進制轉(zhuǎn)換程序?qū)?shù)據(jù)轉(zhuǎn)換為浮點數(shù),此時對r2中的方向值進行判斷,獲得該方向上的傳動比,計算結(jié)果轉(zhuǎn)換為十進制后也通過判斷r2中的方向值獲得數(shù)據(jù)存放的單元地址?! 〕绦蛉肟冢簜鞲衅骶幪柎嬗赼中。 程序出口:α角度存于51h、β角度存于53h。 部分程序如下: ms: clr ea ;關(guān)中斷 mov r2,a ;暫存?zhèn)鞲衅骶幪枴 ov scon,#50h ;設(shè)置串口方式 mov rcap2h,#0ffh ;自動裝載值 mov rcap2l,#0d9h ; mov th2,#0ffh mov tl2,#0d9h mov t2con,#34h ;啟動波特率發(fā)生器 …… …… ;發(fā)送采集命令、進制轉(zhuǎn)換 lcall fciv ;調(diào)浮點數(shù)運算 …… …… ;進制轉(zhuǎn)換、存數(shù)據(jù) setb ez ;開中斷 ret 圖3 角度測量流程圖 2.2.2 角度控制程序設(shè)計 風洞中模型姿態(tài)的控制分兩部分,一個是當前姿態(tài)的測量,一個是計算步進電機需轉(zhuǎn)過的角度,角度的控制是在精確地測量當前姿態(tài)的基礎(chǔ)上完成的,程序框圖如圖4所示?! 『徒嵌葴y量相似,模型姿態(tài)需要改變的角度放在累加器中,需要改變的方向放在22h單元中,符號放在23h單元中,通過計算得到驅(qū)動模型轉(zhuǎn)動給定角度所需要的脈沖數(shù),以及該方向電機的控制端口?! 〔糠殖绦蛉缦拢骸 jrun: jz aover mov r2,a ; 待轉(zhuǎn)角度存于a中 mov a,22h ; 模型變化方向 cjne a,#0ah,noaji ljmp adji ;攻角方向(α角) noaji: cjne a,#0bh,error5 ljmp bdji ;側(cè)滑角方向(β角) adji: mov a,23h cjne a,#0ah,adjinozh