致谢

本书是许多讲座、书籍、讨论、会议等的结晶。因此,我也就不可能完全统计对本书作出贡献的所有人员。毫无疑问,这其中肯定会有未提及的人。首先,我要对那些被忽略的同仁致以诚挚的歉意。

技术方面

谈及Modelica时,首先要特别感谢Hilding Elmqvist。这不仅是因为他的技术远见,发现了符号处理技术可以解决工程问题的潜在应用价值。而且,得益于他的领导能力,Modelica技术朝着开放的标准发展。Hilding毫无疑问是“Modelica之父”,对于Modelica技术取得的一切成果,他都受之无愧。

仅次于Hilding的是Martin Otter,他为推动Modelica技术的发展不辞辛劳。我可以很坦诚的说Martin比我知道的任何人都努力。他不仅对Modelica技术的发展做出了不朽的贡献,而且他还承担着管理Modelica协会的工作任务,尽管这种工作通常情况下是费力不讨好的。我们需要记住的一点是,有伟大的技术想法并不等同于成功的秘诀。这还需要一些人一起将这些想法实现。我要感谢Martin的努力工作才成就了今天的Modelica协会。

当然,并不是Martin一个人在管理Modelica协会。Modelica委员会和其成员同样在促进Modelica技术推广方面起到了极其重要的作用。最后,我要重申一下,Modelica协会是一个致力于支持工程应用的开放标准组织。我要感谢所有成员为此做出的努力。

Modelica协会并不是常设机构。但Modelica语言研发团队却总是存在。这些人会在一年中开几次研讨会,以促进Modelia语言的发展。为此,他们无私的贡献了大量的时间和精力。我要感谢所有参与开发Modelica语言和Modelica标准库的同仁,感谢他们的辛勤付出。

个人方面

就我个人而言,我要感谢我的母亲、父亲、妻子、孩子和我的岳父岳母。感谢他们对我的坚定支持,才使得我在科学、工程应用和数学等领域能够全心投入。他们富有责任感的培养以及对我个人兴趣的坚定支持,才使我获得了充足的精力和时间参与到目前的项目中。

对某些人来说,提供一本免费的书似乎有些激进。这个项目能有这样的想法,是通过接触Cory Doctorow和Lawrence Lessig的工作而受到的启发。我要感谢他们关于知识共享方面的想法。这开阔了我的眼界。我还要感谢Dietmar Winkler与我多次讨论另类出版模式。我们经常会讨论Doctorow和Lessig的想法,以及如何将他们的想法应用在Modelica领域,创建更易于访问的内容。

回顾过去,我感到非常幸运。我工作过的几家公司都非常支持我参与Modelica项目。我第一次参与Modelica项目是在福特汽车公司工作期间。很感谢他们愿意赞助我参加各种与Modelica相关的活动。在福特之后,我进入了Emmeskay(后来被LMS收购)工作。在Emmeskay公司工作期间我获益良多。我要特别感谢我的合作伙伴Swami Gopalswamy和Shiva Shivashankar给我加入Emmeskay的机会,并有幸与他们成为好朋友。在Emmeskay期间,我很荣幸能与Michael Sasena和John Batteh在多个Modelica相关的项目中共事。Emmeskay是一个伟大的公司,这可以从工作在那里的团队成员反映出来。最后,我要感谢达索系统公司(Dassault Systèmes)给予了我与其他优秀人士一起工作的机会。尤其是我要感谢Hilding Elmqvist和Marc Frouin鼓励我到那里工作。我还要感谢Martin Malmheden、Dag Brück和Sandrine Loembe与我在巴黎度过的所有美好时光。

贡献者

这个项目严格意义上讲是一次实验。目的是验证能否通过众筹的方法,在一个如Modelica这样较窄的技术领域寻找商机进行出版。我惊喜的看到这是可行的。这个项目有足够的资金支持。有鉴于此,我要感谢众筹项目的支持者。我要特别感谢以下人员极其慷慨的捐助:

  • Hilding Elmqvist
  • Robert Norris
  • Matthis Thorade
  • Henning Francke
  • Yang Ji
  • Christoph Höger
  • Philipp Mossmann
  • John Batteh
  • Dirk Zimmer
  • Jan Brugård
  • Swami Gopalswamy
  • Peter Aronsson
  • Michael P. Case
  • Markus Groetsch
  • Vicente Ramírez Perea
  • Tisha Villanueva
  • Adrian Pop
  • Nimalendiran Kailasanathan
  • Kevin Davies
  • Peter Harman
  • Dietmar Winkler
  • Johan Rhodin

