这才是中国被卡脖子最严重的软件!
The following article is from 编码珠玑 Author 刘亚曦
👇关注 51CTO技术栈,悦享技术,成就 CTO 梦想👇
这段时间手机圈最大的新闻除了苹果刚发布了最新的“十三香”系列产品外,就数前段时间华为发布了最新的 P50 系列手机了。
图片来自 Pexels
但是我们惊奇地发现,华为作为全球 5G 通讯技术的领跑者,这次 P50 系列居然只有 4G 版本,为什么会这样呢?
余承东在发布会上解释道,由于美国的制裁,华为的 5G 芯片只能当 4G 使用。
其实这主要是因为华为被迫终止与美国射频芯片厂商的合作,要是知道手机要想上 5G,并非只有基带就行了,还得有射频芯片。
目前高端射频芯片都被美日韩三国垄断,而买不到射频芯片,华为的 P50 手机只能“望芯兴叹”了。
余承东坦言,由于美国的制裁,华为的 P50 系列手机只能当 4G 用
如果说终止华为与台积电的合作,华为还可以找其他厂商代工一些低端的芯片,可终止 EDA 软件几乎就等于给华为来了个釜底抽薪,直接从上游设计领域给你掐断了自研芯片之路。
这里直接给国人来了个警醒,但同时也暴露了中国高端制造最薄弱的一个环节——工业软件领域。
EDA 到底是什么,为什么那么重要?EDA 是一种工业软件,它的全称叫Electronic design automation(电子设计自动化),主要用来设计超大规模集成电路的一种软件。
你可以简单把它理解成画电路板的(但功能远远不止画那么简单,还包括后期设计验证等复杂的功能)。
这里你可能会问,必须用这款软件吗,难道不能手绘吗?其实在早期 EDA 没有发明之前,那个时代的芯片设计确实是手绘的。
但那个年代的芯片复杂程度远远不及现在,而且晶体管的数量也比现在少的多,现在指甲盖大小的芯片集成了几十亿个晶体管。
iPhone 13 系列采用最新的 A15 仿生芯片,指甲盖大小的面积上集成了 150 亿个晶体管!再说一遍,是 150 亿,这样的数量让设计人员用手工来画是不可能的
无独有偶,去年五月份,美国再次升级对华为限制措施,同时将包括哈尔滨工业大学在内的 33 家中国企业与高校机构列入“实体清单”,被列入名单内的企业无法与美国进行任何贸易。
而且一些重要的工业类软件也被限制使用,比如哈工大就收到 MATLAB(矩阵实验室)软件授权使用终止的通知,意味着从此哈工大再无权利使用正版的 MATLAB 了。
工科神器——Matlab 软件界面
那么你可能会问,难道就找不出一款可替代这款软件的产品吗?作为一个内行人,我可以明确地告诉你,目前来说还没有,而且我们从零开发一款这样的软件几乎不可能(后面告诉你为什么)。
而且,禁用这款软件也许仅仅是个开始,后面老美会陆续对一些其它工业类软件实行禁用,例如 ANSYS、Pro/E、Catia、EDA 等等,万一真到了那一天,可以说中国高端工业领域绝对遭受重大挫折。
说到这里,你可能会问,工业软件真的有这么重要吗,不用不行吗,难道我们就不能自己开发吗?
下面我就对这三个问题逐一回答,由于我本科是学机械的,所以下文的大部分例子我都会用机械行业里面常用的工业软件来说明。
01
工业软件真的有这么重要吗,不用不行吗?
答案:它真的很重要,不用还真不行。
上面三张图片是上世纪 CAD 软件没有诞生之前,设计师们的日常,所有的图纸全靠手绘完成。
这是我在大学时候有次交作业前的最后一次审图情景,老师为了锻炼我们手绘能力,要求每次作业必须有一张手绘图。
但时至今日,我依然怀念当年在大学熬夜画图的情景,有时候图书馆没位置了,我们都喜欢回宿舍把床板拆下来当画图板。
然而,自从上世纪八十年代工业软件出现后,设计师们终于不用通过手绘来完成图纸的设计了,转而在电脑上完成,设计效率极大提高。
那么工业软件究竟是什么东西?
大部分读者可能是做应用软件开发的,不太了解工业软件这个行业,其实工业类软件按照功能可分为三大类,CAD(计算机辅助设计)、CAE(计算机辅助工程)、CAM(计算机辅助制造)。
这三款软件是如今工业行业必不可少的软件,航空、船舶、汽车等产品的研发少不了它。
①CAD(计算机辅助设计)软件
人类史上第一款 CAD 软件的的雏形可追溯到上世纪五十年代,那个时代正是美苏争霸期间,美国军方为了拦截苏联的远程轰炸机,由国防部牵头联合 IBM 与麻省理工学院联合开发了 SAGE 系统。
SAGE 系统完全用汇编语言来完成,它其中一个功能就是能够在计算机上绘图,当时耗资 100 多亿美元(注意这是上世纪 50 年代的 100 亿美元,放现在估计也得一千亿美元以上了)。
但那个时候的 CAD 软件仅仅供美国军方使用,后来才逐步走向商业化。
简而言之,CAD 软件就是让设计师能够在电脑上画图的软件,可以说,CAD 软件的出现彻底解放了设计师们手中的作图工具。
CAD 软件出现后,以前只能手工来绘制的图纸,可以放到电脑上来完成,大大提高了工作效率,这是美国 AutoDesk 公司旗下的一款二维 CAD 软件产品——AutoCAD。
我之前在车企待过,所以我还以汽车研发过程为例来说明。汽车的研发过程远比大家想象的复杂得多,你可能觉得汽车由设计人员先把图纸画出来,然后就可以来进行加工生产了?
No, No, No...,汽车的研发过程先由再行设计师来完成造型的设计,再由工程设计人员完成零部件的设计,随后工程人员还要对设计出来的雏形做验证分析。
最后还要交给生产技术人员对每个零部件做加工可行性分析,等每个环节都确认无误后才能投线生产。
在第一阶段,汽车造型设计师在完成车辆造型与外观设计后,剩下的就要交给工程设计人员了,而车辆工程师们要对汽车的每一个零部件进行设计画图,最后还要出工程图,交给工人加工。
汽车是人类工业级消费品中唯一零部件达到上万级别的产品,结构复杂,所以工程师们一般情况下都会先出画 3D 图。
目的是为了检查结构设计的合理性以及零部件是否有干涉,也为后面做有限元分析做准备,而零部件的绘制用什么工具呢,这就需要用到 CAD 软件了。
那么你可能会问,必须用计算机绘制吗,不能手绘吗,这放在上世纪六七十年代还是可以的,但是现在绝无可能。
中国第一代核潜艇总设计师——黄旭华,在那个年代,他们隐姓埋名,为中国研发出第一艘核潜艇。
这是一张采用 Pro/E 软件绘制的汽车总装图,汽车一般采用自顶向下的设计方法,等总装图完成后,工程师们还要逐一生成零件图。
这是一张绘制比较标准的汽车传动轴类零件图,图纸上必须表明完整的尺寸、公差、粗糙度等,容不得半点差错,一般都需要用 CAD 软件来绘制。
②CAE(计算机辅助工程)软件
要问世界上哪家公司的代码数量最多,你可能回答是微软、IBM 或者 Google,但事实上这些都不是,单论代码数量,世界上最大的软件公司是美国的军火商巨头——洛克希德·马丁。
没错,就是那家美国的军火公司,美国的 F22 战斗机、F35 战斗机等都出自这家公司。
说道这里你可能觉得疑惑,军火厂商居然也做软件?是的,而且他们做的软件大部分仅供自己使用,不对外销售,其中就包括 CAE 软件。
CAE 软件是工业软件里面开发难度最大的一类软件(后面会告诉你为什么),但也是最重要的一款软件。
CAE 自诞生之日起,与 CAD 软件一样,主要服务于军方,后来才逐步走向商业化,民用企业才得以使用。那么 CAE 究竟是干什么呢?
CAE 全程叫Computer Aided Engineering(计算机辅助工程),就是把设计出来的产品,通过软件的方法进行仿真分析,来验证设计出来的产品是否达到规定的要求(它的原理后面会解释)。
你闭上眼睛想一下,设计师们把产品在电脑上设计出来后,只要导入这款软件,就能知道产品设计哪里有不合理的地方,然后再更改设计图纸,这是不是就像魔法一样?
CAE 软件的出现,极大程度地提高了产品的研发周期,以前必须通过实验来验证的产品,现在可以放到电脑上来完成
目前全球商用 CAE 软件行业市场份额最大的是美国的 ANSYS,ANSYS 自诞生之日起就一直专注于有限元仿真技术,到目前,已经形成了包括结构、流体、电磁、航空、船舶、汽车等完整的仿真产品线。
那它用在什么地方呢,我还以汽车为例,你以为车辆工程师把 3D 总装图完成后就可以直接生成零件图进行加工了吗,不,这还远远不够,后面还有重要两环,其中最重要的就是对你设计出来的产品进行可行性分析。
大家可能不知道,衡量一款汽车的好坏,安全性是一项重要的指标。那么如何知道设计师设计出来的汽车是都达到足够的安全标准呢?
你敢保证刚设计出来的汽车跑在路上不会有断轴的危险?你敢保证设计出来的汽车在突发撞击意外情况安全气囊一定能打开?
也许有人说,可以先造出来一辆上路测试一下不就行了?可是你想过没,如果万一测试达不到安全标准怎么办,难道重新设计吗?
且不说在安全方面涉及到人命关天,单说模具环节,重新设计就意味着重新开模,一套汽车模具价格动辄在千万以上,这样的成本允许车企这样做吗?
再给大家举个例子,外行人可能总是觉得,汽车前保险杠与引擎机舱部分为什么那么“脆弱”,只要发生碰撞发动机基本上就报废了,就不能把发送机前引擎机舱部分做的更加“结实”一些吗?
可事实恰恰相反,非但不能设计更加“结实”,反而需要故意要设计成“容易”损坏的程度,这是为什么呢?
原因就在于发动机前引擎机舱部分在一定程度上给我们充当了炮灰的角色,一旦发生碰撞,要尽量避免产生的撞击能量传递给驾驶室。
那么就要把前引擎机舱部分设计成有一定的柔性,机舱部分要首先溃缩,用来吸收能量,保证驾驶室内人员的安全。
这是运用 CAE 软件来模拟分析辆车相撞试验,用来测试汽车在意外情况下的安全程度,这样就极大程度地降低了研发成本。
你看到的这张动图,它可真不仅仅是“动画”,举个例子,上面辆车碰撞后车轮的运动轨迹、发动机舱的溃缩程度都是计算机通过力学的方法计算出来的!而如果单纯是一个动画,完全不必考虑这些。
即便使用 CAE 软件仿真碰撞试验后,还要进行实际碰撞试验。就是按照图纸生产出来一辆车,然后进行实际撞击试验,看是否符合安全要求。
比如,新研发一款汽车要进行上百辆这样的汽车进行试验,而一旦试验后,这些车就会立马报废,这些报废消耗的车辆会分担到每辆汽车的成本上。
等 CAE 软件验证完成后,汽车在投产之前还要进行实际碰撞试验,例如右边的白色轿车在碰撞过程中引擎盖弹出,极有可能对灰色轿车驾驶人员造成二次伤害,所以还要对引擎机舱部分进行结构设计改进。
CAE 软件在 3C 电子产品开发领域也是应用极为广泛,图为用 ANSYS 验证设计的无线路由器散热是否合理。
③CAM(计算机辅助制造)软件
在前面汽车完成设计之后,也经过各方面安全性测试后,剩下的就要加工生产了。
那么汽车的零部件是如何生产出来的呢,这就需要工业母机——机床来完成了。
在数控机床(CNC)没有诞生之前,汽车的每一个零部件都要工人师傅们在普通机床上手工完成。
但是随着汽车零部件的逐步精密化,有些零部件在普通机床上根本根本加工不出来。
除了汽车行业,在航天航空、精密电子等领域更是如此,这个时候数控机床就诞生了。
在数控机床加工零部件前有一个重要的工序,就是需要在计算机上实现模拟加工仿真,待准确无误后,才能上机生产,那么为什么要仿真呢,直接加工不行吗?
答案是不行,要知道,一套完成的 CNC 加工程序需要工程师们手动干涉完成编写,CAM 软件只能生成部分代码。
这是苹果 Mac Pro 的金属外壳的其中一道加工工序,在 CNC 数控机床上完成,自动加工程序也要有 CAM 软件来完成。
苹果为了保证他们产品的手感,所有的外壳均使用完整的一块金属来通过去除材料来切削加工,成本极高。
自 iPhone 11 后,苹果重新回归后玻璃面板的经典设计,顺便给大家提一下,苹果后玻璃板是用一整块厚度为 8mm 的玻璃在 CNC 上铣削为 3mm 完成的,而且还要在上面钻孔。
这样的事情全球也只有苹果敢这样做了,更为变态的是,为了专门加工这块玻璃,苹果还专门给富士康买了一千多台 CNC 数控机床!
这样的成本,别说机床了,就单说加工玻璃造成刀具的损耗成本就是其他手机厂商不敢想的,当然,加工过程中少不了 CAM 软件。
02
工业软件难道我们自己不能开发吗
答案:可以是可以,但是这不是十年二十年能完成的。
①开发工业软件它真的是很难,因为它是一门交叉学科。
如果仅仅是开发一款类似于微信或者抖音这种 APP,或者是开发一款类似于金蝶这种财务管理的企业级软件,它顶多也就是网络编程与数据库交互的应用,不需要程序员掌握其他知识。
但工业级软件可不是这样,不光需要掌握最基本的编程能力,更重要的是对多学科的交叉融合。
说到工业软件的开发,你可能会觉得这是计算机专业的事情,但事实上它还真不是计算机专业的事,工业软件是以数学为基础,贯穿了物理、化学、力学、材料科学等诸多领域的交叉学科。
先拿 CAD 这类软件来说,因为软件是给专业画工程图的工程师们使用的,所以,要求开发工业软件的程序员们必须懂得工程图学的知识。
例如基本的投影知识,要把这些知识融合到代码里面,通过计算机显示在屏幕上,更是需要计算机图形学方面的知识。
再拿 CAE 软件来说,你要软件能够计算出设计零件的疲劳极限与寿命,这就需要到材料力学方面的知识。
如果你对设计的飞机进行气流分析(飞机设计时必不可少的环节),这就又涉及到流体力学方面的知识,软件当然也要计算出流体力学的各种参数,这就需要求解大量的偏微分方程,又涉及到数学方面的知识。。。
总之,工业软件本质就是将力学、数学等各种学科的公式,通过算法的形式写进代码里面,如果目前学术界没有特定的公式,那么就需要开发人员自己去推导公式。
这是开发一款工业软件所涉及到的学科,难度远远在一款应用级软件之上。
②工业软件行业有个特点:先来者有肉吃,后来者连汤都喝不到
工业软件不同于应用级软件,它要有足够的健壮性与工程性,举个例子,你平常用的微信 APP 如果它真有 Bug 的话,顶多也是你的信息发不出去等小问题。
但是工业软件就不一样了,它要求丝毫不能差错,一旦哪个环节出现问题,造成损失就难以估量。
举个例子,如果 CAE 软件出现 Bug,把原本汽车设计不合理的结构判断成合理的,结果就可能造成批量生产投入市场后出现大面积事故。
但是我之前说过,是软件一定会有 Bug,要想消除这些 Bug,必须经过大量的的用户来充当“小白鼠”进行使用反馈测试。
可如果一款软件本身用户量就很少,软件厂商怎么能获得用户回馈从而修复漏洞呢,所以,这就造成一个“强者愈强,弱者愈弱”的现象。
再举个例子,你公司本身用的是 ANSYS 软件,然后有人给你推销一款新的 CAE 软件,刚刚投向市场,你敢用吗,都是一样的道理。
03
国产工业软件市场状况
工业软件这么重要,我们国产工业软软件市场份额怎么样呢,答案是很不乐观。
前面说过工业软件开发的特点,高难度、高风险、高成本,而且国内软件行业本身就非常浮躁。
苹果最新的 iPhone 13 发布会上提到了中国唯一一个走出国门的超级 APP——TikTok(抖音)。
你可能以为中国的软件行业很厉害了,但那都是应用级的,就先别说工业级了,就连企业级软件市场,把国产所有的企业级软件加起来都不如有美国的 Adobe 一家大。
目前国产工业软件做的最好的有两家公司,一家是北京数码大方,另一家是广州中望。
但这两家的产品还仅限于 CAD/CAM 领域,在 CAE 软件领域几乎为零,如果核心软件领域不能国产化,那么中国制造走向高端化必将受到重重瓶颈。
04
对中国国产工业软件行业的展望
①基础研究与软件强国
我在大学时候,我的力学老师说过一句话,人类工业文明发展到现在,有两个学科功不可没,一个是力学,一个是电学。
力学的发展奠定了人在工业文明的安全基础,而电学的发展促进了人类在控制领域的飞速发展,但这两个学科都是建立在数学发展的基础之上的。
我非常认可他的观点,我想说的是,工业软件归根结底还是对数学、力学、电学的实际应用。
但这些应用都要建立在强大的理论基础之上,近代人类工业文明的一些诸多突破都是建立在基础研究之上。
其实我在大学那会是非常喜欢力学这门课程的,印象最深的是我们用数学的方法推导出铸铁这种脆性材料在受到挤压应力荷载后的破坏形式是呈截面 45 度剪切破坏。
然后压力机试验也验证了我们的结果,当时就觉得很神奇,后来没事的话我就很喜欢把力学书中的公式用数学的方法推导一遍。
但是,基础研究不同于应用研究,基础研究主要目标就是发现与理解,并非是针对某一项产品而做的研究,它的研究方向是不确定的,而且成本与时间都是不可控的,基础研究注定是一条漫长的道路,这条路注定孤独。
所以,基础研究基本上都由大学院校、科研机构来完成,国内除了华为,很少有公司能够将精力投入在基础研究之上。
飞机机翼的设计原理就是依据伯努利方程,但是很少有人知道当年伯努利研究流体力学并不是为了飞机,而是为了解释水流速不同的问题。
华为任正非在接受央视采访的时候说过,华为自己就培养了大量的科学家做基础研究。
想象一下,一家民营企业,每年砸几千个亿专门培养一批科学家做与盈利性无关的基础研究,可见任正非的格局有多大。
正所谓“当今中国正经历百年未有之大变局”,中国要想从一个制造大国转向一个制造强国,必须攻克工业软件这个行业。
工欲善其事必,先利其器。在我看来,发展工业软件就是一种软件强国战略,因为工业软件是一切高精端制造的基础,没有工业软件,工业 4.0 无从谈起。
路漫漫其修远兮,我们必须承认差距,而发展工业软件这条路注定漫长,但却值得等待。
②它山之石,可以攻玉
我前面说了,其实工业软件最早是服务于军用领域的,而开发一款工业软件成本巨大。
即便拿财大气粗的美国来说,他们工业软件市场能够走到今天商业化的地步,也少不了美国政府与军方的扶持。
而且美国一直把数字化建模仿真列为国家战略级计划,可见美国对其本土工业软软件的重视,这一点,我们还必须向美国学习,重视工业软件的扶持与发展,为中国走向高端制造创造良好的条件。
👇点击关注鸿蒙技术社区👇
了解鸿蒙一手资讯
作者:刘亚曦
编辑:陶家龙
出处:转载自公众号编程珠玑
精彩文章推荐: