第567章 跨行出手(2/2)
“吕工,谢谢您。谢谢您。”
他弯着腰,肩膀微微发抖。
吕辰扶住他的肩膀。
“陈工,别这样。咱们都是干活的,谁也不比谁容易。”
陈建国走了以后,办公室里安静了一会儿。
万人敌把那张手绘的表格折好,揣回兜里,靠在椅背上,点了一根烟。
“吕工,你说的那些改造,真能解决?”
“能解决一部分。”吕辰也点了一根烟,“但不可能全解决。设备代差在那里,材料基础在那里,不是去几个人就能翻天的。”
“那你还请人去?”
“能让良率从60%提到80%。这就够了。”
万人敌吸了一口烟,慢慢吐出来:“行,吕工、吴工,你们忙,我回去盯板卡设计!”
吕辰看了看墙上的挂钟,已经十点多了。
“万工,你先别忙走,等我去找汤渺教授协调个人,我和你一起去,咱们去看看汪教授的板卡设计微程序。”
正说着,走廊里传来一阵急促的脚步声。
一名三十来岁的研究员,手里拿着一沓稿纸,走了进来,这是魏教授的研究员赵泽勇,他戴一副黑框眼镜,镜片上全是手印。
“吕辰!国华!可找着你们了。”
“赵师兄?怎么了?”
赵泽勇把手里那沓稿纸递过来。
“我来请你们,下午去机房,帮着审审微程序。我们的科学函数库写了一批,但有些技术问题拿不准,请你们把把关。”
吕辰接过稿纸翻了翻。
第一页写着一个标题:《数字孪生基础数学库·浮点运算模块》。
又不是公式。
吕辰看着就有点想笑:“赵师兄,这是你们写的?”
“嗯。”赵泽勇有些不好意思,“我们写了不少,就是感觉写的太数学了,所以午马机看不懂,商量了一下,还得来找你二位帮着改。”
吴国华凑过来看了一眼,笑了。
“赵师兄,你们这是把数学公式直接抄上去了?‘设X为浮点数,Y为浮点数,则Z=X+Y’,嘿嘿,这不叫微程序,这是给午马机布置数学作业。”
赵泽勇比了一个大拇指:“国华这样说,我就放心了,你们果然是写微程序的高手,有你们帮忙指导,我看没问题。”
吕辰道:“赵师兄,数字孪生的函数库可不少,以后还会有很多用到编辑机的地方。我看不如这样,咱们直接来个现场培训算了,这个很简单的,咱们把规则讲讲,大家就明白了。”
赵泽勇点点头:“这样就再好不过了。”
他又拿起册子介绍:“这是我们的基础数学库第一版,一共43个函数。加减乘除、开平方、三角函数、矩阵运算、微分方程求解器……都在里面了。”
吕辰接过来,第一页是目录,用钢笔手写,字迹工整,一丝不苟。
1.浮点加法FADD
1.浮点减法FSUB
1.浮点乘法FMUL
1.浮点除法FDIV
1.浮点开平方FSQRT
1.浮点比较FCMP
……
翻到正文,是一段用类似汇编语言写的伪代码。
FADD:
//输入:R1=浮点数A,R2=浮点数B
//输出:R0=A+B
//破坏:R3,R4,R5,R6
了箭头指向旁边的注释。
吕辰看了两页,眉头渐渐舒展开。
“赵师兄,这个写得比我想象的好多了。”
赵泽勇拿出烟发了一圈,笑道:“那是你没看后面。矩阵乘法那一章,我们写了三十几页,运算量加起来,1万多条指令。我一个一个看,眼睛都快瞎了。”
吴国华凑过来,翻到矩阵乘法那一章,看了一眼,倒吸了一口凉气。
“三层循环,每次循环调用浮点乘法和加法。这个量……跑一次矩阵乘法,午马机要算多久?”
赵泽勇竖起三根手指。
“三分钟。”
“三分钟?”吴国华皱了一下眉头,“16位矩阵,三分钟?”
“16×16的矩阵。”赵泽勇说,“我算了算,比用手工算快了几百倍。但在实际应用中,我们的温度场网格是100×200的,算一次要几个小时。”
他顿了顿:“所以我才找你们来。不是看写得对不对,是看能不能优化。少几次循环,少几次函数调用,就能省出几十秒甚至几分钟。”
吕辰合上册子。
“赵师兄,这个活我们接了。但您得给我们时间。这两天昆仑1的板卡正在做最后调试,我抽不出整块的时间。”
“不着急。”赵泽勇站起来,拿出一张纸,“你们慢慢来。我今天来找你们,不光是看这个。”
他在纸上写了一个公式。
那是移动平均滤波的表达式。
“我昨天想了一个事。”他用笔点着公式,“轧钢车间的温度传感器,受电磁干扰,信号里有尖峰噪声。我想写一个微程序,自动识别并剔除这些异常值。”
他用粉笔在公式旁边画了一个波形图,在几个尖峰处画了圈。
“这不是什么高深的东西,移动平均滤波。取样点前后各两个,跟自己平均。偏差超过三倍标准差的,判定为异常值,用平均值替代。”
他把粉笔放下,转过身。
“你们看这个思路行不行?”
吕辰盯着那个公式,脑子里忽然闪过一个念头。
一个和魏教授的问题毫无关系的念头。
“赵师兄,您刚才说‘偏差超过三倍标准差的,判定为异常值’?”
赵泽勇愣了一下。
“对。怎么了?”
吕辰没有回答,他转过头,看着吴国华,又看着万人敌。
“国华、万工,774厂的电阻,阻值分布是什么样的?”
吴国华和万人敌也愣了一下,然后反应过来。
万人敌道:“报告上写的是正态分布,但是中心偏离了标称值,方差也大。”
“对。”吴国华拿起另一支笔,“中心偏离,是系统性偏差;方差大,是随机性偏差。如果我们在软件里做一次初始校准……”
他画了一个坐标系,横轴是实测值,纵轴是标称值。
“每一颗电阻上机之前,测一次实际阻值,存进只读存储器里。使用时,查表校准。标称10k的电阻,实测是9.2k,软件里就按9.2k来算。”
他在坐标系里画了一条直线。
“这不就把系统性偏差消灭了吗?”
万人敌一拍桌子:“对!不光是电阻,电容也一样。漏电流、容量偏差,全部可以预校准。只要系统上电的时候跑一次自检,把每个元件的实际参数测出来,存进一个表格里。运行时查表,软件自动补偿。”
赵泽勇表情没什么变化,只是微微点了点头。
“这个思路,在统计学里叫系统误差补偿。我们做实验的时候常用,没想到你们也能用。”
吕辰看着他,忽然笑了。
“赵师兄,您知道上午我在愁什么吗?”
“什么?”
“774厂的电阻,温漂15%,批次不一致,我们愁得要死。想了很多办法,改工艺、换设备、加强抽检、降额使用……每一条路都走得通,但每一条路都要花几个月甚至更久。”
他比了个大拇指:“您这一个公式,移动平均滤波,让我忽然想明白了,有些问题,不一定非要改硬件。改软件,也行。”
赵泽勇沉默了几秒。
然后他说了一句让吕辰记了很久的话。
“小吕,你们工程师有一个毛病。”
“什么毛病?”
“遇到问题,第一反应是怎么把它修好。换一个角度想,怎么让它坏得可控。修好要花十分力气,让它坏得可控,也许只需要一分。”
他一脸自豪,露出搞理论的嘴脸:“元件不好,不是你们的错。但可以用算法来补,不是你们的专利。数学,从来就是干这个的。”
吕辰和吴国华对视一眼,做理论的就是这点不讨喜。
吴国华拿起笔:“赵师兄,您的这个移动平均滤波,我帮你写成微程序,但你得帮我写一个通用的信号清洗函数?”
“行,就这么定了。”赵泽勇说,“给我两天时间,我给你把函数写出来。”
皆大欢喜,三人对视一眼,都笑了起来。