发酵罐乙醇出罐浓度的预测方法、控制装置、及存储介质

文档序号:32334723发布日期:2022-11-25 23:25阅读:101来源:国知局
发酵罐乙醇出罐浓度的预测方法、控制装置、及存储介质

1.本发明涉及工业生物发酵技术领域,具体地涉及一种发酵罐乙醇出罐浓度的预测方法、控制装置、及存储介质。


背景技术:

2.燃料乙醇是指体积分数超过99.5%以上的无水乙醇,主要通过以生物质(例如,马铃薯、玉米和陈化粮等)为原料,进行生物发酵,经过蒸馏、脱水后获得,是一种清洁且高辛烷值的可再生能源。燃料乙醇因其生产的持续性、原料的普遍性以及良好的使用性,是替代一次能源的首选产品。燃料乙醇的使用能有效减少社会对石油煤炭等不可再生能源的依赖,对国家能源的保护和安全具有重要意义,同时也为应对化石能源使用过程中会产生环境的污染问题以及会引起的世界气候变化问题指出了方向。特别地,燃料乙醇作为良好的汽油添加剂,不仅能够提高汽油辛烷值,提高汽油防爆性能,而且能够改善汽车尾气排放,减少空气污染。
3.燃料乙醇的应用在国家可持续发展战略中的远景地位不言而喻,如何保证燃料乙醇高效高质地生产也因此显得尤为重要。在燃料乙醇的发酵生产过程中,发酵罐乙醇出罐时的浓度是一个重要的质量指标,很大程度上决定了最终的燃料乙醇的生产效率。而该指标的获取通常要借助采样离线分析得到,亦即该指标的获取并非实时而是存在时滞,这对燃料乙醇生产的调控来说是不利的。


技术实现要素:

4.本发明实施例的目的是提供一种发酵罐乙醇出罐浓度的预测方法,该发酵罐乙醇出罐浓度的预测方法可以解决发酵罐乙醇出罐时浓度的获取通常要借助采样离线分析得到,并非实时而存在时滞的问题,这对燃料乙醇生产的调控来说是不利的。
5.为了实现上述目的,本发明实施例提供一种发酵罐乙醇出罐浓度的预测方法,其特征在于,所述发酵罐乙醇出罐浓度的预测方法包括:针对燃料乙醇在发酵罐中的发酵过程进行阶段划分;获取各阶段燃料乙醇在发酵过程中对应的历史发酵数据;构建发酵罐乙醇出罐浓度预测模型,通过所获取的历史数据对该发酵罐乙醇出罐浓度预测模型进行训练;以及通过训练后的发酵罐乙醇出罐浓度预测模型实时预测燃料乙醇在发酵罐出罐时的乙醇浓度。
6.可选的,所述针对燃料乙醇在发酵罐中的发酵过程进行阶段划分,划分为四个阶段,所述四个阶段包括:第一阶段,发酵开始阶段;第二阶段,发酵开始后8小时;第三阶段,发酵开始后24小时;第四阶段,发酵开始后40小时。
7.可选的,在所述获取各阶段燃料乙醇在发酵过程中对应的历史发酵数据之后,所述发酵罐乙醇出罐浓度的预测方法还包括:对所获取的历史发酵数据进行零均值单位方差标准化处理;对所标准化处理后的历史发酵数据进行偏最小二乘处理,得到所述历史发酵数据对应的偏最小二乘成分;对所得到的偏最小二乘成分、以及所述历史发酵数据中的发
酵罐乙醇出罐浓度数据进行最大最小归一化处理。
8.可选的,通过下式,对所获取的历史发酵数据进行零均值单位方差标准化处理:
[0009][0010][0011]
其中,e
ij
表示第j个自变量在第i个批次的数值x
ij
经过标准化后的值,mean(xj)、var(xj)分别表示第j个自变量的所有批次数据的平均值和方差,n表示总的批次数,m表示自变量个数,fi表示第i个批次发酵罐乙醇浓度yi经标准化后的值,mean(y)、uar(y)分别表示发酵罐出罐乙醇浓度的所有批次数据平均值和方差。
[0012]
可选的,所述对所标准化处理后的历史发酵数据进行偏最小二乘处理包括:初始化k=1,e0和f0分别为经过标准化处理后的自变量数据矩阵和因变量数据矩阵,自变量个数为m;循环计算的最大特征值λk、以及对应的特征向量μk;计算第k个偏最小二乘成分tk=e
k-1
μk;通过下式,分别计算残差矩阵ek和fk:
[0013][0014][0015]
设置k=k+1,若k>m,则循环结束,若k≤m,则继续循环计算。
[0016]
可选的,通过下式,对所得到的偏最小二乘成分、以及所述历史发酵数据中的发酵罐乙醇出罐浓度数据进行最大最小归一化处理:
[0017][0018][0019]
其中,x

