郭子裕 張會新 洪應平 洪明森 樊文韜
(1.中北大學電子測試技術國家重點實驗室 太原 030051)(2.儀器科學與動態測試教育部重點實驗室 太原 030051)
在航空航天領域,隨著航空發動機性能的不斷提升,其關鍵部件電動節流閥的工作狀態往往處于極端環境下,極易出現工作異常,電動節流閥的啟動和旋轉異常不僅會影響裝備的正常運行,嚴重情況還會引發爆炸等災難性事故[1~3]。因此,在火箭注入燃料的過程中,為了檢查發動機的工作狀態是否正常,需要實時采集電動節流閥的壓力流量[4],并且可以精準地控制閥芯開度,這對于大型裝備穩定、可靠地運行具有重要的意義[5~8]。
針對上述問題,本文設計了一種基于STM32的電動節流閥控制采集系統,用于電動節流閥的開度控制與壓力傳感器、流量傳感器的參數采集。本系統以STM32F407 作為主控芯片,連接ADC 芯片AD7606,并通過驅動器連接步進電機,通過RS485通訊接口連接編碼器,完成數據采集系統和位置閉環控制系統的設計。該系統在測試與驗證階段,成功實現對各路傳感器輸入的采集和對步進電機旋轉角度的控制,為控制供配氣過程中節流閥開度和檢驗隨之變化的壓力流量提供了幫助。
系統硬件總體設計如圖1,包括主控制器,供電模塊,模擬量采集單元,步進電機控制單元。主控制器選擇STM32F407 芯片,模擬量采集單元功能要求采集4 路4~20mA 傳感器數據,步進電機控制單元功能要求準確控制電機角度,供電模塊負責主控、4個傳感器,電機以及編碼器供電。

圖1 電動節流閥控制采集系統整體設計
STM32F407 是ST(意法半導體)基于ARMCortexTM-M4 為內核的高性能微控制器,所使用的ART 技術使得程序零等待執行[9],程序執行的效率高。集成了單周期DSP 指令和FPU 浮點單元,提升了計算能力,可以進行一些復雜的計算和控制[10]。
2.2.1 調理電路設計
模擬量的物理意義為2 路壓力傳感器數據,2路傳感器流量數據,4 路傳感器的輸出信號均為4mA~20mA,故采集的4 路傳感器輸出的模擬量信號調理電路設計如圖2。

圖2 模擬量信號調理電路設計
圖中,R25 是4mA~20mA 電流取樣電阻,其值的大小主要受傳感變送器供電電壓的制約,當前級采用24V 供電,R25 使用250Ω的阻值,對應采樣電流轉換電壓為1V~5V。
由OPA197 組成的電壓跟隨器拉高輸入阻抗,使得它對上一級電路呈現高阻狀態,而對下一級電路呈現低阻狀態,用于中間級,隔離前后級電路,消除它們之間的相互影響。
AD824 是一款四通道、FET 輸入、單電源放大器,提供軌到軌輸出。此處用到了三個通道,首先,由圖中U11A、U11B 構成的電壓限幅電路,可以將輸出信號的電壓限定在指定電壓范圍內提高輸出精度,以保護后級ADC 電路。而U11C 為一級電壓跟隨器以降低輸出阻抗[11]。
2.2.2 模數轉換模塊設計
系統模數轉換模塊采用了AD7606-4 芯片[12],該芯片的主要技術指標有4路同步采樣輸入、16位分辨率精度,轉換時間為4μs,具有模擬輸入鉗位保護、等效輸入阻抗為1MΩ的輸入緩沖區、提供40dB 二階抗混疊濾波模擬濾波器,提供串行及并行接口。
圖3是AD7606-4 的硬件設計原理。V1、V2、V3、V4 為AD7606 的四個通道輸入,保證4 路傳感器信號的采集具有極高的同步性能。數據輸出采用并口接線讀取,DB0~15 為16 位數據線輸出,接入主控讀取,處理為1V~5V電壓的數字量。

圖3 AD7606硬件電路
2.3.1 步進電機控制驅動模塊設計
步進電機選型兩相四線制電機,主控通過驅動器控制步進電機。圖4為控制器與步進電機驅動器連接。

圖4 步進電機控制驅動電路的設計
步進電機脈沖發生控制電路用于驅動節流閥開啟工作所需要的觸發脈沖,下降沿觸發脈沖。
主控輸出三個信號:EN,DIR,STEP??刂菩盘柦涍^三極管的放大作用輸出,以共陽極接法連接驅動器組成閉合回路。
2.3.2 步進電機控制編碼器模塊設計
編碼器選型光柵旋轉編碼器,體積小,分辨率高,直接安裝在步進電機尾部。編碼器內部為線性差分驅動器,如圖5,功能同RS485。

