一种基于BP神经网络的螺旋桨多工况优化设计方法

文档序号:30525867发布日期:2022-06-25 06:54阅读:145来源:国知局
一种基于BP神经网络的螺旋桨多工况优化设计方法
一种基于bp神经网络的螺旋桨多工况优化设计方法
技术领域
1.本发明属于螺旋桨优化设计技术领域,具体涉及一种基于bp神经网络的螺旋桨多工况优化设计方法。


背景技术:

2.现有技术中,无人机普遍采用螺旋桨作为动力,螺旋桨的空气动力性能显著影响无人机性能,设计出高效的螺旋桨能够减轻无人机重量、提高无人机的飞行速度、升限和机动性,因此,发展高效的螺旋桨设计方法非常重要。
3.现有技术中,螺旋桨的优化设计需要进行多轮迭代,每轮迭代需要对大量的螺旋桨方案进行评估。目前的cfd方法,计算量大,耗时长;使用代理模型方法时,在面对不同工况、不同设计要求的螺旋桨时,鲁棒性不够。因此,需要发展更加快速、鲁棒性更好的螺旋桨性能评估方法,加快螺旋桨设计过程中的迭代速率,从而缩短设计周期。


技术实现要素:

4.针对现有技术存在的缺陷,本发明提供一种基于bp神经网络的螺旋桨多工况优化设计方法,可有效解决上述问题。
5.本发明采用的技术方案如下:
6.本发明提供一种基于bp神经网络的螺旋桨多工况优化设计方法,包括以下步骤:
7.步骤1,确定无人机螺旋桨设计要求,包括:螺旋桨类型、螺旋桨几何参数以及螺旋桨分别在巡航状态、爬升状态和起飞状态的设计要求;
8.其中,螺旋桨类型为定距桨;螺旋桨几何参数包括:螺旋桨直径、桨叶数和桨毂厚度;
9.螺旋桨在巡航状态的设计要求包括:巡航状态时的飞行速度、发动机工作转速、螺旋桨减速比、推力需求和桨设计效率;
10.螺旋桨在爬升状态的设计要求包括:爬升状态时的飞行速度、发动机工作转速、螺旋桨减速比和推力需求;
11.螺旋桨在起飞状态的设计要求包括:起飞状态时的螺旋桨减速比和推力需求;
12.步骤2,确定10个设计变量,分别为:0.3倍相对半径处弦长、0.3倍相对半径处安装角、0.5倍相对半径处弦长、0.5倍相对半径处安装角、0.7倍相对半径处弦长、0.7倍相对半径处安装角、0.9倍相对半径处弦长、0.9倍相对半径处安装角、1.0倍相对半径处弦长和1.0倍相对半径处安装角;
13.基于betz条件的设计原则进行初步设计,得到初始设计方案,所述初始设计方案是指:对10个设计变量赋初值,从而得到初始设计方案;
14.步骤3,以初始设计方案中每个设计变量的初始值为基准,确定各个设计变量的取值范围;
15.在各个设计变量的取值范围内进行抽样,从而得到多条设计方案,与初始设计方
案合并,得到设计方案集合;
16.步骤4,对设计方案集合中的各条设计方案进行筛选,得到筛选后的设计方案集合;
17.其中,筛选方法为:利用代理模型方法对每条设计方案进行仿真模拟,得到每条设计方案在每种工况下的螺旋桨推力、螺旋桨功率和螺旋桨效率;
18.判断是否同时满足以下两个条件:
19.条件1:模拟得到的每种工况下的螺旋桨推力,大于对应工况的推力需求;
20.条件2:模拟得到的每种工况下的螺旋桨功率,小于对应工况的发动机最大功率;
21.其中,对应工况的发动机最大功率通过以下方法确定:查找发动机转速和发动机功率的特性曲线,根据步骤1确定的巡航状态或爬升状态的发动机工作转速,得到巡航状态或爬升状态的发动机最大功率;
22.如果同时满足,则保留该条设计方案,否则筛除该条设计方案;
23.步骤5,对于筛选后的设计方案集合中的每条设计方案,表示为:设计方案ci,进行性能评估,采用下式,得到设计方案ci的综合效率ηc:
24.ηc=p1η1+p2η2+p3η3+p4η4+p5η525.其中:
26.p1,p2,p3,p4,p5,分别为起飞状态、爬升状态、巡航状态、下滑状态和降落状态的时长,在工况总时长的占比;其中,p1+p2+p3+p4+p5=1;
27.η1,η2,η3,η4,η5,分别为模拟得到的起飞状态、爬升状态、巡航状态、下滑状态和降落状态的螺旋桨效率;
28.步骤6,确定bp神经网络的结构:
29.bp神经网络包括1个输入层,4个隐藏层和1个输出层;其中,输入层包括10个神经元,用于输入每条设计方案的10个设计变量;每个隐藏层包括20个神经元;训练函数采用levenberg-marquardt算法;
30.以筛选后的设计方案集合中的每条设计方案为训练样本,以设计方案的综合效率作为损失函数的计算基准,对bp神经网络进行训练,从而确定bp神经网络中各层的连接权值,由此不断进行训练,得到训练完成的bp神经网络;
31.步骤7,采用遗传算法生成种群;种群中每个个体为对10个设计变量赋值后编码得到;
32.对于每个个体,输入到训练完成的bp神经网络,从而得到其综合效率作为个体的适应度;
33.从本批种群中,根据个体的适应度大小,利用选择算子挑选一部分个体作为父代种群;
34.对父代种群进行复制,交叉和变异操作,从而生成下一代种群;
35.如此不断迭代,直到收敛,得到的最优个体,即为最佳设计方案;
36.步骤8,输出优化得到的最佳设计方案。
37.优选的,步骤3中,各个设计变量的取值范围为:各个位置弦长的变化范围为:[-5%*对应初始值,5%*对应初始值];各个位置安装角的变化范围为:[对应初始值-2
°
,对应初始值+2
°
]。
[0038]
优选的,每个隐藏层的神经元数量,通过以下方式确定:
[0039]
1)采用下式,确定隐藏层神经元初始数量n1:
[0040][0041]
式中:
[0042]
n为输入层神经元数目,m为输出层神经元数目,a为1~10之间的常数;
[0043]
2)以隐藏层神经元初始数量n1为基准,确定隐藏层神经元取值范围;在隐藏层神经元取值范围中,按采样间隔采样得到多个采样点;对于每个采样点,均建立对应的bp神经网络模型,并输入训练样本,得到当前bp神经网络模型对应的预测误差;
[0044]
由此生成横坐标为隐藏层神经元数量,纵坐标为预测误差的拟合曲线;对拟合曲线进行分析,得到以下结论:从隐藏层神经元数量为1开始,随着隐藏层神经元数量增加,预测误差逐渐减小,当隐藏层神经元数量超过num时,预测误差基本不再变化,由此确定隐藏层神经元最佳数量为num,即为最终确定的隐藏层的神经元数量。
[0045]
本发明提供的一种基于bp神经网络的螺旋桨多工况优化设计方法具有以下优点:
[0046]
本发明提出一种针对定距螺旋桨的多工况快速优化设计方法,采用综合效率实现对螺旋桨在整个飞行过程中效率的表征,采用bp神经网络实现对螺旋桨性能的快速评估。本发明具有设计周期短,鲁棒性高,能够满足多工况要求的优点。
附图说明
[0047]
图1为本发明提供的一种基于bp神经网络的螺旋桨多工况优化设计方法的流程示意图;
[0048]
图2为本发明提供的螺旋桨多工况下的示意图;
[0049]
图3为本发明提供的隐藏层层数与模型预测误差的关系曲线图;
[0050]
图4为本发明提供的隐藏层神经元数量与模型预测误差的关系曲线图;
[0051]
图5为本发明提供的训练函数对模型预测误差影响程度的柱状图;
[0052]
图6为本发明提供的bp神经网络预测模型结构图;
[0053]
图7为本发明提供的最终设计得到的螺旋桨的结构图。
具体实施方式
[0054]
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0055]
无人机使用的螺旋桨,很多是固定桨距的定距螺旋桨,即在飞行过程中,螺旋桨的安装角不能调节。而无人机的工作状态,即工况主要包括5个阶段:起飞状态、爬升状态、巡航状态、下滑状态和降落状态。不同工况下飞行高度、速度及气温等条件也不尽相同,由于飞行中无法变距,这类螺旋桨在整个飞行过程均保持高的空气动力学效率是很困难的。因此,本发明综合评估各个飞行阶段的需求,提出反应多个工作状态螺旋桨工作效率的表征方法,保证在整个飞行过程中螺旋桨的总效率最高。
[0056]
本发明的目标在于提出一种针对定距螺旋桨多工况设计的优化设计方法,以期快速设计出在尽可能宽的工作范围内,空气动力效率高的螺旋桨外形方案,满足高性能无人
机研发的需求。本发明主要通过两个措施实现这一目标:(一)使用综合效率评估螺旋桨在多工况下的性能。(二)使用bp神经网络评估螺旋桨性能。
[0057]
本发明提供一种基于bp神经网络的螺旋桨多工况优化设计方法,参考图1,包括以下步骤:
[0058]
步骤1,确定无人机螺旋桨设计要求,包括:螺旋桨类型、螺旋桨几何参数以及螺旋桨分别在巡航状态、爬升状态和起飞状态的设计要求;
[0059]
其中,螺旋桨类型为定距桨;螺旋桨几何参数包括:螺旋桨直径、桨叶数和桨毂厚度;
[0060]
螺旋桨在巡航状态的设计要求包括:巡航状态时的飞行速度、发动机工作转速、螺旋桨减速比、推力需求和桨设计效率;
[0061]
螺旋桨在爬升状态的设计要求包括:爬升状态时的飞行速度、发动机工作转速、螺旋桨减速比和推力需求;
[0062]
螺旋桨在起飞状态的设计要求包括:起飞状态时的螺旋桨减速比和推力需求;
[0063]
步骤2,确定10个设计变量,分别为:0.3倍相对半径处弦长、0.3倍相对半径处安装角、0.5倍相对半径处弦长、0.5倍相对半径处安装角、0.7倍相对半径处弦长、0.7倍相对半径处安装角、0.9倍相对半径处弦长、0.9倍相对半径处安装角、1.0倍相对半径处弦长和1.0倍相对半径处安装角;
[0064]
基于betz条件的设计原则进行初步设计,得到初始设计方案,所述初始设计方案是指:对10个设计变量赋初值,从而得到初始设计方案;
[0065]
步骤3,以初始设计方案中每个设计变量的初始值为基准,确定各个设计变量的取值范围;
[0066]
在各个设计变量的取值范围内进行抽样,从而得到多条设计方案,与初始设计方案合并,得到设计方案集合;
[0067]
作为一种优选实现方式,各个设计变量的取值范围为:各个位置弦长的变化范围为:[-5%*对应初始值,5%*对应初始值];各个位置安装角的变化范围为:[对应初始值-2
°
,对应初始值+2
°
]。
[0068]
步骤4,对设计方案集合中的各条设计方案进行筛选,得到筛选后的设计方案集合;
[0069]
其中,筛选方法为:利用代理模型方法对每条设计方案进行仿真模拟,得到每条设计方案在每种工况下的螺旋桨推力、螺旋桨功率和螺旋桨效率;
[0070]
判断是否同时满足以下两个条件:
[0071]
利用代理模型方法对每条设计方案进行仿真模拟,得到每条设计方案在每种工况下的螺旋桨推力、螺旋桨功率和螺旋桨效率;
[0072]
其中,对应工况的发动机最大功率通过以下方法确定:查找发动机转速和发动机功率的特性曲线,根据步骤1确定的巡航状态或爬升状态的发动机工作转速,得到巡航状态或爬升状态的发动机最大功率;
[0073]
如果同时满足,则保留该条设计方案,否则筛除该条设计方案;
[0074]
步骤5,对于筛选后的设计方案集合中的每条设计方案,表示为:设计方案ci,进行性能评估,采用下式,得到设计方案ci的综合效率ηc:
[0075]
ηc=p1η1+p2η2+p3η3+p4η4+p5η5[0076]
其中:
[0077]
p1,p2,p3,p4,p5,分别为起飞状态、爬升状态、巡航状态、下滑状态和降落状态的时长,在工况总时长的占比;其中,p1+p2+p3+p4+p5=1;
[0078]
η1,η2,η3,η4,η5,分别为模拟得到的起飞状态、爬升状态、巡航状态、下滑状态和降落状态的螺旋桨效率。
[0079]
具体的,无人机飞行过程中包含多个工况,因此螺旋桨的设计不仅需要评估设计点的性能,还要考虑到其他工况,保证在整个飞行过程中螺旋桨的总效率最高。
[0080]
为表征螺旋桨在整个飞行过程中的效率,本发明提出按照工况时长占比作为权重因子,求取螺旋桨整个飞行过程中的加权效率,将其称为综合效率。
[0081]
无人机的工况主要包括5个阶段:起飞状态、爬升状态、巡航状态、下滑状态和降落状态,如图2所示,令各个工况在所有工况的时长占比分别为p1,p2,p3,p4,p5,其取值大小根据无人机具体型号的工作情况确定。五个工况时长占比总和为1,即:
[0082]
p1+p2+p3+p4+p5=1
[0083]
在各个工况下,分别对螺旋桨进行性能评估,得到起飞状态、爬升状态、巡航状态、下滑状态和降落状态的螺旋桨效率分别为η1,η2,η3,η4,η5。
[0084]
因此,定义螺旋桨综合效率ηc为:
[0085]
ηc=p1η1+p2η2+p3η3+p4η4+p5η5[0086]
因此,本发明采用综合效率表征螺旋桨在多工况下的性能。
[0087]
步骤6,确定bp神经网络的结构:
[0088]
bp神经网络包括1个输入层,4个隐藏层和1个输出层;其中,输入层包括10个神经元,用于输入每条设计方案的10个设计变量;每个隐藏层包括20个神经元;训练函数采用levenberg-marquardt算法;输出层输出设计方案的综合效率;
[0089]
以筛选后的设计方案集合中的每条设计方案为训练样本,以设计方案的综合效率作为损失函数的计算基准,对bp神经网络进行训练,从而确定bp神经网络中各层的连接权值,由此不断进行训练,得到训练完成的bp神经网络;
[0090]
具体的,针对螺旋桨设计中,现有方法在评估螺旋桨性能时计算效率与鲁棒性无法兼得的问题,本发明提出使用bp神经网络评估螺旋桨性能。
[0091]
人工神经网络是在人类认识生物神经系统的基础上,人工构造的能够实现非线性数学建模的网络系统。人工神经网络实际上是由大量的简单组件相互连接而形成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系拟合。其中bp神经网络由于有效地解决了传统数学方法难以解决的复杂非线性数学建模问题,得到广泛而成功的应用,目前已成为人工神经网络最具影响力的算法。
[0092]
bp神经网络本质上是一种由输入到输出的映像,不需要任何输入和输出之间的精确数学表达式,只要用已知的输入输出数据对bp神经网络加以训练,网络就能够具有从输入到输出的映射能力。因此本发明采用bp神经网络进行螺旋桨设计方案的性能评估。
[0093]
首先根据样本数据特点确定神经网络结构。bp神经网络采用多层结构,包括输入层、隐含层、输出层三部分。本发明希望建立螺旋桨的10个设计变量取值与螺旋桨综合效率之间的映射关系,因此神经网络结构为输入层10个神经元,输出层1个神经元。隐藏层激活
函数采用sigmoid函数,输出层激活函数采用purelin函数。
[0094]
bp神经网络中,隐藏层层数、隐藏层神经元数目、训练函数的选择较为关键,通常需要反复试验并积累经验后才能确定,本发明将分别对这三个模型参数采用分层研究的方法进行研究,即各个参数分别研究,在分析各参数的重要性和敏感性的基础上,一类参数确定后再确定下一类。
[0095]
在确定网络参数后,利用分离物气动特性的数值计算结果对神经网络模型进行训练。为了验证模型性能,防止过拟合,在训练样本中,随机选择70%用于模型训练,15%用于模型验证,15%用于模型测试。在训练、验证和测试中采用归一化的均方误差表征预测结果与期望结果的误差。
[0096]
下面对隐藏层层数、隐藏层神经元数目、训练函数的确定详细介绍:
[0097]
(一)隐藏层层数的确定
[0098]
只有输入层和输出层的神经网络称为单层神经网络。当将隐藏层加入到单层神经网络中时,就生成多层神经网络。因此多层神经网络包含一个输入层,一个或多个隐藏层,以及一个输出层。只有一个隐藏层的神经网络称为浅层神经网络或普通神经网络,含有两个或多个隐藏层的多层神经网络称为深度神经网络。
[0099]
单层神经网络仅能解决线性分割类的问题,这是因为单层神经网络是一种线性地分割输入数据空间的模型。为克服单层神经网络的限制,需要为网络增加更多的神经元层,即采用多层神经网络去实现单层神经网络做不到的事情。总之,单层神经网络适用于特定问题类型,而多层神经网络没有这种限制。
[0100]
发明人经研究发现,增加隐藏层层数可以降低网络误差,从而提高精度,但其也会使网络变得复杂从而增加网络的训练时间和出现“过拟合”的可能性。本发明尝试1~6个隐藏层的bp神经网络模型,对其分别进行训练后,模型预测效果的对比如图3所示。可以看到隐藏层大于4层后,模型预测的误差不再随模型层数增大而明显减小,因此本发明采用含4个隐藏层的bp神经网络。
[0101]
(二)隐藏层神经元数目的确定
[0102]
在bp神经网络中,隐藏层神经元数目的选择非常重要,不仅对神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的确定隐藏层神经元数目的方法。确定隐藏层神经元数目的基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐藏层神经元。隐藏层神经元数目不仅与输入输出层的神经元数目有关,还与需解决的问题的复杂程度、激活函数的形式以及样本数据的特性等因素有关。
[0103]
本发明采用以下方法确定隐藏层神经元数目:
[0104]
1)采用下式,确定隐藏层神经元初始数量n1:
[0105][0106]
式中:
[0107]
n为输入层神经元数目,m为输出层神经元数目,a为1~10之间的常数;
[0108]
2)以隐藏层神经元初始数量n1为基准,确定隐藏层神经元取值范围;在隐藏层神经元取值范围中,按采样间隔采样得到多个采样点;对于每个采样点,均建立对应的bp神经网络模型,并输入训练样本,得到当前bp神经网络模型对应的预测误差;
[0109]
由此生成横坐标为隐藏层神经元数量,纵坐标为预测误差的拟合曲线;对拟合曲线进行分析,得到以下结论:从隐藏层神经元数量为0开始,随着隐藏层神经元数量增加,预测误差逐渐减小,当隐藏层神经元数量超过num时,预测误差基本不再变化,由此确定隐藏层神经元最佳数量为num,即为最终确定的隐藏层的神经元数量。
[0110]
具体的,本发明中,输入层神经元数目n为10,输出层神经元数目m为1,a取1,得到隐藏层神经元初始数量n1为5。然后,尝试隐藏层神经元数目为5~35个的bp神经网络模型,对其分别进行训练后,模型预测效果的对比如图4所示,可以看到随着隐藏层神经元数目的增加,模型预测的误差逐渐减小,但在神经元数目达到20个以后,误差几乎不随神经元数目的增加而减小,因此bp神经网络的每个隐藏层设20个神经元。
[0111]
(三)训练函数的确定
[0112]
神经网络模型的每一类学习过程通常被归纳为一种训练函数。训练函数有很多,每种训练函数各有特点,但是没有一种训练函数能适应所有情况下的训练过程。目前主要有以下几种训练函数:

基本的梯度下降法;

动量梯度下降法;

自适应修改学习速率算法;

共轭梯度算法;

levenberg-marquardt算法;

贝叶斯规则法。
[0113]
本发明分别尝试使用以上6种训练函数训练模型,其训练出来的模型预测误差对比如图5所示。可以看到,levenberg-marquardt算法和贝叶斯规则法在6个输出变量上的预测误差均小于0.1,明显小于其他算法,其中又以levenberg-marquardt算法的预测误差更小一些,故采用其作为训练函数。
[0114]
通过以上研究,本发明确定的bp神经网络模型结构如图6所示,输入层设10个神经元,输出层设1个神经元,设置4个隐藏层,每个隐藏层神经元数目为20,训练函数采用levenberg-marquardt算法。
[0115]
步骤7,采用遗传算法生成种群;种群中每个个体为对10个设计变量赋值后编码得到;
[0116]
对于每个个体,输入到训练完成的bp神经网络,从而得到其综合效率作为个体的适应度;
[0117]
从本批种群中,根据个体的适应度大小,利用选择算子挑选一部分个体作为父代种群;
[0118]
对父代种群进行复制,交叉和变异操作,从而生成下一代种群;
[0119]
如此不断迭代,直到收敛,得到的最优个体,即为最佳设计方案;
[0120]
步骤8,输出优化得到的最佳设计方案。
[0121]
下面介绍一个具体实施例:
[0122]
步骤s1,首先确定设计要求。
[0123]
某型无人机螺旋桨气动相关主要设计要求如下:
[0124]
(1)螺旋桨直径:1100mm;
[0125]
(2)桨叶数:4;
[0126]
(3)定距桨,桨毂厚度70mm;
[0127]
(4)巡航状态(h=10000m)为主设计点,飞行速度140
±
5km/h,发动机工作转速5000
±
100r/min,螺旋桨减速比2,推力需求大于19kg,桨设计效率不小于75%。
[0128]
(5)针对爬升状态(h=7000m)的设计要求:飞行速度155
±
5km/h,发动机工作转速
5300
±
100r/min,螺旋桨减速比2,推力需求大于26kg;
[0129]
(6)滑跑起飞状态(h=0m)的设计要求:螺旋桨减速比2,推力需求大于120kg。
[0130]
步骤s2:基于betz条件的设计原则进行初步设计,得到初始设计方案(如表1),然后以0.3、0.5、0.7、0.9、1.0倍相对半径处的弦长、安装角共10个参数作为设计变量,弦长变化范围为
±
5%,安装角变化范围为
±2°
,加上初始设计方案一同排列组合,得到1000个设计方案。
[0131]
表1初始设计方案
[0132][0133][0134]
步骤s3:利用代理模型方法对步骤s2产生的1000个设计方案进行性能评估,得到每个设计方案在5个工况下的螺旋桨推力、螺旋桨功率和螺旋桨效率。
[0135]
根据无人机类型,确定各工况的时长占总工作时长的比例如表2所示:
[0136]
表2无人机各工况时长占比
[0137][0138]
因此,按照本发明提出的综合效率定义,计算各设计方案的综合效率为:
[0139]
ηc=0.02η1+0.1η2+0.76η3+0.1η4+0.02η5[0140]
步骤s4:根据推力需求和功率限制(模拟得到的每种工况下的螺旋桨推力,大于对应工况的推力需求,模拟得到的每种工况下的螺旋桨功率,小于对应工况的发动机最大功率)挑选符合条件的设计方案。
[0141]
然后利用符合条件的设计方案作为训练样本,训练bp神经网络。最终确定神经网络结构如下:输入层10个神经元(0.3,0.5,0.7,0.9,1.0倍相对半径处的弦长、安装角),输出层1个神经元(综合效率),隐藏层激活函数采用sigmoid函数,输出层激活函数采用purelin函数,4个隐藏层,每个隐藏层含20个神经元,采用levenberg-marquardt算法作为训练函数。
[0142]
步骤s5:使用遗传算法进行方案寻优,得到优化方案。
[0143]
步骤s6:调用步骤s4中训练的神经网络对步骤s5得到的优化方案性能进行评估,若遗传算法没有收敛,则返回步骤s3;若遗传算法已经收敛,则评估后进入下一步。
[0144]
步骤s7:输出最终设计方案,如表所示,螺旋桨外形如图7所示。
[0145]
表3螺旋桨最终设计方案
[0146][0147]
本发明提出一种针对定距螺旋桨的多工况快速优化设计方法,采用综合效率实现对螺旋桨在整个飞行过程中效率的表征,采用bp神经网络实现对螺旋桨性能的快速评估。本发明具有设计周期短,鲁棒性高,能够满足多工况要求的优点。
[0148]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1