Monday, April 20, 2020

Engineering Analysis and Modeling

Excel VBA

Back in 2007, I put together a 3-day training course on engineering analysis and modeling using Excel and its built-in Visual Basic for Applications (VBA). During the next ten years, taught the course at over a dozen organizations to hundreds of participants. After receiving emails from people who wanted to learn the material but weren't able to attend the courses, published paperback and kindle versions of the course notes that sold several hundred units on Amazon.

Decided to quit teaching it in 2017 due to other commitments, along with the increased availability of open source tools that provide a good alternative in some cases. However, continued to get inquiries about Excel VBA, particularly from engineers and scientists who are constrained by organizational IT departments that don't permit downloading of open source software. Also, Excel remains a ubiquitous and familiar presence in most organizations making it a first choice tool for many.

Stopped publishing the notes awhile ago, so they are no longer available on Amazon. However, since there still seems to be interest in Excel VBA for engineering analysis and modeling, have decided to make the course notes publicly available for anyone wishing to use them for self-study: 

Open Source Tools

Open source tools represent another option to consider beyond Excel for engineers and scientists. The availability of highly functional and well documented open source software tools has exploded over the past decade. Many of them have a large community of users who share their experiences and offer solutions to specific use cases. Finding the answer to a complex problem often requires little more than an internet search to see who has already solved something similar.

A few examples for general engineering calculations, analysis and modeling include:
  • Scilab for numerical computation
  • Octave programming language (with Matlab compatibility)
  • C/C++, Fortran, and other open source compilers, libraries, etc.
  • Python language and the myriad of supporting platforms and tools


Personally, I've been migrating toward Python for my own analysis and modeling. This open source programming language has become popular in many technical fields (e.g. artificial intelligence, big data, robotics, etc.).  As a result, the supporting community is very large and intimately familiar with the kinds of technical solutions engineers and scientists are tackling.

Below are a few supporting tools and platforms that I've found particularly valuable to use in conjunction with Python and its many available packages.
  • Anaconda: Sets up your Python environment seamlessly and packages multiple ready to use free tools (e.g. JupyterLab, Qt Console, Spyder, VS Code).
  • Jupyter Notebook: This environment allows you to create a dynamic python (or other supported language) notebook including full markdown capabilities to document everything.
  • xlWings: Python tool for Excel allowing creation of macros and other capabilities
  • Cython: Translates Python into C code for compilation, faster execution, etc.

Matt Moran is the Managing Member at Moran Innovation, and previous Managing Partner at Isotherm Energy. He's been developing power and propulsion systems since 1982. Matt was also the Sector Manager for Energy & Materials in his last position at NASA where he worked for 31 years. He's been involved in seven technology based start-ups; and provided R&D and engineering support to many industrial, government and research organizations.  More about Matt here