日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關注中國自動化產業發展的先行者!
工業智能邊緣計算2025年會
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

控制系統的基本算法及軟件實現
  • 企業:控制網     領域:PLC /PAC/PCC/RTU     行業:綜合    
  • 點擊數:4947     發布時間:2009-12-16 14:13:56
  • 分享到:

      





    呂衛陽            

    男,工學博士,副教授,現就職于北京科技大學機械工程學院機械電子工程系,主要研究方向為工業控制及自動化和先進機電系統技術。


    摘  要:本文討論了有關控制系統的基本算法及軟件實現的若干問題。介紹了線性控制系統的8個典型環節,給出了這些典型環節的時間響應功能塊。介紹了PID控制的基本原理及離散算法,給出了能夠實現PID基本算法的功能塊BasicPID,并舉例說明。

    關鍵詞:典型環節;PID算法;軟件實現

    Abstract: Some topics on the basic algorithm and software implementation of control system are discussed in this paper. The 8 essential blocks of the linear control system are introduced, and then give the function block of their time response. The basic theory and discrete method of PID control algorithm are introduced, and then give the function block BasicPID to implement the basic PID algorithm with some example.

    Key words: Essential Block; PID Algorithm; Software Implementation

    1 控制系統典型環節的時間響應

    控制系統一般由若干元件以一定的形式連接而成,這些元件的物理結構和工作原理可以是多種多樣的。但是從控制理論來看,物理本質和工作原理不同的元件,可以有完全相同的數學模型,亦即具有相同的動態特性。在控制工程中,常常將具有某種確定信息傳遞關系的元件、元件組或元件的一部分稱為一個環節,經常遇到的環節則稱為典型環節。這樣,任何復雜的系統總可以歸結為由一些典型的環節組成,從而為建立系統模型和研究系統特性帶來方便,使問題簡化。

    在一般情況下,線性控制系統都可以由比例環節、積分環節、微分環節、一階慣性環節、二階振蕩環節、一階微分環節、二階微分環節和延遲環節等8個典型環節組成。下面分別研究這些典型環節所對應的微分方程的數值解,也即研究其時間響應的離散算法。

    以下分別給出這些典型環節的時間響應離散算法的迭代公式,采用工業自動化編程標準IEC61131-3支持的ST語言在功能塊中實現。

    1.1 比例環節

    比例環節的傳遞函數:

    所對應的微分方程:

    以采樣周期TS進行采樣,得離散化后的差分方程: 

    比例環節功能塊ProportionalBlock如圖1.1所示,其變量聲明和程序代碼如下所示。

                   

                   圖1.1   比例環節功能塊ProportionalBlock

