日韩视频在线精品视频免费观看-日韩视频在线观看中字-日韩视频在线观看一区-日韩视频在线观看免费-日韩视频在线观看-日韩视频在线播放

產品分類

當前位置: 首頁 > 傳感測量產品 > 工業傳感器 > 加速度傳感器

類型分類:
科普知識
數據分類:
加速度傳感器

加速度傳感器算法:三步教你結合加速度傳感器和陀螺儀算法設計

發布日期:2022-10-09 點擊率:48


加速度傳感器算法:三步教你結合加速度傳感器和陀螺儀算法設計  第1張

加速度傳感器算法:三步教你結合加速度傳感器和陀螺儀算法設計

這篇文章主要介紹加速度計和陀螺儀的數學模型和基本算法,以及如何融合這兩者,側重算法、思想的討論.
介紹
本指南旨在向興趣者介紹慣性MEMS(微機電系統)傳感器,特別是加速度計和陀螺儀以及其他整合IMU(慣性測量單元)設備。

IMU單元例子:上圖中MCU頂端的ACC Gyro 6DOF,名為USBThumb,支持USB/串口通信
在這篇文章中我將概括這么幾個基本并且重要的話題:
- 加速度計(accelerometer)檢測什么
- 陀螺儀(gyroscope,也稱作 gyro)檢測什么
- 如何將傳感器ADC讀取的數據轉換為物理單位(加速度傳感器的單位是g,陀螺儀的單位是 度/秒)
- 如何結合加速度傳感器和陀螺儀的數據以得到設備和地平面之間的傾角的準確信息
在整篇文章中我盡量將數學運算降低到最少。如果你知道什么是正弦、余弦、正切函數,那無論你的項目使用哪種平臺你應該都會明白和運用這篇文章中的思想,這些平臺如Arduino、Propeller、Basic Stamp、Ateml芯片、PIC芯片等等。總有些人認為使用IMU單元需要復雜的數學運算(復雜的FIR或IIR濾波,如卡爾曼濾波,Parks-McClellan濾波等)。你如果研究這些會得到很棒且很復雜的結果。我解釋事情的方式,只需要基本的數學。我非常堅信簡單的原則。我認為一個簡單的系統更容易操作和監控,另外許多嵌入式設備并不具備能力和資源去實現需要進行矩陣運算的復雜算法。
我會用我設計的一個新IMU模塊——Acc_Gyro Accelerometer + Gyro IMU作為例子。在下面的例子中我們會使用這個設備的參數。用這個模塊作為介紹非常合適,因為它由3個設備組成:
- LIS331AL (datasheet) – 3軸 2G 模擬加速度計
- LPR550AL (datasheet) – 雙軸(俯仰、翻滾) 500°/s 加速度傳感器
- LY550ALH (datasheet) –單軸(偏航)陀螺儀 最后這個設備在這篇介紹中不使用,不過他在?DCM Matrix implementation中有重要作用
它們一起組成了一個6自由度的慣性測量單元。這是個花哨的名字!然而,在花哨的名字后面是個非常有用的設備組合,接下來我們會詳細介紹之。
第一部分 加速度計
要了解這個模塊我們先從加速度計開始。當我們在想象一個加速度計的時候我們可以把它想作一個圓球在一個方盒子中。你可能會把它想作一個餅干或者甜圈,但我就把它當做一個球好了:

請注意加速度計檢測到得力的方向與它本身加速度的方向是相反的。這種力量通常被稱為慣性力或假想力。在這個模型中你你應該學到加速度計是通過間接測量力對一個墻面的作用來測量加速度的,在實際應用中,可能通過彈簧等裝置來測量力。這個力可以是加速度引起的,但在下面的例子中,我們會發現它不一定是加速度引起的。
如果我們把模型放在地球上,球會落在Z-墻面上并對其施加一個1g的力,見下圖:

在這種情況下盒子沒有移動但我們任然讀取到Z軸有-1g的值。球在墻壁上施加的壓力是由引力造成的。在理論上,它可以是不同類型的力量 - 例如,你可以想象我們的球是鐵質的,將一個磁鐵放在盒子旁邊那球就會撞上另一面墻。引用這個例子只是為了說明加速度計的本質是檢測力而非加速度。只是加速度所引起的慣性力正好能被加速度計的檢測裝置所捕獲。
雖然這個模型并非一個MEMS傳感器的真實構造,但它用來解決與加速度計相關的問題相當有效。實際上有些類似傳感器中有金屬小球,它們稱作傾角開關,但是它們的功能更弱,只能檢測設備是否在一定程度內傾斜,卻不能得到傾斜的程度。
到目前為止,我們已經分析了單軸的加速度計輸出,這是使用單軸加速度計所能得到的。三軸加速度計的真正價值在于它們能夠檢測全部三個軸的慣性力。讓我們回到盒子模型,并將盒子向右旋轉45度。現在球會與兩個面接觸:Z-和X-,見下圖:

0.71g這個值是不是任意的,它們實際上是1/2的平方根的近似值。我們介紹加速度計的下一個模型時這一點會更清楚。
在上一個模型中我們引入了重力并旋轉了盒子。在最后的兩個例子中我們分析了盒子在兩種情況下的輸出值,力矢量保持不變。雖然這有助于理解加速度計是怎么和外部力相互作用的,但如果我們將坐標系換為加速度的三個軸并想象矢量力在周圍旋轉,這會更方便計算。

請看看在上面的模型,我保留了軸的顏色,以便你的思維能更好的從上一個模型轉到新的模型中。想象新模型中每個軸都分別垂直于原模型中各自的墻面。矢量R是加速度計所檢測的矢量(它可能是重力或上面例子中慣性力的合成)。RX,RY,RZ是矢量R在X,Y,Z上的投影。請注意下列關系:
,R ^ 2=RX ^ 2 + RY ^ 2 + RZ ^ 2(公式1)
此公式等價于三維空間勾股定理。
還記得我剛才說的1/2的平方根0.71不是個隨機值吧。如果你把它們代回上式,回顧一下重力加速度是1g,那我們就能驗證:
1 ^ 2=(SQRT(1/2))^ 2 + 0 ^ 2 +(SQRT(1/2))^ 2在公式1中簡單的取代: R=1, Rx=-SQRT(1/2), Ry=0 , Rz=-SQRT(1/2)
經過一大段的理論序言后,我們和實際的加速度計很靠近了。RX,RY,RZ值是實際中加速度計輸出的線性相關值,你可以用它們進行各種計算。
在我們運用它之前我們先討論一點獲取加速度計數據的方法。大多數加速度計可歸為兩類:數字和模擬。數字加速度計可通過I2C,SPI或USART方式獲取信息,而模擬加速度計的輸出是一個在預定范圍內的電壓值,你需要用ADC(模擬量轉數字量)模塊將其轉換為數字值。我將不會詳細介紹ADC是怎么工作的,部分原因是這是個很廣的話題,另一個原因是不同平臺的ADC都會有差別。有些MCU具有內置ADC模塊,而有些則需要外部電路進行ADC轉換。不管使用什么類型的ADC模塊,你都會得到一個在一定范圍內的數值。例如一個10位ADC模塊的輸出值范圍在0 .. 1023間,請注意,1023=2 ^ 10 -1。一個12位ADC模塊的輸出值范圍在0 .. 4095內,注意,4095=2 ^ 12-1。
我們繼續,先考慮下一個簡單的例子,假設我們從10位ADC模塊得到了以下的三個軸的數據:
AdcRx=586AdcRy=630
AdcRz=561
每個ADC模塊都有一個參考電壓,假設在我們的例子中,它是3.3V。要將一個10位的ADC值轉成電壓值,我們使用下列公式:
VoltsRx=AdcRx * VREF / 1023
小注:8位ADC的最大值是255=2 ^ 8 -1,12位ADC最大值是4095=2 ^ 12 -1。
將3個軸的值代入上式,得到:
VoltsRx=586 * 3.3 / 1023=~1.89V(結果取兩位小數)VoltsRy=630 * 3.3 / 1023=~2.03V
VoltsRz=561 * 3.3 / 1023=~1.81V
每個加速度計都有一個零加速度的電壓值,你可以在它的說明書中找到,這個電壓值對應于加速度為0g。通過計算相對0g電壓的偏移量我們可以得到一個有符號的電壓值。比方說,0g電壓值 VzeroG=1.65V,通過下面的方式可以得到相對0g電壓的偏移量:
DeltaVoltsRx=1.89V - 1.65V=0.24VDeltaVoltsRy=2.03V - 1.65V=0.38V
DeltaVoltsRz=1.81V - 1.65V=0.16V
現在我們得到了加速度計的電壓值,但它的單位還不是g(9.8m/s^2),最后的轉換,我們還需要引入加速度計的靈敏度(Sensitivity),單位通常是 mV/g。比方說,加速度計的靈敏度 Sensitivity=478.5mV / g=0.4785V /g。靈敏度值可以在加速度計說明書中找到。要獲得最后的單位為g的加速度,我們使用下列公式計算:
RX=DeltaVoltsRx /SensitivityRX=0.24V / 0.4785V / G=~0.5gRY=0.38V / 0.4785V / G=~0.79g
RZ=0.16V / 0.4785V / G=~0.33g
當然,我們可以把所有的步驟全部放在一個式子里,但我想通過介紹每一個步驟以便讓你了解怎么讀取一個ADC值并將其轉換為單位為g的矢量力的分量。
Rx=(AdcRx * Vref / 1023 – VzeroG) / Sensitivity(公式2)Ry=(AdcRy * Vref / 1023 – VzeroG) / Sensitivity
Rz=(AdcRz * Vref / 1023 – VzeroG) / Sensitivity
現在我們得到了慣性力矢量的三個分量,如果設備除了重力外不受任何外力影響,那我們就可以認為這個方向就是重力矢量的方向。如果你想計算設備相對于地面的傾角,可以計算這個矢量和Z軸之間的夾角。如果你對每個軸的傾角都感興趣,你可以把這個結果分為兩個分量:X軸、Y軸傾角,這可以通過計算重力矢量和X、Y軸的夾角得到。計算這些角度比你想象的簡單,現在我們已經算出了Rx,Ry,Rz的值,讓我們回到我們的上一個加速度模型,再加一些標注上去:

