基于数据与机理相混合的催化重整过程建模方法

文档序号:1818166 发布日期:2021-11-09 浏览:14次 >En<

阅读说明:本技术 基于数据与机理相混合的催化重整过程建模方法 (Catalytic reforming process modeling method based on mixing of data and mechanism ) 是由 张涵羽 江爱朋 王浩坤 黄秋云 林雅媚 于 2021-05-31 设计创作,主要内容包括:本发明公开基于数据与机理相混合的催化重整过程建模方法。建立机理模型;将机理模型进行离散,得到离散模型;采用能够求解大规模NLP问题的求解器对离散模型进行动态模拟,得到实测无法获取的反应器内部参数;构建数据模型,训练时采用神经网络学习方式;最后,训练好的数据模型以催化重整过程中反应器的输入实测值和动态模拟后的机理模型输出为输入,根据其输出与催化重整过程中反应器的输出实测值相比较,若差值大于阈值,则重新优化机理模型,反之则结束,得到所需的机理模型和数据模型相结合的催化重整过程模型。该方法弥补了机理建模与数据建模各自的不足之处,提高了催化重整过程模型的通用性与适应性。(The invention discloses a method for modeling a catalytic reforming process based on mixing of data and mechanisms. Establishing a mechanism model; dispersing the mechanism model to obtain a discrete model; dynamically simulating the discrete model by adopting a solver capable of solving a large-scale NLP problem to obtain internal parameters of the reactor, which cannot be obtained in actual measurement; constructing a data model, and adopting a neural network learning mode during training; and finally, the trained data model takes the input measured value of the reactor in the catalytic reforming process and the mechanism model output after dynamic simulation as input, the output of the trained data model is compared with the output measured value of the reactor in the catalytic reforming process, if the difference value is larger than a threshold value, the mechanism model is re-optimized, otherwise, the mechanism model is finished, and the catalytic reforming process model combining the required mechanism model and the data model is obtained. The method makes up the respective defects of mechanism modeling and data modeling, and improves the universality and the adaptability of the catalytic reforming process model.)

基于数据与机理相混合的催化重整过程建模方法

技术领域

本发明属于自动控制技术领域,涉及一种基于数据与机理相混合的催化重整过程建模方法。

背景技术

催化重整是炼油工业主要的加工工艺之一,也是解决高辛烷值汽油、芳烃原料短缺的有效方法之一。只有建立更加准确的模型,才会使催化重整装置运行的更好,也会使得产率提高,得到更好的经济收益。

重整反应的过程是重整进料与循环氢混合,并与重整反应产物进行换热,换热后进入加热炉加热到一定的温度后,进入第一个重整反应器进行重整反应,生成重整反应产物从第一个重整反应器出来后再进入加热炉加热到一定的反应温度后进入第二个重整反应器进行重整反应,依次循环直到第四个重整反应器。

针对此工艺流程在机理建模方面,国外已有很多成熟的机理建模软件,例如AspenPlus,ProⅡ,UniSim等。国外的这些建模软件,是为了针对其自己国家的实际情况所建立的,且其软件内部的机理是严格保密的,无法获取到,这就导致了其中存在的一些模型针对国内的实际情况来说不一定适用,因此建立出符合我国内实际情况的机理模型是十分必要的。机理模型的优点是可以很好的获得内部的参数,且参数易于调整,模型具有很强的适应性,但是其难点在于催化重整过程内部过于复杂且有些参数无法获得,因此机理模型想要建立的准确非常困难,此外在优化求解中还需要采用大规模的求解器,求解速度较慢。

近些年来,随着机器学习、人工智能等技术的发展,国内外很多专家学者逐渐运用此类技术来建立催化重整过程的数据模型,以此来克服传统机理建模方法的不足,其建立的数据模型可以看为一个黑箱模型,此模型不需要对机理过程的内部结构了解太多且不需要求解器,但是仅使用数据模型的话,如果数据未来的变化一旦超出一定的范围,此类模型的可靠性将会大幅度下降。

