玲珑阁
返回 · 书籍

第 127 章

第127章 参数调优

拒绝认亲,真少爷走上顶峰 · 清源公子 · 3295 字


接下来的两天,张辰和钱瑾姝都在调整函数的控制点参数。

张辰把三个控制点的纵坐标作为优化变量,用内点法自带的梯度信息做局部搜索。

钱瑾姝在旁边记录每次迭代的结果,画出参数变化的轨迹。

控制点的权重系数不是单调变化的——起飞段的权重先升后降,巡航段的权重一直在降,末端的权重波动最大。

周三下午,张辰盯着屏幕上的收敛曲线,忽然说了一句:“末端的权重波动这么大,可能是因为末端段的物理模型本身就不准。”

钱瑾姝凑过来看了看,“你是说,末端的控制模型需要单独修正?”

“先调参数,把末端权重稳住。如果还不行,再动模型。”

张辰把末端权重的初值改了一个量级,重新跑。收敛曲线平滑了,热流峰值再降了两个百分点,射程增了一个点。

周四上午,两个人把参数调到了当前方案下的最优组合。热流比初始基线降了百分之十四,射程增了百分之十一。两条曲线的形状平滑,没有多余震荡。

“可以了~~”张辰靠在椅背上,“明天带给钱爷爷看看。”

周五下午,钱家书房。

钱文忠戴上老花镜,翻着张辰带过来的数据。热流曲线、射程曲线、权函数参数的收敛历程,一页一页地看。翻到最后,他合上笔记本,摘下眼镜。

“参数调得不错。下一步,把空间摩擦加上。”他从书架上抽出一本更旧的讲义,放在桌上推过来,“自由分子流到连续流的过渡区,用桥函数拟合。推导过程在里面,你们自己先看。有问题攒着,下个月一起问。”

张辰接过讲义,翻开第一页。公式密密麻麻,推导很细。

“谢谢钱爷爷。”

.........

周六上午,张辰和钱瑾姝到了办公室。张辰把钱老给的讲义摊在桌上,两人各翻一遍。

讲义比之前那本厚得多,三十多页,从自由分子流的基本假设开始,推到连续流的气动系数,中间用桥函数搭桥。推导不完整,跳了很多步,显然是钱老当年手写的笔记,不是正式教材。

张辰看了两页就停了,“这跳得也太多了。”

“爷爷是让我们自己补。”钱瑾姝指着第四页的一行公式,“这里,从自由分子流的阻力系数直接跳到了桥函数的形式,中间没有推导。”

张辰盯着那行公式看了一会儿,拿起笔在草稿纸上写了几行。

自由分子流的阻力系数与分子速度比有关,连续流的阻力系数与马赫数平方成正比。

两者形式完全不同,桥函数的任务是让过渡区的值光滑衔接。

“不是简单插值。”张辰放下笔,“桥函数的形式应该跟克努森数有关。克努森数小的时候趋向连续流,大的时候趋向自由分子流。”

钱瑾姝翻开讲义后面几页,找到了一张图表。横坐标是克努森数,纵坐标是桥函数的值,曲线是S形的。

“S形曲线——可以用双曲正切拟合。”张辰说。

周日两人也没有歇息,把推导重新做了一遍。张辰从玻尔兹曼方程的渐近分析出发,推导了桥函数应该满足的边界条件——克努森数趋近于零时,桥函数趋近于零;趋近于无穷时,趋近于一。然后用双曲正切构造了一个形式,带一个待定参数。

钱瑾姝拿这个形式去拟合讲义里那张图表的数据,调了参数。拟合误差在百分之五以内。

“方向对,但精度不够。”张辰看着拟合结果,“双曲正切只有一个自由参数,自由度太低。得加一个参数。”

“用双参数逻辑斯蒂函数?”

张辰想了想,“试试。”

钱瑾姝花了一个小时推导了双参数逻辑斯蒂函数的表达式,重新拟合。误差降到了百分之二以内。

“可以了。”她把拟合结果递给张辰。

张辰把新桥函数写进代码,跑了一组简单测试——给定克努森数的变化序列,算气动系数的过渡值。结果连续,没有突变,边界条件满足。

“这只是单点验证。”张辰靠在椅背上,“还得嵌进全流程跑一遍,看跟风洞数据的偏差。”

“嗯,明天再继续!!”,钱瑾姝活动了一下手腕。

周一上午,两人把桥函数模块嵌进全流程。跑了两个算例,偏差都在百分之三以内。

张辰又跑了一组极端工况——克努森数的变化范围比讲义里的图表大了一倍,结果依然稳定。

“桥函数的形式泛化性不错。”张辰盯着屏幕,“钱老给的图表数据范围有限,我们拟合出来的公式在外推区域也有效。”

“要不要报给周哥?”

“不急。先把文档写了,周五带给钱老看。”