我們感興趣的角度是向量R和X,Y,Z軸之間的夾角,那就令這些角度為Axr,Ayr,Azr。觀察由R和Rx組成的直角三角形:
cos(Axr)=Rx / R , 類似的:cos(Ayr)=Ry / R
cos(Azr)=Rz / R
從公式1我們可以推導出 R=SQRT( Rx^2 + Ry^2 + Rz^2)
通過arccos()函數(cos()的反函數)我們可以計算出所需的角度:
Axr=arccos(Rx/R)
Ayr=arccos(Ry/R)
Azr=arccos(Rz/R)
我們花了大段的篇幅來解釋加速度計模型,最后所要的只是以上這幾個公式。根據你的應用場合,你可能會用到我們推導出來的幾個過渡公式。我們接下來要介紹陀螺儀模塊,并向大家介紹怎么融合加速度計和陀螺儀的數據以得到更精確的傾角值。
但在此之前,我們再介紹幾個很常用的公式:cosX=cos(Axr)=Rx / RcosY=cos(Ayr)=Ry / RcosZ=cos(Azr)=Rz / R
這三個公式通常稱作方向余弦,它主要表達了單位向量(長度為1的向量)和R向量具有相同的方向。你可以很容易地驗證:
SQRT(cosX ^ 2 + COSY ^ 2 + cosZ ^ 2)=1
這是個很好的性質,因為它避免了我們一直檢測R向量的模(長度)。通常如果我們只是對慣性力的方向感興趣,那標準化模長以簡化其他計算是個明智的選擇。
第二部分陀螺儀
對于陀螺儀我們將不會像加速度計一樣介紹它的等價盒子模型,而是直接跳到加速度計的第二個模型,通過這個模型我們會向大家介紹陀螺儀是怎么工作的。

陀螺儀的每個通道檢測一個軸的旋轉。例如,一個2軸陀螺儀檢測繞X和Y軸的旋轉。為了用數字來表達這些旋轉,我們先引進一些符號。首先我們定義:
Rxz – 慣性力矢量R在XZ平面上的投影Ryz – 慣性力矢量R在YZ平面的上投影在由Rxz和Rz組成的直角三角形中,運用勾股定理可得:Rxz^2=Rx^2 + Rz^2 ,同樣:Ryz^2=Ry^2 + Rz^2同時注意:R^2=Rxz^2 + Ry^2 ,這個公式可以公式1和上面的公式推導出來,也可由R和Ryz所組成的直角三角形推導出來R ^ 2=Ryz ^ 2 + RX ^ 2
在這篇文章中我們不會用到這些公式,但知道模型中的那些數值間的關系有助于理解。
相反,我們按如下方法定義Z軸和Rxz、Ryz向量所成的夾角:AXZ - Rxz(矢量R在XZ平面的投影)和Z軸所成的夾角AYZ - Ryz(矢量R在YZ平面的投影)和Z軸所成夾角
現在我們離陀螺儀要測量的東西又近了一步。陀螺儀測量上面定義的角度的變化率。換句話說,它會輸出一個與上面這些角度變化率線性相關的值。為了解釋這一點,我們先假設在t0時刻,我們已測得繞Y軸旋轉的角度(也就是Axz),定義為Axz0,之后在t1時刻我們再次測量這個角度,得到Axz1。
角度變化率按下面方法計算:
RateAxz=(Axz1 – Axz0) / (t1 – t0).
如果用度來表示角度,秒來表示時間,那這個值的單位就是 度/秒。這就是陀螺儀檢測的東西。
在實際運用中,陀螺儀一般都不會直接給你一個單位為度/秒的值(除非它是個特殊的數字陀螺儀)。就像加速度計一樣,你會得到一個ADC值并且要用類似公式2的式子將其轉換成單位為 度/秒的值。讓我們來介紹陀螺儀輸出值轉換中的ADC部分(假設使用10位ADC模塊,如果是8位ADC,用1023代替255,如果是12為ADC用4095代替1023)。
RateAxz=(AdcGyroXZ * Vref / 1023 – VzeroRate) / Sensitivity公式3RateAyz=(AdcGyroYZ * Vref / 1023 – VzeroRate) / Sensitivity
AdcGyroXZ,AdcGyroYZ - 這兩個值由ADC讀取,它們分別代表矢量R的投影在XZ和YZ平面內里的轉角,也可等價的說,旋轉可分解為單獨繞Y和X軸的運動。
Vref – ADC的參考電壓,上例中我們使用3.3V
VzeroRate – 是零變化率電壓,換句話說它是陀螺儀不受任何轉動影響時的輸出值,對Acc Gyro板來說,可以認為是1.23V(此值通常可以在說明書中找到——但千萬別相信這個值,因為大多數的陀螺儀在焊接后會有一定的偏差,所以可以使用電壓計測量每個通道的輸出值,通常這個值在焊接后就不會改變,如果有跳動,在設備使用前寫一個校準程序對其進行測量,用戶應當在設備啟動的時候保持設備靜止以進行校準)。
Sensitivity –陀螺儀的靈敏度,單位mV/(deg/s),通常寫作mV/deg/s,它的意思就是如果旋轉速度增加1°/s,陀螺儀的輸出就會增加多少mV。Acc_Gyro板的靈敏度值是2mV/deg/s或0.002V/deg/s讓我們舉個例子,假設我們的ADC模塊返回以下值:AdcGyroXZ=571AdcGyroXZ=323用上面的公式,在代入Acc Gyro板的參數,可得:RateAxz=(571 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s)=~ 306 deg/sRateAyz=(323 * 3.3V / 1023 – 1.23V) / ( 0.002V/deg/s)=~ -94 deg/s換句話說設備繞Y軸(也可以說在XZ平面內)以306°/s速度和繞X軸(或者說YZ平面內)以-94°/s的速度旋轉。請注意,負號表示該設備朝著反方向旋轉。按照慣例,一個方向的旋轉是正值。一份好的陀螺儀說明書會告訴你哪個方向是正的,否則你就要自己測試出哪個旋轉方向會使得輸出腳電壓增加。最好使用示波器進行測試,因為一旦你停止了旋轉,電壓就會掉回零速率水平。如果你使用的是萬用表,你得保持一定的旋轉速度幾秒鐘并同時比較電壓值和零速率電壓值。如果值大于零速率電壓值那說明這個旋轉方向是正向。
第三部分 將它們綜合起來。融合加速度計和陀螺儀的數據
如果你在閱讀這篇文章你可能已經有了或準備購買一個IMU設備,或者你準備用獨立的加速度計和陀螺儀搭建一個。
在使用整合了加速度計和陀螺儀的IMU設備時,首先要做的就是統一它們的坐標系。最簡單的辦法就是將加速度計作為參考坐標系。大多數的加速度計技術說明書都會指出對應于物理芯片或設備的XZY軸方向。例如,下面就是Acc Gyro板的說明書中給出的XYZ軸方向:

接下來的步驟是:
- 確定陀螺儀的輸出對應到上述討論的RateAxz,RateAyz值。
- 根據陀螺儀和加速度計的位置決定是否要反轉輸出值
不要設想陀螺儀陀的輸出有XY,它會適應加速度計坐標系里的任何軸,盡管這個輸出是IMU模塊的一部分。最好的辦法就是測試。
接下來的示例用來確定哪個陀螺儀的輸出對應RateAxz。
- 首先將設備保持水平。加速度計的XY軸輸出會是零加速度電壓(Acc Gyro板的值是1.65V)
- 接下來將設備繞Y軸旋轉,換句話說就是將設備在XZ平面內旋轉,所以X、Z的加速度輸出值會變化而Y軸保持不變。
-當以勻速旋轉設備的時候,注意陀螺儀的哪個通道輸出值變化了,其他輸出應該保持不變。
- 在陀螺儀繞Y軸旋轉(在XZ平面內旋轉)的時候輸出值變化的就是AdcGyroXZ,用于計算RateAxz
-最后一步,確認旋轉的方向是否和我們的模型對應,因為陀螺儀和加速度的位置關系,有時候你可能要把RateAxz值反向
-重復上面的測試,將設備繞Y軸旋轉,這次查看加速度計的X軸輸出(也就是AdcRx)。如果AdcRx增大(從水平位置開始旋轉的第一個90°),那AdcGyroXZ應當減小。這是因為我們觀察的是重力矢量,當設備朝一個方向旋轉時矢量會朝相反的方向旋轉(相對坐標系運動)。所以,如果你不想反轉RateAxz,你可以在公式3中引入正負號來解決這個問題:
RateAxz=InvertAxz * (AdcGyroXZ * Vref / 1023 – VzeroRate) / Sensitivity ,其中InvertAxz=1 或-1
同樣的方法可以用來測試RateAyz,將設備繞X軸旋轉,你就能測出陀螺儀的哪個輸出對應于RateAyz,以及它是否需要反轉。一旦你確定了InvertAyz,你就能可以用下面的公式來計算RateAyz:
RateAyz=InvertAyz * (AdcGyroYZ * Vref / 1023 – VzeroRate) / Sensitivity
如果對Acc Gyro板進行這些測試,你會得到下面的這些結果:
- RateAxz的輸出管腳是GX4,InvertAxz=1
- RateAyz輸出管腳是GY4,InvertAyz=1
從現在開始我們認為你已經設置好了IMU模塊并能計算出正確的Axr,Ayr,Azr值(在第一部分加速度計中定義)以及RateAyz,RateAyz(在第二部分陀螺儀中)。下一步,我們分析這些值之間的關系并得到更準確的設備和地平面之間的傾角。
你可能會問自己一個問題,如果加速度計已經告訴我們Axr,Ayr,Azr的傾角,為什么還要費事去得到陀螺儀的數據?答案很簡單:加速度計的數據不是100%準確的。有幾個原因,還記加速度計測量的是慣性力,這個力可以由重力引起(理想情況只受重力影響),當也可能由設備的加速度(運動)引起。因此,就算加速度計處于一個相對比較平穩的狀態,它對一般的震動和機械噪聲很敏感。這就是為什么大部分的IMU系統都需要陀螺儀來使加速度計的輸出更平滑。但是怎么辦到這點呢?陀螺儀不受噪聲影響嗎?
陀螺儀也會有噪聲,但由于它檢測的是旋轉,因此對線性機械運動沒那么敏感,不過陀螺儀有另外一種問題,比如漂移(當選擇停止的時候電壓不會回到零速率電壓)。然而,通過計算加速度計和陀螺儀的平均值我們能得到一個相對更準確的當前設備的傾角值,這比單獨使用加速度計更好。
接下來的步驟我會介紹一種算法,算法受卡爾曼濾波中的一些思想啟發,但是它更簡單并且更容易在嵌入式設備中實現。在此之前,讓我們先看看我們需要算法計算什么值。所要算的就是重力矢量R=[Rx,Ry,Rz],它可由其他值推導出來,如Axr,Ayr,Azr或者cosX,cosY,cosZ,由這些值我們能得到設備相對地平面的傾角值,這些關系我們在第一部分已經討論過。有人可能會說-根據第一部分的公式2我們不是已經得到Rx,Ry,Rz的值了嗎?是的,但是記住,這些值只是由加速度計數據推導出來的,如果你直接將它們用于你的程序你會得到難以忍受的噪聲。為了避免進一步的混亂,我們重新定義加速度計的測量值:
Racc – 是由加速度計測量到得慣性力矢量,它可分解為下面的分量(在XYZ軸上的投影):
RxAcc=(AdcRx * Vref / 1023 – VzeroG) / SensitivityRyAcc=(AdcRy * Vref / 1023 – VzeroG) / Sensitivity
RzAcc=(AdcRz * Vref / 1023 – VzeroG) / Sensitivity
現在我們得到了一組只來自于加速度計ADC的值。我們把這組數據叫做“vector”,并使用下面的符號:
Racc=[RxAcc,RyAcc,RzAcc]
因為這些Racc的分量可由加速度計數據得到,我們可以把它當做算法的輸入。
請注意Racc測量的是重力,如果你得到的矢量長度約等于1g那么你就是正確的:
|Racc|=SQRT(RxAcc^2 +RyAcc^2 + RzAcc^2),
但是請確定把矢量轉換成下面的矢量非常重要:
Racc(normalized)=[RxAcc/|Racc| , RyAcc/|Racc| , RzAcc/|Racc|].
這可以確保標準化Racc始終是1。
接來下我們引進一個新的向量:
Rest=[RxEst,RyEst,RzEst]
這就是算法的輸出值,它經過陀螺儀數據的修正和基于上一次估算的值。
這是算法所做的事:
-加速度計告訴我們:“你現在的位置是Racc”
我們回答:“謝謝,但讓我確認一下”
-然后根據陀螺儀的數據和上一次的Rest值修正這個值并輸出新的估算值Rest。
-我們認為Rest是當前設備姿態的“最佳值”。
讓我們看看它是怎么實現的。
數列的開始,我們先認為加速度值正確并賦值:
Rest(0)=Racc(0)
Rest和Racc是向量,所以上面的式子可以用3個簡單的式子代替,注意別重復了:
RxEst(0)=RxAcc(0)
RyEst(0)=RyAcc(0)
RzEst(0)=RzAcc(0)
接下來我們在每個等時間間隔T秒做一次測量,得到新的測量值,并定義為Racc(1),Racc(2),Racc(3)等等。同時,在每個時間間隔我們也計算出新的估算值Rest(1),Rest(2),Rest(3),等等。
假設我們在第n步。我們有兩列已知的值可以用:
Rest(n-1) – 前一個估算值,Rest(0)=Racc(0)
Racc(n) – 當前加速度計測量值
在計算Rest(n)前,我們先引進一個新的值,它可由陀螺儀和前一個估算值得到。
叫做Rgyro,同樣它是個矢量并由3個分量組成:
Rgyro=[RxGyro,RyGyro,RzGyro]
我們分別計算這個矢量的分量,從RxGyro開始。