随着世界能源短缺以及越来越激烈的国际市场竞争,与发达国家同类企业相比,国内企业普遍存在着生产成本高,经济效益差等问题。因此,若可以建立较为通用且准确的模型,不仅可以节省资金,还可以提高市场竞争力。基于机理模型与数据模型各自存在的问题,本发明给出了一种基于数据与机理相混合的催化重整过程建模方法,该方法采用机理建模、神经网络学习相结合的方式,为建立出符合实际需求的催化重整过程模型提供了有利的保障。

发明内容

本发明的目的是针对现有的催化重整过程中机理建模与数据建模的各自存在的缺点,提出了一种机理模型与数据模型相混合的建模方法。

本发明依据重整动力学、热力学、物料平衡、能量平衡等基本原理,建立了较为完备的机理模型;为了使得机理模型与实际生产过程达到一致,根据实际工厂的输入数据,采用内点法的参数校正方法来对模型参数进行优化;将优化后机理模型进行离散,得到离散模型;采用能够求解大规模NLP问题的求解器对离散模型进行动态模拟,得到实测无法获取的反应器内部参数;构建数据模型,训练时采用神经网络学习方式;最后,训练好的数据模型以催化重整过程中反应器的输入实测值和动态模拟后的机理模型输出为输入,根据其输出与催化重整过程中反应器的输出实测值相比较,若差值大于阈值,则重新优化机理模型,反之则结束,得到所需的机理模型和数据模型相结合的催化重整过程模型。

该方法弥补了机理建模与数据建模各自的不足之处,提高了催化重整过程模型的通用性与适应性。

一种基于数据与机理相混合的催化重整过程建模方法,该方法主要步骤如下:

步骤1、依据重整动力学、热力学、物料平衡、能量平衡等基本原理,建立机理模型;

步骤2、为了使得机理模型与实际生产过程达到一致,根据催化重整过程中反应器的输入实测值,采用内点法的参数校正方法来对步骤(1)机理模型的模型参数进行优化;

步骤3、将步骤(2)优化后机理模型进行离散,得到离散模型;采用能够求解大规模NLP问题的求解器对离散模型进行动态模拟,得到实测无法获取的反应器内部参数;

步骤4、构建数据模型,训练时采用神经网络学习方式,以催化重整过程中反应器的输入实测值和动态模拟后的机理模型输出为输入,以催化重整过程中反应器的输出实测值为输出;其中催化重整过程中反应器的输入实测值为重整进料各集总组分含量、催化剂含量等,催化重整过程中反应器的输出实测值为反应器输出产物含量等。

步骤5、训练好的数据模型以催化重整过程中反应器的输入实测值和动态模拟后的机理模型输出为输入,根据其输出与催化重整过程中反应器的输出实测值相比较,若差值大于阈值,则返回步骤2,反之则结束,得到所需的优化后机理模型和数据模型相结合的混合模型。

所述的步骤1具体的实施步骤如下:

重整反应器是整个重整装置中的核心部分,机理建模最关键的部分就是针对重整反应器的建模,集总方法是反应器建模的必然选择。本发明将反应物料划分为33集总,其中集总的划分主要为烷烃、环烷烃、芳烃、烯烃、氢气等,根据其反应过程可以得出39个反应速率方程,如下所示:

烷烃脱氢反应(可逆):

环烷烃脱氢反应(可逆):

芳烃氢解反应:

烷烃加氢裂化反应:

其中为第jz个反应的反应速率;YP、YN、YA分别为烷烃、环烷烃、芳烃的摩尔流量;VC为催化剂装填量;F为进料体积流量;Kepj为第jz个反应平衡常数;为反应速率常数,其表达式为:

其中为反应频率因子;分别为反应活化能和压力指数;压力指数下反应物中的氢分压;R'为摩尔气体常量;T为反应温度;为催化剂活性因子;为重整反应器装置因子。

本发明连续重整工艺采用常用的径向反应器,径向反应器物流通过反应器的压力降比轴向反应器小,有利于减小临氢系统的压力降。结合物料平衡和能量平衡原理,可得到重整反应器模型方程组:

其中为33集总组分的摩尔流量;R为径向反应器床层半径;H为反应器高度;液时空速LHSV=F/Vc为各集总组分的化学计量系数矩阵;为反应热向量;为恒压比热容向量;为重整反应的反应速率向量;

由于因此重整反应器机理模型方程组可以改写为:

其中为反应速率常数矩阵。

