999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于深度強化學習與流固耦合技術的魚類自主游動行為模擬

2022-12-19 12:54:48李濤張春澤但云峰趙旭
科學技術與工程 2022年32期
關鍵詞:智能

李濤,張春澤*,但云峰,趙旭

(1.重慶交通大學西南水運工程科學研究所,重慶 400010;2.重慶交通大學水利水運工程教育部重點實驗室,重慶 400074;3.重慶西科水運工程咨詢中心,重慶 400074)

魚類身體兩側的側線感受器官對水流的刺激尤為敏感,能幫助魚確定水流的速度和識別方向,從而使其在復雜的流場環境下完成捕食運動或者以選擇更省力的游泳動作[1]。此類自主決策行為對魚類生存和繁衍有著重要意義,一直是生態學與仿生領域的研究重點。馮億坤等[2]基于計算流體力學(computational fluid dynamics,CFD)方法建立了魚類游動流固耦合模型,模擬了機器仿生魚巡游游動,并系統分析了迅游過程中魚體的受力和反卡門渦街的變化情況。胡瑞南等[3]基于Fluent的用戶定義函數(user-defined function,UDF)動網格技術模擬了不同尾巴擺動模式的機器魚周身的流場壓力及魚體受力等水動力性能,解釋多關節機器魚的相對優勢。Wolfgang等[4]通過求解速度勢的Laplace方程和壓力的非定常Bernoulli方程,研究了游動的巨型斑馬魚的流場。Ramamurti等[5]采用動態非結構網格技術模擬魚胸鰭拍打過程,分析魚周流場和魚體受力。上述研究為魚類游動數值模擬實驗提供了豐富的數值模擬經驗和研究成果,但從研究手段本身來看,只能模擬魚體的被動運動,無法實現魚體根據流場與目標對運動行為的主動控制。

為實現對魚類自主行為決策的模擬,有學者引入人工神經網絡的方法對魚類游泳進行數值研究[6-7],該方法通過對大量已有游泳樣本的學習進化出合理的、穩健的游泳策略,但需要大量的實際觀測數據,觀測數據的獲取需耗費大量人力物力。為此,又有學者嘗試采用深度強化學習算法來作為魚類游動數值模擬的控制器[8-9],并結合傳統數值模擬方法耦合流場,此類方法能自動生成學習所需的經驗樣本,克服了傳統人工神經網絡法需要大量實際觀測樣本的缺陷,并且實踐成本低、魯棒性強,能夠實現自優化。

基于此,通過浸沒邊界格子Boltzmann方法實現魚體游動流固耦合數值模擬模塊,提供訓練數據和執行游動指令;基于PyTorch機器學習庫,選取DQN(deep Q network)深度強化學習算法實現魚腦訓練學習和決策任務,建立一個智能魚訓練、決策、執行耦合平臺,最后通過新建平臺,對魚類典型捕食運動以及卡門游動由易到難的訓練與模擬,并分析該平臺的可靠性與實用價值。

1 流體、固體控制方程與數值解法

魚體與流場之間的互饋作用通過浸沒邊界LB(Lattice Boltzmann)流固耦合方法進行模擬,實時將魚體狀態與流場信息反饋給深度強化學習模塊進行訓練,根據訓練結果作出下一時刻魚體決策。

1.1 浸沒邊界LB方法

浸沒邊界LB方法是一種高性能、高精度的流固耦合模擬方法,該方法屬于基于Lagrange觀點捕捉運動界面,非常適用于模擬魚類游動、昆蟲振翅、心臟搏動等柔性結構的大變形流固耦合問題,已在許多流固耦合問題上獲得了較為成功的應用[10-11]。

在浸沒邊界-格子Bolzmann法中,流體運動由離散的格子-Bolzmann方程控制,方程右端的力項采用Cheng格式,可表示為

(1)

對于浸沒邊界,則采用拉格朗日法可表示為

(2)

(3)

式中:Ωf為流體區域;Γb為浸沒邊界;s為浸沒邊界的體型長度;x、f、u分別為流體節點的坐標、體積力、速度,是定義在流體區域Ωf上的歐拉變量;X、F、U分別為浸沒邊界的節點坐標、作用力線密度和速度,是定義在浸沒邊界Γb上的拉格朗日變量;δ為狄拉克函數,是流固耦合實現的關鍵函數,它既可以將式(2)中的流體速度u插值得到浸沒邊界U的速度,也可以將式(3)中浸沒邊界的作用力F擴散至周圍的流體節點得到f。

