Grumman-X29-InFlight.jpg

Julia Controls

Introduction

As I mentioned in my JuliaCon recap, one of the projects presented at the conference was Modia, an effort to extend the Modelica language implemented in Julia. Although Modia itself has yet to be published publicly, I was directed to a controls project at Lund University in Sweden as a potential pathway for adding controls capability to Modia once it becomes available. It of course doesn't hurt that the lead for Modia is based in Lund and knows the University team, but I digress.

This project, called ControlSystems, is very similar to the Matlab Controls Toolbox, which makes some sense due to Matlab/Simulink's prominence as a controls development tool. In order to familiarize myself with it, as well as get a much needed refresher on the topic, I broke out my old college textbook, System Dynamics by Ogata. The book has many Matlab examples scattered throughout, so my thought has been that as I'm reading through I'll try to replicate the examples in Julia, and note any differences or shortcomings where maybe I could contribute to the project.

And it didn't take all that long for me to start finding differences. So far, this has mostly been in very early material in the book that is more about partial fraction decomposition, which is useful in solving differential equations, but not critical for the rest of the book. I did, however, write a function to do partial fraction decomposition and got it merged into another Julia package, which I'll talk about in a later post.

Otherwise, I'm continuing to work through the book and note changes. I haven't get contributed anything to ControlSystems itself, but I have a few ideas on changes that could be helpful. As I submit them, I'll do my best to talk about them here.

David PernerComment