首先觀察陀螺儀模型中下面的關系,根據由Rz和Rxz組成的直角三角形我們能推出:
tan(Axz)=Rx/Rz=> Axz=atan2(Rx,Rz)
你可能從未用過atan2這個函數,它和atan類似,但atan返回值范圍是(-PI/2,PI/2),atan2返回值范圍是(-PI,PI),并且他有兩個參數。它能將Rx,Rz值轉換成360°(-PI,PI)內的角度。
所以,知道了RxEst(n-1)和RzEst(n-1)我們發現:
Axz(n-1)=atan2( RxEst(n-1) , RzEst(n-1) ).
記住,陀螺儀測量的是Axz角度變化率,因此,我們可以按如下方法估算新的角度Axz(n):
Axz(n)=Axz(n-1) + RateAxz(n) * T
請記住,RateAxz可由陀螺儀ADC讀取得到。通過使用平均轉速可由得到一個更準確的公式:
RateAxzAvg=(RateAxz(N)+ RateAxz(N-1))/ 2
Axz(n)=Axz(n-1) + RateAxzAvg * T
同理可得:
Ayz(n)=Ayz(n-1) + RateAyz(n) * T
好了,現在我們有了Axz(n),Ayz(n)。現在我們如何推導出RxGyro/RyGyro?根據公式1我們可以把Rgyro長度寫成下式:
| Rgyro |=SQRT(RxGyro ^ 2 + RyGyro ^ 2 + RzGyro ^ 2)
同時,因為我們已經將Racc標準化,我們可以認為它的長度是1并且旋轉后保持不變,所以寫成下面的方式相對比較安全:
| Rgyro |=1
我們暫時采用更短的符號進行下面的計算:
x=RxGyro , y=RyGyro, z=RzGyro
根據上面的關系可得:
x=x / 1=x / SQRT(x^2+y^2+z^2)分子分母同除以SQRT(X ^ 2 + Z ^ 2)x=( x / SQRT(x^2 + z^2) ) / SQRT( (x^2 + y^2 + z^2) / (x^2 + z^2) )注意x / SQRT(x^2 + z^2)=sin(Axz), 所以:x=sin(Axz) / SQRT (1 + y^2 / (x^2 + z^2) )將SQRT內部分式的分子分母同乘以z^2x=sin(Axz) / SQRT (1 + y^2* z ^2 / (z^2 * (x^2 + z^2)) )注意 z / SQRT(x^2 + z^2)=cos(Axz), y / z=tan(Ayz), 所以最后可得:
x=sin(Axz) / SQRT (1 + cos(Axz)^2 * tan(Ayz)^2 )
替換成原來的符號可得:
RxGyro=sin(Axz(n)) / SQRT (1 + cos(Axz(n))^2 * tan(Ayz(n))^2 )
同理可得:
RyGyro=sin(Ayz(n)) / SQRT (1 + cos(Ayz(n))^2 * tan(Axz(n))^2 )
提示:這個公式還可以更進一步簡化。分式兩邊同除以sin(axz(你))可得:
RxGyro=1/ SQRT (1/ sin(Axz(n))^2+ cos(Axz(n))^2 / sin(Axz(n))^2* tan(Ayz(n))^2 )RxGyro=1/ SQRT (1/ sin(Axz(n))^2+ cot(Axz(n))^2* sin(Ayz(n))^2/ cos(Ayz(n))^2 )現在加減 cos(Axz(n))^2/sin(Axz(n))^2=cot(Axz(n))^2RxGyro=1/ SQRT (1/ sin(Axz(n))^2-cos(Axz(n))^2/sin(Axz(n))^2 + cot(Axz(n))^2* sin(Ayz(n))^2/ cos(Ayz(n))^2+ cot(Axz(n))^2 )
綜合條件1、2和3、4可得:
RxGyro=1/ SQRT (1+ cot(Axz(n))^2 * sec(Ayz(n))^2 ), 其中cot(x)=1 / tan(x), sec(x)=1 / cos(x)
這個公式只用了2個三角函數并且計算量更低。如果你有Mathematica程序,通過使用 FullSimplify [Sin[A]^2/ ( 1 + Cos[A]^2 * Tan[B]^2)]你可以驗證這個公式。
現在我們發現:
RzGyro=Sign(RzGyro)*SQRT(1 – RxGyro^2 – RyGyro^2).
其中,當 RzGyro>=0時,Sign(RzGyro)=1 , 當 RzGyro<0時,Sign(RzGyro)=-1 。 一個簡單的估算方法:Sign(RzGyro)=Sign(RzEst(n-1))在實際應用中,當心RzEst(n-1)趨近于0。這時候你可以跳過整個陀螺儀階段并賦值:Rgyro=Rest(n-1)。Rz可以用作計算Axz和Ayz傾角的參考,當它趨近于0時,它可能會溢出并引發不好的后果。這時你會得到很大的浮點數據,并且tan()/atan()函數得到的結果會缺乏精度。 現在我們回顧一下已經得到的結果,我們在算法中的第n步,并計算出了下面的值: Racc – 加速度計讀取的當前值Rgyro –根據Rest(-1)和當前陀螺儀讀取值所得我們根據哪個值來更新Rest(n)呢?你可能已經猜到,兩者都采用。我們會用一個加權平均值,得:Rest(n)=(Racc * w1 + Rgyro * w2 ) / (w1 + w2)分子分母同除以w1,公式可簡化成:Rest(n)=(Racc * w1/w1 + Rgyro * w2/w1 ) / (w1/w1 + w2/w1)令w2=w1=wGyro,可得:Rest(n)=(Racc + Rgyro * wGyro ) / (1 + wGyro)在上面的公式中,wGyro表示我們對加速度計和陀螺儀的相信程度。這個值可以通過測試確定,根據經驗值5-20之間會得到一個很好的結果。此算法和卡爾曼濾波最主要的差別是它的權重是相對固定的,而卡爾曼濾波中的權重會隨著加速度計讀取的噪聲而改變。卡爾曼濾波注重給你一個“最好”的理論結果,而此算法給你的是實際項目中“夠用”的結果。你可以實現一個算法,它能根據測量的噪聲而改變wGyro值,但對大部分應用來說固定的權重也能工作的很好。現在得到最新的估算值還差一步:RxEst(n)=(RxAcc + RxGyro * wGyro ) / (1 + wGyro)RyEst(n)=(RyAcc + RyGyro * wGyro ) / (1 + wGyro)RzEst(n)=(RzAcc + RzGyro * wGyro ) / (1 + wGyro)現在,再次標準化矢量:R=SQRT(RxEst(n) ^2 + RyEst(n)^2 +RzEst(n)^2 )RxEst(n)=RxEst(n)/RRyEst(n)=RyEst(n)/RRzEst(n)=RzEst(n)/R現在,可以再次進行下一輪循環了。                  

加速度傳感器算法:利用三軸加速度傳感器的計步測算法

  現如今,很多現代人都非常注重自己的日常鍛煉,計步作為一種有效記錄監控鍛煉的監控手段,被廣泛應用在移動終端的應用中。
  目前,大部分的計步都是通過GPS信號來測算運動距離,再反推行走步數實現的。這種方法很是有效,但在室內或沒有GPS信號的設備上無法工作。同時,GPS精度對結果的干擾也比較大。
  為避免上述問題的出現,我們可以考慮一種新的測步方法,即:通過設備上的加速度傳感器來計算步數,在不支持GPS的設備上也可正常工作。還可以與GPS互相配合測步,這樣可令使用場景變得多樣。
 1.先要摸清模型的特征
  目前,大部分設備都提供了可以檢測各個方向的加速度傳感器。以iOS設備為例,我們利用了其三軸加速度傳感器(x,y,z軸代表方向如圖)的特性來分析。分別用以檢測人步行中三個方向的加速度變化。
iOS設備的三軸加速度傳感器示意圖
  用戶在水平步行運動中,垂直和前進兩個加速度會呈現周期性變化,如圖所示。在步行收腳的動作中,由于重心向上單只腳觸地,垂直方向加速度是呈正向增加的趨勢,之后繼續向前,重心下移兩腳觸底,加速度相反。水平加速度在收腳時減小,在邁步時增加。
  反映到圖表中,可以看到,在步行運動中,垂直和前進產生的加速度與時間大致為一個正弦曲線,而且在某點有一個峰值。其中,垂直方向的加速度變化最大,通過對軌跡的峰值進行監測計算和加速度閥值決策,即可實時計算用戶運動的步數,還可依此進一步估算用戶步行距離。
2.計步的合理算法
  因為用戶在運動中可能用手平持設備,或者將設備置于口袋中。所以,設備的放置方向不定。為此,通過計算三個加速度的矢量長度,我們可以獲得一條步行運動的正弦曲線軌跡。
  第二步是峰值檢測,我們記錄了上次矢量長度和運動方向,通過矢量長度的變化,可以判斷目前加速度的方向,并和上一次保存的加速度方向進行比較。如果是相反的,即是剛過峰值狀態,則進入計步邏輯進行計步,否則舍棄。通過對峰值的次數累加,可得到用戶步行的步伐。
  最后,就是去干擾。手持設備會有一些低幅度和快速的抽動狀態,或是我們俗稱的手抖,或者某個惡作劇用戶想通過短時快速反復搖動設備來模擬人走路,這些干擾數據如果不剔除,會影響記步的準確值,對于這種干擾,我們可以通過給檢測加上閥值和步頻判斷來過濾。
  人體最快的跑步頻率為5HZ,也就是說相鄰兩步的時間間隔的至少大于0.2秒,如圖所示,我們設置了timespan在記步過程中我們過濾了高頻噪聲,即步頻過快的情況。同時我們通過和上次加速度大小進行比較,設置設立一定的閥值Threshold來判斷運動是否屬于有效,有效運動才可進行記步。