FUNCTION_BLOCK ProportionalBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
 K: REAL;(*比例環節的比例常數,無量綱*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*比例環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=K*IN;(*比例環節的迭代公式。*)
END_IF

1.2 積分環節

積分環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:

積分環節功能塊IntegralBlock如圖1.2所示,其變量聲明和程序代碼如下所示。
 
              

                    圖1.2   積分環節功能塊IntegralBlock

FUNCTION_BLOCK IntegralBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 OUT1: REAL;(*前一個采樣周期的輸出值*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*積分環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=OUT1+IN*TS;(*積分環節的迭代公式。*)
 OUT1:=OUT;(*輸出值替換。*)
END_IF


1.3 微分環節

微分環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:

微分環節功能塊DifferentialBlock如圖1.3所示,其變量聲明和程序代碼如下所示。
 
             

                 圖1.3   微分環節功能塊DifferentialBlock

FUNCTION_BLOCK DifferentialBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
END_VAR

VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 IN1: REAL;(*前一個采樣周期的輸入值*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*微分環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=(IN-IN1)/TS;(*微分環節的迭代公式。*)
 IN1:=IN;(*輸入值替換。*)
END_IF

1.4 一階慣性環節

一階慣性環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:

一階慣性環節功能塊FirstOrderLagBlock如圖1.4所示,其變量聲明和程序代碼如下所示。

               

                   圖1.4   一階慣性環節功能塊FirstOrderLagBlock

FUNCTION_BLOCK FirstOrderLagBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
 T: REAL;(*一階慣性環節的時間常數,秒*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 OUT1: REAL;(*前一個采樣周期的輸出值*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*一階慣性環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=(TS*IN+T*OUT1)/(T+TS);(*一階慣性環節的迭代公式。*)
 OUT1:=OUT;(*輸出值替換。*)
END_IF

1.5 二階振蕩環節

二階振蕩環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:



二階振蕩環節功能塊SecondOrderLagBlock如圖1.5所示,其變量聲明和程序代碼如下所示。
 
          

           圖1.5   二階振蕩環節功能塊SecondOrderLagBlock

FUNCTION_BLOCK SecondOrderLagBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
 T: REAL;(*二階振蕩環節的時間常數,秒*)
 Zeta: REAL;(*二階振蕩環節的阻尼比*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 OUT1: REAL;(*前一個采樣周期的輸出值*)
 OUT2: REAL;(*前兩個采樣周期的輸出值*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*二階振蕩環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=(TS*TS*IN+2*T*(T+Zeta*TS)*OUT1-T*T*OUT2)/(T*T+2*Zeta*T*TS+TS*TS);(*二階振蕩環節的迭代公式。*)
 OUT2:=OUT1;(*輸出值替換。*)
 OUT1:=OUT;(*輸出值替換。*)
END_IF

1.6 一階微分環節

一階微分環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:

一階微分環節功能塊FirstOrderLeadBlock如圖1.6所示,其變量聲明和程序代碼如下所示。

            

               圖1.6   一階微分環節功能塊FirstOrderLeadBlock

FUNCTION_BLOCK FirstOrderLeadBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
 T: REAL;(*一階微分環節的時間常數,秒*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 IN1: REAL;(*前一個采樣周期的輸入值*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*一階微分環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=(IN-IN1)*T/TS+IN;(*一階微分環節的迭代公式。*)
 IN1:=IN;(*輸入值替換。*)
END_IF

1.7 二階微分環節

二階微分環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:

二階微分環節功能塊SecondOrderLeadBlock如圖1.7所示,其變量聲明和程序代碼如下所示。
 
            

              圖1.7   二階微分環節功能塊SecondOrderLeadBlock

FUNCTION_BLOCK SecondOrderLeadBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
 T: REAL;(*二階微分環節的時間常數,秒*)
 Zeta: REAL;(*二階微分環節的阻尼比*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 IN1: REAL;(*前一個采樣周期的輸入值*)
 IN2: REAL;(*前兩個采樣周期的輸入值*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*二階微分環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 OUT:=(IN-2*IN1+IN2)*T*T/TS/TS+(IN-IN1)*2*Zeta*T/TS+IN;(*二階微分環節的迭代公式。*)
 IN2:=IN1;(*輸入值替換。*)
 IN1:=IN;(*輸入值替換。*)
END_IF

1.8 延遲環節

延遲環節的傳遞函數:

所對應的微分方程:

以采樣周期TS進行采樣,得離散化后的差分方程:

延遲環節功能塊DelayBlock如圖1.8所示,其變量聲明和程序代碼如下所示。

           

                       圖1.8 延遲環節功能塊DelayBlock

FUNCTION_BLOCK DelayBlock
VAR_INPUT
 IN: REAL;(*輸入值*)
 TS: REAL;(*采樣周期,秒*)
 Delay: TIME;(*延遲的時間,秒*)
END_VAR
VAR_OUTPUT
 OUT: REAL;(*輸出值*)
END_VAR
VAR
 TimePeriod: TP;(*定時器*)
 RisingTrigger: R_TRIG;(*觸發器*)
 TONDelay: TON;(*定時器*)
END_VAR
(*采樣周期的判斷。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*延遲環節的時間響應。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 TONDelay(IN := TRUE, PT := Delay);(*調用定時器。*)
 IF TONDelay.Q THEN(*如果到達延遲的時間,則開始輸出。*)
  OUT := IN;
 END_IF
END_IF

2 PID控制的基本原理及離散算法

2.1 PID控制的基本概念

PID控制是控制工程中技術成熟且應用廣泛的一種控制策略。經過長期的工程實踐,已經形成了一套完整的PID控制方法和典型結構,不僅適用于數學模型已知的控制系統,而且對于數學模型難以確定的工業過程也可以應用。PID控制參數整定方便,結構改變靈活,在眾多工業過程控制中取得了滿意的應用效果。

在閉環負反饋控制系統中,系統的偏差信號e(t)是系統進行控制的最基本的原始信號。為了提高控制系統的性能指標,可以對偏差信號e(t)進行改造,使其按照某種函數關系進行變化,形成所需要的控制規律u(t),從而使控制系統達到所要求的性能指標,即 
 
所謂PID控制,就是對偏差信號e(t)進行“比例加積分加微分”形式的改造,形成新的控制規律u(t)。即
 

 
其中:

 是比例控制部分, 稱為比例常數;

 是積分控制部分, 稱為積分時間常數;

 是微分控制部分, 稱為微分時間常數。

在零初始條件下,將上式兩邊取拉普拉斯變換,可得


 
基于PID控制的閉環負反饋控制系統的傳遞函數方塊圖如圖2.1所示。
 
                   圖2.1   基于PID控制的閉環負反饋控制系統

2.2 PID控制的離散算法

(1)位置式算法

設采樣周期為T,將前述PID控制規律u(t)進行離散化處理,可得PID控制的第k個采樣周期的位置式離散算法u(k)為


 
其中:

比例控制部分  離散化為

積分控制部分 離散化為 。令,并稱為積分控制部分的加權系數。

微分控制部分 離散化為。令 ,并稱為微分控制部分的加權系數。

(2)增量式算法

根據PID控制的位置式離散算法,可得PID控制的第k-1個采樣周期的位置式輸出


 
將上述兩式u(k)與u(k-1)相減,可得PID控制的第k個采樣周期的增量式離散算法

于是可得PID控制的第k個采樣周期的位置式輸出u(k)為

2.3 PID控制的程序實現

功能塊BasicPID如圖2.2所示。

在功能塊BasicPID中,采用ST語言實現了PID控制的基本離散算法,其變量聲明和程序代碼如下所示,可以同時提供位置式輸出和增量式輸出。
 

                        

               圖2.2   PID控制的基本離散算法功能塊BasicPID

FUNCTION_BLOCK BasicPID
VAR_INPUT
 SP: REAL; (* Setpoint/設定點 *)
 PV: REAL; (* Process Variable/過程值,或稱Input/輸入值,或稱Feedback/反饋值 *)
 TS: REAL := 1; (* Sample Time/采樣間隔,或稱Loop Update Time/計算周期,秒 *)
 KP: REAL := 1; (* ISA Dependent Gains/ISA相關增益,無量綱 *)
 TI: REAL := 1; (* Integral Time/積分時間常數>0,秒 *)
 TD: REAL := 0; (* Differential Time/微分時間常數>=0,秒 *)
END_VAR
VAR_OUTPUT
 CV: REAL; (* Control Variable from the Current Sampling Step/當前采樣周期的位置式輸出值 *)
 dCV: REAL; (* Delta CV or CV Change from the Current Sampling Step/當前采樣周期的增量式輸出值 *)
END_VAR
VAR
 TimePeriod: TP; (* 定時器 *)
 RisingTrigger: R_TRIG; (* 觸發器 *)
 ki: REAL; (* Integral Gain/積分增益系數 *)
 kd: REAL; (* Differential Gain/微分增益系數 *)
 ev0: REAL; (* Error Variable or System Deviation from the Current Sampling Step/當前采樣周期的偏差值ev(k)=SP(k)-PV(k) *)
 ev1: REAL; (* Error Variable or System Deviation from the Previous Sampling Step/前一個采樣周期的偏差值ev(k-1)=SP(k-1)-PV(k-1) *)

 ev2: REAL; (* Error Variable or System Deviation from the Previous before Previous Sampling Step/前兩個采樣周期的偏差值ev(k-2)=SP(k-2)-PV(k-2) *)
 cv1: REAL; (* Control Variable from the Previous Sampling Step/前一個采樣周期的位置式輸出值 *)
END_VAR
(*參數的判斷與計算。*)
IF NOT(TS>0) THEN(*采樣周期必須大于0,否則將其置為1秒。*)
 TS:=1;
END_IF
IF NOT(TI>0) THEN(*積分時間常數必須大于0,否則將其置為0,表示沒有積分環節,但是應當避免被0除。*)
 TI:=0;(*如果積分時間常數為負或為0,則將其置為0,表示沒有積分環節。*)
 ki:=0;(*此時將積分增益系數置為0,表示沒有積分環節。*)
ELSE
 ki:=KP/TI*TS;(*計算積分增益系數,無量綱/秒*秒=無量綱,即離散化后此系數無量綱。*)
END_IF
IF TD<0 THEN(*可以沒有微積分環節,但是微分時間常數不能為負。*)
 TD:=0;(*如果微分時間常數為負,則將其置為0,表示沒有微分環節。*)
 kd:=0;(*此時將微分增益系數置為0,表示沒有微分環節。*)
ELSE
 kd:=KP*TD/TS;(*計算微分增益系數,無量綱*秒/秒=無量綱,即離散化后此系數無量綱。*)
END_IF
(*采樣周期的生成。*)
TimePeriod(IN:=NOT(TimePeriod.Q),PT:=REAL_TO_TIME(TS*1000));(*調用定時器。*)
RisingTrigger(CLK:=TimePeriod.Q);(*調用觸發器。*)
(*PID算法的迭代過程。*)
IF RisingTrigger.Q THEN(*在采樣時刻進行迭代計算。*)
 ev0:=SP-PV;(*計算偏差值。*)
 dCV:=KP*(ev0-ev1)+ki*ev0+kd*(ev0-2*ev1+ev2);(*當前采樣周期的增量式輸出值的迭代公式。*)
 CV:=cv1+dCV;(*當前采樣周期的位置式輸出值的迭代公式。*)
 ev2:=ev1;(*偏差值迭代。*)
 ev1:=ev0;(*偏差值迭代。*)
 cv1:=CV;(*位置式輸出值迭代。*)
END_IF

3 算法舉例

【例1】某單位負反饋控制系統如圖3.1所示,其開環傳遞函數為。試在PLC中編程計算其單位階躍響應。
 

              

                 圖3.1   單位負反饋控制系統

【解】首先將該系統的開環傳遞函數分解為典型環節的組合:


 
因此,該系統的開環傳遞函數由比例環節、積分環節和一階慣性環節的串聯所組成,其結構分解圖如圖3.2所示,在編程時可以分別調用上述典型環節所對應的功能塊。

              

                圖3.2   單位負反饋控制系統的結構分解圖

采用LD語言計算該系統的單位階躍響應,變量聲明如下:

PROGRAM PLC_PRG
VAR
 Ts1: REAL := 0.1; (* 采樣時間,秒 *)
 SP1: REAL := 1; (* 設定值 *)
 PV1: REAL; (* 過程值 *)
 ProportionalBlock1: ProportionalBlock; (* 比例環節 *)
 ProportionalBlock1OUT: REAL; (* 比例環節的輸出 *)
 IntegralBlock1: IntegralBlock; (* 積分環節 *)
 IntegralBlock1OUT: REAL; (* 積分環節的輸出 *)
 FirstOrderLagBlock1: FirstOrderLagBlock; (* 一階慣性環節 *)
 FirstOrderLagBlock1OUT: REAL; (* 一階慣性環節的輸出 *)
END_VAR

LD如圖3.3所示,單位階躍響應曲線如圖3.4所示。

                 

                      圖3.3   采用LD計算單位階躍響應

           

                     圖3.4   單位階躍響應曲線

【例2】帶有PID控制器的單位負反饋控制系統如圖3.5所示,已知 。試在PLC中編程計算其單位階躍響應。
            

                 圖3.5   帶有PID控制器的單位負反饋控制系統

【解】本例與例1所述的系統基本相同,唯一不同之處是增加了PID控制器。采用CFC語言計算該系統的單位階躍響應,變量聲明如下:

PROGRAM PLC_PRG
VAR
 Ts1: REAL := 0.1; (* 采樣時間,秒 *)
 SP1: REAL := 1; (* 設定值 *)
 PV1: REAL; (* 過程值 *)
 BasicPID1: BasicPID; (* PID控制器 *)
 KP1: REAL := 2; (* PID控制器的相關增益常數,無量綱 *)
 TI1: REAL := 3; (* PID控制器的積分時間常數,秒 *)
 TD1: REAL := 1; (* PID控制器的微分時間常數,秒 *)
 ProportionalBlock1: ProportionalBlock; (* 比例環節 *)
 IntegralBlock1: IntegralBlock; (* 積分環節 *)
 FirstOrderLagBlock1: FirstOrderLagBlock; (* 一階慣性環節 *)
END_VAR

             

                  圖3.6   采用CFC計算帶有PID控制器的單位階躍響應

               

                   圖3.7   帶有PID控制器的單位階躍響應曲線

CFC如圖3.6所示,單位階躍響應曲線如圖3.7所示。比較圖3.4和圖3.7可以看出,采用PID控制后,改善了系統的綜合性能。


                                                      ——轉自《自動化博覽》

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 91久久福利国产成人精品-91久久国产-91久久国产成人免费观看资源-91久久国产精品-91久久国产精品视频-91久久国产口精品久久久久 国产偷抇久久精品A片蜜臀A-国产偷抇久久精品A片蜜臀AV-国产偷抇久久精品A片图片-国产偷窥熟妇高潮呻吟-国产凸凹视频熟女A片-国产玩弄放荡人妇系列 | 日本成人一区,欧美日韩亚洲无线码在线观看,交换伦交,在线观看国产视频,日韩欧美视频一区,国产精品欧美一区二区三区不卡 | 中文字幕第一页亚洲-中文字幕第一页国产-中文字幕第38页永久乱码-中文字幕不卡在线观看-久久久久青草大香线综合精品-久久久久青草 | 亚洲第一视频网,久久91精品国产99久久yfo,国产精品一区二区三区免费,成人欧美一区二区三区黑人,在线观看国产精品入口,亚洲人一区 | 欧美日韩亚洲一区二区三区在线观看-欧美日韩亚洲第一区在线-欧美日韩亚洲成人-欧美日韩午夜群交多人轮换-bbwvideos欧美老妇-bbwvideoa欧美老妇 | 国产一级免费-国产一级毛片网站-国产一级毛片潘金莲的奶头-国产一级毛片大陆-日本中文字幕免费-日本中文字幕高清 | 色婷婷在线观看视频-色婷婷在线播放-色婷婷一区二区三区四区成人网-色婷婷亚洲综合-黄色免费网站在线看-黄色免费网站在线观看 | 里番acg纲手的熟蜜姬训练场-里番※琉璃全彩acg奈亚子-李亚男三级-李丽莎与土豪50分钟在线观看-中文字幕中文字幕永久免费-中文字幕在线永久 | 天堂网在线最新版www-天堂网在线资源-天堂网在线看-天堂网在线观看视频-日本精品无码特级毛片-日本精品无码一区二区三区久久久 | 久久久精品视频免费观看,非会员体验60秒试看福利区,免费福利在线观看,国内免费视频成人精品,久久久中文字幕日本,婷婷激情五月 | 中文字幕第一页亚洲-中文字幕第一页国产-中文字幕第38页永久乱码-中文字幕不卡在线观看-久久久久青草大香线综合精品-久久久久青草 | 第一区免费在线观看-无码国产精品一区二区免费网曝-AV熟妇导航网-日韩欧美一区二区三区在线观看 -欧美乱人伦视频-啪啪视频一区 | 天天噜噜色-天天看天天射天天视频-天天看天天射天天碰-天天看天天碰-国产成人高清-国产成人爱情动作片在线观看 | 国语自产视频在线一区二区-国语自产偷拍-国语自产偷拍精品-国语自产偷拍精品视-国语自产偷拍精品视频-国语自产偷拍精品视频蜜芽 99欧美在线-99碰碰-99青草-99青草青草久热精品视频-99青青-99青青草 | a级国产精品片在线观看-a级国产乱理伦片野外-a级国产乱理伦片在线观看a-a级国产乱理片在线观看-a级国产片-a级国产视频 | 四色草视频-四散的尘埃在线观看-四库国产精品成人-四虎最新网址入口-国产精品一区二区三区四区五区-国产精品一区二区三区四区 | 成人综合网久久-成人综合网亚洲伊人-成人综合网站-成人综合网站一区二区三区四区-成人综合网站在线-成人综合网址 | jizzjizz在线-jizzxxxx18国产高清-jizzxxxx18中国-jizzxxxx18中国农村-欧美高清一区-欧美高清一区二区 | 欧美精品综合-欧美精品自拍-欧美精品专区免费观看-欧美精品在线一区二区三区-欧美精品在线一区-欧美精品在线视频观看 | 国产精品麻豆入口,二区在线观看,国产精品乱码在线观看,久99频这里只精品23热 视频,人成xxxwww免费视频,久久精品a一国产成人免费网站 | 亚洲1卡二卡3卡四卡不卡-亚洲1卡2卡三卡3卡4卡网站-亚洲18gay1069-亚洲18gay video-国内精品久久久久久-国内精品久久久久激情影院 | 一级毛片在线看-一级毛片在线播放免费-一级毛片一级毛片免费毛片-一级毛片一级毛片-九九51精品国产免费看-九号影院 | 一区二区视频在线观看高清视频在线-一区二区三区无码高清视频-一区二区三区无码被窝影院-一区二区三区四区国产-久久re视频精品538在线-久久re热在线视频精99 | 国产三级高清午夜羞羞视频-国产三级高清在线观看-国产三级观看久久-国产三级国产av品爱网-国产三级国产精品-国产三级国产精品国产国在线观看 | 伊人精品国产,久久久国产精品视频,国产1页,国产精品亚洲综合一区,国产成人高清亚洲一区91,久久久一区二区三区不卡 | 丝袜国产一区,美女网站一区二区三区,国产精品免费观看视频,国产乱了真实在线观看,视频一区久久,国产成人成人一区二区 | 欧美中出,国产欧美又粗又猛又爽老,日本啊v,欧美日韩欧美,国产va在线观看,国产一区二区三区在线视频 | 久久久精品国产sm最大网站-久久久精品国产免大香伊-久久久精品国产免费A片胖妇女-久久久精品久久久久久96-久久久精品久久久久久久久久久-久久久精品久久日韩一区综合 | 日本xxxxx18护士xxx-日本xxxxwwww-日本xxxx1819黑人-日本xxxbbb0oo-国产精品免费看久久久-国产精品免费久久久免费 | 天天噜噜色-天天看天天射天天视频-天天看天天射天天碰-天天看天天碰-国产成人高清-国产成人爱情动作片在线观看 | 美女三级毛片-美女牲交视频一级毛片无遮挡-美女视频大全视频a免费九-美女视频黄a视频全免费网站色窝-美女视频黄的全是免费-美女视频秀色福利视频 | 性欧美高清精品video-性欧美高清videofree-性欧美俄罗斯-性欧美xxxx乳高跟-国产真实乱偷人视频-国产真实乱了全集mp4 | 久久精品一区二区三区不卡牛牛,国产片精品电影www,久久久久久97,www奇米,好姑娘中文在线播放,美女被羞羞视频网站在线 | 香蕉成人啪国产精品视频综合网-香蕉草草久在视频在线播放-香蕉a视频-香蕉69精品视频在线观看-国产视频1区-国产视频1 | 亚洲 欧美 日韩 在线,97热久久免费频精品99国产成人,另类激情亚洲,久久99九九精品免费,久久综合精品国产一区二区三区,2020精品极品国产色在线观看 | 中文高清无码人妻-中文超碰中文字幕-中日韩一卡二卡三卡四卡在线观看-中日韩精品卡一卡二卡3卡-制服丝袜中文在线-制服丝袜在线观看 | 一道本在线,国产成人综合精品一区,亚洲v日韩v欧美在线观看,欧美精品国产综合久久,精品日本一区二区三区在线观看,久久精品一区二区三区不卡牛牛 | 国产精品高潮呻吟AV久久-国产精品高潮呻吟AV久久床戏-国产精品高潮呻吟AV久久动漫-国产精品高潮呻吟AV久久黄-国产精品高潮呻吟AV久久无码-国产精品高潮呻吟爱久久AV无码 | 欧美人成在线视频-欧美人成一本免费观看视频-欧美人xxxxxbbbb-欧美区在线-在线不卡免费视频-在线播放周妍希国产精品 | 韩国三级一区-韩国三级香港三级日本三级la-韩国三级香港三级日本三级-韩国三级视频网站-日韩欧美一及在线播放-日韩欧美一二三区 久久久久久久久国产-久久久久久久久97-久久久久久久国产视频-久久久久久久国产精品影院-午夜精-午夜寂寞院 | 佐藤遥希在线播放一二区-佐山爱巨大肥臀在线-佐山爱痴汉theav-佐良娜被爆漫画羞羞漫画-麻豆视频传媒二区-麻豆视频传媒 |