ij
表示第j个偏最小二乘成分在第i行的数值t
ij
经过标准化后的值,max(tj)、min(tj)分表表示第j个偏最小二乘成分的所有数据的最大值和最小值,y
′i表示第i个批次发酵罐出罐乙醇浓度yi经过标准化后的值,max(y)、min(y)分别表示发酵罐出罐乙醇浓度的所有批次数据的最大值和最小值。
[0020]
可选的,所述构建发酵罐乙醇出罐浓度预测模型包括:构建基于支持向量回归的所述发酵罐乙醇出罐浓度预测模型,并设定该发酵罐乙醇出罐浓度预测模型参数的取值范围。
[0021]
可选的,所述通过所获取的历史数据对该发酵罐乙醇出罐浓度预测模型进行训练包括:通过网格搜索,在所设定的参数取值范围内寻找最优的所述发酵罐乙醇出罐浓度预测模型。
[0022]
本发明实施例还提供一种控制装置,所述控制装置包括:存储器、处理器及存储在
所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据上述任意一项所述的发酵罐乙醇出罐浓度的预测方法。
[0023]
本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令使得机器执行根据上述任意一项所述的发酵罐乙醇出罐浓度的预测方法。
[0024]
通过上述技术方案,本发明实施例通过分阶段构建发酵罐乙醇出罐浓度预测模型,并进行训练,通过训练后的发酵罐乙醇出罐浓度预测模型分阶段地对发酵罐乙醇出罐浓度进行预测,为工厂操作人员调控燃料乙醇生产过程提供参考,保证燃料乙醇的高效生产。
[0025]
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
[0026]
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
[0027]
图1是本发明实施例提供的发酵罐乙醇出罐浓度预测方法的流程示意图;
[0028]
图2是发酵40h阶段测试时的均方根误差值随pls成分增加时的变化示意图;
[0029]
图3是发酵40h阶段测试时发酵罐出罐乙醇浓度真实值与预测值之间的散点示意图。
[0030]
图4是发酵40h阶段测试时发酵罐出罐乙醇浓度真实值与预测值的对比示意图。
具体实施方式
[0031]
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
[0032]
在详细描述本发明实施例之前,先介绍现有技术的缺点、及本发明实施例的构思。
[0033]
在燃料乙醇的发酵生产过程中,发酵罐乙醇出罐时的浓度是一个重要的质量指标,很大程度上决定了最终的燃料乙醇的生产效率。而该指标的获取通常要借助采样离线分析得到,亦即该指标的获取并非实时而是存在时滞,这对燃料乙醇生产的调控来说是不利的。
[0034]
为了应对该问题,可以建立生产过程中已测变量映射到目标变量(即发酵罐乙醇出罐浓度)的软测量模型,从而及时对目标变量进行预测。一般而言,燃料乙醇生产工厂存储有大量的过程历史数据,这些数据涵盖了发酵过程的许多特征信息。因而针对过程机理尚不明晰的燃料乙醇发酵过程,可以通过基于数据驱动的方法挖掘过程历史数据中的有效信息,从而构建关键质量指标(亦即发酵罐乙醇出罐浓度)的预测模型,协助工厂操作人员把控燃料乙醇的生产过程。
[0035]
图1是本发明实施例提供的发酵罐乙醇出罐浓度预测方法的流程示意图,请参考图1,该发酵罐乙醇出罐浓度的预测方法可以包括以下步骤:
[0036]
步骤s110:针对燃料乙醇在发酵罐中的发酵过程进行阶段划分。
[0037]
优选的,所述针对燃料乙醇在发酵罐中的发酵过程进行阶段划分,划分为四个阶段,所述四个阶段可以包括:第一阶段,发酵开始阶段;第二阶段,发酵开始后8小时(简称“发酵8h”);第三阶段,发酵开始后24小时(简称“发酵24h”);第四阶段,发酵开始后40小时(简称“发酵40h”)。
[0038]
步骤s120:获取各阶段燃料乙醇在发酵过程中对应的历史发酵数据。
[0039]
所述历史发酵数据,包括发酵过程的许多特征信息。针对于发酵开始阶段,可以指液化罐和酒母罐的物料进入发酵罐时的离线检测数据、以及发酵罐出罐乙醇浓度;针对于发酵8h阶段,可以指发酵开始的历史发酵数据、以及发酵8h发酵罐的离线检测数据;针对于发酵24h阶段,可以指发酵8h的历史发酵数据、以及发酵24h发酵罐的离线检测数据;针对于40h,可以指发酵24h的历史发酵数据、以及发酵40h发酵罐的离线检测数据。
[0040]
进一步地,各相应阶段燃料乙醇生产历史发酵数据:
[0041]
1)针对于发酵开始阶段,可以包括液化罐中的ph、干物(%)、粘度(mpa
·
s)、dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)、色谱还原糖、色谱总糖、de、gi和si等变量数据、酒母罐中的ph、干物(%)、酵母数(亿/ml)、出芽率(%)、死亡率(%)、dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)和乙醇(v/v%)等变量数据,以及发酵罐出罐乙醇浓度数据等;
[0042]
2)针对于发酵8h阶段,可以包含发酵开始时的所有变量数据,例如,流入发酵罐的液化醪量(t)、酒母醪量(m3)、糖化酶量(kg),以及发酵8h发酵罐中的dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)和乙醇(v/v%)等变量数据;
[0043]
3)针对于发酵24h阶段,可以包括发酵8h所有变量数据,例如,发酵24h发酵罐中的dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)和乙醇(v/v%)等变量数据;
[0044]
4)针对于发酵40h阶段,可以包括发酵24h所有变量数据,例如,发酵40h发酵罐中的dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)和乙醇(v/v%)等变量数据。
[0045]
需要说明,针对发酵过程的各个阶段,所获取的历史发酵数据中,发酵罐出罐乙醇浓度可以视为因变量,而其余数据变量可以视为自变量。
[0046]
在步骤s120之后,所述发酵罐乙醇出罐浓度的预测方法还可以包括:对所获取的历史发酵数据进行零均值单位方差标准化处理;对所标准化处理后的历史发酵数据进行偏最小二乘处理,得到所述历史发酵数据对应的偏最小二乘成分;对所得到的偏最小二乘成分、以及所述历史发酵数据中的发酵罐乙醇出罐浓度数据进行最大最小归一化处理。
[0047]
优选的,可以通过下式,对所获取的历史发酵数据进行零均值单位方差标准化处理:
[0048]
[0049][0050]
其中,e
ij
表示第j个自变量在第i个批次的数值x
ij
经过标准化后的值,mean(xj)、var(xj)分别表示第j个自变量的所有批次数据的平均值和方差,n表示总的批次数,m表示自变量个数,fi表示第i个批次发酵罐乙醇浓度yi经标准化后的值,mean(y)、var(y)分别表示发酵罐出罐乙醇浓度的所有批次数据平均值和方差。
[0051]
优选的,所述对所标准化处理后的历史发酵数据进行偏最小二乘处理可以包括如下步骤s11-s15:
[0052]
步骤s11:初始化k=1,e0和f0分别为经过标准化处理后的自变量数据矩阵和因变量数据矩阵,自变量个数为m;
[0053]
步骤s12:循环计算的最大特征值λk、以及对应的特征向量μk;
[0054]
步骤s13:计算第k个偏最小二乘成分tk=e
k-1
μk;
[0055]
步骤s14:可以通过下式,分别计算残差矩阵ek和fk:
[0056][0057][0058]
步骤s15:设置k=k+1,若k>m,则循环结束,若k≤m,则继续循环计算,即继续执行步骤s12。
[0059]
进一步地,发酵罐乙醇出罐浓度数据进行最大最小归一化处理,指对主成分数据(偏最小二乘成分)、及发酵罐出罐乙醇浓度分别进行标准化处理。优选的,可以通过下式,对所得到的偏最小二乘成分、以及所述历史发酵数据中的发酵罐乙醇出罐浓度数据进行最大最小归一化处理:
[0060][0061][0062]
其中,x