3.關于計步器的擴展
  以上是一個依靠加速度測算的計步器實現原理,已知步行和跑步的步伐經驗值,那么稍微改進下即可變成一個測距測速計。
  通過三軸加速度傳感器,我們可以知道用戶的運動狀態。除了計步,還可以通過加速器的變化曲線判斷用戶摔倒狀態,做成一個老人和兒童摔倒檢測自動報警器。

加速度傳感器算法:基于三軸加速度傳感器計步算法

本文介紹可穿戴設備加速度傳感器-Lis3dh的特性原理和應用場景。意法半導體研發的Lis3dh廣泛應用在智能手環、智能計步鞋等智能穿戴產品中。
Lis3dh有兩種工作方式,一種是其內置了多種算法來處理常見的應用場景(如靜止檢測、運動檢測、屏幕翻轉、失重、位置識別、單擊和雙擊等等),用戶只需簡單配置算法對應的寄存器即可開始檢測,一旦檢測到目標事件,Lis3dh的外圍引腳INT1會產生中斷。另一種是支持用戶通過SPI/I2C來讀取底層加速度數據,并自行通過軟件算法來做進一步復雜的處理,如計步等等。
本文以Lis3dh為講解案例,但工作原理和應用場景對其他加速度傳感器同樣適用。更多嵌入式和物聯網原創技術分享敬請關注微信公眾號:嵌入式企鵝圈。
一、加速度傳感器工作原理
加速度傳感器自然是對自身器件的加速度進行檢測。其自身的物理實現方式咱們就不去展開了,可以想象芯片內部有一個真空區域,感應器件即處于該區域,其通過慣性力作用引起電壓變化,并通過內部的ADC給出量化數值。
Lis3dh是三軸加速度傳感器,因此其能檢測X、Y、Z的加速度數據,如下圖:
在靜止的狀態下,傳感器一定會在一個方向重力的作用,因此有一個軸的數據是1g(即9.8米/秒的二次)。在實際的應用中,我們并不使用跟9.8相關的計算方法,而是以1g作為標準加速度單位,或者使用1/1000g,即mg。既然是ADC轉換,那么肯定會有量程和精度的概念。在量程方面,Lis3dh支持(+-)2g/4g/8g/16g四種。一般作為計步應用來說,2g是足夠的,除去重力加速度1g,還能檢測出1g的加速度。至于精度,那就跟其使用的寄存器位數有關了。Lis3dh使用高低兩個8位(共16位)寄存器來存取一個軸的當前讀數。由于有正反兩個方向的加速度,所以16位數是有符號整型,實際數值是15位。以(+-)2g量程來算,精度為2g/2^15= 2000mg/ =0.061mg。
當以上圖所示的靜止狀態,z軸正方向會檢測出1g,X、Y軸為0.如果調轉位置(如手機屏幕翻轉),那總會有一個軸會檢測出1g,其他軸為0,在實際的測值中,可能并不是0,而是有細微數值。
在運動過程中,x,y,z軸都會發生變化。計步運動也有其固有的數值規律,因為邁步過程也有抬腳和放腳的規律過程,如下圖。“腳蹬離地是一步的開始,此時由于地面的反作用力,垂直方向加速度開始增大,當腳達到最高位置時,垂直方向加速度達到最大;然后腳向下運動,垂直加速度開始減小,直到腳著地,垂直加速度減到最小值。接著下一步邁步。前向加速度由腳與地面的摩擦力產生,雙腳觸地時增大,一腳離地時減小。”[此處引用韓文正等人發表的《基于加速度傳感器LIS3DH的計步器設計》]。
二、理解加速度傳感器的一個坐標系誤區
意法半導體針對LIS3DH發布兩個文檔,官方規格書和應用設計指導。單獨提出這點是為因為本人之前在使用LIS3DH時可能是太久沒有運用過立體幾何思維,導致在X,Y,Z坐標系上混淆概念,對位置識別遲遲沒能理解,現在指出這個誤區。
下圖的X,Y,Z除了代表我們所認識的三維坐標系外,還有一個重要的認知,那就是X,Y,Z軸對應的寄存器分別按照芯片圖示(以芯片的圓點來確定)的方向來測加速度值,而不管芯片的位置如何,即X,Y,Z軸對應的三個寄存器總是以這樣工作的:Z軸寄存器測芯片垂直方向的數據、Y軸測芯片左右方的數據、X軸測芯片前后的數據(前后左右的定義可能不夠形象,大家能理解就好)。例如,圖示靜止狀態下,X軸寄存器測芯片前后方向的加速度;如果芯片如右邊圖示靜止時,X軸寄存器測的是坐標系的Z軸方向加速度。
三、LIS3DH內置硬件算法工作原理
由于計步等場景是需要先讀取底層X,Y,Z軸數據再進行處理的,所以我們這里不去探討這個算法。這里主要闡述如何利用LIS3DH內置的硬件算法來檢測常用的場景。
LIS3DH的內置硬件算法主要由2個參數和1個模式選擇來確定。2個參數分別是閾值和持續時間。例如,在靜止的時候我們要去檢測芯片的運動(wakeup)時,我們可以設定一個運動對應的閾值,并且要求芯片檢測數據在超過這個閾值時要持續一定的時間才可以認為芯片是運動的。內置算法基本都是基于閾值和持續時間來進行檢測的。
LIS3DH一共有兩套能夠同時工作的硬件算法電路,一種是專門針對單擊、雙擊這種場景,如鼠標應用,另一種是針對其他所有場景的,如靜止運動檢測、運動方向識別、位置識別等等。這里我們主要講述后者,其有四種工作模式:
第一種:OR或電路,即X,Y,Z任一軸數據超過閾值即可完成檢測。
第二種:AND與電路,即X,Y,Z所有軸的數據均超過閾值才能完成檢測。當然,其也允許只檢測任意兩個軸或者一個軸,不檢測的軸的閾值檢測可以認為是永遠為真。
以上兩種電路的閾值比較圖示如下,閾值比較是絕對值比較,沒有方向之分。不管在正方向還是負方向,只要絕對值超過閾值,那么XH(YH、ZH)為1,此時相應的XL(YL、ZL)為0;否則XL(YL、ZL)為1,相應的XH(YH、ZH)為0。XH(YH、ZH)、XL(YL、ZL)可以認為是檢測條件是否滿足的pending指示位。
第三種和第四種是一個物體六個方向的檢測,movement檢測芯片的運動方向變化,即從一種方向變化到另一種方向;而position檢測芯片穩定為一種確定的方向(如穩定為平放朝上、平放朝下、豎立前后左右)等等。
其閾值比較電路如下,該閾值比較使用正負數真實數據比較。正方向超過閾值,則XH(YH、ZH)為1,否則為0;負方向超過閾值,XL(YL、ZL)為1,否則為0。XH(YH、ZH)、XL(YL、ZL)代表了六個方向。由于靜止穩定狀態時,只有一個方向有重力加速度,因此可以據此知道當時芯片的位置姿勢。
四、加速度傳感器應用
如果能夠理解第三部分的工作原理,那么也能夠很好理解以下的應用。
1.?靜止時進行運動檢測
使用OR電路工作方式,設置一個較小的運動閾值,只檢測X,Y軸數據是否超過該閾值(Z軸這時有1g,咱不管這個軸了)即可。只要X,Y任一軸數據超過閾值一定時間即認為設備處于wakeup狀態了。
2.?失重檢測
失重時Z軸的加速度和重力加速度抵消,在短時間內會為0,而且X,Y軸沒有變化,因此在短時間內三者都為0。這里使用AND電路工作方式,設置一個較小的運動閾值,當三個方向的數據都小于閾值一定時間時即認為是失重。
3.?位置姿勢識別
例如手機翻轉等應用場景就是利用這個特性。這里在第三部分講解工作原理時已經講得很清楚了。?
有了以上理解,以后在使用LIS3DH時直接找寄存器填數值就可以完成功能啦。
如轉載請務必全文轉載,保留嵌入式企鵝圈的微信公眾號,否則即視為侵權。
? ? 群猴報喜,祝愿大家在猴年事事如意!嵌入式企鵝圈堅持百分百地原創高質量技術研發文章。更多原創技術分享敬請關注微信公眾號:嵌入式企鵝圈

加速度傳感器算法:三步教你結合加速度傳感器和陀螺儀算法設計  第2張

