基于單片機的無人機真空速測量系統設計
3.2 單片機處理電路
本設計的使用C8051F352單片機采用32管腳的LQFP封裝,是由美國Cygnal公司推出的具有高速度、高性能、高集成等特點,并能與8051兼容的單片機,除了具有標準8052的數字外設部件以外,片內還集成了數據采集和控制系統中常用的模擬部件和其他數字外設及功能部件。
本系統設計中使用了C8051F352微控器中的AIN0和AIN1兩個模擬通道,分別用于靜壓和動壓的模擬/數字轉換。單片機的AD將輸入的模擬信號轉換為數字信號,然后送入CPU進行數據處理。
3.3 串口通信
解算后的真空速要通過串口發送至上位機,在顯示界面顯示。真空速由單片機串口經RS-232接口發送至上位機,并使用MAX232芯片實現單片機電平轉換從而能與上位機進行正常通信。單片機CPU采用異步串行輸出UART0,工作在方式1,中斷方式,定時器1設置為自動重裝載方式產生115 200的波特率。
3.4 顯示界面
上位機通訊程序主要使用Visual C++編程,該顯示界面用于顯示大氣靜壓、動壓和真空速值。程序界面如圖2所示。本文引用地址:http://www.104case.com/article/171556.htm
在上位機程序編寫時,需要使用MSComm控件,通過設置控件的各個屬性來完成串口的參數設置以及數據的接收。真空速顯示界面所使用的MSComm控件屬性主要有以下幾個:CommPort屬性(用于設置串口號),PortOpen屬性(用于打開或關閉串口),SetSettings屬性(用于設置或返回串口波特率、奇偶校驗、數據位、停止位參數),InBufferCount屬性(設置或返回接收緩沖區中等待計算機接收的字符數),Input屬性(從接收緩沖區中讀取數據并清空接收緩沖區)。
4 真空速解算方法設計
4.1 線性插值原理
分段低次插值是函數插值方法的一種,將比較復雜的函數f(x)的插值區間[a,b]分成一系列子區間,在每一個子區間[xi,xi+1]上,用一個簡單的函數來近似原函數。當每個子區間采用的近似函數為一次函數時,就成為常用的線性插值法。
子區間的線性插值公式為:
h即為插值步長。在計算函數值時,系統采集到x值,然后找到值所在的插值區間[xi,xi+h]及相應函數值[yi,yi+h],便可根據插值公式計算出y值。
4.2 插值節點計算
由公式(1)看出真空速計算公式比較復雜,如果直接用單片機進行計算,則會占用大量內存資源,從而降低計算速度。因此,在系統允許誤差范圍內,對原函數采用插值,將復雜函數用一個簡單的函數來近似。由于真空速計算式有兩個變量,無法直接采用分段線性插值來解算,考慮到實際運算的方便,使用公式(6)來計算真空速值。
則公式(6)中的真空速分為兩部分:一部分是只包含動壓PD變量的指示空速Vi,另一部分是只含有靜壓PH變量的氣壓高度H的函數式H’,通過計算可得1≤H’≤1.289 9。
指示空速Vi和氣壓高度日的計算公式分別如公式(7)和公式(8)所示。
接地電阻相關文章:接地電阻測試方法
評論