一種虛擬儀表指針旋轉控制方法及裝置與流程
2023-04-30 12:32:31 3

本發明涉及汽車虛擬儀表技術領域,尤其涉及一種虛擬儀表指針旋轉控制方法及裝置。
背景技術:
隨著計算機技術的發展,虛擬儀表在汽車行業中也得到了廣泛的運用。由於虛擬儀表的外觀可定製和組合,所以汽車虛擬儀表越來越受到眾多車廠的青睞,成為當前國內汽車儀表發展的趨勢。在虛擬儀表中速度表和轉速表是整個儀錶盤的核心,它們的指示方式通常是模擬指針式的機械儀表來指示當前的速度值和轉速值,所以虛擬儀表中的速度表和轉速表中的虛擬UI指針的旋轉方式直接關係到整個虛擬儀表效果。
受限於虛擬儀表平臺硬體資源配置,虛擬UI指針的旋轉方式通常都是採用勻速的方式進行旋轉或者是根據當前採集到的數值,然後給定一個角度值,直接把UI指針旋轉到儀表錶盤給定角度值所在的位置,如圖1、圖2所示,圖1表示經過多步均勻地旋轉到指定位置,圖2表示一步旋轉到指定位置,這兩種UI指針旋轉方式不像機械儀表那樣通過驅動步進電機來帶動儀表指針經過加減速過程到達指定位置,所以達不到指針旋轉平滑連續性需求。並且上述兩種UI指針旋轉方式讓駕駛員在觀察儀表時,感覺不到車速或轉速那種變化趨勢,導致虛擬儀錶盤的整體顯示效果不佳。
技術實現要素:
本發明提供一種虛擬儀表指針旋轉控制方法及裝置,旨在解決現有技術中的缺陷,實現提高虛擬儀表整體顯示效果。
為達到上述目的,本發明所採取的技術方案為:
本發明一方面提供一種虛擬儀表指針旋轉控制方法,包括:
S1、確定指針旋轉角度θ;
S2、根據S型曲線對旋轉角度θ進行離散化,得到旋轉角度值序列;
S3、指針根據旋轉角度值序列旋轉至目標角度。
具體地,所述步驟S2包括:
S201、確定指針旋轉步數n;
S202、確定拐點角度值θinf;
S203、確定拐點步數ninf;
S204、根據預設關係式計算旋轉角度值序列。
具體地,所述拐點角度值θinf=(θmov-θstart)/2,其中,θmov為UI指針旋轉的最大角度值,θstart為啟動旋轉角度值。
具體地,所述拐點步數其中n為指針旋轉步數,θinf為拐點角度值,θstart為啟動旋轉角度值。
具體地,所述步驟S204包括:
a)當步數序號k≤ninf時,通過下列式子來計算:
b)當步數序號k>ninf時,通過下列式子來計算:
其中,
本發明另一方面提供一種虛擬儀表指針旋轉控制裝置,包括車速獲取模塊、旋轉角度確定模塊、角度離散模塊、指針驅動模塊;
所述車速獲取模塊,用於獲取儀錶盤的車速指示數值;
所述旋轉角度確定模塊,用於根據相應比例將車速指示數值轉化為指針旋轉的角度值;
所述角度離散模塊,用於根據S型曲線對旋轉角度θ進行離散化,得到旋轉角度值序列;
所述指針驅動模塊,用於根據旋轉角度值序列驅動指針旋轉;
所述角度離散模塊包括旋轉步數設置模塊、拐點角度確定模塊、拐點步數確定模塊、旋轉角度值序列計算模塊;
所述旋轉步數設置模塊,用於設置指針旋轉步數;
所述拐點角度確定模塊,用於確定拐點角度值;
所述拐點步數確定模塊,用於確定拐點步數;
所述旋轉角度值序列計算模塊,用於根據預設關係式計算旋轉角度值序列。
具體地,所述拐點角度確定模塊根據下面的式子來確定拐點角度值θinf:
θinf=(θmov-θstart)/2
其中,θmov為UI指針旋轉的最大角度值,θstart為啟動旋轉角度值。
具體地,所述拐點步數確定模塊根據下面的式子來確定拐點步數ninf:
其中,指針旋轉步數n、指針旋轉的最大角度值θmov、啟動旋轉角度值θstart確定。
具體地,所述旋轉角度值序列計算模塊根據下列預設關係式計算旋轉角度值序列:
a)當步數序號k≤ninf時,通過下列式子來計算:
b)當步數序號k>ninf時,通過下列式子來計算:
其中,
本發明的有益效果在於:本發明在虛擬儀表指針加減速旋轉過程中利用S型曲線求得各個步數的旋轉角度值進行旋轉控制,克服了通常UI指針旋轉方式帶來的缺點,能夠獲得UI指針旋轉平滑連續的需求,使虛擬儀表展現出來的顯示效果更佳。
附圖說明
圖1是現有虛擬儀表指針旋轉方法示意圖;
圖2是現有虛擬儀表指針旋轉方法另一示意圖;
圖3是本發明的虛擬儀表指針旋轉控制的方法流程圖;
圖4是本發明的角度曲線離散化示意圖;
圖5是本發明的角度離散化流程圖;
圖6是本發明的虛擬儀表指針旋轉控制的結構示意圖;
圖7是本發明的虛擬儀表指針旋轉控制的另一結構示意圖。
具體實施方式
下面結合附圖具體闡明本發明的實施方式,附圖僅供參考和說明使用,不構成對本發明專利保護範圍的限制。
如圖3所示,本發明的實施例一方面提供一種虛擬儀表指針旋轉控制方法,包括:
步驟1、確定指針旋轉角度θ。
指針旋轉角度θ可以通過車身CAN獲取儀錶盤的車速指示數值,再根據相應比例將車速指示數值轉化為指針旋轉的角度值。例如,讀取的車速指示數值為60km/h,需要將指針旋轉30度。
步驟2、根據S型曲線對旋轉角度θ進行離散化,得到旋轉角度值序列。
S型曲線是一種運動控制方法,它是由被控對象的加減速階段速度呈S型而得來。S型曲線的核心思想是讓加速度不產生突變,從而使被控對象的速度控制具有快速、平穩的特性。
根據虛擬儀表特性,UI指針最底層旋轉操作是獲取旋轉角度值,再通過相應的旋轉函數來驅動UI指針旋轉,所以要實現UI指針模擬S型曲線加減速旋轉,必須將旋轉角度θ按照S型加減速曲線離散化為多個旋轉角度值序列θk。根據S型曲線算法原理,角度加減速階段曲線離散化如圖4所示,其中θ為旋轉角度,n為旋轉步數。
具體地,如圖5所示,對旋轉角度θ進行離散化的步驟包括:
步驟201、確定指針旋轉步數n。
指針旋轉步數n需要根據具體設計因素來確定,包括指針旋轉速度的快慢、執行一次UI指針旋轉的時間和UI指針指示值的更新頻率等因素來確定。
步驟202、確定拐點角度值θinf。
具體地,拐點角度值θinf=(θmov-θstart)/2,其中,θmov為UI指針旋轉的最大角度值,θstart為啟動旋轉角度值。
步驟203、確定拐點步數ninf。
具體地,拐點步數其中n為指針旋轉步數,θinf為拐點角度值,θstart為啟動旋轉角度值。
步驟204、根據預設關係式計算旋轉角度值序列。
具體地,根據第一預設關係式計算第一組旋轉角度值序列θ1k,根據第二預設關係式計算第二組旋轉角度值序列θ2k。
其中,
步驟3、指針根據旋轉角度值序列旋轉至目標角度。
上述步驟僅描述了指針由初始速度加速旋轉到勻速的過程,由於在S曲線中,指針由速度減速旋轉到初始速度的過程與之對稱,因此不再贅述。
UI指針在加減速旋轉過程中利用S型曲線求得各個步數的旋轉角度值進行旋轉控制,克服了通常UI指針旋轉方式帶來的缺點,能夠獲得UI指針旋轉平滑連續的需求,使虛擬儀表展現出來的顯示效果更佳。
如圖6、圖7所示,本發明另一方面提供一種虛擬儀表指針旋轉控制裝置,包括車速獲取模塊、旋轉角度確定模塊、角度離散模塊、指針驅動模塊;
所述車速獲取模塊,用於獲取儀錶盤的車速指示數值;
所述旋轉角度確定模塊,用於根據相應比例將車速指示數值轉化為指針旋轉的角度值;
所述角度離散模塊,用於根據S型曲線對旋轉角度θ進行離散化,得到旋轉角度值序列;
所述指針驅動模塊,用於根據旋轉角度值序列驅動指針旋轉。
所述角度離散模塊包括旋轉步數設置模塊、拐點角度確定模塊、拐點步數確定模塊、旋轉角度值序列計算模塊;
所述旋轉步數設置模塊,用於設置指針旋轉步數;
所述拐點角度確定模塊,用於確定拐點角度值;
所述拐點步數確定模塊,用於確定拐點步數;
所述旋轉角度值序列計算模塊,用於根據預設關係式計算旋轉角度值序列。
本發明的虛擬儀表指針旋轉控制裝置的工作過程為:
首先,車速獲取模塊通過車身CAN獲取儀錶盤的車速指示數值(例如60km/h),旋轉角度確定模塊再根據相應比例將車速指示數值轉化為指針旋轉的角度值(例如30度)。然後,角度離散模塊根據S型曲線對旋轉角度θ進行離散化,得到旋轉角度值序列。最後,指針驅動模塊根據所述旋轉角度值序列驅動指針旋轉到達目標位置處。
具體地,所述角度離散模塊根據S型曲線對旋轉角度θ進行離散化,得到旋轉角度值序列的工作過程為:
旋轉步數設置模塊根據指針旋轉速度的快慢、執行一次UI指針旋轉的時間和UI指針指示值的更新頻率等因素確定指針旋轉步數n;
拐點角度確定模塊根據指針旋轉的最大角度值θmov、啟動旋轉角度值θstart確定拐點角度,具體來說,是通過下面的式子來確定:
θinf=(θmov-θstart)/2
拐點步數確定模塊模塊根據指針旋轉步數n、指針旋轉的最大角度值θmov、啟動旋轉角度值θstart確定拐點步數ninf,具體來說,是通過下面的式子來確定:
然後,旋轉角度值序列計算模塊根據預設關係式計算旋轉角度值序列,具體來說,分為如下兩種情況:
a)當步數序號k≤ninf時,通過下列式子來計算:
b)當步數序號k>ninf時,通過下列式子來計算:
其中,
通過上述裝置,UI指針在加減速旋轉過程中利用S型曲線求得各個步數的旋轉角度值進行旋轉控制,克服了通常UI指針旋轉方式帶來的缺點,能夠獲得UI指針旋轉平滑連續的需求,使虛擬儀表展現出來的顯示效果更佳。
以上所揭露的僅為本發明的較佳實施例,不能以此來限定本發明的權利保護範圍,因此依本發明申請專利範圍所作的等同變化,仍屬本發明所涵蓋的範圍。