加速度傳感器算法:求助如何對加速度傳感器采集的信號進行濾波?

小白,現在有一套加速度傳感器設備用于測量機械加工振動,采集卡保存了加工過程中的加速度(g)、速度(mm/s)和位移(mm),供應商那邊說這套設備沒有濾波功能,讓我自己濾波。搜論文、相關書籍看了好幾天,濾波方法很多,但是沒看懂要處理加速度還是速度,還是位移?也不知道我如何處理這些數據,請大佬指點。
就我現有的這些數據,我應該如何做才能讓這些數據可以使用?
先不管你的物理量是什么,這里只是對你的數據進行濾波,Python里面有很多濾波方法,下面舉幾個例子。你先導出自己的數據,可參考如下方式進行濾波操作。
import numpy as np
import matplotlib.pyplot as plt
from obspy import read
from scipy.signal import savgol_filter as sgolay
from scipy import signal
tr=read()[0]
# 原始信號 s1, 及對應的時間t
s1=tr.data; t=np.arange(len(s1)) * tr.stats.delta
# 相同權重卷積平均
s2=np.convolve(s1, np.ones(50)/50, mode='same')
# Savitsky-Golay 平滑濾波
s3=sgolay(s1, 91, 3)
# 低通濾波
fs=1 / (t[1]-t[0]) # 采樣率 (赫茲)
fc=2 # 截止頻率 (赫茲)
b, a=signal.butter(4, 2.0*fc/fs, 'lowpass')
s4=signal.filtfilt(b, a, s1)
# 高通濾波
fs=1 / (t[1]-t[0]) # 采樣率 (赫茲)
fc=1 # 截止頻率 (赫茲)
b, a=signal.butter(4, 2.0*fc/fs, 'highpass')
s5=signal.filtfilt(b, a, s1)
# 帶通濾波
fs=1 / (t[1]-t[0]) # 采樣率 (赫茲)
f1=.1; f2=2 # 通帶的兩個截止頻率 (赫茲)
b, a=signal.butter(4,[2.0*f1/fs, 2.0*f2/fs], 'bandpass')
s6=signal.filtfilt(b, a, s1)
# # 帶阻濾波
fs=1 / (t[1]-t[0]) # 采樣率 (赫茲)
f1=.5; f2=5 # 阻帶的兩個截止頻率
b, a=signal.butter(4,[2.0*f1/fs, 2.0*f2/fs], 'bandstop')
s7=signal.filtfilt(b, a, s1)
# 畫圖對比
l=6
plt.figure(figsize=(15, 20))
plt.subplot(l, 1, 1)
plt.plot(t, s1, label='Original signal')
plt.plot(t, s2, label='Convolved&filtered')
plt.legend(fontsize=15)
plt.subplot(l, 1, 2)
plt.plot(t, s1, label='Original signal')
plt.plot(t, s3, label='Savitzky-Golay&filtered')
plt.legend(fontsize=15)
plt.subplot(l, 1, 3)
plt.plot(t, s1, label='Original signal')
plt.plot(t, s4, label='Lowpass filtered')
plt.legend(fontsize=15)
plt.subplot(l, 1, 4)
plt.plot(t, s1, label='Original signal')
plt.plot(t, s5, label='Highpass filtered')
plt.legend(fontsize=15)
plt.subplot(l, 1, 5)
plt.plot(t, s1, label='Original signal')
plt.plot(t, s6, label='Bandpass filtered')
plt.legend(fontsize=15)
plt.subplot(l, 1, 6)
plt.plot(t, s1, label='Original signal')
plt.plot(t, s7, label='Bandstop filtered')
plt.legend(fontsize=15)
plt.show()
下面展示這些濾波方法的結果:

下一篇: PLC、DCS、FCS三大控

上一篇: 電氣控制線路圖控制原

推薦產品

