困难对于人来说,是一把打向坯料的锤,打掉的应是脆弱的铁屑,锻成的将是锋利的钢刀——契诃夫。
很多人害怕困难,实际上并不是害怕困难本身,而是害怕为了克服困难而所需付出的努力,所以困难并非不可克服,之所以不可克服,是因为努力不够!
我们开始了在金山石化总厂的反应釜温度控制试验,但我马上发现项目的难度远超出我的想象......
“不行,没有控制住!”老葛看着手里打印出来的温度控制曲线记录,摇着头说道。
“你看这里,温度突然升高了,明显是反应釜中的化学反应开始放热了,但控制系统没有及时降温!”老葛指着温度控制曲线记录纸上一个突然上升的温度脉冲说道。
“再看这里,温度又突然下降了,明显上反应釜中的化学反应开始吸热了,但控制系统没有及时加温!”老葛又指着温度控制曲线记录纸上一个突然下降的温度脉冲说道。
我们来到金山石化总厂已经一个多星期了,试验结果非常不理想,每天我们看着一卷又一卷的温度控制曲线记录纸上那些不听“使唤”上蹿下跳的温度控制曲线束手无策。
之前,一开始在上海器皿二厂的项目中,我们好歹把温度控制住了,只是最后烧出来的产品不合格;
而现在,连温度都没有控制住,这反应釜里的化学反应过程是否正确就更谈不上了!
看到控制的曲线像一匹脱离缰绳的野马,老葛也很焦急,因此他每天都会来实验室,看我们的试验结果,并和我们一起分析控制中出现超调的原因。
确实如老葛说的,他们的反应釜容积小,这意味着热容量小,对化学反应中出现的放热和吸热产生的温度干扰非常敏感。
另一方面,反应釜的热容量虽然小,但并不是零,因此有着自己的热惯性,一旦由于化学反应过程中的放热和吸热产生了温度干扰,由于反应釜的热容量的存在,因此控制系统在调控时并不能马上影响正在进行的化学反应,因此非常容易出现超调。
所谓的超调,就是对温度波动进行调整控制后,温度不会立即回到原来的设定位置,而是还会随着惯性继续上冲或继续下跌,而等到通过调整控制回到原来的设定位置后,又不会立即停下来,保持在设定的温度位置,而是会随着惯性继续下跌或上冲。
超调的问题,在自动控制中是一个经典的问题,有很多种方法可以解决。
我感兴趣的领域就是自动控制领域,我甚至还花了二年多的时间去准备报考自动控制的研究生,因此我对自动控制理论可以说是再熟悉不过了。
我知道,只要在传统的负反馈控制基础上,适当地加入现代控制理论中的前馈控制,就能很好地解决超调问题。
但是,我遇到的最大困难和之前上海器皿二厂的项目是一样的,那就是040微处理器的设计初衷是为了简单的家用电器控制,而不是为了复杂的工业过程控制!
因此在一次我们租赁团队内部的情况分析会上,小傅终于憋不住了,说:“这040究竟行不行啊?要解决超调问题,就必须加入现代控制理论中的前馈控制,但这040本来就是用来控制家用电器的,现在却硬要用来控制复杂的工业过程,这不是逼着人去上吊吗?!”
应当承认小傅的抱怨不是没有道理的,040的设计初衷确实是用来控制家用电器的,是我们硬要用来控制复杂的工业过程,因此其运算能力和内存都远远无法满足要求。
事实上,不要说现代控制理论中的算法需要复杂的数学计算,就连为了实现最常规的传统pid控制,当时我们在上海器皿二厂的项目中就已经捉襟见肘、费尽心力了!
“要不我们放弃算了,反正我们也没有和金山石化总厂签订任何的合作协议。”这时小杨在一旁听了小傅的话,也颇有打退堂鼓的意思。
“那我们的租赁合同怎么办?都快三个月过去了,一个项目也没有拿到,现在好不容易有了一个,还是一块‘肥肉’,现在又要放弃,如果接下来还是没有项目进来,那我们该怎么办?”老刘在一旁听了小杨的话,大声质疑道。
“先不要讲什么项目了,现在我们发工资都是向厂里借的钱,如果一直这样下去,恐怕连工资都发不出了!”这时小黄在一旁一面抽着烟一面提醒大家道。
可能是小黄的话让大家意识到了一个更为严峻的问题,那就是接下来我们可能连工资都发不出了!
于是大家都沉默了,甚至有人开始唉声叹气起来。
没错,我们陷入了一个进退二难的境地:
如果进,040不是用来控制复杂的工业过程的,因此不能满足金山石化总厂提出的控制要求实属正常;
如果退,那很快我们就连工资也发不出了,成功完成租赁合同规定的上缴利润更是无从谈起!
但我们有其它更好的选择么?
没有!
也许我们的境遇就是那个时代的一个缩影,因为这是一个有条件要上,没有条件也要上的时代!
当时的情景如果用一个不恰当的比喻,比如说“反导”,我们既没有s400,也没有s300,甚至连萨姆ii导弹都没有,我们有的只是一杆“鸟枪”!
换句话说,我们只能用“鸟枪”去反导!
然而:任何问题都有解决的办法,无法可想的事是没有的——爱迪生。
我看着愁眉不展的小伙伴们,问了大家一个之前在讨论接还是不接上海器皿二厂项目时问过的问题:
“继续下去,我们不一定能解决问题,结果就是连工资也发不出了;而如果放弃,短时间内也不一定能接到新的项目,即使接到了,040也未必能胜任,因为040本来就不是设计用来进行复杂的工业控制的,因此结果也是发不出工资,大家说说,我们是继续呢,还是放弃呢?”
“是啊,上次我们接了上海器皿二厂的项目,本来想这项目的复杂程度可能是到顶了,但想不到现在金山石化总厂的项目还要复杂!所以即使放弃了,接下来接到的项目也未必就会是简单的,甚至比金山石化总厂的项目更复杂也不一定,所以我看也没有必要挑精拣肥的了!”小宋听了我的话,在一旁附和着我。
“这倒是的!现在看来工业过程控制都是很复杂的,是我们自己把问题想简单了,因此我们即使放弃了这个项目,再接到的也可能是同样复杂的项目,而且我们还不一定能接到项目!所以现在我们放弃是‘等死’,继续下去则是‘送死’,所以我看还不如主动点,‘送死’算了!”小傅是个直性子,有什么说什么,但由于喜欢看书,因此有时候说话还挺幽默。
“哎呀,我们的命怎么这么不好啊!上次,接上海器皿二厂的项目,最后成功了,当时我想我们的运气真好,侥幸逃过了一劫,但想不到现在又要面临生死二难的选择了!”小史听了小傅的话,就在一旁苦笑着说道。
我见大家虽然依然信心不足,但已经不再像之前那样的愁眉苦脸和唉声叹气了,就笑着鼓动大家说:“小傅说得对,工业过程控制都是复杂的,否则也不需要用微型计算机来控制了,因此是我们自己把问题想简单了!”
“这次的金山石化总厂项目,我们依然套用了上次器皿二厂项目的算法,但金山石化总厂的反应釜不是器皿二厂的池炉,它有着自己的特点,所以我们自然控制不住了!”
“因此我想接下来我们要做的最重要的一件事就是先把这反应釜中的化学反应特点给搞清楚,特别是化学反应过程的放热和吸热对温度的影响,以及反应釜自身由于热容量的存在而造成的滞后特性对控制效果的影响搞清楚,建立一个数学模型,然后再用现代控制理论结合pid算法,量身定制地编写一个最优化的控制程序。”我接着说了我的想法。
“但这反应釜里的化学反应时间很长啊,最短的也要几小时,长的要几天!”小杨听了我的话,在一旁提醒我道。
“那我们就搬到现场来住!每天24小时轮流蹲守,观察和记录反应釜里的化学反应过程。”我看了一眼小杨和大家,斩钉截铁地说道。
就这样,我和我的小伙伴们一起把被子铺盖都搬到石化总厂的试验现场,大家轮班记录整个化学反应过程对温度的响应特征......
`
寒冬下的上海,阴冷的天气,寒风卷起地下的枯叶,屋顶上覆盖着一层薄薄的霜在拂晓的晨辉下反射出淡淡的银光。
金山石化总厂,试验控制室中灯火通明,玻璃窗上布满了汽雾,窗前的暖气片上,放着三只上世纪八十年代初常见的典型铝制饭盒,水泥地上铺着二床被褥,老葛和小扬在打着呼噜。
我坐在反应釜的控制柜前,全神贯注地注意着控制柜中的温度显示变化,并不时地把一些重要的变化和数据记录在笔记本上,小贾身上披了一件上世纪八十年代初那种工厂里常见的工作老棉袄,静静地坐着我的身边,每次我值夜班,她都是这样。
“你去睡吧,不用这样陪着我。”我善意而又有点爱怜地对小贾说道。
“我不困!我在一旁可以提醒你不要忘了记录数据。”小贾摇摇头,不介意地轻声说道。
“没事,我不会忘的!”我见小贾执意要陪着我,不肯去睡,就安慰她道。
“我真的不困!”小贾摇摇头说道。
“再说你说不会忘的,昨天我就看到温度出现了变化,但你却好像在想着什么心事,没有注意到!”小贾又补充道。
她说得没错,这记录控制数据是一件需要高度集中注意力的事情,但同时又是一件非常枯燥的事情,因为很可能几个小时都没事,控制出来的曲线就是一条直线,但也可能突然出现搅动了!
而我满脑子的如何解决问题,包括如何优化算法等等,以至于经常会想着想着出神了而忘了记录数据,因此小贾在一旁等于让我多了一双眼睛。
于是我不再坚持催小贾去睡,只是过意不去她这样天天陪着我值夜班,就伸出手去摸了一下她手的温度,想看看她是不是会冷。
小贾没有想到我会去摸她的手,下意识地一下子把手缩了回去,同时也脸红了,但很快她就明白了我的用意,于是就红着脸说:“我不冷!”
我见小贾突然脸红了,马上意识到了自己刚才的举动有“越界”之嫌,虽然我的本意只是想通过摸摸她的手去试一下她的手温,从而知道她究竟冷不冷。
我这个人历来在和女孩子的接触上是非常小心且敏感的,我从不会去主动触摸女孩子,但刚才不知道怎么回事,居然会情不自禁地去摸一下小贾的手,于是我也不禁脸红了起来。
小贾见我也脸红了,且表情中露出一丝的尴尬,可能是猜到了我在想什么,于是就大方地伸出手来抓住了我的手放在了她的手背上,说:“我真的不冷!你看,我的手不是暖暖的么?”
我一摸,感到小贾的手确实是暖暖的,于是就把手抽了回来,不好意思地说:“嗯,你的手倒是不冷,看来这工作大棉袄还是管用了!”
那时正值隆冬季节,但好在金山石化总厂是一个化工厂,不缺蒸汽,因此试验现场有暖气,于是我们就在水泥地上铺了一床被子睡觉用,同时把装饭菜的盒饭放在室内窗前的暖气片上加热,晚上值班时,披一件工作大棉袄,也还扛得住。
就这样,连续三十多天不分昼夜的“车轮大战”开始了......
经过将近一个月的摸索后,我们已经对反应釜的化学反应特点和反应釜本身的热容量滞后特性建立了一个初步的数学模型,接下来就是对症下药了——建立算法和编制相应的控制程序了,但我们遇到了更为棘手的问题,那就是计算机程序的调试。
根据我们从金山石化总厂的反应釜获得的数学模型,我们必须对其量身定制地制定一个控制方案,而制定出来的控制方案,必须经过反应釜的实际使用后才能知道结果,这又是一个不断实践的过程,因此我们不得不反复地修改程序,以期得到最佳的控制效果——用专业的话说,就是要对微型计算机的程序进行调试。
但当时还没有“闪存”这个概念,因为固态存储芯片还有问世呢!
所以每次我们要修改计算机程序,都首先要用紫外线灯把eeprom中的原有程序“擦干净”;
然后把修改过的新计算机程序重新“烧制”到“擦干净”的eeprom中;
然后再将此eeprom把微型计算机中装着老的计算机程序的eeprom替换下来。
同时又由于当时还没有在线调试这样的技术,因此我们只能先简单地检查一下新“烧制”后的eeprom能否正常工作,如果能够正常工作,则再上现场进行调试——检验修改后的计算机程序的控制效果是否符合预期。
如果在现场调试中发现不对,那还得重复上述的过程,因此每一次的调试过程都非常缓慢和低效率。
更困难的是,我们所有的“擦洗”和“烧制”eeprom的设备,包括初步调试程序的设备,都在上海的市区内的高泰电讯器材厂的电脑车间里!
因此每次修改程序,我们都只能从上海金山县的石化总厂回到上海的市区内的高泰电讯器材厂的电脑车间。
那时从上海的市区到金山没有地铁,也没有长途公交,只有小火车。
小火车班次少且慢,因此从市区到金山至少需要半天多的时间,这样我们每修改一次程序,就需要至少花费一天的时间,其中大部分的时间都是浪费在了路上,因为我们在整个金山石化总厂项目的调试期间,不得不频繁地在金山县和上海的市区之间坐小火车往返。
然而,塞翁失马,焉知非福!
四十多年过去了,现在回头看:
这样原始的计算机程序调试手段迫使我必须每次的编程都格外地严谨和小心,务必没有任何差错,因为一旦出错,重复上述的过程就意味着是一天的时间!
反观现在的软件设计人员,都是草草地写完代码,也不认真检查一下,就急急忙忙地开始调试,出错了,才去看代码错在哪里。
而正是这样原始的调试手段,让我有了一个难得的机会学会了如何成为一个设计和编制出来的软件很少出错的软件工程师,这让我日后在美国和我的同行们竞争时,我的工作效率要远远超过他们!自然这又是后话。
更重要的是:我由此看到了决心就是力量,信心就是成功,失败者往往不是因为能力不够,而是缺乏与困难决一死战的决心。
我成功是因为我有决心,从不踌躇——拿破仑。
【下章看点】
聪明的小贾在如何提高程序调试的效率上想出了一个“天才”的方法,使调试的进度因此而大大加快,这让x对她刮目相看,但与此同时,小贾暗中对x的表白也越来越大胆了,x的情感天平也因此而在不知不觉中出现了摇摆......
小贾想出了一个什么样的“天才”方法?她对x的表白又怎么越来越大胆了?而x的情感天平又会向哪个方向摇摆呢?
x的情感天平又会向哪个方向摇摆呢?
欲知详情,请见下一章分解。