在浸沒邊界法里,F的計算精度會影響無滑移邊界條件的滿足程度,根據文獻[10]提出的方法,浸沒邊界作用力通過一系列迭代修正,來逼近真實值,其計算公式為

(4)

式(4)中:n為迭代步數;Ud(s,t)為浸沒邊界在流體中的實際速度;Un(s,t)為第n迭代步的臨時速度;Fn(s,t)為第n迭代步的力項;Δt為時間步長。

通過式(4),可以不斷計算迭代后的F(s,t)值,然后將最終迭代完畢的F(s,t)值添加到格子Bolzmann方程[式(1)]中。

對于浸沒邊界法的流固耦合問題,需要考慮浸沒邊界的平動以及轉動,控制方程為

(5)

(6)

模擬真實魚類的運動,需要以魚體運動方程控制魚體(即浸沒邊界),并將波動從笛卡爾坐標系轉換到魚體運動的隨體坐標系中。不考慮除尾鰭外其他魚鰭的直接作用,簡化后鯵科類魚體波曲線可表示為[3]

(7)

(8)

(9)

1.2 深度強化學習算法

深度強化學習算法因其交互學習性、魯棒性、決策穩健等優點,近年來已廣泛應用于電力系統優化[12]、分布式傳感網絡[13]、智能棋類運動[14]、無人駕駛[15]、各類機器人控制[16]、調度科學[17]等領域,成為通用人工智能(artificial intelligence,AI)的解決方案之一。

其中,強化學習(RL)是一種通過不斷與環境互動從而自提升的算法,最終目的是為了找到當前環境下的最優策略。評價強化學習訓練效果的客觀指標為智能體在與環境互動時獲得的獎勵多少,主觀指標為智能體是否按照預期效果完成給定的任務。如果智能體在訓練回合內獲得獎勵數越多,說明智能體學習到了按照期望設定的行動策略,在此策略下行動的智能體就越有可能完成給定的任務。設狀態為sstate,行動為a,在基于策略π選擇行動的情況下,行動的概率為π(a|sstate),最優策略要使得當前行動的價值最大化,有

(10)

式(10)中:π(a|sstate)為狀態sstate下的最優策略;Q(a|sstate)為狀態sstate下采取動作a的價值;A為所有動作的集合。

傳統的Q學習的策略價值通常用Q函數來表示,Q(st,at)的迭代更新過程為

Q(st,at)←Q(st,at)+αlearn[rt+1+

(11)

式(11)中:Q(st,at)為Q函數;rt+1為獎勵值;αlearn為學習率;γ為折扣系數。

為了應對傳統強化學習算法使用表格儲存狀態而導致的維數災問題,學者們將深度學習技術應用到了強化學習中,并使得強化學習的性能取得了突破性進展。深度學習(DL)是一種機器學習模型,能夠學習數據的內在規律和表示層次。相對于傳統的機器學習方法而言,深度學習可以通過多層神經網絡進行多次特征轉換,獲取數據表示的高維特征。深度強化學習則結合了深度學習的感應技能與強化學習的決策技能,它通過強化學習與環境進行互動,根據環境獲得的反饋對深度學習參數進行調整。DQN算法作為深度強化學習算法的一種,具有以下特性:①利用神經網絡生成每個動作Q價值;②通過記憶庫實現經驗回放機制,更加貼近現實中大腦的概念;③用目標網絡和估計網絡兩套神經網絡進行訓練,并且隔一段時間利用估計網絡來更新目標網絡的參數,切斷了神經網絡的實時相關性,并提升了網絡性能。

2 建立流體求解器與深度強化學習的耦合平臺

2.1 耦合框架

整個耦合框架分為智能魚大腦、智能魚肉體和流場生境,具體為:①智能魚大腦經過學習訓練后通過最優決策發出動作信號控制智能魚肉體;②智能魚肉體接收動作信號,并在流場生境中采取相應動作;③通過流固耦合模塊計算流場、魚類當前狀態等信息后,流場生境傳遞當前時刻的狀態信息和獎勵信號給智能魚大腦作為環境反饋;④重復①~③,整個過程形成閉環控制,圖1為耦合系統框架。

圖1 耦合系統框架

2.2 耦合流程與偽代碼

考慮到科學計算效率問題,用于模擬魚體運動與周圍流場環境的模塊代碼通過C++語言編寫;考慮到代碼開發難度,深度強化學習訓練與決策模塊代碼通過Python語言編寫。同時,為保證訓練與執行過程的智能化與連續性,使智能體能夠通過與環境互動,以進行自動“強化”,采用Windows 共享內存技術實現不同語言不同模塊的進程通信,耦合系統的偽代碼如下。

初始化超參數初始化目標網絡參數θ和估計網絡的參數θ′1:For episode = 1:Ndo2: C++端初始化流場、魚體狀態信息sstart,Python端初始化系列超參數3: For time = 1:Tdo4:C++端將sstart傳遞給Python端,然后Python端根據sstart獲得一動作a,并把a傳遞給C++端;5:C++端根據a求解Δt時間步后,記錄下當前狀態s′、獎勵r,并打包發送給Python端;6: Python端將記憶矩陣[s,s′,a,r]存入記憶庫、M,并更新:s←s′7: Python端從記憶庫取出batch批數量的樣本進行訓練,根據Ad-am優化算法更新估計網絡參數8:Python端每隔Δt′時間步,將估計網絡的參數θ拷貝到目標網絡θ′11: End for12: Python端將訓練后的神經網絡和記憶庫儲存到本地磁盤,方便后期調用13:End for

整個算法的時間復雜度為O(n2),在可接受的范圍內。

3 流固耦合模塊驗證-小球下沉問題

在所搭建的系統平臺中,流固耦合模塊是訓練場景預設和方案執行的承擔者,其數值精度與模擬效果直接影響到深度強化學習過程有效性。為此將采用經典小球入水下沉算例對其進行驗證。

相關參數設置參考了文獻[11]中的小球下落案例,流場區域為寬2 cm、高8 cm的矩形,離散為201×801的均勻網格。水體的運動黏度為υ=1×10-6m2/s,密度ρ=1 000 kg/m3。重力加速度g=9.80 m/s2。兩個半徑均為0.1 cm的等大小球同時釋放,二者初始時刻位置分別為[0.999 cm,7.2 cm]和[1 cm,6.8 cm],釋放之后小球將因重力作用下沉。小球密度ρs=1 010 kg/m3,均離散為125個拉格朗日點。為確保計算代碼不會因小球運動控制方程剛性而失穩,此處使用高階精度變步長Gear積分方法更新小球運動軌跡。

根據前人實驗的結果,靜水中兩小球下沉會經歷一個DKT(drafting,kissing,tumbling)的經典運動學過程。如圖2所示,在接觸階段之前,小球維持一定距離運動,這一階段被稱為追逐階段,持續到約0.8 s;之后兩小球開始緩慢靠近并于約1.5 s碰撞在一起,進入接觸階段,之后在碰撞力的作用下,兩球緩慢遠離中軸線向水槽兩側運動,在2.5 s時,小球進入碰撞翻滾階段。從圖3、圖4可以看出,本次模擬的結果與吳家陽等[11]、Feng等[18]的結果基本一致,可以說明數值計算模塊的可靠性。

圖2 小球DKT典型運動過程

圖3 小球橫坐標隨時間變化

圖4 小球縱坐標隨時間變化圖

4 魚類典型游泳行為的強化學習實驗

針對擬定的運動情境,通過深度強化學習模塊和流體求解器模塊的不斷交互,以提升深度神經網絡的性能,觀察智慧魚是否能以預期目標完成游泳任務,并分析所建耦合平臺的使用效果。

4.1 實驗環境介紹

實驗所使用的硬件環境和軟件環境如表1所示。

表1 硬件及軟件環境配置

在魚類捕食運動的訓練實驗中,較小的深度神經網絡學習率能夠保證訓練結果的可靠性,設置學習率αlearn=0.001,時間折扣因子是強化學習的一個超參數,設置得越大,智能體越具有考慮長遠未來獎勵的能力,設置γ=0.99,Epsilon-Greedy貪婪因子設置為0.1,單批次訓練處理樣本數Batch size=32。深度神經網絡總層數為5層:其中輸入層節點數為4;隱藏層共3層,每層節點數128;輸出層節點數為3。給神經網絡投喂狀態矩陣[s1,s2,…,sn],就可以從輸出層得到每個動作的動作價值矩陣[Qa1,Qa2,…,Qan]。強化學習模塊的獎勵規定如下。

(1)對于捕食游動,若智能體與食物的夾角逐漸減小,說明魚體行進在正確的軌跡上,則獎勵為+1,反之獎勵為-1;若智能體能夠成功獲取食物,則獎勵為+20,如果智能體碰到邊壁或吃到食物,則回合結束。

(2)對于卡門游動,總的獎勵被分解為獎勵1和獎勵2:對于獎勵1,其大小與魚體游泳所消耗的能量成反比,游泳消耗能量越多,獎勵越低,對于獎勵2,如果魚體在一個擺尾周期內前進或者后退了50個格子單位,則說明當前的采取的游泳策略無法在流場中維持穩定的游動,獎勵為0,反之獎勵為+1。

對于流體求解器模塊,為方便展示計算結果,將所有物理單位換算成無量綱格子單位,并以“*”表示實驗中的無量綱參數,采用500×200正交笛卡爾網格離散計算域,網格數量共100 000。水體密度ρ*=1,采用NACA0012流線翼型表示魚體,同時用999個拉格朗日點離散魚體,考慮魚體在浮游的時候魚泡充水,實際密度與水接近,故取密度為1.05。在求解過程中,魚尾的擺動參數則由魚體自主決策,魚類推進參數由使用式(5)、式(6)求得水體對魚的合力及合力矩。

4.2 捕食游動

在此算例中,魚體在靜水流場中捕食,目的是通過訓練讓魚體能夠以不同的初始偏角度出發、同時以最優路徑(路程最短)吃到食物。

本次訓練共設置4種工況,不同工況賦予不同的初始偏角度,分別為-10°、+10°、+20°、+30°,詳細的工況設置如表2所示,偏角度的定義是魚體質心與食物中心的連線和魚體前進方向的夾角,角度符號的定義如圖5所示。

表2 不同工況下的初始偏角度

θ(+)為魚體質心和食物連線的夾角沿順時針旋轉得到當前魚體前進的方向矢量;θ(-)為魚體質心和食物連線的夾角沿逆時針旋轉θ°得到當前魚體前進的方向矢量

智能體每回合訓練獲得的獎勵如圖6所示,值得注意的是,本算例中首先使用-10°的初始偏角進行訓練,然后將訓練好的魚給予不同的初始偏角,以驗證訓練結果的可靠性,所以工況二~工況四的獎勵一開始就能達到很高的水平。在工況一的訓練條件下(圖6),前兩個回合,未學習的魚體獲得獎勵極少,而自第二回合后,魚體獲得的獎勵產生一個陡增趨勢,說明神經網絡經過兩個回合的自優化已經學習到了一定知識,經過學習魚體能夠在捕食環境中取得較高獎勵。可見,合理設置獎勵、觀測狀態以及神經網絡權重歸一化都有助于加速神經網絡的收斂,這也是本算例中魚體僅用兩個回合就優化到良好狀態的原因。不同工況下魚體的代表運動軌跡如圖7所示,以魚頭頂點作為監測點,訓練之后,相對于食物具有不同初始偏角的魚體都能夠

虛線圓圈為預先設定好的智能體的運動目標終點

虛線圓圈為預先設定好的智能體的運動目標終點

以最優軌跡小幅度迂回到達目標點。在自然界,水生生物、飛行器以及水下航行器等的推進過程中,經常從其尾跡中可以觀察到一系列尾渦結構,而它們常常利用這些結構來實現自推進,降低運動過程中的能量損失。魚體靜水捕食時的流場渦量云圖如圖8所示。

t*為無量綱時間

為了使魚體嘗試更加富有挑戰性的捕食任務,令食物在魚游動的同時改變位置,模擬食物運動時魚類的捕食情況,但不考慮食物對流場的水動力學影響,除此之外,食物的初始位置以及魚體初始偏角均與前述靜水問題相同。

本例同樣使用初始偏角為-10°的工況進行訓練,并將訓練好的網絡施用于不同偏角工況。魚體訓練獲得的獎勵如圖9所示。在工況一下,前兩回合,魚體基本未獲得獎勵,但第二回合之后,魚體的獎勵有和3.2節相同的趨勢,在第8回合后,魚體獲得的獎勵的平均水平顯著高于前8個回合,說明網絡已訓練成熟,魚體能夠在食物運動的環境下獲得較高的獎勵。

圖9 智能體訓練每回合獲得的獎勵數

圖10繪制了食物運動時、不同初始捕食角度魚體的運動軌跡。當魚體發現目標在移動時,會實時對自身與食物相對位置進行判斷,及時調整運動狀態以至于能夠在當前環境中獲取最大的獎勵,保證自身處于距食物最近的路徑上,最后順利獲取食物。

虛線圓圈為預先設定好的智能體的運動目標終點

需要說明的是,所建的深度強化學習模塊還相對初級,魚腦并無對食物運動軌跡預判的能力。此處魚體能夠吃到食物,很大程度上要歸因于食物運動速度較魚體更低。

4.3 卡門游動

已有實驗表明,當雷諾數Re在300~150 000時,流體經過靜止的障礙物會產生一系列漩渦尾跡,稱為卡門渦街[19]。在卡門渦街中,魚類游泳時會采用一種全新的游泳步態,以同步自身身體的運動與旋渦脫落頻率從而達到節省能量的目的,這種獨特的運動模式被稱為卡門步態,其特點是尾拍頻率較低,身體具有較大的側向位移[20],研究魚類的卡門游動可以解釋魚類游泳的節能機制。本算例中,流場特征雷諾數為300,上游為速度入口邊界,在距離上游100格子單位處放置一直徑為40格子單位的柱子,速度入口無量綱流速U*=0.15,下游為自由出流邊界,上下壁面均為無滑移邊界,渦街漩渦脫落頻率fstreet為0.001。計算目的是通過訓練讓魚體找到在非定常漩渦流場中最佳的尾拍頻率,從而在渦街中進行更加穩定、節能的游動,對于復雜流場下的游動,需要合理設置獎勵函數才能保證訓練的合理性與可靠性,智能體才能按照預期目標完成指定的游泳任務。此處獎勵函數的設置同時考慮了魚在流場中游動耗費的能量和魚在流場中保持的位置。

圖11為每回合訓練魚體獲得的獎勵圖,由于流場環境復雜,卡門游泳的魚體獎勵圖相對于捕食運動算例并不穩定,獎勵在第10回合后出現了較為劇烈的波動,但后半段獎勵的平均值仍然要遠遠高于前5回合的獎勵值,說明魚體通過訓練學習到了正確的游泳策略。魚體一個尾拍周期內的運動的渦量云圖(圖12)可知,魚體經過訓練后能夠以比較穩定的步態在渦街中運動,魚體尾拍頻率約為0.001,與渦街脫落頻率一致。

圖11 卡門游動算例智能體訓練每回合獲得的獎勵數

t為魚體當前的運動時間;T為魚體的尾拍周期

從魚體游泳位置的決策上來看,魚體為了節省游泳能量,會選擇在兩排渦街的夾縫區域進行游動,從而利用渦街中交替的漩渦獲取能量;從魚體尾拍頻率的決策來看,選擇與渦街脫落頻率一致的尾拍頻率能夠幫助魚體交替利用前后漩渦的能量,對漩渦能量的利用率能夠達到比較高的水平。

設置與卡門游動同樣的流場邊界條件,不設置D柱,開展魚體自由游動研究。此時魚體趨流運動,通過主動提高擺尾頻率和出力來維持在流場中的游泳位置。

圖13展示了魚體卡門游動和自由游動時的魚體瞬時功和總功。自由來流工況下的魚瞬時功更大,并且瞬時功峰值間距相對于卡門游動工況下間距更小,說明魚體在該工況下采用了更高的擺尾頻率,來獲得更大的出力。在整個游泳過程中,卡門游動工況下魚體無量綱總出力為55.13,自由來流工況下魚體無量綱總出力為169.21,是卡門游動工況總出力的306.9%,可見魚體在采用卡門步態時能大幅減少做功出力。這種節能高效的游動方式可使魚體能夠利用渦街中漩渦的低渦量高流體剪切應力區節省游動能量。

圖13 魚體在不同來流條件下游動的做功

5 結論

建立了一個基于深度強化學習與流固耦合數值模擬的智能魚訓練、決策、執行平臺。通過浸沒邊界格子Boltzmann方法實現魚體游動模擬,提供訓練數據和執行游動指令,通過DQN深度強化學習算法實現魚腦訓練學習和決策任務。利用該平臺對鯵科魚的捕食游動和卡門游動進行模擬,得出如下主要結論。

(1)耦合計算流體力學與計算機人工智能方法研究魚類行為學問題。所搭建的平臺采用C++/Python混合編程,兼具高性能運算效率、易于開發維護的特點,同時采用模塊化編寫函數,易于后期的更新和功能的完善。

(2)經過大量的訓練,實現了智能體的捕食游動以及卡門游動實驗。在捕食游動實驗中,魚體能夠以不同初始偏角度以最優路徑到達食物所在位置,說明強化學習模型收斂性良好;在卡門游動實驗中,魚體的尾拍頻率接近渦街脫落頻率,并以極其穩定的步態在渦街中運動,從功能關系角度的分析表明魚體采用此步態更節省能量。

(3)深度強化學習算法可以通過不斷與虛擬環境之間互動以進行高效率、自主學習,同時,數值求解器可在短時間內生成大量用于強化學習模塊的訓練數據,無須再通過實驗等方式獲取。深度強化學習技術和數值模擬技術相結合,可為水利工程、生態環境工程等領域的數字孿生提供技術支持。

猜你喜歡
智能
智能與自主
讓紙變得智能
一種智能微耕機的研發
智能制造 反思與期望
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來
商周刊(2018年18期)2018-09-21 09:14:46
爭渡智能石化
能源(2018年4期)2018-05-19 01:53:44
主站蜘蛛池模板: 亚洲精品无码AV电影在线播放| 亚洲天堂免费在线视频| 91成人在线观看视频| 日本a∨在线观看| 国产一区二区三区免费观看| 国产chinese男男gay视频网| 国产女同自拍视频| 国产在线一二三区| 欧美国产日韩在线观看| 免费看a毛片| 国产91精选在线观看| 国产精品网址在线观看你懂的 | 成人va亚洲va欧美天堂| 中文字幕在线永久在线视频2020| 精品久久蜜桃| 国产91小视频在线观看| 网友自拍视频精品区| 精品一区二区三区中文字幕| 国产一区二区福利| 99视频在线免费| 69av免费视频| 色噜噜中文网| 久久综合伊人77777| 色综合天天视频在线观看| 国产成人91精品免费网址在线| 国产手机在线ΑⅤ片无码观看| 乱码国产乱码精品精在线播放| 无码AV高清毛片中国一级毛片| 国产精品不卡永久免费| 精品国产www| 国产黑丝视频在线观看| 精品视频第一页| 婷婷99视频精品全部在线观看| 天天色天天综合| 日韩高清中文字幕| 欲色天天综合网| 夜夜操天天摸| 成年片色大黄全免费网站久久| 白丝美女办公室高潮喷水视频| 5555国产在线观看| 97视频在线观看免费视频| 国产欧美在线观看一区| 国产天天射| 亚洲青涩在线| 日韩毛片视频| 无码视频国产精品一区二区| 亚洲无码精彩视频在线观看| 手机在线看片不卡中文字幕| 日韩色图区| 91精品免费久久久| 99re在线视频观看| 国产成人调教在线视频| 国产无码在线调教| 青草午夜精品视频在线观看| 亚洲国产成人综合精品2020| 91色爱欧美精品www| 亚洲国产精品日韩欧美一区| 国产成人精品2021欧美日韩| 香蕉国产精品视频| 亚洲手机在线| 亚洲午夜综合网| 欧美啪啪网| 99热国产这里只有精品无卡顿"| 91亚洲视频下载| 亚洲午夜片| 在线播放91| 成人免费网站久久久| 成人一级免费视频| 美女被狂躁www在线观看| 99激情网| 国产麻豆精品在线观看| 福利国产微拍广场一区视频在线| 国产精品欧美激情| 中文成人无码国产亚洲| 97色伦色在线综合视频| 国产区成人精品视频| 久久精品国产精品青草app| 国产理论最新国产精品视频| 一个色综合久久| 亚洲视频免费在线看| 久久精品这里只有精99品| 日本在线国产|