马斯克如何颠覆航天? 1/5385成本,c++和python编程!
马斯克如何颠覆航天? 1/5385成本,c++和python编程!
5月31日,经历了重重困难,马斯克的SpaceX载人飞船成功发射,这是美国自2011年以来首次发射载人航天飞船,也是美国进入由商业主导太空探索的历史性时刻,更是全人类在载人航空领域迈出的重要一步。
可以说SpaceX的成功离不开这种自下而上的商业发展模式。SpaceX成立于2002年,SpaceX成立之初的目标就是把航天发射的成本降到美国政府经营所需费用的十分之一,以及将太空运送物资和人员的风险也同步减少至以往的十分之一。SpaceX开发了可部分重复使用的猎鹰1号和猎鹰9号运载火箭,大大降低了运载成本,且同时开发Dragon系列的航天器已通过猎鹰9号发射到轨道。
这也正说明了,任何政府主持的宇航探索项目,没有市场的支持和分摊成本,对于底层的内在模式而言,都缺乏真正的竞争力。
自上而下的商业发展模式给了SpaceX源源不断的动力,而数字孪生技术却强有力支持了航空发展不断取得新突破。
近几年,数字孪生的热度不断攀升,频繁出现在各大峰会论坛的演讲主题之中,备受行业内外的关注。
数字孪生,顾名思义,就是“数字双胞胎”。根据国际统一的定义,数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。简单来说,数字孪生就是在一个设备或系统的基础上,创造一个数字版的“克隆体”。
数字孪生的概念是在2002年由密歇根大学教授迈克尔·格里夫斯提出的,迈克尔·格里夫斯教授在产品全生命周期管理课程上提出了“与物理产品等价的虚拟数字化表达”的概念:一个或一组特定装置的数字复制品,能够抽象表达真实装置并可以此为基础进行真实条件或模拟条件下的测试。该概念源于对装置的信息和数据进行更清晰地表达的期望,希望能够将所有的信息放在一起进行更高层次的分析。
而大家关注的SpaceX发射成功龙飞船正是数字孪生体的现实运用,从一定意义上看,这也代表了一个新时代的开启。
马斯克对于NASA的数字孪生体2027计划非常感兴趣,他从NASA和美国国防部笼络了一批数字孪生体顶级人才,其中就涉及到Edward Glaessgen,曾多次给SpaceX公司提供咨询服务。当然,他自己也亲自学习数字孪生体相关的关键技术。马斯克把数字孪生体的潜力用到了极点,充分利用数据驱动的特点,尽量简化人与设备的机械交互方式。例如,这次发射龙飞船,跟飞船中宇航员交互的视频显示,内部人机交互已经采用了触摸屏方式,这将发挥数字孪生制造的潜力,并提高设备的可用性。
回顾2010年NASA提出数字孪生体2027计划,当时考虑的是利用NASA自身官僚体系来完成相关工作。但金融危机的逐步深化,提出了降低成本的要求,也给马斯克介入NASA业务提供了机会。原计划需要17年才可以完成的计划,马斯克只用了10年时间就完成了,这就是机制变革带来的奇迹。
马斯克和他的Space用18年向证明了“成功是一个概率事件,而非偶然,绝非偶然”。有梦想,有毅力,仰望星空,脚踏实地的干不一定会成功。但失去梦想,没有毅力,不能为梦想而付诸于行动,显然一定难以实现梦想。
不过,肯定不敢相信,在SpaceX成功发射的背后,马斯克竟然只用了2.6万人民币、几十万行C++和Python代码就完成了这个动辄上亿的项目。
接下来,和文摘菌一起看看马斯克如何在SpaceX上做到省钱干大事的~
宇航级,用不起
在航天圈里,有一种器件如贵族般存在:宇航级器件。
一个二极管只要上天验证成功,就可以从一个工业级十八线小明星跃升为宇航级一线大明星,身价可以倍增上百倍甚至上万倍!
以现有载人飞船搭载的星载计算机和控制器举例,单个控制器价格为500万人民币左右,一共14个系统,为了追求高可靠性,每个系统1+1备份,一共28个控制器,成本总计约1.4亿人民币!
而SpaceX的龙飞船主控系统的芯片组,仅用了2.6万人民币,成本相差5384倍!
Elon Musk到底是如何做到的?
看以下几条重要的知识点:
- SpaceX 猎鹰九号和龙飞船用的都是Intel双核的x86处理器;
- 操作系统用的是Linux,还有LabView和Matlab;
- 软件工程用的是C++,有些时候也用Python;
- 整个主控程序只有几十万行代码。
工业级器件小屌丝的困境:粒子翻转
航天器所有的器件要经历很苛刻很苛刻的环境。
首先发射时要禁得住剧烈的抖动和很高的温度,才能走出地球。
而真正的炼狱在入轨后才刚刚开始,面对太阳面的时候,温度迅速提升,最高到120°C;背离太阳面的时候,温度骤减,最低到-150°C。
就这样90分钟一圈又一圈,周而复始,每圈都是270°C的温差。
而对于电子器件来说,温度不是最难熬的,最难熬的是太空中的辐射:
- 这些辐射有来自地球的召唤:地球磁场
- 也有来自太阳的问候:高能粒子
- 还可能有来自三体文明的问候:其他太阳系以外的粒子
而这些粒子,将引发电子器件的神经紊乱,专业名词是:粒子翻转。
将很Surprise地告诉星载计算机和星载存储器:
“下面将是见证奇迹发生的一刻!”
“要把1变成0,然后再把0变成1。”
有些人问了,多大点事啊,不就差个1吗?!
但是在比特界,差一位就可差之千里。
举个例子:
如果指令20是向上爬升,指令24是停止推进,后果是难以想象的。
所以如果发生了1和0不分的情况,整个飞行器的运算结果曾导致非常大的灾难。
在1996年,阿里安501火箭,虽然没有粒子翻转,但是系统试图将一个64位的数字,放到一个16位的地址里面去,随即发生了1/0错乱的现象。
结果在点火37秒后,火箭开始侧翻,随之爆炸,因为这个“小”问题,那次发射损失高达3.7亿美金!
回到主题,既然粒子翻转这么恐怖,那SpaceX如何做到发现问题和解决问题的呢?
很简单:民主决策
技术名词叫:parity bits
同位位元
既然判断不了一个是否翻转,那就多放几个一样的设备,通过比较,把不一样的结果给踢出去。
攒火箭硬件选择
上文提到,SpaceX没有选择用贵族宇航级器件,而是选择了经典厂牌Intel的X86双核处理器,京东售价仅478元人民币(参考价为奔腾系列,赛扬更便宜):
而SpaceX也没有用双核做一件事,而是把双核拆成了两个单核,分别计算同样的数据。
每个系统配置3块芯片做冗余,也就是6个核做计算。
如果其中1个核的数据和其他5个核不同,那么主控系统会告诉这个核重新启动,再把其他5个核的数据拷贝给重启的核,从而达到数据一直同步。
周而复始,不让一个核掉队。
据SpaceX前火箭总师John Muratore透露,龙飞船一共有18个系统,每个系统配置了3块X86芯片,龙飞船一共有54块。
所以龙飞船主控芯片的总价约:2.6万人民币,3600美元!
而猎鹰九号一共有9个分立式发动机,每个发动机配置了3块X86芯片,加上主控系统配置了3块,猎鹰九号一共有30块这样的芯片。
猎鹰九号主控芯片的总价约:1.4万人民币,2000美元!
差点砸了手里的X1,是阻拦了攒火箭的大计!
更让SpaceX开心的事情,是Intel X86的程序员一抓一大把啊,而专业宇航级器件的程序用的基本都是特定语言,程序员比元器件还难找。
而且硬件工程师压力也小,X86芯片随便造,烧坏了?再来1个。不不,再买一打!
可是宇航级器件仅仅是测试费,就都够再买一车X86芯片的。
攒火箭软件选择
SpaceX就用的开源Linux写的操作系统,而Linux用随便一台电脑就可以编写。
同样的,SpaceX程序员最爱的还是C++,用开源的GCC或者GDB做火箭的主控程序。
SpaceX还用LabView,一款图形化编辑语言,对于火箭程序来讲,更容易实现可视化和流程化,更容易做复杂的算法设计和数据分析。
SpaceX也用Matlab,在仿真和矩阵计算上,真的很好用。
而且,龙飞船,猎鹰九号,猎鹰重型,分享着同一款代码,分享着同一类迭代,分享着同一种喜悦,多么的模块化,多么的互联网…
大数据监控和测试
2018年,SpaceX一共发射21次,一个公司占全球发射数量约20%,而SpaceX的工程师和分析师,手里有大量的测试数据和实际数据,而且他也被鼓励用不同的维度,去检验飞行器的安全性,形成最新的也最实用的测试程序,从而降低实测成本。
同时,Continuous Integration,持续集成也被应用在了程序测试上。
注:持续集成为了配合敏捷开发(相对于瀑布开发)的速度和效率而产生的一个用于编译、测试、发布、部署的工具。
通过这种办法,可以让团队每时每刻在持续的基础上,收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。
而且火箭程序不同于其他,会进行“断弦式”测试,突然关闭一台电脑,来看看发动机到底有什么反应。
总结
航天已经经历了60年的历史,每一次阶跃其实都伴随着各类器件技术革新,比如:
- 1950年代的晶体管技术;
- 1970年代的微控制器技术;
- 1980年代的数字信号处理技术;
- 1990年代的高性能存储技术。
现在,芯片工艺从28nm,16nm,10nm到7nm,工艺的提升也增加了芯片在太空中的抗辐射性能,让商业器件在太空中应用可行性大大提升!
伴随航天成长的是经典的:摩尔定律。
但是摩尔定律到现在在地面侧都快失效了,而在航天侧还没有开始。
比如Greg Wyler在2019年1月6号,Twitter的Oneweb的新型相控阵天线,目标定价15美金。
比如AWS与Lockheed Martin在2018年11月发布的超小型地面站,可降低地面站80%的成本。
北京九天微星正在研制200mW卫星物联网终端模组,目标定价5美金。
因此,航天缺少的仅仅是大胆的商业器件验证,缺少的仅仅是采用MVP快速迭代的环境,而逐年降低的发射成本正在迅速降低试验成本,因此:
属于航天的摩尔定律才刚刚开始!
属于航天的互联网思维才刚刚开始!
属于航天的大时代才刚刚开始!
马斯克如何颠覆航天? 1/5385成本,c++和python编程!的更多相关文章
- 了解FPGA市场现状和未来趋势
转, 来源: http://www.sohu.com/a/204640373_740053 可编程的“万能芯片” FPGA——现场可编程门阵列,是指一切通过软件手段更改.配置器件内部连接结构和逻辑单元 ...
- Elon Musk
人物事件 成长学习 年6月28日,埃隆·马斯克在南非的比勒陀利亚出生,他的 埃隆·马斯克 父亲是一名南非机电工程师,母亲是加拿大人,从事营养师兼模特.[8] 年,10岁的马斯克就拥有了自己的第一台电 ...
- 国产FPGA市场分析 该如何破局
2018年上半年对于中国半导体行业而言是多事之秋,发生了几件让国人深入思考的大事.我作为IC产业的逃兵,最近也在思考很多的问题,包括资本市场.集成电路行业和研究所的一些不成熟的想法. 2008年进入华 ...
- 微信小程序踩坑集合
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...
- 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook
可能你已经知道,Python 在 14 年后的“崛起”,得益于机器学习和数学统计应用的兴起.那为什么 Python 如此适合数学统计和机器学习呢?作为“老司机”的我可以肯定地告诉你,Jupyter N ...
- 【转】Python资源 转自 dylanninin.com
http://dylanninin.com/blog/2013/11/23/python_resource.html Python是在工作期间零零碎碎学习起来的.当时正值部门申购图书,鉴于Python ...
- .Net元编程【Metaprogramming in NET】 序-翻译
最近在看这本书,比较实用.抽点时间把公开的部分内容简单的翻译了一下,下文是序部分. 书的具体地址为: http://www.amazon.cn/Metaprogramming-in-NET-Hazza ...
- (Python)导出指定文件夹中as文件的完全限定类名
AS3程序在编译的过程中,有一个特点是这样的,不管是项目中的类,还是标准库或者第三方库的类,编译的时候只会把用到的那些类文件编译进去,也就是说,某一些类,只要没有被主程序引用到,那这个文件是不会被编译 ...
- python机器学习《回归 一》
唠嗑唠嗑 依旧是每一次随便讲两句生活小事.表示最近有点懒,可能是快要考试的原因,外加这两天都有笔试和各种面试,让心情变得没那么安静的敲代码,没那么安静的学习算法.搞得第一次和技术总监聊天的时候都不太懂 ...
随机推荐
- 用laravel Maatwebsite\Excel 教你导出漂亮的Excel表单
先来看效果图 还算是漂亮吧 哈哈哈. 第一步当然是安装包咯 环境要求 PHP: ^7.0Laravel: ^5.5 composer require maatwebsite/excel 目前3.1 只 ...
- 【yml】springboot 配置类 yml语法
参考:https://www.runoob.com/w3cnote/yaml-intro.html YAML 是 "YAML Ain't a Markup Language"(YA ...
- 关于Eclipse Debug断点调试出现 Search not found 页面的解决办法
1. 在代码中鼠标右键 Debug AS ---> Debug Configurations... ----> 找到Source选项 ---> 点击add ---> 选择 j ...
- 织梦seo
建站-->采集文章-->sitemap-->robots->百度提交链接(主推和自动结合)-->后续优化 http://jingyan.baidu.com/article ...
- POJ 2976 01分数规划基础题目
题意: 给你一组"数",一共n个,每个数有两个权值,价钱a[i],代价b[i],让你选择n - k使得 sigma(a[i]) / sigma(b[i]) * 100 ...
- Intel汇编程序设计-整数算术指令(上)
第七章 整数算术指令 7.1 简介 每种汇编语言都有进行操作数移位的指令,移位和循环移位指令在控制硬件设备.加密数据,以及实现高速的图形操作时特别有用.本章讲述如何进行移位和循环移位操作以及如何使用移 ...
- tp 创建文件并写入数据
代码:1.$url = Env::get('root_path').'application/admin/test.txt'; //定义创建路径 $file = fopen($url,"w& ...
- 2021/5/11 docker的应用
很快一天过去了,今天虽然没有加班,但是依旧感觉疲惫,弄了一天的docker镜像的问题.作为一名前端开发工程师从以前从未听说过docker到现在懂得了如何运用,也是不容易啊.之前也说过,我们项目结构是前 ...
- JAVA8 lambda表达式权威教程!
Java 8新特性----Stream流 jdk8是Java 语言开发的一个主要版本,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等等.今天就重点介 ...
- Ubuntu切换到root账户
使用命令sudo su或sudo -i然后输入密码就可以切换到root帐号,exit可以退出.