更多
主站蜘蛛池模板: 亚洲 中文字幕 日韩 无码 | 中文字幕一区在线观看视频 | 国产精品久久久久久久久久软件 | 亚洲一区二区在线 | 性xxxxbbbb欧美熟妇 | 欧美熟妇毛茸茸 | 中国大陆一级毛片 | 少妇性l交大片免潘金莲 | 一本大道久久精品懂色aⅴ 一本大道久久卡一卡二卡三乱码 | 国产成人无码www免费视频播放 | 一级做a爱高潮免费视频 | 殴美一区二区 | 精品无码人妻一区二区三区 | 婷婷导航| 91久久国产综合久久91精品网站 | 国产在线啪| 日本艹逼视频 | 缅甸午夜性猛交xxxx | 漂亮少妇高潮伦理 | 一级黄色片网站 | 国产一区99 | 性爱免费视频 | 国产免费一区二区三区免费视频 | 国产99久久精品一区二区永久免费 | 亚洲 欧美 制服 中文字幕 | 欧美怡红院免费全部视频 | 亚洲精品无码久久久影院相关影片 | 18禁裸男晨勃露j毛免费观看 | 亚色视频在线 | 亚洲国产一线二线三线 | 久久国产精品一国产精品 | 日韩毛片在线看 | 91免费网站入口 | 亚欧中文字幕 | 久久不卡影院 | 日本性生活一级片 | 亚洲娇小与黑人巨大交 | 粉嫩av网 | 爱爱精品视频 | 国产一区 在线播放 | 国产.com | av黄色大片| 亚洲熟女综合一区二区三区 | 午夜免费 | 国产人妖ts重口系列网站观看 | 久久嫩草视频 | 日韩在线精品强乱中文字幕 | 亚洲青草 | 久久香蕉国产线看观看精品yw | 久久久国产精华液 | 在线不卡日本v二区到六区 免费又黄又爽又猛的毛片 特级西西人体444www高清大胆 | 99热这里是精品 | а√天堂8资源中文在线 | 欧美日韩精品久久久 | 91高清视频在线观看 | 麻豆视频官网 | 天堂中文视频 | 污网站免费在线观看 | 夜夜噜噜噜 | 国产精品久久久久9999 | 免费毛片无需任何播放器 | 国产精品人人妻人人爽人人牛 | 51自拍视频在线观看 | 黄色免费国产 | 97在线播放视频 | 肉丝美足丝袜一区二区三区四 | 性xxxx视频 | 久久a视频| 国产精品第69页 | 国产三级一区 | 91久久国产露脸精品国产 | 无遮挡又黄又刺激的视频 | 高h肉辣民工文 | 抖音视频在线观看 | 一本之道乱码区 | 波多野结衣电车 | 熟女俱乐部五十路六十路 | 亚洲人成电影在线观看影院 | 亚洲免费一级 | 奇米影视777四色米奇影院 | 午夜av在线 | 里番本子纯肉侵犯肉全彩无码 | 欧美精品一区二区三区久久久 | 精品国产一区二区三区国产馆杂枝 | 欧美国产日韩在线观看 | 日本黄色大片免费 | 国产精品一区二区麻豆 | 一个人免费观看的www视频 | 国产精品96久久久久久吹潮 | 久久久无码精品一区二区三区蜜桃 | 国产自在自线2021 | 国产精品偷伦视频免费观看了 | 美女大黄网站 | 欧美超逼视频 | 真人毛片高清免费播放 | 成人性生交大片免费看r老牛网站 | av免费观看网址 | 成人免费看片又大又黄 | 老熟妇高潮一区二区三区 | 成人乱人乱一区二区三区 | 国产白丝jk捆绑束缚调教视频 | 91操人视频 | 中文字幕在线观看91 | 成人三级黄色 | 妇挑战三黑人4p日本中文字幕 | 91看片淫黄大片在线天堂最新 | 中国美女囗交视频免费看 | 一级一级特黄女人精品毛片 | 50部乳奶水在线播放 | 手机午夜视频 | 国产无遮挡一区二区三区毛片日本 | www国产亚洲精品 | 一区二区三区四区亚洲 | 春色激情站 | 中文字幕一级二级三级 | 欧美成人四级hd版 | 欧美变态另类牲交 | 国产成人视屏 | 欧美日韩视频免费观看 | 日本成人动漫在线观看 | 国产一级淫片免费 | 太爽啦高h狂c | 手机看片日韩在线 | wwwcom在线观看| 影音先锋中文字幕一区 | 国产美女免费网站 | 91av入口| 日韩精品无码一区二区三区av | 九色丨porny丨自拍视频 | 国产女同疯狂作爱系列69 | 91人人爽久久涩噜噜噜 | 亚洲精品一区二区三区中文字幕 | www.黄色国产| 粉嫩av在线| 久久久www成人免费无遮挡大片 | 欧美野外做受又粗又硬 | 国产精品xxx在线观看www | 日本高清免费在线视频 | 97在线观看 | 国产1区2区3区 | 99福利在线观看 | 天天精品视频 | 欧美日韩精品一区二区在线播放 | 日韩国产欧美视频 | 日本毛片高清免费视频 | 国产91精品久久久 | 欧美又粗大人妖一进一出 | 久久福利视频导航 | 理论片午午伦夜理片影院99 | 九九爱国产| 日本不卡在线观看 | 亚洲国产av无码精品无广告 | 麻豆国产视频 | 国产原创av在线 | 久久99精品久久久秒播软件优势 | 日韩一级黄色 | 精品国产青草久久久久福利 | 女人喷潮完整视频 | 欧美综合在线观看 | аⅴ新版在线天堂 | 一级持黄录像免费观看 | 国产三级视频 | 欧美在线视频网站 | 成人国产精品免费观看视频 | 亚洲精品色午夜无码专区日韩 | 久久精品99久久香蕉国产色戒 | 欧美无遮挡很黄裸交视频 | 亚洲欧洲美洲精品一区二区三区 | 伊人网av在线 | 伊人精品成人久久综合软件 | 欧美一级片免费观看 | 免费淫片| 亚拍精品一区二区三区探花 | 日本免费一区二区三区最新 | 国产91精清纯白嫩高中在线观看 | 午夜国产羞羞视频免费网站 | 中文字幕日产无码 | 国产成人无码av一区二区在线观看 | 黄色一级淫片 | 另类国产ts人妖高潮系列视频 | 99久久精品免费 | 婷婷av在线 | 看av免费 | 久热中文字幕无码视频 | 免费黄网站在线 | 国产成熟人妻换╳╳╳╳ | 精品国产综合区久久久久久 | av免费在线观看免费 | 成人片黄网站a毛片免费 | 国产精品美女www爽爽爽软件 | zzijzzijzzij亚洲人 | www.中文字幕| 国产裸体永久免费无遮挡 | 精品人妻码一区二区三区 | 精精国产xxxx在线观看主放器 | 蜜桃精品在线观看 | 国产成人综合一区二区三区 | 超碰在线一区 | 爱情岛论坛自拍 | 亚洲色成人一区二区三区小说 | 深夜福利网站在线观看 | 日韩av在线播放不卡 | 日日夜夜2017 | 国产一二在线观看 | 999zyz玖玖资源站在线观看 | brazzers欧美极品少妇 | 天天干天天干天天 | 图片区乱熟图片区小说 | 91麻豆精品一二三区在线 | 精品一区二区三区免费视频 | 无码国产激情在线观看 | 日韩精品在线观看一区 | 国产 日韩 欧美 在线 | 亚洲 国产 图片 | 蓝av导航a√第一福利网 | 黄色男女网站 | 在线观看一区二区三区四区 | 一本色道无码道dvd在线观看 | 国产999精品成人网站 | 日批日韩在线观看 | 露脸内射熟女--69xx | 日欧137片内射在线视频播放 | 亚洲午夜成人片 | 妺妺窝人体色777777 | av无码不卡在线观看免费 | 日产a一a区二区www | 久久久久人妻精品一区二区三区 | 成人亚洲一区二区 | 国内黄色片 | 日本一区免费视频 | 日本福利片在线观看 | 天天搞天天搞 | 久草热播 | 日韩欧美中文字幕公布 | 色校园| 在线播放色 | 色播视频在线 | 精品久久中文 | 国产免费一区二区三区免费视频 | 99精品国产在热久久 | 欧美色图校园春色 | 中文字幕一区二区三区视频 | 9l视频自拍九色9l视频成人 | 国产乱xxxxx987国语对白 | 999亚洲欲妇| 亚洲一区在线免费 | 羞羞国产一区二区三区四区 | 中国女人内谢69xxxx免费视频 | 一区二区片 | 3344久久日韩精品一区二区 | 中文字幕丰满子伦 | 日本熟妇毛耸耸xxxxxx | 久久久精品免费 | 爱爱的免费视频 | 黄色片免费网站 | 国产午夜视频在线 | 久久久久国精品产熟女久色 | 78成人天堂久久成人 | av小说亚洲 | 天天射夜夜 | 日韩成人在线观看 | 99riav国产精品 | 国产特黄大片aaaa毛片 | 无码专区aaaaaa免费视频 | 在线精品亚洲一区二区佐佐木明希 | 亚洲无av码一区二区三区 | 亚洲一区二区日韩 | 日本系列第一页 | 一区二区三区四区在线观看视频 | 日韩在线一区二区三区四区 | 国产网站久久 | 黄网在线| 尤物视频在线播放 | 女女女bbbbbb毛片在线法国 | 九九夜| 99精品国产在热久久婷婷 | 嫩草99 | 青青草视频在线免费观看 | 女人张开腿让男人桶爽 | 欧美亚洲天堂网 | а√天堂资源8在线官网在线 | 亚洲人成图片小说网站 | 激情偷乱人成视频在线观看 | 欧美三级不卡在线观看 | 水蜜桃91| 免费看的一级视频 | 91素人约啪 | 国内精品国产三级国产a久久 | 亚洲精品一区中文字幕乱码 | 日韩欧美aaaa羞羞影院 | 亚洲免费永久精品国产 | 国产一级二级 | 国产麻豆天美果冻无码视频 | 推油少妇久久99久久99久久 | 深夜福利网站在线 | 中文字幕亚洲乱码熟女一区二区 | 亚洲啪啪综合av一区 | 色久婷婷| 美女主播精品视频一二三四 | 中文字幕 欧美激情 | 男人天堂视频网 | 一本色道无码道dvd在线观看 | 精品无码成人网站久久久久久 | 在哪里可以看毛片 | 国产精品美女久久久久av爽李琼 | 北条麻妃一区二区三区中文字幕 | 免费国产女王调教在线视频 | 国产边摸边吃奶边做爽视频 | 人妻少妇乱子伦精品无码专区电影 | 新版资源天堂中文 | 艳妇乳肉豪妇荡乳av | 成人看的毛片 | 天堂资源在线 | 日本欧美视频在线观看 | 国产爆乳无码av在线播放 | 日韩一卡2卡3卡新区乱码来袭 | 国产98在线 | 日韩 | 91夜夜澡人人爽人人喊欧美 | 欧美一区免费看 | 日韩精品99久久久久中文字幕 | 午夜av网站 | 亚洲男人的天堂一区二区 | 中文字幕在线观看日韩 | 中文字幕资源网 | 日韩欧美在线综合网另类 | 免费成年人视频 | 色视频在线播放 | 色妞www精品视频 | 射精专区一区二区朝鲜 | 国产性色αv视频免费 | 国产麻豆成人传媒免费观看 | 精品视频网 | 超碰爱爱| 久久强奷乱码老熟女网站 | 日本美女久久 | 性色在线观看 | 妇与子乱肉肉在线观看 | 日本一区二区三区免费播放 | 亚洲精品污一区二区三区 | 日日碰狠狠躁久久躁9 | 2024av天堂手机在线观看 | 女性向av免费网站 | 狠狠色狠狠色综合人人 | 欧美激情性生活 | 久久人人爽人人爽人人片av | 成年人视频在线看 | 2021国产精品久久久久青青 | 亚洲欧洲成人av每日更新 | 欧美色图俺去了 | 亚洲精品久久久蜜桃 | 欧美成人在线影院 | 99精品久久久久久中文字幕 | 中文文字幕文字幕亚洲色 | 激情综合亚洲 | 五月婷婷六月香 | 99久久亚洲精品日本无码 | 天天干少妇 | 国产在线拍偷自揄拍无码 | 亚洲高清在线观看视频 | 插入综合网 | 人妻丝袜中文无码av影音先锋专区 | 波多野结衣视频在线看 | 毛片无遮挡高清免费观看 | 日韩精品视频在线观看一区二区 | 另类专区成人 | 五月的婷婷| 爱久久av一区二区三区 | 男女羞羞视频软件 | 成品人片a91观看入口888 | 国产一区二区不卡在线 | 真人抽搐一进一出gif | 国产精品亚洲综合色区韩国 | 免费a v在线 | 欧美午夜理伦三级在线观看 | 少妇精品蜜桃偷拍高潮系列 | 欧美三级在线观看视频 | 51免费看成人啪啪片 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 免费看黄色三级 | 国产97在线 | 日韩 | 亚洲精选在线 | 亚洲色成人网站www永久男男 | 成人欧美一区二区三区在线观看 | 丰满的继牳3中文字幕系列 丰满的少妇xxxxx人伦理 | 四虎在线免费播放 | 日本免费一区二区三区中文字幕 | 日本天堂免费 | 久久久免费毛片 | 男女裸体做爰猛烈全过程9制片 | 在线观看香蕉视频 | 亚洲影音 | 国产精品无码永久免费不卡 | 一区二区三区精 | 69亚洲| 午夜免费福利视频 | 日本人丰满少妇xxxxx | 91亚洲国产成人精品一区 | 中国白嫩丰满少妇xxxxx明星 | 狠狠色综合网站久久久久久久 | 黄色免费在线观看视频 | 欧美午夜精品久久久 | 精品人妻久久久久久888 | 无码少妇一区二区三区 | 欧美高清激情brazzers | 久久精品人人做人人爽电影蜜月 | 天天爱天天做天天爽 | 国产 日韩 欧美 在线 | 日韩av一区二区精品不卡 | 91人人爱| 一区二区三区精品在线 | 在线免费观看黄 | yy6080午夜八戒国产亚洲 | 无码色av一二区在线播放 | 免费在线观看的av | 91免费在线播放 | 91人人揉日日捏人人看 | 亚洲精品自产拍在线观看 | 午夜xxxx| 国产网址在线观看 | 欧美乱人免费视频观看 | 少妇呻吟白浆高潮啪啪69 | 久久人人爽人人爽人人片av免费 | 欧美成人高清视频在线观看 | 国产又色又爽又黄的视频在线观看 | 国产麻豆xxxvideo实拍 | 国模吧无码一区二区三区 | a v在线视频| 黄色一级一片 | 好爽又高潮了毛片免费下载 | 曰本无码人妻丰满熟妇5g影院 | 99riav3国产精品视频 | 欧美三级视频在线观看 | 精品国产精品三级精品av网址 | 男同志毛片特黄毛片 | 色播久久人人爽人人爽人人片av | 涩涩涩av | 久久刺激| 日韩一区二区三区视频在线 | 无码人妻精品一二三区免费 | 正在播放木下凛凛88av | 噜噜噜色| 国产精品久久久久久网站 | 日韩中文字幕在线 | 日本熟妇色一本在线视频 | 色欲麻豆国产福利精品 | 乱人伦人妻中文字幕 | 人人草在线视频 | 蜜桃视频欧美 | 性色xxxxhd| 高柳家在线观看 | 五月婷在线 | 中文有码一区 | 亚洲中文字幕无码不卡电影 | 91一区在线 | 日韩欧美亚洲成人 | 久久国产精品免费 | 亚洲一区二区中文 | 97日日碰曰曰摸日日澡 | 亚洲综合无码无在线观看 | 日产a一a区二区www | 午夜啪啪网站 | 成人午夜高潮a∨猛片 | 国产精品视频久久久久 | 校园春色亚洲激情 | 一级成人欧美一区在线观看 | 久久一区二 | 亚洲欧洲日本综合aⅴ在线 国语自产偷拍精品视频偷 午夜无码区在线观看 | 日韩专区欧美专区 | 伊人久久久久久久久久久久 | 亚洲乱码av中文一区二区 | 亚洲免费视频网站 | 日本黄大片在线观看 | 国产特级全黄一级97毛片 | 国产99久一区二区三区a片 | 中文 在线 日韩 亚洲 欧美 | 国产精品夜夜夜爽阿娇 | 国产精品女同一区二区软件 | 欧美日韩精品在线观看 | 69视频免费观看 | 天堂一二三区 | 色哟哟哟www精品视频观看软件 | 中文字幕 国产精品 | 日本中文在线视频 | av免费视屏 | 欧美性免费 | 五月天丁香激情 | 少妇激情在线 | 欧美激情亚洲一区 | a级黄色毛片 | 和寡妇做爰过程a一片 | 日本三级三级三级三级 | 欧美福利视频在线 | 国产午夜亚洲精品羞羞网站 | 欧美大喷水吹潮合集在线观看 | 开心激情五月婷婷 | 男女羞羞羞视频午夜视频 | 上原亚衣av一区二区三区 | 国精产品一区一区三区有限公司杨 | 91porn在线| 少妇无码吹潮 | 欧洲大片免费 | 国产精品96久久久久久 | 女女同性女同一区二区三区91 | 人人妻人人添人人爽欧美一区 | 欧美在线免费观看视频 | 国产后门精品视频 | 精品久久久久久无码中文字幕 | 天天躁日日躁狠狠躁喷水 | 婷婷91欧美777一二三区 | 中文字幕不卡 | 午夜一区在线 | 国产精品爱久久久久久久电影蜜臀 | 欧美日韩免费做爰大片人 | 看黄网站在线观看 | 精品久久国产字幕高潮 | 成人网在线播放 | 久久久久成人网 | 精品久久久中文字幕 | 在线无| 国产精品久久久久久影院8一贰佰 | 国产一级淫片s片sss毛片s级 | 五月天丁香网 | 美女扒开奶罩露出奶头视频网站 | 国产精品国产三级国产专业不 | 亚洲理论影院 | 伊人色综合一区二区三区 | 做爰xxxⅹ高潮69网站 | 亚洲一区精品二人人爽久久 | 中文字幕有码在线观看 | 无码人妻精品一区二区在线视频 | 国产裸体歌舞一区二区 | 日韩精品一区二区三区中文 | 天堂网站| 内射人妻无码色ab麻豆 | 午夜香蕉网 | 超碰aⅴ人人做人人爽欧美 狠狠亚洲婷婷综合色香五月 | 蜜桃视频一区二区三区 | 日韩精品人妻中文字幕有码 | av影音在线观看 | 综合欧美一区二区三区 | 成年美女黄网站色大片免费看 | 老女人毛片50一60岁 | 欧美自拍偷拍一区二区 | 久久国产一二三 | www国产成人免费观看视频,深夜成人网 | 久久久久久久久久久国产 | 爱爱精品视频 | 国产麻豆91精品三级站 | 精品亚洲一区二区三区四区五区 | 日韩中文一区二区三区 | 日本免费a视频 | 色呦呦在线 | 森泽佳奈作品在线观看 | 久久亚洲国产成人精品性色 | 日本欧美在线观看 | www99精品| 国产第69页 | 中文字幕亚洲欧美日韩2019 | 性激烈的欧美三级 | 国产良妇出轨视频在线观看 | 亚洲精品白浆高清久久久久久 | 欧美毛片在线 | 精品人妻无码区二区三区 | 不卡视频一区二区 | 456av| 日韩在线观看 | 亚洲第一免费看片 | 夜夜高潮天天爽欧美国产亚洲一区 | 欧美色图片区 | 无码东京热一区二区三区 | 国产一区二区三区无码免费 | 日韩精品在线观看免费 | 亚洲国产中文在线二区三区免 | 深夜在线免费观看 | 女女同性女同区二区国产 | 亚洲高清自拍 | 那里有毛片看 | 翘臀少妇后进一区二区 | 学生丨6一毛片 | 亚洲另类中文字幕 | 欧美性潮喷xxxxx免费视频看 | 秋霞欧美视频 | 欧美精品第三页 | 亚洲色图21p | 久久精品女人天堂av麻 | 综合网伊人 | 精品久久久久久无码国产 | ass丰满少妇bsspicss | 成人狠狠色综合 | 中文字幕永久免费 | 日韩免费视频一区二区 | 天天揉久久久久亚洲精品 | 欧美在线视频精品 | 欧美成人精品一级乱黄 | 日本bbwbbw| 亚洲妇熟xxxx妇色黄 | 亚洲一区二区三区四区 | 欧美精品一区三区 | 国产视频每日更新 | 六月丁香久久 | 欧洲熟妇色xxxx欧美老妇老头多毛 | jiizzyou性欧美老片 | 国产精品va在线播放我和闺蜜 | 青青青青在线 | 久久96国产精品久久久 | 国产又大又黑又粗免费视频 | 午夜寂寞影院在线观看 | 亚洲激情自拍偷拍 | 中文字幕亚洲精品久久女人 | 精品视频一区二区三区在线观看 | 欧美无玛 | 亚洲国产高清在线观看视频 | 五月天婷婷综合网 | 91精品国产91久久久久游泳池 | 亚洲精品喷潮一区二区三区 |