圖5 編碼器通訊電路
編碼器內部IC1 為線性差分驅動器,功能等同于MAX485,故用戶接收端IC2 和IC1 選型一致,匹配電阻R2和R5阻值為220Ω,RS485通信波特率為2.5Mbps,R1,R4 為上拉電阻;R3、R6 為下拉電阻。圖6為用戶接收端具體電路。

圖6 編碼器接收端RS485模塊的設計
如圖6,RS485 電平轉換芯片使用THVD1428,THVD1428 是一個半雙工RS-485 收發器,帶有集成浪涌保護。
其中,A、B 引腳為數據傳輸引腳,RE 引腳為低電平接收使能,DE 引腳為高電平發送使能。將兩個引腳連接在一起,主控只需要通過一個信號RS485_DIR即可控制收發過程[13]。
編碼器接入電路后,用戶端發送使能信號請求,編碼器接收到請求信號后,執行對應功能,返回當前工作狀態、當前角度碼值以及校驗碼。
根據系統的軟件設計,在主程序在執行中,先要調用初始化程序。在系統剛一上電時,主程序便開始初始化STM32F407內部系統時鐘、I/O口、控制變量和參數、內部寄存器和其他各功能模塊,其中包括PWM 波輸出、A/D 采樣模塊、RS485 通信等模塊。初始化完畢,系統便開始啟動自檢工作,檢測電源與電路是否處于正常工作狀態,這很有必要,是保證系統安全運行的前提。
AD7606 上的采樣由CONVST 信號控制。在兩個轉換開始輸入信號CONVST_A 和CONVST_B 先后轉變為邏輯低電平之后,BUSY 引腳轉變為邏輯高電平,即開始正在進行A/D 轉換過程[14]。轉換中BUSY保持高電平不變,直到轉換過程結束。BUSY的下降沿表示轉換數據正被鎖存至輸出數據寄存器,經過時間t4之后便可讀取。在并行模式下,CS片選信號和RD 信號先后進入邏輯低電平,則會觸發使能輸出總線DB[15:0],使轉換結果輸出在并行數據總線上。其中t1~t6的時序要求如表1所示。

表1 AD7606時序表
AD7606的轉換流程如圖7所示。

圖7 AD7606轉換流程
步進電機控制算法設計是基于PID 的控制思想??赏ㄟ^編碼器實時獲取步進電機的旋轉角度α。指定步進電機轉至指定角度為q,則任意t 時刻,q與實時旋轉角α(t)之間的差值e(t)為
根據e(t)的正負取值,配置電機驅動器方向控制引腳。由PID 控制算法可知:主控輸出控制電機旋轉變化量的PWM波脈沖個數p(t)為
式中,Kp、Ki、Kd分別為比例系數、積分系數和微分系數。上式離散化后得到的位置式PWM 波脈沖個數。
步進電機脈沖數PWM 波滿載脈沖數為200個,在偏離電機旋轉角度正負0.1°的范圍內,經過反復調試,最終確定定向定量控制法的Kp、Ki、Kd取值分別為22.2、0.01、0.02。
得到PWM 波脈沖個數后,利用主從定時器將PWM 脈沖輸出,以STM32 的定時器3 作為主定時器用于設置定時器頻率,定時器2 作為從定時器用于設置脈沖輸出個數。從定時器使用主定時器的觸發輸出信號作為自己的觸發輸入信號工作。定時器3 內部采用向上計數比較模式,比較輸出連接至定時器2 的觸發輸入端,定時器2 自動地記錄已經輸出地PWM 脈沖個數。將PID 控制得到地返回值輸入主從定時器,即可輸出指定數量地PWM 脈沖[15]。
3.2.1 步進電機絕對控制
步進電機絕對控制用于控制電機實現0~360°范圍內的旋轉,以編碼器的零點為步進電機的絕對零度,步進電機初始位置角度為當前值,設定0~360°內任意角度為目標值,將兩者代入PID調試即可。
3.2.2 步進電機相對控制
步進電機相對控制用于控制電機實現任意角度的旋轉,以步進電機當前所在的位置為原點,控制步進電機旋轉。
單圈編碼器價格低,實際應用中使用廣泛,但由于其測量范圍小,需要在安裝時調整零點,以便在使用過程中不允許編碼器旋轉跨越零點,即編碼器只允許在360° 范圍內選擇,大大降低了其使用范圍。本設計采用的編碼器即為單圈絕對式編碼器,故實現單圈內的相對控制設計簡單,實現多圈的相對控制成為難點。
本設計采用17 位單圈絕對式編碼器,編碼范圍為0~131071,共131072 個編碼。以STM32 的調試周期為時間基準,在每一個掃描周期內,將編碼器返回值與131071 做比較,當返回值等于131071時,便認為此時編碼器已過圈,這樣會出現如下問題:當編碼器轉動過快,容易出現編碼的跳變,即每次讀數差值很大,主控接收不到131071 這個碼值,從而無法正確判斷過圈。
針對上一問題,程序對編碼進行處理,將當前調試周期讀取編碼值作為a,將上一調試周期讀取編碼值作為b,當a>b 時,編碼器不過圈;當a<b 時,編碼器過圈。但這樣的處理,還會出現如下問題:
1)當編碼器轉動過快時,如果a 所在的角度為第二圈的碼值且大于b,但剛才的處理會將a和b判斷為同一圈的碼值;
2)當a 所在的角度為第三圈的碼值且小于b,但剛才的處理會將a 和b 判斷為轉過一圈,或者無法判斷轉過幾圈。
針對以上問題,并為了彌補單圈絕對型編碼器在多圈控制中的缺陷,控制算法設計依據香農采樣定理,對131071 進行8 等分,在步進電機的調試周期,也是編碼器的采樣周期內驅動旋轉,在距離目標值45°以外,程序設置電機每一周期內旋轉固定值45°,距離目標值45°以內,程序設置電機旋轉進入PID調試。
在距離目標值45° 以外,每次旋轉不得超過45°,是為了編碼器采樣,可以及時地比較到上一周期的碼值和這一周期的碼值,一旦上一周期碼值在114687-131071 這一范圍,下一周期碼值在0~16384 這一范圍,即可準確判斷編碼器轉過一圈。調試程序記錄第一次采樣的編碼器值,即初始位置α(0),并記錄轉過圈數n,從而得到當前值與目標值的角度差值,在距離目標值45° 以內,進入PID 調試,得出最后需要達到終點的脈沖數。當進入目標值45°以內,當前角度值與目標值的差值為
其中,θ為相對角度目標值,任意范圍,可以為1°,也可以超過360°,如720°。
系統實驗時,電動節流閥控制采集系統通過CAN總線連接上位機,系統全部采用航天電連接器J14H??蛇B接4路4mA~20mA 傳感器,步進電機和編碼器。電動節流閥控制采集系統硬件實物如圖8、圖9所示。

