段曙凱,李徐輝,吳 熙,潘智昊
(上海飛機(jī)制造有限公司,上海 201324)
飛機(jī)在空中飛行的姿態(tài)是通過(guò)飛機(jī)活動(dòng)面轉(zhuǎn)動(dòng)來(lái)控制的,為了驗(yàn)證活動(dòng)面的轉(zhuǎn)動(dòng)是否符合要求,需要對(duì)活動(dòng)面的轉(zhuǎn)動(dòng)角度測(cè)量。飛機(jī)活動(dòng)面的轉(zhuǎn)動(dòng)角度主要有這些方式:線位移測(cè)量方式[1]、角度尺測(cè)量方式[2]、MEMS陀螺儀測(cè)量方式[3]、拍攝測(cè)量方式和激光跟蹤儀測(cè)量等方式。其中線位移測(cè)量方式需要確定測(cè)量點(diǎn)或傳感器安裝點(diǎn)的位置,該位置的測(cè)量誤差會(huì)導(dǎo)致角度的誤差。角度尺測(cè)量方式是在活動(dòng)面上安裝角度尺進(jìn)行測(cè)量,這需要注意角度尺的轉(zhuǎn)軸要與活動(dòng)面的轉(zhuǎn)軸平齊,這種方式由角度尺安裝導(dǎo)致的誤差較嚴(yán)重。MEMS陀螺儀測(cè)量方式是對(duì)轉(zhuǎn)動(dòng)加速度進(jìn)行二次積分得到角度,借助重力進(jìn)一步修正[4],相當(dāng)于傾角傳感器來(lái)測(cè)量[5]。但對(duì)于方向舵這種轉(zhuǎn)軸比較垂直的活動(dòng)面[6],修正效果不佳,使得測(cè)量精度不佳。
拍攝測(cè)量方式[7]和激光跟蹤儀測(cè)量[8]方式都是在活動(dòng)面上取樣點(diǎn),對(duì)樣點(diǎn)的空間坐標(biāo)進(jìn)行處理得到轉(zhuǎn)動(dòng)角度。由于這兩種測(cè)量方式在測(cè)量空間位置的精度都很高,其得到的角度精度也很高。本文主要探討從樣點(diǎn)數(shù)據(jù)中計(jì)算得到活動(dòng)面的轉(zhuǎn)動(dòng)角度的方法,并提出一種計(jì)算角度精度較高的算法。
二面夾角問(wèn)題是指活動(dòng)面的轉(zhuǎn)動(dòng)角度,不一定是活動(dòng)面上某個(gè)平面轉(zhuǎn)動(dòng)前后法線的夾角,其根本原因是剛體轉(zhuǎn)動(dòng)角度不能由該剛體內(nèi)某平面的轉(zhuǎn)動(dòng)角度來(lái)表征。通過(guò)拍攝測(cè)量方式或激光跟蹤儀方式來(lái)測(cè)量活動(dòng)面的轉(zhuǎn)動(dòng)角度,首先必須獲得一定數(shù)量的活動(dòng)面的樣點(diǎn)。通過(guò)這些點(diǎn)構(gòu)建剛體,活動(dòng)面的轉(zhuǎn)動(dòng)角度就是該剛體的轉(zhuǎn)動(dòng)角度。下面詳細(xì)分析活動(dòng)面剛體的轉(zhuǎn)動(dòng)角度與該剛體內(nèi)某一平面的法線變化角度的區(qū)別。
通過(guò)拍攝測(cè)量或激光跟蹤儀在活動(dòng)面上采集一組樣點(diǎn),如圖1左側(cè)圖所示。由于活動(dòng)面是剛性的,可采用剛體內(nèi)任意平面表征剛體的轉(zhuǎn)動(dòng)。
圖1 平面表征剛體的運(yùn)動(dòng)
需要注意的是面A0B0C0轉(zhuǎn)動(dòng)到面A1B1C1的角度并非是面A0B0C0與面A1B1C1的夾角[9-10],除非兩個(gè)面的法矢與轉(zhuǎn)動(dòng)軸垂直。也就是說(shuō),二面夾角不一定是轉(zhuǎn)動(dòng)的角度。如圖2所示,活動(dòng)面繞某個(gè)軸轉(zhuǎn)動(dòng),n0是平面A0B0C0的法矢,n1是平面A1B1C1的法矢。將平面A0B0C0隨著中心的平移和n0的直接轉(zhuǎn)動(dòng),到平面A1B1C1是在A0’,B0’和C0’的位置,并不和A1,B1和C1重合。這是因?yàn)檫x取的平面其法矢不與轉(zhuǎn)動(dòng)軸垂直所致。
圖2 二面夾角不一定是轉(zhuǎn)動(dòng)角
活動(dòng)面的轉(zhuǎn)動(dòng)可分解成法矢的轉(zhuǎn)動(dòng)和以法矢為軸的轉(zhuǎn)動(dòng)。由于活動(dòng)面是曲面的,基本不可能選擇到這樣的平面,其法矢與活動(dòng)面轉(zhuǎn)軸垂直。在文獻(xiàn)[2]中描述的方法是先確定平面與其轉(zhuǎn)軸的夾角,通過(guò)前后平面夾角、平面與轉(zhuǎn)軸夾角以及實(shí)際活動(dòng)面轉(zhuǎn)動(dòng)夾角之間的關(guān)系計(jì)算實(shí)際平面的轉(zhuǎn)動(dòng)夾角。這種方法的應(yīng)用需事先確定選取平面與轉(zhuǎn)軸的夾角,對(duì)測(cè)量的操作要求較高。本文提出一種重合算法得到活動(dòng)面的轉(zhuǎn)角,適用于隨機(jī)選取平面的測(cè)量方法,這種測(cè)量方法效率會(huì)有很大的提高,同時(shí)通過(guò)重合算法精度也得以保證。
基于上述分析,不能直接用二面夾角來(lái)表征活動(dòng)面的轉(zhuǎn)角。因?yàn)閮蓚€(gè)平面的重合不一定是剛體的重合,但平面的三角面片的重合就可以決定兩個(gè)剛體的重合。當(dāng)然重合的時(shí)候需要注意方向,因?yàn)槿敲嫫闹睾蠒?huì)導(dǎo)致剛體兩個(gè)方向的重合,即三角面片正反面的重合,但只有一個(gè)方向可使得剛體完全重合,后續(xù)會(huì)詳細(xì)介紹。三角面片的重合無(wú)法一步到位,需將三角面片內(nèi)三個(gè)頂點(diǎn)分步重合。三點(diǎn)重合算法就是三角面片的三個(gè)頂點(diǎn)分步重合,通過(guò)該算法計(jì)算得到三角面片轉(zhuǎn)動(dòng)角度,從而計(jì)算活動(dòng)面剛體的轉(zhuǎn)動(dòng)角度。以圖1的三個(gè)頂點(diǎn)為例,下面描述該分步重合的過(guò)程。
將A0B0C0和A1B1C1單獨(dú)取出,先通過(guò)平移,將A0重合到A1上,同時(shí)B0平移到B0’上,C0平移到C0’上。這是第一個(gè)點(diǎn)的重合,該重合只是平移,沒(méi)有旋轉(zhuǎn)。如圖3所示。
圖3 第一點(diǎn)的重合
將B0’繞A1點(diǎn)轉(zhuǎn)動(dòng)到B1點(diǎn)上,此時(shí)C0’轉(zhuǎn)動(dòng)到C0’’上,如圖4所示。這個(gè)轉(zhuǎn)動(dòng)是直線定點(diǎn)轉(zhuǎn)動(dòng),旋轉(zhuǎn)軸線是兩條直線形成的平面的法線,轉(zhuǎn)動(dòng)角度是兩條直線的夾角。
圖4 第二點(diǎn)的重合
A點(diǎn)的重合過(guò)程和B點(diǎn)重合過(guò)程可以合在一起用式表示:
對(duì)照組:入院確診后均給予常規(guī)飲食控制、運(yùn)動(dòng)療法、口服降糖藥或皮下注射胰島素降低血糖,給予降血壓、調(diào)脂、改善腎臟微循環(huán)等治療,在此基礎(chǔ)上,給予鹽酸貝那普利片治療,口服鹽酸貝那普利片30 mg/次,1次/d。觀察組:在對(duì)照組的治療措施基礎(chǔ)上給予補(bǔ)腎活血湯治療,處方:黃芪60 g,黨參、熟地黃、茯苓、炒山藥、枸杞子、鬼箭羽、蒲公英各15 g,山茱萸、澤瀉和補(bǔ)骨脂各 12 g,砂仁 10 g,甘草 6 g,水蛭粉(沖服)3 g,1劑/d,煎汁300 mL分成早晚兩次飯后溫服。兩組患者均連續(xù)治療3個(gè)月。
B1-A1=(B0-A0)·MB
式中,MB是B點(diǎn)重合過(guò)程的旋轉(zhuǎn)矩陣,即矢量A1B1旋轉(zhuǎn)到A0B0。旋轉(zhuǎn)軸是直線A1B1與A1B0’形成的平面的法線。由于A1B0’是A1B1平移所得,其兩條直線的矢量是相同的,所以旋轉(zhuǎn)軸矢量nB為:
轉(zhuǎn)動(dòng)角θB為直線A1B1與A1B0’的夾角,也就是A1B1與A0B0的夾角的余弦值為:
根據(jù)羅德里格斯公式可得旋轉(zhuǎn)矩陣MB:
C0’’-A1=(C0-A0)·MB
最后一步就是C的重合,也就是C1與C0’’重合,這個(gè)過(guò)程需要將A1B1C0’’繞A1B1軸旋轉(zhuǎn)到A1B1C1,如圖5所示。
圖5 第三點(diǎn)的重合
旋轉(zhuǎn)角度為A1B1C0’’與A1B1C1的夾角,即兩個(gè)面的法線夾角。A1B1C1法線n為:
n=A1C1×A1B1
A1B1C0’’的法線n’為:
n’=A1C0’’×A1B1
需要注意,參與計(jì)算n與n’的A1C1與A1C0’’方向必須是同時(shí)是A到C,或者同時(shí)是C到A。轉(zhuǎn)動(dòng)角度的余弦值為:
A1B1C0’’旋轉(zhuǎn)到A1B1C1的旋轉(zhuǎn)軸矢量為:
需要注意的是旋轉(zhuǎn)軸矢量的方向,也就是式中的正負(fù)號(hào)。三角面片的重合會(huì)使得剛體由兩個(gè)方向的重合,正面和反面重合,也就體現(xiàn)在n的正負(fù)號(hào)上。在直線AB上任取一點(diǎn)D,連接出兩條徑向矢量DC1與矢量DC0’’,如圖6所示。矢量DC0’’轉(zhuǎn)動(dòng)到矢量DC1的旋轉(zhuǎn)軸矢量為nD=DC0’’×DC1。
圖6 第三點(diǎn)的重合
無(wú)論D在直線AB哪個(gè)位置,C點(diǎn)重合所繞的旋轉(zhuǎn)軸矢量nC與nD的夾角是銳角,才能保證右手旋轉(zhuǎn)方向規(guī)則。將D選在A這個(gè)位置也滿足要求,因此也必須要求旋轉(zhuǎn)軸矢量nC與A1C0’’×A1C1成銳角。即:
根據(jù)羅德里格斯公式可得旋轉(zhuǎn)矩陣MC:
使B點(diǎn)重合的矩陣為MB,使C點(diǎn)重合的矩陣為MC。兩個(gè)矩陣的合成為M,該M即為活動(dòng)面剛體的旋轉(zhuǎn)矩陣。
M=MBMC
所以旋轉(zhuǎn)角度為:
式中,θ是三點(diǎn)分步重合的角度,也是活動(dòng)面轉(zhuǎn)動(dòng)的角度,tr(R)是矩陣R的跡。
三點(diǎn)分步旋轉(zhuǎn)重合是三角面片的重合過(guò)程,通過(guò)該過(guò)程得到三角面片的重合角度,也就得到活動(dòng)面的角度旋轉(zhuǎn)角度。三點(diǎn)分步的第一步是先平移是某個(gè)點(diǎn)在運(yùn)動(dòng)前后位置重合。再繞已經(jīng)重合的點(diǎn)將另一點(diǎn)旋轉(zhuǎn)重合,這樣面片的一條線段也重合。最后,以該線段為旋轉(zhuǎn)軸,將另一點(diǎn)旋轉(zhuǎn)重合。兩次旋轉(zhuǎn)重合對(duì)應(yīng)的旋轉(zhuǎn)矩陣相乘即得到最終的旋轉(zhuǎn)矩陣,通過(guò)該旋轉(zhuǎn)矩陣得到最終的轉(zhuǎn)動(dòng)角,也就是活動(dòng)面的轉(zhuǎn)動(dòng)角。這就是三點(diǎn)重合算法的大概過(guò)程。
三點(diǎn)分步重合算法的精度依賴于選取的三個(gè)點(diǎn),由于點(diǎn)位測(cè)量會(huì)有一定的誤差,如果選取的點(diǎn)能將這些點(diǎn)位誤差對(duì)角度的影響降到最低,那么三點(diǎn)分步重合算法的精度就最高。在徑向上選取兩點(diǎn)A和B,運(yùn)動(dòng)前A和B分別在A0和B0的位置上,運(yùn)動(dòng)后A和B分別在A1和B1的位置上。將這些點(diǎn)向垂直于轉(zhuǎn)動(dòng)軸的平面投影,并將B0和B1重合,如圖7所示。
圖7 誤差分析示意圖
A’1是A運(yùn)動(dòng)后的實(shí)際位置,A1是測(cè)量的位置。A1與A’1之間的誤差既有A點(diǎn)測(cè)量的誤差,又有B點(diǎn)測(cè)量的誤差,即為δpA+δpB。該誤差所導(dǎo)致角度的誤差與該誤差的關(guān)系為:
式中,d為A和B的距離??芍趶较蛏?,如果選取兩點(diǎn)的徑向距離越大,其位置誤差引起的角度誤差越小。眾所周知,若一個(gè)點(diǎn)離轉(zhuǎn)動(dòng)軸越遠(yuǎn),同一個(gè)角度下,其運(yùn)動(dòng)的距離也就越大。若一個(gè)點(diǎn)離轉(zhuǎn)動(dòng)軸越近,同一個(gè)角度下,其運(yùn)動(dòng)的距離也就越小。因此徑向方向上兩點(diǎn)的選取可以通過(guò)運(yùn)動(dòng)位移作為選擇最佳兩點(diǎn)的標(biāo)準(zhǔn)。通過(guò)該標(biāo)準(zhǔn),選取位移最大的和位移最小的兩個(gè)點(diǎn)。
基于以上分析,設(shè)計(jì)如圖8的尋找最優(yōu)兩點(diǎn)的程序。程序流程圖中的i是點(diǎn)的編號(hào),pi是點(diǎn)i運(yùn)動(dòng)前的坐標(biāo),qi是運(yùn)動(dòng)后的坐標(biāo)。di是編號(hào)i的點(diǎn)運(yùn)動(dòng)前后的距離。dmax是用于存儲(chǔ)當(dāng)前所遍歷到第i個(gè)點(diǎn)時(shí)發(fā)現(xiàn)的最大運(yùn)動(dòng)距離的變量,dmin為存儲(chǔ)發(fā)現(xiàn)的最小距離的變量。該程序最后輸出的是運(yùn)動(dòng)最大距離的點(diǎn)的編號(hào)和運(yùn)動(dòng)最小距離的點(diǎn)的編號(hào)。
圖8 最優(yōu)兩點(diǎn)的搜尋流程圖
可在軸向上選取一點(diǎn),根據(jù)同樣的原理,如果C點(diǎn)離A和B的距離最遠(yuǎn),如圖9所示,那么C點(diǎn)測(cè)量的位置誤差對(duì)角度誤差影響最小。也就是說(shuō)如果點(diǎn)A、點(diǎn)B和點(diǎn)C形成的三角面片的面積最大,那么位置誤差對(duì)角度誤差的影響最小。
圖9 最優(yōu)第三點(diǎn)的位置
三角形ABC的面積計(jì)算如下:
S=|AB×AC|
使S最大點(diǎn)就是選取的第三點(diǎn)C。
為驗(yàn)證三點(diǎn)分步重合算法的精度,進(jìn)行精度驗(yàn)證試驗(yàn)。采用轉(zhuǎn)臺(tái)作為實(shí)際的轉(zhuǎn)動(dòng)角度基準(zhǔn)。在轉(zhuǎn)臺(tái)上設(shè)置兩個(gè)面,一個(gè)是曲面,一個(gè)是平面。平面的法線與轉(zhuǎn)臺(tái)轉(zhuǎn)動(dòng)軸線垂直,曲面可以形成與轉(zhuǎn)臺(tái)軸線不垂直的面。轉(zhuǎn)臺(tái)在-25到25度之間運(yùn)動(dòng),每5度測(cè)量三次。為了樣點(diǎn)測(cè)量方便,采用拍照測(cè)量方式。即在平面和曲面上事先貼上標(biāo)記點(diǎn),再通過(guò)這些標(biāo)記點(diǎn)計(jì)算平面和曲面的轉(zhuǎn)動(dòng)角度,再與實(shí)際轉(zhuǎn)臺(tái)的角度進(jìn)行對(duì)比,形成如下實(shí)驗(yàn)數(shù)據(jù)。
表1 精度驗(yàn)證實(shí)驗(yàn)數(shù)據(jù) 單位:度
從表1中可知,曲面樣點(diǎn)計(jì)算的誤差絕對(duì)值的平均值為0.023度,誤差最大為-0.048 1,這是該算法用于軸線不垂直的情況;平面樣點(diǎn)計(jì)算的誤差絕對(duì)值平均值為0.015 3度,誤差最大值為-0.044 1,這是該算法用于軸線垂直的情況。將每個(gè)角度的三個(gè)測(cè)量數(shù)據(jù)誤差平均并取絕對(duì)值,可作圖10的誤差變化曲線。
圖10 誤差變化曲線
圖10中,虛線為曲面樣點(diǎn)計(jì)算(即軸線不垂直)的誤差曲線,實(shí)線為平面樣點(diǎn)計(jì)算軸線(即垂直)的誤差曲線。從圖10中可以看出,在軸線不垂直時(shí)的誤差相對(duì)與軸線垂直的誤差較大,隨著角度增大誤差也增大。前者的主要原因是軸線垂直重合過(guò)程兩步即可完成,一步是平移,另一步是旋轉(zhuǎn);而軸線垂直不垂直時(shí)重合過(guò)程有三步,一步平移和兩步旋轉(zhuǎn)。隨著角度增大誤差也增大的主要原因是角度每一次增加會(huì)有一定的誤差累積,該情況在很多算法中也會(huì)存在,是一個(gè)通病,可不作為衡量算法好壞的標(biāo)準(zhǔn)。通過(guò)本精度驗(yàn)證實(shí)驗(yàn)可知,本試驗(yàn)的三點(diǎn)重合算法的誤差在0.05度范圍內(nèi),該誤差滿足實(shí)際生產(chǎn)中飛機(jī)活動(dòng)面的轉(zhuǎn)角測(cè)量要求。
本文提出了一種三點(diǎn)重合的算法用于拍攝測(cè)量活動(dòng)面角度或激光跟蹤儀測(cè)量活動(dòng)面角度,重合的過(guò)程是先平移是某個(gè)點(diǎn)在運(yùn)動(dòng)前后位置重合。再繞已經(jīng)重合的點(diǎn)將另一點(diǎn)旋轉(zhuǎn)重合,這樣面片的一條線段也重合。最后,以該線段為旋轉(zhuǎn)軸,將另一點(diǎn)旋轉(zhuǎn)重合。兩次旋轉(zhuǎn)重合對(duì)應(yīng)的旋轉(zhuǎn)矩陣相乘即得到最終的旋轉(zhuǎn)矩陣,通過(guò)該旋轉(zhuǎn)矩陣得到最終的轉(zhuǎn)動(dòng)角,也就是活動(dòng)面的轉(zhuǎn)動(dòng)角。
然后從原理上對(duì)誤差進(jìn)行分析,提出一種最佳選取三點(diǎn)的方法,即選取前后運(yùn)動(dòng)位移最小的點(diǎn)和最大點(diǎn),再選取一點(diǎn)離之前兩點(diǎn)連成的直線最遠(yuǎn)的點(diǎn),這樣可形成面積最大的三角面片,從而減少位移測(cè)量產(chǎn)生的誤差對(duì)旋轉(zhuǎn)角度計(jì)算上的誤差。設(shè)計(jì)一種實(shí)驗(yàn),該實(shí)驗(yàn)采用拍攝測(cè)量的方式,以快速取得多個(gè)樣點(diǎn)。設(shè)置一轉(zhuǎn)臺(tái),轉(zhuǎn)臺(tái)上設(shè)置一曲面與一平面,通過(guò)比較曲面樣點(diǎn)計(jì)算的角度、平面樣點(diǎn)計(jì)算得到的角度與轉(zhuǎn)臺(tái)實(shí)際轉(zhuǎn)動(dòng)的角度進(jìn)行對(duì)比。該實(shí)驗(yàn)結(jié)果表明,本文所提出的三點(diǎn)重合的算法誤差在0.05度范圍內(nèi),滿足飛機(jī)活動(dòng)面的轉(zhuǎn)角測(cè)量要求。