重整反应器机理模型见方程组(7)中的基础物性数据具体如下:

在重整模拟过程中,必要物性数据的获取是模型计算的前提条件,这些数据的准确性对模拟精度有非常大的影响。一些热力学性质数据是必须通过关联式由基础数据计算得到的。在重整温度条件下,所有反应组分均呈气态形式,可以将它们看作为理想气体状态,使用热力学一致性方程。

1)焓

Hm=A+BT+CT2+DT3+ET4+F'T5 (8)

其中Hm为理想气体在T时的焓,T为反应温度;A、B,C,D,E,F'为导出系数。

2)熵

其中S为理想气体在T时的熵;G为导出系数。

3)恒压比热容

其中Cp为理想气体在恒压下的热容。

4)反应热

在温度T下,反应热的计算公式为:

其中代表了标准摩尔反应焓;α为化学计量系数;代表了标准摩尔生成焓;Cp(T)为各组分在温度T下的恒压比热容。

5)反应平衡常数计算

由于前15个反应是可逆反应,因此上述反应的温度T及标准压力为100Kpa下的平衡常数为:

其中为温度T下的标准摩尔生成吉布斯自由能,也称为标准摩尔自由焓,计算式为:

其中已知,标准摩尔生成熵的计算公式为:

其中为标准状态下的组分标准摩尔熵。

所述的步骤2具体的实施步骤如下:

1)为了使得机理模型与实际生产过程达到一致,根据实际工厂的输入数据,采用内点法的参数校正方法来对模型参数进行获取,设定一个待估参数向量X,X表示为反应的指前因子以及装置性能系数,其目标函数可以设定为:

其中G(X)表示催化重整过程中反应器的实测值与催化重整过程中反应器的设定值之间的关系,表示第in个约束方程,m'表示约束方程的总个数;

根据目标函数(15)构造惩罚项为允许误差为ε;

2)初始化X和惩罚函数因子νk,,设定迭代次数k=1;

3)求解下列无约束问题:

min G(X)+νkβ(X) (16)

得到X极小值;

4)判断是否满足νkβ(Xk)<ε,若是则结束,当前迭代次数下得到的X极小值即为最优解;反之令k=k+1,νk=C"νk-1,C"∈(0,1),且返回步骤3)。

所述的步骤3具体的实施步骤如下:

方程组(7)属于既包含微分方程又包含代数方程的微分代数优化命题,基于有限元配置的全离散联立求解技术因其独特的优势非常合适求解该类问题。采用有限元配置方法对包含微分代数方程的机理模型方程组(7)进行离散,得到离散模型,即得到许多离散变量以及方程。采用求解大规模NLP问题的求解器对离散模型进行动态模拟,得到实测无法获取的反应器内部参数,例如催化剂吸附平衡常数、反应器装置因数等;

作为优选,所述有限元配置方法具有龙格-库塔离散方法的多种优势,在该方法中微分状态变量表达式如下:

其中w(z)表示当前有限元微分状态变量;表示在第iy个有限元初始处的值;是有限元iy的长度;表示在第iy个有限元上配置点qy处的一阶导数;为满足以下条件的K阶多项式:

其中为有限元中第ry个配置点的位置。qy=1,...,K,ry=1,...,K

微分方程的连续性方程表示为:

此外,对于过程控制变量和代数变量可采用拉格朗日形式的插值多项式表示。

代数变量形式如下:

过程控制变量形式如下:

其中分别表示第iy个有限元置点qy处的代数变量和控制变量值,且满足z表示空间中的位置,表示第iy配置点所在的空间位置,为K阶拉格朗日多项式。

所述的步骤4中神经网络包括输入层、隐含层(中间层)和输出层,隐含层(对输入特征多层次的抽象)和输出层的神经元个数(多个线性划分)范围分别为2~4和2~6。

训练时神经网络中的各参数定义如下:

输入层单元输入向量为Pks=(a1,a2,…,an),目标向量Tks=(d1,d2,…,dn),n表示输入层单元输入向量个数;

隐含层单元输入向量Sks=(s1,s2,…,sp),输出向量Bks=(b1,b2,...,bp),p表示隐含层单元输入向量个数;

输出层单元输入向量Lks=(l1,l2,…,lq),输出向量Cks=(c1,c2,…,cq),ks=1,2,…,m表示样本数据个数,q表示输出层单元输入向量个数;

神经网络模型的学习过程步骤如下:

a)初始化各层的连接权值和阈值,给输入层到隐含层的连接权隐含层到输出层的连接权vjt、隐含层各单元输出阈值θj、输出层各单元的输出阈值yt赋予区间(-1,1)内的随机值;is=1,2,…,n,j=1,2,…,p,t=1,2,…,q;

b)选取输入样本和输出样本;

c)用输入样本、连接权、输入阈值和输出阈值计算隐含层和输出层各单元的输出:

其中sj表示隐含层单元的输入值、为输入层的输出向量、bj表示隐含层单元的输出值、lt表示输出层单元的输入值、ct表示输出层单元的输出值;

d)计算输出层各单元一般化误差然后利用隐含层到输出层的连接权vjt、隐含层的输出向量Bk=(b1,b2,...,bp)、输出层各单元一般化误差计算隐含层各单元的一般化误差计算公式如下:

e)利用输出层各单元的一般化误差与隐含层各单元的输出值来修正隐含层到输出层的连接权vjt、输出阈值yt

同样利用隐含层各单元的一般化误差与输入层的输入来修正输入层到隐含层的连接权wisj、输出阈值θj

vjt(N)表示当前迭代的连接权vjt,vjt(N+1)表示下一次迭代的连接权;yt(N)表示当前迭代的输出阈值,yt(N+1)表示下一次迭代的输出阈值;

wisj(N)表示当前迭代的连接权wisj,wisj(N+1)表示下一次迭代的连接权,θj(N)表示当前迭代的阈值,θj(N+1)表示下一次迭代的阈值,N=1,2,...,NN,其中NN表示设定的学习迭代次数;

f)选取下一个输入样本和输出样本,返回到步骤c),直到m个训练样本训练完毕;

g)计算所有样本的累计误差E,累计误差计算方式为其中q表示输出层单元数,m表示样本数量,Et表示样本之间的误差。如果样本累计误差E小于预先设定值ε,或者当前学习迭代次数大于设定的学习迭代次数,那么学习训练结束。否则再次选取样本输入和目标输出,然后返回到步骤c);

通过以上学习过程,获得了描述工厂实际数据输入和对机理模型的动态模拟后输出的内部参数与工厂实际的输出数据的神经网络模型。

与现有的技术相比,本发明具有如下优点:

本发明通过对离散后的机理模型动态模拟后,可以得出一些无法实际测得的反应器内部参数,如催化剂活性等,根据得到的这些动态的内部参数以及催化重整过程中反应器的实测值,运用神经网络学习的方式来建立出动态的数据模型。这样建立出来的数据与机理相混合的动态混合模型既可以解决优化求解速度较慢的问题,又可以解决数据模型无法获得内部参数的问题,两者相结合,可以既快速又准确的获得模型的输出,以此提高了催化重整过程模型的通用性与适应性。

附图说明

图1为本发明方法流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的分析。

一种基于数据与机理相混合的催化重整过程建模方法,如图1包括以下步骤:

步骤1、依据重整动力学、热力学、物料平衡、能量平衡等基本原理,建立机理模型;

步骤2、为了使得机理模型与实际生产过程达到一致,根据催化重整过程中反应器的输入实测值,采用内点法的参数校正方法来对步骤(1)机理模型的模型参数进行优化;

步骤3、将步骤(2)优化后机理模型进行离散,得到离散模型;采用能够求解大规模NLP问题的求解器对离散模型进行动态模拟,得到实测无法获取的反应器内部参数;

步骤4、构建数据模型,训练时采用神经网络学习方式,以催化重整过程中反应器的输入实测值和动态模拟后的机理模型输出为输入,以催化重整过程中反应器的输出实测值为输出;其中催化重整过程中反应器的输入实测值为重整进料各集总组分含量、催化剂含量等,催化重整过程中反应器的输出实测值为反应器输出产物含量等。

步骤5、训练好的数据模型以催化重整过程中反应器的输入实测值和动态模拟后的机理模型输出为输入,根据其输出与催化重整过程中反应器的输出实测值相比较,若差值大于阈值,则返回步骤2,反之则结束,得到所需的优化后机理模型和数据模型相结合的混合模型。