圖8 系統實物正面圖

圖9 系統實物后面圖
對于4 路傳感器,本系統可以為傳感器供電,在電連接器內部包含為傳感器供電的24V 輸出線。并將4mA~20mA 電流信號轉換為1V~5V 電壓信號輸出,同時以數據形式通過CAN 總線發送至上位機實時顯示。
對于步進電機,系統設計了單獨的電機供電手動開關,一是防止電機持續供電發熱造成損傷;二是當出現電機空轉或控制異常時可以緊急制動。
為了驗證系統的可行性,連接傳感器與步進電機,這里用4mA~20mA 電流信號發生器替代傳感器,將整個系統供電,對系統分別進行采集測試與控制測試。
4.2.1 系統采集測試
系統試驗,實物連接如圖10。

圖10 系統測試連接圖
由圖中可知,從右到左分別是傳感器通道1~4,連接至電流信號發生器,電流輸出分別為4mA、12mA、16mA、20mA,電動節流閥控制采集系統測試到的結果如圖11。

圖11 系統采集測試結果圖
由圖可知傳感器通道1~4采集的結果。表2為系統采集測試的理論數據與實際數據的分析。

表2 系統采集測試數據
由表可知,電動節流閥控制采集系統采集性能良好精度極高,誤差在0.5%以內,不足1%,可以實現對高精度傳感器的數據采集。
4.2.2 系統控制測試
系統試驗,實物連接如圖10。步進電機連接于系統外部,方便連接閥體傳動結構,編碼器安裝在步進電機尾部,驅動器安裝在系統內部。
對系統進行控制測試,分別進行絕對控制測試和相對控制測試,測試結果見表3和表4。

表3 系統絕對控制測試數據

表4 系統相對控制測試數據
由表可知,電動節流閥控制采集系統控制性能良好且精度極高,經過控制旋轉后的步進電機角度值距離設定的目標值不超過0.1°,誤差也在1%以內,可以實現對步進電機和閥芯的高精度控制。
本文從火箭供配氣測試需求出發,設計了基于STM32的電動節流閥控制采集系統,具體包括模擬量采集調理電路、步進電機控制電路和編碼器通訊電路設計,模擬量采集時序和步進電機控制算法設計等。經過計算和檢驗,系統的穩定性、采樣精度和控制精度均正常。因此,電動節流閥控制采集系統運行正常,系統設計正確,可為后續的系統升級和深入研究打下基礎。
但是在步進電機多圈控制處理中,電機的過圈處理可能會存在漏讀,這是由于當步進電機角度在上一周期讀值接近了360°,下一次旋轉可能超過了過一圈處理的范圍,故此需要將過圈處理的范圍增大,即可解決這一問題。