ij
表示第j个偏最小二乘成分在第i行的数值t
ij
经过标准化后的值,max(tj)、min(tj)分表表示第j个偏最小二乘成分的所有数据的最大值和最小值,y
′i表示第i个批次发酵罐出罐乙醇浓度yi经过标准化后的值,max(y)、min(y)分别表示发酵罐出罐乙醇浓度的所有批次数据的最大值和最小值。
[0063]
步骤s130:构建发酵罐乙醇出罐浓度预测模型,通过所获取的历史数据对该发酵罐乙醇出罐浓度预测模型进行训练。
[0064]
优选的,所述构建发酵罐乙醇出罐浓度预测模型包括:构建基于支持向量回归的所述发酵罐乙醇出罐浓度预测模型,并设定该发酵罐乙醇出罐浓度预测模型参数的取值范围。
[0065]
基于svr的发酵罐乙醇出罐浓度预测模型,其最小化问题可以通过下式表示:
[0066][0067][0068]
其中,ξi和是松弛变量,是非线性映射函数,ε是不敏感损失常数,c是惩罚系数,w是权系数,b是偏置值。
[0069]
式(6)的对偶问题,可以通过下式表示:
[0070][0071][0072]
其中,ai和是拉格朗日乘子,是拉格朗日乘子,是径向基核函数,γ是径向基核函数系数。
[0073]
基于svr的回归方程可以通过下式表示:
[0074][0075]
进一步地,所述设定该发酵罐乙醇出罐浓度预测模型参数的取值范围,即是设定不敏感损失常数ε、惩罚系数c、径向基核函数系数γ的取值范围。
[0076]
优选的,所述通过所获取的历史数据对该发酵罐乙醇出罐浓度预测模型进行训练包括:通过网格搜索,在所设定的参数取值范围内寻找最优的所述发酵罐乙醇出罐浓度预测模型。
[0077]
可以理解为,网格搜索法即在给定的pls成分、及svr模型参数范围内,确定最佳的pls成分数以及svr模型参数。
[0078]
步骤s140:通过训练后的发酵罐乙醇出罐浓度预测模型实时预测燃料乙醇在发酵罐出罐时的乙醇浓度。
[0079]
优选的,在实时预测燃料乙醇在发酵罐出罐时的乙醇浓度的过程中,还可以获取、产生新的历史发酵数据,因此可以继续对发酵罐乙醇出罐浓度预测模型进行训练,以优化
发酵罐乙醇出罐浓度预测模型。
[0080]
本发明实施例还提供一种控制装置,所述控制装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,以实现根据步骤s110-s140所述的发酵罐乙醇出罐浓度的预测方法。
[0081]
本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令使得机器执行根据步骤s110-s140所述的发酵罐乙醇出罐浓度的预测方法。
[0082]
下面以发酵40h阶段的发酵罐乙醇出罐浓度预测模型为例,测试本发明实施例的效果。
[0083]
获取发酵开始时液化罐中的ph、干物(%)、粘度(mpa
·
s)、dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)、色谱还原糖、色谱总糖、de、gi和si等变量数据,酒母罐中的ph、干物(%)、酵母数(亿/ml)、出芽率(%)、死亡率(%)、dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)和乙醇(v/v%)等变量数据;再分别获取发酵8h阶段、发酵24h阶段和发酵40h阶段发酵罐中的dp4+(g/100ml)、dp3(g/100ml)、dp2(g/100ml)、葡萄糖(g/100ml)、果糖(g/100ml)、琥珀酸(g/100ml)、乳酸(g/100ml)、甘油(g/100ml)、乙酸(g/100ml)、乙醇(g/100ml)、乙醇(v/v%)等变量数据,以及获取发酵罐出罐乙醇浓度数据。发酵罐乙醇出罐浓度作为因变量,而其余变量作为自变量。所获得历史发酵数据中共有自变量82个,因变量1个,数据样本228个。
[0084]
通过式(1)、式(2)对所获取的历史发酵数据进行零均值单位方差标准化处理。
[0085]
通过上述步骤s11-s15对所标准化处理后的历史发酵数据进行偏最小二乘处理,可以得到82个pls成分,t1,t2,

