《Renewable Energy》:Flowformer: Toward a foundation model for full-flow-field wind farm wake modeling
风能作为一种可持续的能源形式,近年来得到了迅速发展,其在优化风能转换和降低整体成本方面表现出显著的潜力。然而,风力涡轮机在运行过程中会受到尾流相互作用的影响,这种影响通常表现为风速降低和湍流强度增加。在大型风场中,这种影响可能会导致能量产出减少10%至20%,以及疲劳载荷增加5%至15%。因此,全面理解和准确预测风力涡轮机尾流对于优化涡轮机布局和实现智能控制至关重要,确保风场的高效部署和提高大规模风能转换效率。为了解决这一问题,研究人员在风场尾流建模方面投入了大量努力,从低保真度的解析尾流模型到高保真度的数值尾流模型。
低保真度的解析尾流模型因其计算成本低而被广泛使用,例如Jensen模型、Frandsen模型、3D尾流模型、3DEG模型和FOWFSim模型。这些模型从最初的“帽子”假设发展到使用高斯分布来描述尾流速度损失,显示出良好的性能,并被应用于各种现实中的风场。然而,这些模型在不同风场之间会产生显著的偏差,因为它们高度依赖于经验参数,通常需要通过风洞实验或数值模拟进行校准。此外,解析模型在估算近尾流速度和湍流特性时表现不佳,因为这些特性比远尾流区域更加复杂。因此,解析模型的两个主要局限性是:近尾流预测性能不佳和在不同风场之间的泛化能力有限。另外,由于这些低保真度模型具有静态性质,它们只能优化静态量,如平均功率产出,而无法处理非稳态量,如功率波动和结构载荷,特别是在控制设计场景中。
数值模拟方法,如大涡模拟(LES)和雷诺平均纳维-斯托克斯(RANS)方程,通常用于评估风力涡轮机尾流相互作用并捕捉更准确的尾流特性。在数值模拟中,通常使用作用盘方法(ADM)或作用线方法(ALM)来模拟涡轮机尾流的形成和发展。例如,LES/ALM耦合模型可以更准确地捕捉近场瞬时尾流和轴对称特性,通过模拟涡轮机的尖端和根部涡旋。然而,尽管数值模拟能够捕捉准确的尾流流动特性,数值模型却需要大量的计算资源。例如,生成一个3公里×3公里风场中6台涡轮机的1000秒大涡模拟需要大约60小时的分布式计算,使用512个处理器的高性能计算(HPC)集群。为了减少计算负担,控制导向的尾流建模逐渐受到关注,例如WFSim模型、FAST.Farm模型、卷曲尾流模型和FLORIDyn模型。
总体而言,低保真度解析模型在风场尾流预测中计算效率高,但缺乏详细的流动表示;而高保真度模型则因计算需求过大而难以应用于实际工程。为了弥合这一差距,机器学习(ML),尤其是深度学习(DL),展现出了在尾流预测中实现准确性和效率的巨大潜力。通过训练基于数值模拟结果或观测流动数据的数据集,ML/DL模型可以捕捉解析模型无法达到的尾流关键流动特征,同时保持与解析模型相当的计算速度。例如,
有研究提出了一种基于延迟本征正交分解(d-POD)和长短期记忆(LSTM)网络的替代模型,用于预测风力涡轮机尾流。
在另一项研究中设计了一个基于降阶建模(ROM)的尾流场估算(ROM-WFE)框架,它在传感器测量和低维本征正交分解(POD)系数之间建立了非线性映射。通过将物理和数学模型整合到深度神经网络中,
另一项研究开发了一种新的重建方法,使得使用稀疏测量数据进行超短时间尺度的尾流场预测成为可能。
基于图神经网络(GNN)的框架也被提出,该模型可以直接操作非结构化网格,并快速预测尾流场。使用激光雷达(LiDAR)测量数据,
有研究建立了一种抗噪声的尾流场重建方法,使用残差连接的物理信息神经网络(RC-PINN)。此外,
还引入了基于Transformer的模型,该模型将Transformer模块整合到条件生成对抗网络(cGAN)中。同时,多保真度概念也被引入,其中将低保真度流动作为输入以减少对大规模高保真度数据的依赖。
尽管对静态尾流建模进行了大量研究,但对开发用于预测动态风场尾流的机器学习模型的研究仍然有限,而降维是常见的技术来简化建模复杂性。例如,在
一项研究中,使用了POD-LSTM方法来预测风场的动态尾流相互作用。具体来说,使用模拟器fOr Wind Farm Applications(SOWFA)生成的原始流动数据进行降维,然后将降维后的数据与前一步的流入速度和控制参数结合,作为LSTM模型的输入,同时将未来步骤的降维数据作为参考。在后续研究中,
省略了POD降维步骤,并提出了一种新的双向卷积神经网络(BiCNN),直接处理降维后的流动场。同样,在
另一项研究中,开发了一种物理引导神经网络(PGNN),在数据准备过程中也使用线性插值将流动场数据进行降维。在
另一项研究中,使用了自动编码器,将中保真度的WFSim模型生成的高维非线性系统映射到低维线性系统。在
另一项研究中,也使用了降维块,将原始模型输入进行降维,并生成必要的模态系数。在
另一项研究中,提出了一种结合高斯过程回归(GPR)、POD和LSTM的动态尾流场估算(DWFE)方法,用于从稀疏测量数据预测风力涡轮机尾流演化。虽然这些模型中使用的降维方法有助于解决维度灾难并简化建模复杂性,但在降维过程中不可避免地会损失流动细节。
为了避免由降维引起的精度损失,本文旨在开发一种基于全流动场数据的机器学习动态风场尾流模型。具体来说,我们提出了基于Transformer的模型,即FlowFormer,该模型直接处理原始流动场,而不需要包括任何降维操作,无论是数据准备还是模型训练过程。虽然降维技术确实将建模复杂度降低了指数级,但直接在原始流动场操作会显著增加建模难度,尤其是在进行长时间预测迭代时。为了解决这一问题,我们开发了一种半监督训练(SST)策略,以缓解过拟合问题并提高迭代预测性能。训练完成后,一系列实验评估了所开发模型的性能。与高保真度数据的比较表明,该模型可以在实时条件下实现准确的尾流预测。特别是,在100步迭代预测中,预测结果与高保真度数据之间的平均绝对误差仅为0.599 m/s,这相当于自由流风速的6.660%。更重要的是,所提出的FlowFormer在大规模风场中即使经过200次迭代预测仍能保持稳定。此外,还进行了一项定量实验,以展示FlowFormer在大规模风场中的可用性和稳定性。实验表明,FlowFormer不仅在仅使用固定尾流训练数据的情况下提供了在变化尾流条件下的准确结果,而且在超过200次迭代预测步骤后仍然保持稳定和鲁棒性。
本文的主要创新点和贡献可以总结如下:
1. 基于高保真度模拟数据,开发了一种新的基于Transformer的动态风场尾流模型。不同于现有的所有机器学习动态尾流模型,这些模型在数据准备或模型训练过程中都包含降维步骤,本文提出了一种深度学习方法,直接处理原始模拟流动场,从而避免任何降维误差,保留详细的流动场特征。本文提出的模型与现有机器学习动态尾流模型的比较见表1。
2. 提出的FlowFormer方法引入了最先进的Transformer技术,这是尾流建模的第一个基础模型。与现有方法相比,FlowFormer不仅在不同尾流条件下表现出高适应性,还在大规模风场尾流模拟中展示了出色的可扩展性。特别是,FlowFormer在9×9风场的实验表明,我们的模型在200秒的迭代模拟中仍然保持稳定和鲁棒性。
3. 通过全面的模拟测试评估了所开发FlowFormer的性能,包括单涡轮机尾流、多涡轮机尾流、偏航尾流以及大型风场内的尾流相互作用。结果表明,所提出的模型能够实时准确预测不稳定的风场尾流。特别是,在测试集上,预测误差仅为0.599 m/s,这仅是自由流风速的6.660%。
4. 一项定量实验展示了FlowFormer在大规模风场中的可用性和稳定性。该模型在变化偏航条件下进行了测试,尽管只使用固定偏航数据进行训练,仍能保持稳定超过2000秒。
本文其余部分的组织如下:所提出的FlowFormer框架和高保真度数据在第2节中描述。随后,在第3节中给出模型的实验结果。最后,在第4节中得出结论。
在第2节中,我们描述了所提出的FlowFormer框架和高保真度数据。该框架基于风流和尾流相互作用的固有特性,这些特性在相邻时间步长之间通常较为稳定,但受到外部因素如流入速度和分布式控制参数的影响。这些外部因素驱动流动场的变化,因此在预测模型中需要同时考虑历史数据(代表过去的流动模式)和外部输入(流入速度和控制动作,如偏航角度)。因此,我们的方法将输入分为两个关键部分:基于卷积神经网络(CNN)的背景路径和基于Transformer的前景路径,从而允许更结构化和高效的模型架构。所提出的FlowFormer的结构如图2所示。
在第2.1节中,我们首先探讨了问题形式化。一个示例风场如图1所示,包含若干涡轮机和相应的分布式控制参数(在我们的模拟中为偏航角度),这些参数在矩形流动域内进行分布。对于包含若干涡轮机的风场,输入变量集可以表示为,其形状为,其中代表总时间步数,是每个分布式控制参数的维度。相应地,输出的形状为,其中和分别代表在和方向上的网格点总数。高保真度输出变量,通过计算流体力学(CFD)方法计算得出,而FlowFormer的预测结果则表示为。输入变量包括流动场的历史数据,流入速度和分布式控制参数。因此,给定一个基于机器学习的涡轮机尾流模型,目标是通过优化模型参数来最小化预测流动场与高保真度流动场之间的差异。
在第2.2节中,我们描述了FlowFormer。该模型基于风流和尾流相互作用的固有特性,这些特性在相邻时间步长之间通常较为稳定,但受到外部因素如流入速度和分布式控制参数的影响。这些外部因素驱动流动场的变化,因此在预测模型中需要同时考虑历史数据(代表过去的流动模式)和外部输入(流入速度和控制动作,如偏航角度)。因此,我们的方法将输入分为两个关键部分:基于卷积神经网络(CNN)的背景路径和基于Transformer的前景路径,从而允许更结构化和高效的模型架构。所提出的FlowFormer的结构如图2所示。
在第2.2.1节中,我们详细描述了背景路径。背景路径使用多个历史流动场作为输入,旨在捕捉未来时间步长的基本状态。因此,背景路径的输入和输出高度相关且相似。因此,我们设计了一个相对简单的基于CNN的结构,包括多个卷积层,具体细节如表2所示。这些层构建了一个编码器-解码器结构,可以在编码器中高效捕捉高阶特征,并在解码器中重构详细的空间信息,从而实现精确的像素级预测。
在第2.2.2节中,我们描述了前景路径。前景路径的输入是流入速度和分布式控制参数,而输出则代表流动场的变化趋势。由于输入是低阶和低维的,而输出是高阶和高维的,因此该路径作为生成任务。因此,我们使用了更复杂的结构,整合了先进的Transformer模块。具体来说,一个多层感知机(MLP)层将拼接的输入变量扩展为一个单通道的特征图,然后通过1×1卷积提升为16通道。三个BaseBlock(每个=残差块+Transformer块)随后应用。最后,通过转置和1×1卷积的精炼层对特征进行上采样和投影,再与背景路径的输出结合,生成最终的流动预测。在五个卷积层中应用反射填充,以保持分辨率不变。
在第2.2.3节中,我们描述了损失函数。所提出的FlowFormer使用了两种损失函数:一种用于最终输出(L1),另一种用于前景路径(L2),两者均定义为均方误差(MSE)函数。L1的表达式为:,其中和分别代表在和方向上的网格点总数。通过最小化L1,整个网络被训练以学习输入和输出之间的关系,从而实现准确的预测。相比之下,L2的参考是时间步长和之间的流动场差异,其表达式为:,其中是前景路径的输出,控制L2的权重。由于优化L1是模型的主要目标,L2则起到辅助作用,因此将设置为0.5。
在第2.3节中,我们描述了半监督训练。数据集包含180个流动场景,每个场景包含710个不同时步的不稳流动场。在训练中,每个场景的前64%时间步作为训练集,64%至85%时间步作为验证集,最后15%时间步作为测试集。流动历史的回溯时间步长设置为10。FlowFormer使用单个NVIDIA RTX5000 Ada(32 GB内存)进行训练,使用批量大小为8和学习率为0.0003,并在每个训练周期后在验证集上评估其性能。
在训练过程中,使用了早期停止和动态学习率调整策略以缓解过拟合。具体来说,如果验证损失在连续50个周期内没有改善,则停止训练。此外,动态学习率调整策略如果验证损失在连续10个周期内没有减少,则将学习率减半。训练完成后,使用平均绝对误差评估FlowFormer的性能:,其中代表测试集的时间步数,是测试集的大小。在验证阶段,模型的准确性通过迭代预测性能进行评估,而不是单步预测。
为了提高所提出的FlowFormer在迭代多步预测中的适应性和可扩展性,我们设计了一种半监督训练策略。在该策略中,FlowFormer在时间步长的流动场被拼接,然后反馈到FlowFormer中进行预测。同时,SOWFA模拟的地面真值流动场继续作为参考,引导网络。半监督训练策略的第一三个迭代如图4所示。同样,在验证阶段,模型的准确性通过迭代预测性能进行评估。
这种策略使网络更加熟悉其生成的流动场特性,从而提高其在多步迭代预测中的泛化能力和鲁棒性,尤其是在原始初始化流动场不再可用时。在本文中,我们设置半监督训练策略的迭代次数为10,这意味着FlowFormer的预测结果被重复使用最多10次。这确保了网络可以独立运行,而无需依赖初始化流动场。
在第2.4节中,我们描述了整个风场的多步预测。训练完成后,可以使用所提出的FlowFormer模型基于历史流动场预测时间步长的流动场。通过指定时间步长的流入速度和分布式控制参数,可以预测时间步长的流动场。通过这种方式,可以实现单涡轮机尾流的多步预测。
对于整个风场,FlowFormer可以被应用于每个子域的流动场,从上游到下游。通过结合所有子域的预测结果,可以获得整个风场的预测。整个风场的多步预测可以通过类似于单涡轮机情况的方式进行迭代。
值得注意的是,如果布局已经固定,FlowFormer也可以被训练用于整个风场,这在第3.4节中进行了说明。
在第2.5节中,我们描述了高保真度数据。为了生成用于训练和测试的数据集,我们使用了国家可再生能源实验室(NREL)开发的用于风场模拟的大型涡模拟(LES)求解器,即SOWFA,其中涡轮机转子被建模为作用线。进行了三个涡轮机的模拟,它们按行排列,以研究在自由流和上游尾流条件下的流动场。每个涡轮机周围的2D平均速度场被提取作为数据集。考虑了三种流入条件,自由流风速分别为8 m/s、9 m/s和10 m/s。对于每个模拟情况,进行了20次运行,偏航角度范围为[?30°, 30°]。每个情况进行了1110秒的模拟,前400秒被丢弃以允许尾流建立,每个情况留下710个流动场快照,形成一个流动场数据集。总共生成了约61.2 GB的原始数据用于训练FlowFormer。
生成过程是在本地集群上进行的,使用了256个CPU核心,需要大约7×10^5 CPU小时来生成整个数据集,每个模拟需要约46小时。有关模拟过程的详细信息,请参考[45]。
在第3节中,我们展示了实验结果和讨论。为了全面评估所提出的FlowFormer的性能,我们首先评估了单涡轮机尾流和多涡轮机尾流的多步预测误差。随后,进行了一项案例研究,以展示FlowFormer捕捉偏航影响的能力。然后,进行了一项模拟9×9风场的案例研究,以展示FlowFormer在实用规模风场模拟中的可扩展性。最后,展示了所提出的FlowFormer直接用于整个风场训练的可用性。
在第3.1节中,我们展示了模型验证。训练完成后,模型在测试集上的预测与SOWFA数据之间的平均绝对误差为0.004 m/s,使用地面真值流动场作为初始化输入,即单步预测。该误差仅是自由流风速的0.048%,表明所提出的FlowFormer可以在提供准确的先前条件时,准确捕捉未来流动场的细节。为了进一步评估FlowFormer在有限初始化数据下的性能,我们进行了迭代预测实验。
在第3.1.1节中,我们展示了单涡轮机尾流预测。基于测试集,展示了单涡轮机尾流预测的结果,其中FlowFormer在多个时间步长上进行迭代预测。具体来说,FlowFormer在时间步长的流动场与SOWFA生成的流动场一致。在时间步长到的相同流入条件和偏航角度被提供,以预测同一时间段的流动场。换句话说,只有前五个地面真值流动场可供网络使用,所有后续流动场仅由模型生成。因此,迭代多步预测可以实现单涡轮机尾流的预测。
在第3.1.2节中,我们展示了多涡轮机尾流预测。在该子节中,我们进行了多涡轮机尾流预测的实验,以展示FlowFormer捕捉尾流相互作用的能力。具体来说,我们考虑了两个涡轮机排列在一行,下游间距为五个转子直径。FlowFormer被应用于多个时间步长上进行迭代预测。对于前涡轮机,FlowFormer的初始化流入条件从时间步长到设置为与SOWFA相同,而两个涡轮机的偏航角度从时间步长到也设置为与SOWFA相同。这种设置允许我们评估FlowFormer预测两个涡轮机之间的尾流相互作用的能力。
在第3.2节中,我们展示了偏航对涡轮机尾流的影响。通过模拟一个单涡轮机在相反偏航角度下的运行,评估模型捕捉流动动态和尾流漂移的能力。该案例中,展示了FlowFormer在不同偏航角度下的预测结果,以及模型在变化偏航条件下的表现。模型的预测结果在时间步长、和上分别与SOWFA生成的结果进行比较,如图5和图6所示,相应的视频演示见视频1和视频2。在时间步长上,尾流经历了显著变化,FlowFormer成功捕捉了尾流的不稳定性,保持了预测的准确性。尽管由于预测的迭代性,误差随时间积累,但整体尾流结构在时间步长上仍能被良好重建。当涡轮机在上游涡轮机尾流中运行时,观察到类似的结果。在这一更复杂和波动的尾流场景中,FlowFormer在时间步长上仍能准确预测尾流的空间模式和形状,如图6所示。
在第3.3节中,我们展示了模型的泛化能力。为了展示所提出的FlowFormer的强泛化能力,我们进行了一系列实验,使用由研究小组开发的内部GPU加速模拟工具生成的大型规模、长持续时间的数据集。具体来说,我们模拟了24台涡轮机布局下的15种不同场景:三种流入风速(8 m/s、9 m/s和10 m/s)与五种不同的模拟组合。每个场景运行3000秒,训练集从原始数据中每10秒进行采样。在模拟过程中,每个涡轮机的偏航角度随机选择自区间[?30°, 30°],并在整个过程中保持固定。尽管模型仅在这些固定偏航场景上进行训练,我们随后在变化偏航条件下进行测试,偏航角度每20秒切换一次。
一个典型的训练数据片段如视频7所示,每个流动场的尺寸为[570, 840]。如视频8所示,FlowFormer不仅能够处理变化的偏航角度,即使从未在训练中遇到这种情况,也能在超过200次迭代预测步骤后保持稳定(即超过2000秒)。这一案例研究表明,只要有足够数据,基于Transformer的基础模型能够处理训练集中未明确包含的场景。在未来的项目中,我们计划生成更多在不同设置下的风场流动场数据,以进一步增强FlowFormer的鲁棒性和适应性。
在第3.4节中,我们展示了模型在大规模风场数据中的泛化能力。为了展示所提出的FlowFormer的强泛化能力,我们进行了一系列实验,使用由研究小组开发的内部GPU加速模拟工具生成的大规模、长持续时间的数据集。具体来说,我们模拟了24台涡轮机布局下的15种不同场景:三种流入风速(8 m/s、9 m/s和10 m/s)与五种不同的模拟组合。每个场景运行3000秒,训练集从原始数据中每10秒进行采样。在模拟过程中,每个涡轮机的偏航角度随机选择自区间[?30°, 30°],并在整个过程中保持固定。尽管模型仅在这些固定偏航场景上进行训练,我们随后在变化偏航条件下进行测试,偏航角度每20秒切换一次。
一个典型的训练数据片段如视频7所示,每个流动场的尺寸为[570, 840]。如视频8所示,FlowFormer不仅能够处理变化的偏航角度,即使从未在训练中遇到这种情况,也能在超过200次迭代预测步骤后保持稳定(即超过2000秒)。这一案例研究表明,只要有足够数据,基于Transformer的基础模型能够处理训练集中未明确包含的场景。在未来的项目中,我们计划生成更多在不同设置下的风场流动场数据,以进一步增强FlowFormer的鲁棒性和适应性。
在第3.5节中,我们进行了讨论。与文本和图像在其他领域中易于获取的训练数据相比,基于CFD的流动场数据需要大量计算资源,特别是对于具有大量涡轮机的大规模风场。因此,开发一个能够适应不同风场布局、涡轮机类型、地形和三维流动结构的单一、多功能基础模型仍然具有挑战性,因为训练数据有限。
对于风场布局的泛化能力,有两种实际策略可以应对布局的多样性:(i)典型涡轮机阵列,其中涡轮机间距一致,代表性涡轮机进行模拟,数据在涡轮机级别进行划分;(ii)特定场地模拟,其中实际风场布局被完全模拟,然后用于模型训练。第一种方法计算效率高,但对不规则的现实布局适应性较低,而第二种方法在特定场地中提供更高的精度,但难以转移到其他配置。在实际应用中,选择哪一种方法取决于计算成本、模型泛化性和场地特定复杂性的平衡。
对于地形的泛化能力,尽管FlowFormer已被验证在平坦地形场景中,但许多实际场地还具有复杂地形,地形效应强烈影响流动特性。在这些情况下,尾流演化可能会因地形引起的剪切和湍流而显著改变。为了扩展FlowFormer的应用范围,地形信息(如高程图、粗糙度分布)可以作为额外的输入通道整合到模型中。此外,通过利用多保真度训练(如结合平坦地形的高保真度LES数据和复杂地形的中保真度RANS数据),基础模型可以在不需要大量LES数据的情况下进行适应。这一方向将在我们未来的项目中进行探索。
对于三维扩展和运营部署,本研究专注于二维机舱高度流动场,但FlowFormer可以自然扩展到三维,有两条可行路径。一是多平面(准三维)训练:将不同高度的多个水平平面作为输入通道堆叠,允许模型在计算成本适度的情况下捕捉垂直剪切、偏转和卷入。二是全三维体积训练:将整个流动场体素化,并使用三维卷积和高效注意力机制(如轴向或核注意力)进行处理,以保持可扩展性。在两种情况下,都可以预测所有三个速度分量(u, v, w),并引入额外的散度惩罚以强制近似不可压缩性。这确保了在运营过程中更真实地捕捉垂直尾流偏转、湍流结构和跨高度一致性。未来的项目将专注于使用多平面和体积LES数据实现和验证这些扩展。
对于物理一致性,当前FlowFormer完全基于LES数据进行训练,没有显式整合连续性方程或动量方程。因此,物理一致性继承自训练过程中使用的高保真度数据。未来可以将物理引导约束引入损失函数,例如引入散度自由正则化以鼓励质量守恒,或从简化纳维-斯托克斯方程中得出的基于残差的惩罚。这种混合策略可以结合基础模型的泛化能力和更强的物理保证,特别是在长时间预测或未见过的条件下。
对于更高阶的流动统计,尽管FlowFormer捕捉了湍流的主要二阶特征,如总体能量分布,但纯数据驱动模型在解析湍流的最细高频结构时存在固有的挑战。这种限制来自于卷积和降采样操作的空间平滑效应,可能会削弱小尺度波动。未来的改进可以包括多尺度架构或专门设计的物理引导正则化,以保留更高阶的流动特征,从而提高模型在整个湍流谱中的保真度。
在第4节中,我们总结了结论。在本研究中,我们引入了FlowFormer作为风场尾流流动场建模的潜在基础模型。通过利用基于Transformer的架构和半监督训练策略,FlowFormer直接在高保真度模拟数据上进行训练,这些数据总计约61.2 GB来自SOWFA,没有进行任何降维步骤。模型在各种流入条件和偏航设置下进行了验证,一致实现了100秒多步迭代预测的总体误差仅为6.660%,相对于自由流风速。详细分析表明,FlowFormer能够准确捕捉近尾流和远尾流区域,速度剖面与高保真度LES模拟结果非常接近。此外,模型能够有效重建关键尾流结构,如偏航引起的偏转、轴向恢复和尾流漂移,展示了其在不同涡轮机运行中的强适应性。在大规模风场上的实验,包括9×9阵列和24台涡轮机布局,进一步展示了FlowFormer的可扩展性和鲁棒性,即使在变化偏航角度和延长预测时间范围内。这些结果展示了FlowFormer作为风场尾流建模的多功能、高精度工具的潜力,并为未来改进提供了坚实的基础。