Early in my career, when ML and AI weren’t as cool, I fell in love with modeling and simulations. As Joel Spolsky recently put it, sometimes you’re working on something that’s just too complicated to reason about with simple math, you can’t even begin to guess how the inputs affect the outputs. In such cases, simulation models will help you understand better complex problems.
Sometimes we face technical challenges like predicting the behaviour of a car when we brake at 60 mph. We spend a lot of time writing equations, testing assumptions and building a model that represents reality in a meaningful and useful way. The end product, the model, is like an artwork. It’s beautiful to the eyes of the “artist” who conceived it. An enigma for anyone else. Wouldn’t be nice if we were able to share our creations (i.e., the models) and let others use them and produce results with few clicks? In an era where everything is a service, this would be called Model as a service. TL;DR Do you have a model? Would you’d like to share it with others and eventually monetize it? Have a look at LambdaSim.
by Marco Bonvini on Thursday January 05, 2017
If you work with Modelica you should be familiar with packages. Packages are a way to organize and structure your models. In this post I will show how to structure your models in a package. The post is accompanied by an example that is included in the Github repository ModelicaInAction.
In the last posts I explained why Modelica matters and some of the features that make Modelica a great language for modeling dynamic systems. In this post I focus on some practical aspects, namely how to setup the open-source JModelica platform and how to compile and simulate Modelica models. The post is accompanied by a Github repository called ModelicaInAction. This repository contains all the code and the instructions needed to setup JModelica and running the examples.
by Marco Bonvini on Sunday October 23, 2016
This post is the second of a series of posts that cover some of the most important features provided by Modelica. Here I’ll describes the type system used by Modelica and how it helps avoiding trivial errors when writing equations. The post continues with a description of the Object-Oriented features provided by Modelica and how they help engineers model complex systems in a modular way.
by Marco Bonvini on Saturday October 22, 2016
Ask any engineer, and they’ll tell you - “It’s tough to model the real world!” Engineers perform a delicate balancing act when they create complex models of physical systems, building detailed simulations while at the same time struggling against overwhelming complexity or irrelevant detail.
Fortunately, there’s help. In this post I give an overview of the Modelica modeling language and the features that make it the right choice for modeling complex engineering systems. Modelica is not some abstract academic toy disregarded by the modern industry. In fact, in the last few years Modelica has been adopted by some of the world’s biggest automotive companies – Audi, BMW, Daimler, Ford, Toyota, and VW. These companies use Modelica to design energy efficient vehicles, improve air conditioning systems, even (in the case of the Ferrari F1 team) design racing cars! And the automotive sector is just one of many that find this language effective.
In this post I try to explain what is Modelica and why it does matter. Modelica, as the name suggests, is a modeling language. Which type of models? Mathematical models. As you work with the language you’ll quickly realize it has a strong focus on math. Having said that, Modelica does not focus on a specific real-world domain, like mechanical models for automotive industry, or financial models for banks. Rather, it attempts to provide a structure and syntax that allows the user to represent as many types of physical systems as possible.
Back in 2013 I decided to participate at the DV lottery, and thanks to a series of lucky strikes I was able to get my Green Card in September 2015! This post contains information that can be useful for people that are going through the same process. In particular with this post I’d like to give others some statistics and insights about the numbers that are pulled through the process.
How many times you needed time series data to test an algorithm? When this happens, you usually have a clear idea of how the data should look like but you don’t know how to generate it. I came across this problem at least 100 times over the last years…
Recently Daniel McQuillen asked me to answer few questions on his blog TechPlusEarth.com. Daniel is a freelance software developer that I met while working at Lawrence Berkeley National Laboratory.