吳延群,陳 起,諶志強(qiáng),雷敏杰
(中國(guó)核動(dòng)力研究設(shè)計(jì)院 核反應(yīng)堆系統(tǒng)設(shè)計(jì)技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都 610213)
安全級(jí)顯示單元(Safety Video Display Unit,SVDU)是核安全級(jí)DCS 平臺(tái)中的重要組成部分,主要用于完成各種安全相關(guān)參數(shù)的顯示,同時(shí)支持向安全系統(tǒng)發(fā)出必要的控制指令,屬于核安全1E 級(jí)設(shè)備。為了保證高可靠性和高安全性,考慮到電阻式觸摸屏不受灰塵、水汽、油污等影響,在惡劣環(huán)境下能保持較高性能,NASPIC 平臺(tái)中的SVDU 采用電阻式觸摸屏來(lái)完成實(shí)時(shí)顯示和人機(jī)交互功能。
圖1 電阻式觸摸屏工作原理圖Fig.1 Working schematic diagram of resistive touch screen
電阻式觸摸屏已廣泛應(yīng)用于工業(yè)控制、汽車中控系統(tǒng)、信息查詢等領(lǐng)域[1,2],但由于觸摸屏和LCD 顯示器的大小和形狀難以完全契合,存在一定的機(jī)械誤差和放大誤差。因此,除在出廠前進(jìn)行精確的機(jī)械校準(zhǔn)外,還需要進(jìn)行軟件校準(zhǔn)。常用的電阻觸摸屏軟件校準(zhǔn)方法有兩點(diǎn)校準(zhǔn)法、三點(diǎn)校準(zhǔn)法[3]和五點(diǎn)校準(zhǔn)法[4,5]等,這幾種校準(zhǔn)算法基于線性運(yùn)算的原理,計(jì)算簡(jiǎn)單但是校準(zhǔn)精度不夠高。在一些對(duì)觸摸屏靈敏度要求高的場(chǎng)合,尤其是針對(duì)高密度的小點(diǎn)狀應(yīng)用場(chǎng)景下,電阻式觸摸屏常常表現(xiàn)出靈敏度不高、觸點(diǎn)判斷不準(zhǔn)確等問(wèn)題。
本文選取9 個(gè)校準(zhǔn)點(diǎn),采用牛頓插值算法對(duì)電阻式觸摸屏進(jìn)行校準(zhǔn)研究和應(yīng)用,測(cè)試結(jié)果表明,相較于常規(guī)的線性校準(zhǔn)算法,本文所用方法能有效提高觸摸屏校準(zhǔn)精度,減少操作人員誤觸。
電阻式觸摸屏主要由LCD 顯示器和與LCD 顯示器表面緊密貼合的一層電阻薄膜層構(gòu)成。該電阻薄膜層的上層為薄膜,下層為有機(jī)玻璃,薄膜和有機(jī)玻璃相對(duì)的面均涂有具有良好導(dǎo)電性和透明性的ITO(納米銦錫金屬氧化物)涂層,在兩層導(dǎo)電涂層間均勻分布著許多細(xì)小透明的隔離點(diǎn)將導(dǎo)電涂層絕緣。當(dāng)觸摸屏上觸點(diǎn)按下時(shí),薄膜下層的ITO 涂層會(huì)接觸到玻璃上層的ITO 涂層,電阻性表面被分隔為兩個(gè)電阻,其阻值與觸點(diǎn)到偏置邊緣的距離成正比,阻值信號(hào)經(jīng)由傳感器傳出相應(yīng)的電信號(hào),再經(jīng)由A/D 轉(zhuǎn)換后送到處理器,經(jīng)運(yùn)算后轉(zhuǎn)換為L(zhǎng)CD 顯示器上的坐標(biāo),從而完成觸點(diǎn)動(dòng)作呈現(xiàn)在LCD 顯示器上[6],其工作原理圖如圖1 所示。
圖2 觸摸屏機(jī)械位置誤差Fig.2 Touch screen mechanical position error
由此可見(jiàn),A/D 轉(zhuǎn)換的精度、觸摸屏電阻分布的均勻度、觸摸屏與LCD 顯示器安裝的相對(duì)位置誤差等都對(duì)觸摸屏的坐標(biāo)轉(zhuǎn)換精度有影響,其中影響最大的一般是觸摸屏與LCD 顯示器機(jī)械安裝產(chǎn)生的位置誤差。機(jī)械位置誤差可分為由平移錯(cuò)位帶來(lái)的比例誤差和旋轉(zhuǎn)錯(cuò)位造成的旋轉(zhuǎn)誤差,如圖2 所示。
為了盡量減小上述兩種誤差帶來(lái)的影響,觸摸屏除了要進(jìn)行出廠前機(jī)械校準(zhǔn)外,在使用時(shí)還要進(jìn)行軟件校準(zhǔn)。常用的校準(zhǔn)方法有兩點(diǎn)校準(zhǔn)法、三點(diǎn)校準(zhǔn)法、五點(diǎn)校準(zhǔn)法等。
1)在屏幕的左上方和右下方各取一個(gè)點(diǎn),采集得到其物理坐標(biāo)分別為(xp1, yp1)和 (xp2, yp2)。
2)分別計(jì)算觸摸屏在該物理坐標(biāo)系下的水平方向的比率和垂直方向的比率:
其中,W 和H 分別表示觸摸屏的寬度和高度。
3)則觸摸屏上任一觸點(diǎn)(xp, yp)對(duì)應(yīng)LCD 顯示器上的坐標(biāo)(xc, yc)為:
此方法只是對(duì)坐標(biāo)進(jìn)行簡(jiǎn)單的比例插值運(yùn)算,簡(jiǎn)單易操作,但坐標(biāo)轉(zhuǎn)換精度較低。
三點(diǎn)校準(zhǔn)法校準(zhǔn)的基本思想是:假設(shè)屏幕上觸點(diǎn)坐標(biāo)(xp, yp)和對(duì)應(yīng)在LCD 顯示器上的坐標(biāo)(xc, yc)滿足線性關(guān)系:
故只要知道該線性方程中的6 個(gè)線性變化參數(shù)(k1,k2,…,k6)的值,就可求得任一屏幕觸點(diǎn)對(duì)應(yīng)在LCD 顯示器上的顯示坐標(biāo)。顯然,要求得6 個(gè)參數(shù)(k1,k2,…,k6)的值,至少需要3 個(gè)觸點(diǎn)的物理坐標(biāo)。故在觸摸屏上取3個(gè)點(diǎn),設(shè)這3 個(gè)點(diǎn)的顯示坐標(biāo)為(xc1, yc1),(xc2, yc2),(xc3, yc3),對(duì)應(yīng)的物理坐標(biāo)(xp1, yp1),(xp2, yp2),(xp3, yp3),則可以得到線性方程組:
對(duì)方程組求得即可得到所需參數(shù)(k1,k2,…,k6),相應(yīng)地,通過(guò)觸摸屏上任一點(diǎn)的物理坐標(biāo)即可求得LCD 顯示器上對(duì)應(yīng)的顯示坐標(biāo)。
三點(diǎn)校準(zhǔn)法較兩點(diǎn)校準(zhǔn)法更為精確。需要注意的是,所選取的3 個(gè)點(diǎn)要滿足線性無(wú)關(guān),分布位置要分散,由于觸摸屏的邊界會(huì)存在少量彎曲、形變,盡量不要選取邊界點(diǎn)。
假設(shè)觸摸屏的最左下角一點(diǎn)A 的物理坐標(biāo)記作(xpA=0, ypA=0),其對(duì)應(yīng)顯示坐標(biāo)記為(xcA, ycA)(不一定為0)。那么觸摸屏上任意一點(diǎn)B 的邏輯坐標(biāo)可表達(dá)為:
其中kx,ky、 分別為觸摸屏X 方向和Y 方向的因子系數(shù)。
如果A 點(diǎn)不是坐標(biāo)原點(diǎn),也是任意一點(diǎn),式(5)可以表達(dá)成:
由式(6)推出計(jì)算K 系統(tǒng)的公式:
在LCD 顯示器上選取5 個(gè)覆蓋面廣、不靠近邊界的點(diǎn)A、B、C、D、E,5 個(gè)點(diǎn)的位置分布如圖3 所示。這5 個(gè)點(diǎn)的顯示坐標(biāo)已知為(xcA, ycA),…,(xcD, ycD)依次采集也可得到其對(duì)應(yīng)的物理坐標(biāo)。
圖3 五點(diǎn)校準(zhǔn)法五點(diǎn)位置示意圖Fig.3 The schematic diagram of five points of the five-point calibration method
根據(jù)式(7),分別用2 組數(shù)據(jù)計(jì)算X 方向和Y 方向的K 系數(shù)平均值:
將A 點(diǎn)邏輯坐標(biāo)作為基坐標(biāo),根據(jù)式(6)則觸摸屏上任意一點(diǎn)F 的顯示坐標(biāo)為:
根據(jù)采集得到的E 點(diǎn)的物理坐標(biāo)用公式(6)求出E點(diǎn)顯示坐標(biāo),并與E 點(diǎn)實(shí)際顯示坐標(biāo)比較,若誤差不在允許范圍內(nèi),則重復(fù)操作以上步驟,直到滿足要求。
線性校準(zhǔn)方法計(jì)算方便、應(yīng)用簡(jiǎn)單,但是由于多種誤差情況的存在,觸摸屏物理坐標(biāo)與LCD 顯示坐標(biāo)之間可能不是簡(jiǎn)單的直線映射關(guān)系而是復(fù)雜的曲線映射關(guān)系,此時(shí)用直線去代替曲線可能會(huì)存在較大的誤差,無(wú)法滿足安全級(jí)設(shè)備高精度、無(wú)差錯(cuò)的人機(jī)操作需求。為了克服這一缺點(diǎn),可以用二次曲線去逼近復(fù)雜曲線以達(dá)到更精確的校準(zhǔn)效果。
對(duì)于二維平面上若干個(gè)已知點(diǎn),拉格朗日插值算法可以得到一個(gè)多項(xiàng)式函數(shù)恰好穿過(guò)這些已知點(diǎn)。但其每增加一個(gè)插值節(jié)點(diǎn)就要重新計(jì)算插值基函數(shù),不利于程序的快速計(jì)算。牛頓插值是一種常用的數(shù)值擬合方法,相較于拉格朗日插值公式,其計(jì)算簡(jiǎn)單,方便進(jìn)行大量插值點(diǎn)的計(jì)算,便于編程設(shè)計(jì),在校準(zhǔn)分析中具有廣泛應(yīng)用[7,8]。
設(shè) 函 數(shù)f(x),已 知 其n+1 個(gè) 插 值 節(jié) 點(diǎn) 為(xi, yi),i=0,1,..., n,定義:
f(x)在xi的零階差商為f(xi);
f(x)在xi和xj的一階差商為
f(x)在xi、xj、xk的二階差商為
一般的,f(x)在點(diǎn)x0, x1,..., xk的k 階差商為:
設(shè)x 是f(x)上的一點(diǎn),則根據(jù)上述k 階差商公式可得:
由式(10)可知,牛頓插值每增加一個(gè)點(diǎn)只需在多項(xiàng)式的最后增加一項(xiàng),且各基函數(shù)的系數(shù)可以遞歸計(jì)算,減少了許多計(jì)算量。但牛頓插值算法存在插值點(diǎn)數(shù)過(guò)少時(shí)擬合精度不高,插值點(diǎn)數(shù)過(guò)多時(shí)擬合容易發(fā)散的問(wèn)題。綜合考慮插值點(diǎn)個(gè)數(shù)與擬合效果關(guān)系,本文選用9 個(gè)插值點(diǎn)對(duì)屏幕進(jìn)行校準(zhǔn)。假設(shè)P1、P2、...、P9 這9 個(gè)點(diǎn)為屏幕上位置分散且不靠近屏幕邊緣的點(diǎn)。其中,P1、P2、...、P8這8 個(gè)點(diǎn)的LCD 坐標(biāo)分別為(xc1, yc1),(xc2, yc2), ... ,(xc8, yc8),其對(duì)應(yīng)的電阻屏上的物理坐標(biāo)為(xp1, yp1),(xp2, yp2), ... ,(xp8, yp8),分別組成關(guān)于X 和Y 的兩組插值(xc1, xp1),(xc2, xp2), ... ,(xc8, xp8)和(yc1, yp1),(yc2, yp2), ... ,(yc8, yp8),構(gòu)成關(guān)于X 和Y 的兩個(gè)牛頓插值函數(shù):
其中,xp=fX(xc),yp=fY(yc)。
將第9 個(gè)點(diǎn)P9 的物理坐標(biāo)(xp9, yp9)帶入式(11),可以求得其對(duì)應(yīng)的LCD 坐標(biāo)(x'c9, y'c9),再將其與顯示該點(diǎn)的LCD 坐標(biāo)(xc9, yc9)進(jìn)行比較,滿足一定閾值則為校準(zhǔn)完成。
NASPIC 平臺(tái)SVDU 選用電阻式觸摸屏的LCD 屏幕大小為1024 像素×768 像素。選定顯示屏幕上不位于邊緣,分布均勻的9 個(gè)點(diǎn)。9 個(gè)點(diǎn)的分布區(qū)域如圖4 所示。
SVDU 啟用前,首先進(jìn)入校準(zhǔn)程序入口完成屏幕校準(zhǔn)。校準(zhǔn)時(shí)在LCD 顯示器上用“⊕”依次顯示點(diǎn)P1 ~P9,在每顯示一個(gè)坐標(biāo)后等待觸摸筆在相應(yīng)的位置按下,即可獲得這9 個(gè)點(diǎn)對(duì)應(yīng)的電阻屏上的物理坐標(biāo),調(diào)用牛頓插值算法進(jìn)行校準(zhǔn)。P1 ~P8 作為牛頓插值算法的8 個(gè)插值點(diǎn),P9 作為驗(yàn)證牛頓插值算法的一個(gè)點(diǎn),若P9 點(diǎn)測(cè)得的值與插值算法計(jì)算出來(lái)的值滿足既定范圍,則校準(zhǔn)有效;反之校準(zhǔn)誤差過(guò)大,進(jìn)行重新校準(zhǔn)。
圖4 牛頓插值校準(zhǔn)法的九點(diǎn)位置分布示意圖Fig.4 The schematic diagram of nine points of the Newton interpolation method
圖5 校準(zhǔn)程序的算法流程圖Fig.5 Calibration procedure algorithm flow chart
坐標(biāo)點(diǎn)采集時(shí)過(guò)程中不可避免會(huì)引入錯(cuò)誤點(diǎn)、冗余點(diǎn)以及采集環(huán)境所帶來(lái)的測(cè)量噪聲,采集到的坐標(biāo)點(diǎn)數(shù)據(jù)先進(jìn)行濾波降噪等預(yù)處理后,再進(jìn)行校準(zhǔn)分析。校準(zhǔn)程序的算法流程圖如圖5 所示。
NASPIC 平臺(tái)SVDU 以往使用的是五點(diǎn)校準(zhǔn)法,當(dāng)組態(tài)功能復(fù)雜、操作觸點(diǎn)多且密的組態(tài)工程在SVDU 屏幕上顯示時(shí),偶有發(fā)生觸摸屏觸點(diǎn)判斷不準(zhǔn)確、靈敏度不高等問(wèn)題。為了驗(yàn)證基于牛頓插值的校準(zhǔn)法的校準(zhǔn)效果,與校準(zhǔn)算法改進(jìn)前使用的五點(diǎn)校準(zhǔn)法進(jìn)行對(duì)比。五點(diǎn)校準(zhǔn)法選用的校準(zhǔn)點(diǎn)為P1 ~P5,在同樣的試驗(yàn)條件下,試驗(yàn)結(jié)果對(duì)比如表1 所示。
表1 牛頓插值校準(zhǔn)法和五點(diǎn)校準(zhǔn)法的實(shí)驗(yàn)結(jié)果Table 1 Experiment results of the Newton interpolation calibration method and the five-point calibration method
本文針對(duì)兩種方法分別進(jìn)行了100 次校準(zhǔn)試驗(yàn),通過(guò)對(duì)比分析,基于牛頓插值的校準(zhǔn)方法的校準(zhǔn)失敗次數(shù)大大低于五點(diǎn)法,校準(zhǔn)準(zhǔn)確率高,且平均誤差范圍在3 個(gè)像素以內(nèi),大大提高了觸摸屏的校準(zhǔn)精度,降低了觸摸屏誤觸概率。
本文以核安全級(jí)DCS——NAPIC 平臺(tái)中的SVDU 觸摸屏為研究應(yīng)用對(duì)象,對(duì)電阻式觸摸屏的工作原理及常用的線性校準(zhǔn)法進(jìn)行了分析,接著采用牛頓插值算法對(duì)電阻式觸摸屏進(jìn)行了校準(zhǔn)研究。應(yīng)用結(jié)果表明,與線性校準(zhǔn)算法五點(diǎn)校準(zhǔn)法相比,基于牛頓插值的校準(zhǔn)算法能有效提高觸摸屏校準(zhǔn)精度,降低誤觸次數(shù),提高了SVDU 中人機(jī)交互的可靠性和安全性,滿足安全級(jí)1E 級(jí)設(shè)備要求。