所述的步骤1具体的实施步骤如下:

重整反应器是整个重整装置中的核心部分,机理建模最关键的部分就是针对重整反应器的建模,集总方法是反应器建模的必然选择。本发明将反应物料划分为33集总,其中集总的划分主要为烷烃、环烷烃、芳烃、烯烃、氢气等,根据其反应过程可以得出39个反应速率方程,如下所示:

烷烃脱氢反应(可逆):

环烷烃脱氢反应(可逆):

芳烃氢解反应:

烷烃加氢裂化反应:

其中为第jz个反应的反应速率;YP、YN、YA分别为烷烃、环烷烃、芳烃的摩尔流量;VC为催化剂装填量;F为进料体积流量;Kepj为第jz个反应平衡常数;为反应速率常数,其表达式为:

其中为反应频率因子;分别为反应活化能和压力指数;压力指数下反应物中的氢分压;R'为摩尔气体常量;T为反应温度;为催化剂活性因子;为重整反应器装置因子。

本发明连续重整工艺采用常用的径向反应器,径向反应器物流通过反应器的压力降比轴向反应器小,有利于减小临氢系统的压力降。结合物料平衡和能量平衡原理,可得到重整反应器模型方程组:

其中为33集总组分的摩尔流量;R为径向反应器床层半径;H为反应器高度;液时空速LHSV=F/Vc为各集总组分的化学计量系数矩阵;为反应热向量;为恒压比热容向量;为重整反应的反应速率向量;

由于因此重整反应器机理模型方程组可以改写为:

其中为反应速率常数矩阵。

重整反应器机理模型见方程组(7)中的基础物性数据具体如下:

在重整模拟过程中,必要物性数据的获取是模型计算的前提条件,这些数据的准确性对模拟精度有非常大的影响。一些热力学性质数据是必须通过关联式由基础数据计算得到的。在重整温度条件下,所有反应组分均呈气态形式,可以将它们看作为理想气体状态,使用热力学一致性方程。

1)焓

Hm=A+BT+CT2+DT3+ET4+F'T5 (8)

其中Hm为理想气体在T时的焓,T为反应温度;A、B,C,D,E,F'为导出系数。

2)熵

其中S为理想气体在T时的熵;G为导出系数。

3)恒压比热容

其中Cp为理想气体在恒压下的热容。

4)反应热

在温度T下,反应热的计算公式为:

其中代表了标准摩尔反应焓;α为化学计量系数;代表了标准摩尔生成焓;Cp(T)为各组分在温度T下的恒压比热容。

5)反应平衡常数计算

由于前15个反应是可逆反应,因此上述反应的温度T及标准压力为100Kpa下的平衡常数为:

其中为温度T下的标准摩尔生成吉布斯自由能,也称为标准摩尔自由焓,计算式为:

其中已知,标准摩尔生成熵的计算公式为:

其中为标准状态下的组分标准摩尔熵。

所述的步骤2具体的实施步骤如下:

2)为了使得机理模型与实际生产过程达到一致,根据实际工厂的输入数据,采用内点法的参数校正方法来对模型参数进行获取,设定一个待估参数向量X,X表示为反应的指前因子以及装置性能系数,其目标函数可以设定为:

其中G(X)表示催化重整过程中反应器的实测值与催化重整过程中反应器的设定值之间的关系,表示第in个约束方程,m'表示约束方程的总个数;

根据目标函数(15)构造惩罚项为允许误差为ε;

2)初始化X和惩罚函数因子νk,,设定迭代次数k=1;

3)求解下列无约束问题:

min G(X)+νkβ(X) (16)

得到X极小值;

4)判断是否满足νkβ(Xk)<ε,若是则结束,当前迭代次数下得到的X极小值即为最优解;反之令k=k+1,νk=C"νk-1,C"∈(0,1),且返回步骤3)。

所述的步骤3具体的实施步骤如下:

方程组(7)属于既包含微分方程又包含代数方程的微分代数优化命题,基于有限元配置的全离散联立求解技术因其独特的优势非常合适求解该类问题。采用有限元配置方法对包含微分代数方程的机理模型方程组(7)进行离散,得到离散模型,即得到许多离散变量以及方程。采用求解大规模NLP问题的求解器对离散模型进行动态模拟,得到实测无法获取的反应器内部参数,例如催化剂吸附平衡常数、反应器装置因数等;