接下来的几天,两个人都在写技术文档和做验证。张辰把桥函数的推导过程和拟合结果写成报告,钱瑾姝跑了几组不同工况的验证,误差都在允许范围内。

钱家书房,钱文忠翻着张辰带过来的报告。

“双参数逻辑斯蒂?”钱老问道。

“双曲正切只有一个参数,自由度不够。我们换成了双参数形式,拟合误差降到了百分之二以内。”

钱文忠点了点头,继续往下翻。翻到最后,他合上报告,摘下眼镜。

“泛化性验证做了?”

“做了。克努森数范围外推了一倍,结果稳定。”

钱文忠看了张辰一眼,把报告放在桌上,“可以。继续把桥函数模块嵌进全流程,跑三组标准算例,跟风洞数据比对。比完没问题,就算定型。”

张辰合上笔记本,“好的。”

接下来的两周,张辰和钱瑾姝都在跑桥函数模块的验证。

他们把三组标准算例嵌进全流程,一组是低空低速工况,克努森数很小,接近连续流极限;一组是高空高速工况,克努森数很大,接近自由分子流极限;还有一组是过渡区工况,克努森数覆盖了中间几个量级。

张辰负责调桥函数的参数,钱瑾姝负责对照风洞数据。

两组极限工况跑得快,偏差都在百分之二以内。过渡区工况跑了两天出了问题——气动系数在某个克努森数附近出现了一个不该有的拐点。

“桥函数没问题,是输入数据的问题。”张辰盯着输出日志,翻了钱瑾姝的数据预处理代码,“克努森数序列不是单调的,中间有两个点重复了。”

钱瑾姝改了数据,重新跑。拐点消失,偏差降到了百分之一点五。

周二晚上,三组算例全部跑完。张辰把结果整理成报告,发给周明。备注里写道:“桥函数模块已通过三组标准算例验证,偏差均在百分之二以内,建议纳入总体流程。”

周明第二天早上回的邮件,只有两个字:“收到。”

周四下午,周明来了办公室,手里拿着一份打印好的报告。

“总师看了。让下周一之前提交最终版本,嵌进总体代码库。”周明把报告放在桌上,“还有,总师问,这个桥函数的方法能不能推广到其他过渡区问题,比如湍流模型?”

张辰愣了一下,随即反应过来,“我觉着可以试试,但是先别急,我先问问钱爷爷,看看钱爷爷怎么说!”

周明点了点头,“行,那你尽快!”!

周五下午,钱家书房钱文忠翻看着张辰的报告。三组算例的对比曲线、偏差分布、收敛历程,一页一页地看完。

“总师说什么了?”

“让下周一之前提交最终版本。还问能不能推广到湍流模型。”,张辰道。

钱文忠看了他一眼,“你打算怎么回复?”

张辰犹豫了一下,道:“可以试试,不过得先完成这个。”

钱文忠点了点头,“桥函数模块可以定型了。湍流模型那个,你先看文献,再完善一下。”

周六上午,两人到了办公室。张辰打开电脑,开始查湍流模型过渡区的文献。钱瑾姝在旁边翻钱老给的讲义,把桥函数模块的最终版本又过了一遍。

“周哥那边催了吗?”钱瑾姝问道。

“下周一之前提交就行。不急,先把文档写完。”

张辰把桥函数模块的代码打了个标签,提交到版本库。注释写的是:“桥函数模块定型,基于双参数逻辑斯蒂函数,克努森数范围已验证。”

钱瑾姝把技术文档的最后一版整理好,发给了周明。

周一上午,周明回了邮件,“收到。模块已合并到主线分支。”

张辰看完邮件,合上电脑,转头看了钱瑾姝一眼,“下一步,湍流模型。”

钱瑾姝翻出钱老之前提到的文献列表,一共七篇。

张辰分了工——自己看四篇,钱瑾姝看三篇,周五之前交换笔记。

接下来几天,两个人都在啃文献。张辰看的四篇里,有一篇是钱老早年写的内部报告,讲的是湍流转捩区的工程计算方法,思路跟桥函数很像——用插值函数连接层流和湍流的气动系数。

张辰把这篇报告反复看了三遍,在笔记本上记了十几页。周三下午,他合上笔记本,对钱瑾姝说:“湍流模型的过渡区,可以用跟桥函数一样的思路。”

“你是说,用克努森数做自变量,插值层流和湍流的系数?”

“不完全是。湍流过渡区的影响因素更多,但基本框架是一样的。先做个简化版,验证方向。”

张辰在纸上画了一个草图——层流区、过渡区、湍流区,横坐标是雷诺数,纵坐标是摩擦系数。过渡区用双参数逻辑斯蒂函数搭桥。

“你推导表达式,我改代码框架。”张辰道。

“行。”

— 本章完 —