我还要感谢赞助商:

  • 金牌赞助商

    • CyDesign
    • Wolfram Research
    • Modelon
    • Maplesoft
    • Dassault Systèmes
  • 银牌赞助商

    • Ricardo Software
    • ITI
    • Modelica Association
    • Global Crown Technology
    • Siemens
  • 铜牌赞助商

    • Suzhou Tongyuan
    • Open Source Modelica Consortium
    • DOFWare
    • Bausch-Gall GmbH
    • Technische Universität Hamburg/Harburg
    • Schlegel Simulation GmbH

本项目所有参与人和赞助商都在为开发出更高质量的Modelica教材这一共同目标不懈努力。换句话说,没有他们就不会有这个项目。

众筹项目的资金使我可以在这个项目上投入更多的时间,但是仍然有很多人在这个项目上帮助过我。首先,我要再一次感谢我的父亲对本书的初稿进行了校对。校对是一项无聊的工作,但却是必不可少的步骤。所以,我认为他值得为这项工作所作出的奉献而获得赞扬。此外,我还要感谢Dietmar Winkler和Michael O’Keefe对本书内容提供的反馈。Dietmar还帮助我测试了本书电子版和PDF格式出版的问题。

我要感谢Jeff Waters作为“赞助商代表”所付出的努力。在编写本书期间,我与Jeff有过多次富有成效的讨论,以确保本书章节布局和图形设计满足赞助商的预期。

工具

编写本书需要很多不同的工具。通过使用这些工具极大的提高了我的工作效率。

本书使用Sphinx编写。Sphinx是一个文档生成工具,支持多种格式的文件输出。通过使用Sphinx工具,使得我可以把工作的重点放在本书的内容上,而不必过多的考虑本书的编写格式。

为了编写本书,我需要一种方法来测试出现在本书中的模型,绘制生成的仿真结果以及生成相应的JavaScript代码,以实现本书在浏览器HTML中的集成仿真功能。OpenModelica支持所有上述功能。除此之外,我还欠Martin Sjölund和OpenModelica团队一个大大的“人情”。因为在编写本书期间他们能快速的响应我的各种问题。很多时候我会在深夜(瑞典时间)与Martin通过Skype见面,而他都会非常谦和的帮助我。

本书的HTML版本通过Emscripten工具可以实现浏览器的集成仿真功能。Emscripten允许将C和C++语言的通用代码通过LLVM编译成JavaScript。虽然我知道这是可能的方法。但是直到我看到Tom Short在整合OpenModelica和Emscripten的工作后,才相信这种方式是可行的。正是他在这方面的工作才使得浏览器具有了集成仿真功能。

本书的编写使用了Git作为版本控制系统,托管给GitHub进行管理。大多数人认为版本控制系统是一套非常神秘的备份系统,其实版本控制系统是合作的核心。我非常希望能看到它在工程上被广泛的应用。对于本书来说,GitHub的“pull request”系统在整合审阅者的评审意见上非常有用。我要再次感谢Dietmar Winkler提醒我关于Git的许多不同功能。

我还使用了Emacs编辑器编写本书。虽然有许多优秀的编辑器支持各种语言和平台,Emacs依然是我许多项目开发过程中的好帮手。它自带的功能几乎可以支持我需要的所有文件类型。

在本书的编写过程中,好几个供应商给我提供了他们的专有工具。我没有太多的使用这些工具,在此我想感谢他们慷慨的为我提供了临时许可文件。具体来说,我要感谢Dassault Systèmes、Maplesoft、Wolfram Research和ITI,他们分别给我提供了Dymola、MapleSim、SystemModeler和SimulationX的使用权。

本书的大部分内容是在MacBook Air上编写的。我的第一台电脑是Apple //e。从那以后,我主要使用PC机和Unix工作站工作。最近,我在Linux机器上做了大量的开发工作。我经常会放弃使用Macs电脑,因为确信它不能支持我经常使用的那种命令行模式的开发工作。我不得不说我错的太离谱了。MacOSX(苹果操作系统)的生态系统几乎与我在Linux环境下使用的完全相同。我可以很容易的在MacOSX和Linux环境之间切换而不需要任何大的调整。MacBook Air的电池续航能力和便携性让我的整个工作效率有了很大的提高。

本书的编写涉及到许多HTML布局、样式和嵌入JavaScript的测试和调试工作。这项工作主要使用Firefox来完成,偶尔也使用Chrome。我要感谢Mozilla基金会和Google开发了如此卓越和标准兼容的浏览器。

本书的风格大量借鉴了Sematic UI这一CSS框架。