作为优选,所述有限元配置方法具有龙格-库塔离散方法的多种优势,在该方法中微分状态变量表达式如下:

其中w(z)表示当前有限元微分状态变量;表示在第iy个有限元初始处的值;是有限元iy的长度;表示在第iy个有限元上配置点qy处的一阶导数;为满足以下条件的K阶多项式:

其中为有限元中第ry个配置点的位置。qy=1,...,K,ry=1,...,K

微分方程的连续性方程表示为:

此外,对于过程控制变量和代数变量可采用拉格朗日形式的插值多项式表示。

代数变量形式如下:

过程控制变量形式如下:

其中分别表示第iy个有限元置点qy处的代数变量和控制变量值,且满足z表示空间中的位置,表示第iy配置点所在的空间位置,为K阶拉格朗日多项式。

所述的步骤4中神经网络包括输入层、隐含层(中间层)和输出层,隐含层(对输入特征多层次的抽象)和输出层的神经元个数(多个线性划分)范围分别为2~4和2~6。

训练时神经网络中的各参数定义如下:

输入层单元输入向量为Pks=(a1,a2,…,an),目标向量Tks=(d1,d2,…,dn),n表示输入层单元输入向量个数;

隐含层单元输入向量Sks=(s1,s2,…,sp),输出向量Bks=(b1,b2,...,bp),p表示隐含层单元输入向量个数;

输出层单元输入向量Lks=(l1,l2,…,lq),输出向量Cks=(c1,c2,…,cq),ks=1,2,…,m表示样本数据个数,q表示输出层单元输入向量个数;

神经网络模型的学习过程步骤如下:

a)初始化各层的连接权值和阈值,给输入层到隐含层的连接权隐含层到输出层的连接权vjt、隐含层各单元输出阈值θj、输出层各单元的输出阈值yt赋予区间(-1,1)内的随机值;is=1,2,…,n,j=1,2,…,p,t=1,2,…,q;

b)选取输入样本和输出样本;

c)用输入样本、连接权、输入阈值和输出阈值计算隐含层和输出层各单元的输出:

其中sj表示隐含层单元的输入值、为输入层的输出向量、bj表示隐含层单元的输出值、lt表示输出层单元的输入值、ct表示输出层单元的输出值;

d)计算输出层各单元一般化误差然后利用隐含层到输出层的连接权vjt、隐含层的输出向量Bk=(b1,b2,...,bp)、输出层各单元一般化误差计算隐含层各单元的一般化误差计算公式如下:

e)利用输出层各单元的一般化误差与隐含层各单元的输出值来修正隐含层到输出层的连接权vjt、输出阈值yt

同样利用隐含层各单元的一般化误差与输入层的输入来修正输入层到隐含层的连接权wisj、输出阈值θj

vjt(N)表示当前迭代的连接权vjt,vjt(N+1)表示下一次迭代的连接权;yt(N)表示当前迭代的输出阈值,yt(N+1)表示下一次迭代的输出阈值;

wisj(N)表示当前迭代的连接权wisj,wisj(N+1)表示下一次迭代的连接权,θj(N)表示当前迭代的阈值,θj(N+1)表示下一次迭代的阈值,N=1,2,...,NN,其中NN表示设定的学习迭代次数;

f)选取下一个输入样本和输出样本,返回到步骤c),直到m个训练样本训练完毕;

g)计算所有样本的累计误差E,累计误差计算方式为其中q表示输出层单元数,m表示样本数量,Et表示样本之间的误差。如果样本累计误差E小于预先设定值ε,或者当前学习迭代次数大于设定的学习迭代次数,那么学习训练结束。否则再次选取样本输入和目标输出,然后返回到步骤c);

通过以上学习过程,获得了描述工厂实际数据输入和对机理模型的动态模拟后输出的内部参数与工厂实际的输出数据的神经网络模型。

以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离发明构思的前提下还可以做出一定程度的简单推演或者替换,都应当视为属于本发明的保护范围。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种醋酸生产中醋酸含量实时测量方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!