t
82
。对于步骤s15,若k》82,则循环结束,若k≤82,则继续循环计算。
[0086]
通过式(4)、式(5)所得到的偏最小二乘成分、以及所述历史发酵数据中的发酵罐乙醇出罐浓度数据进行最大最小归一化处理。
[0087]
通过步骤s130构建基于svr的发酵罐乙醇出罐浓度预测模型,可以设定不敏感损失常数ε的取值范围为{0.05,,0.1,0.15,0.2,0.25}、惩罚系数c的取值范围为{1,5.6234,31.6228,1777.8279,10000}、径向基核函数系数γ的取值范围为{0.001,0.0056,0.0316,0.1778,1.0}。
[0088]
进一步通过网格搜索,在所设定的参数取值范围内寻找最优的所述发酵罐乙醇出罐浓度预测模型,确定pls成分为13个,相应的发酵罐乙醇出罐浓度预测模型的不敏感损失常数ε为0.05、惩罚系数c为177.8279、径向基核函数系数γ为0.0056。
[0089]
通过训练后的发酵罐乙醇出罐浓度预测模型实时预测燃料乙醇在发酵罐出罐时的乙醇浓度。预测结果请参考图2、图3、图4。
[0090]
据此,本发明实施例基于数据驱动方法,通过分阶段构建发酵罐乙醇出罐浓度预测模型,并进行训练,通过训练后的发酵罐乙醇出罐浓度预测模型分阶段地对发酵罐乙醇出罐浓度进行预测,为工厂操作人员调控燃料乙醇生产过程提供参考,保证燃料乙醇的高效生产。同时,通过偏最小二乘法有效的对历史发酵数据进行降维和特征提取,支持向量回归是基于结构风险最小化的回归模型,二者的融合将有利于充分挖掘自变量与因变量之间
的关联信息以及保证模型足够的泛化性能,从而构建稳定的质量预测模型,提供可靠的预测结果。
[0091]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0092]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0093]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0094]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0095]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0096]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0097]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0098]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0099]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1