All about Modelica

by Marco Bonvini on Monday June 29, 2020

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.

LambdaSim: your model as a service

by Marco Bonvini on Sunday March 26, 2017

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.

Modelica in action: how to structure models in packages

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.

Modelica in action: compile and simulate models

by Marco Bonvini on Monday January 02, 2017

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.

SW engineering meets mathematical modeling - Types and Objects

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.

SW engineering meets mathematical modeling - Modelica basics

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.

What is Modelica and why bother?

by Marco Bonvini on Sunday October 16, 2016

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.

Diversity Visa AKA "Green Card Lottery"

by Marco Bonvini on Friday February 26, 2016

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.

The time series maker

by Marco Bonvini on Sunday January 31, 2016

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…

Energy analysis with Python

by Marco Bonvini on Friday January 29, 2016

Recently Daniel McQuillen asked me to answer few questions on his blog Daniel is a freelance software developer that I met while working at Lawrence Berkeley National Laboratory.


All materials on this site are protected by copyright and intellectual property laws and are the property of Marco Bonvini. Unless stated otherwise, you may access and download the materials located on only for personal, non-commercial use.

Social Links


California, US

Website powered by BlackTie, and Jekyll - © Marco Bonvini 2015-2020