Using Julia programming language for design and implementation of control algorithms

Active: 
yes

Julia je mladý programovací jazyk, který je od samého začátku vyvíjen se zaměřením na vědecko-technické výpočty. Jeho obliba v posledních letech roste zejména v komunitě specialistů na numerickou optimalizaci a simulaci dynamických systémů. Jim Julia nabízí pohodlí vysokoúrovňového programovacího jazyka za současné mimořádné rychlosti výpočtů (původní autoři z MIT Julii propagují sloganem "walks like Python, runs like C"). Cílem navrhovaného projektu bude prozkoumat možnosti, jaké Julia nabízí i pro návrh a implementaci algoritmů pro automatické řízení.

Pro (výpočetní) návrh řídicích algoritmů již dnes existuje několik specializovaných balíků, jako jsou ControlSystems.jl, ControlSystemIdentification.jl, TrajectoryOptimization.jl a další. Cílem projektu bude prozkoumat, jak moc použitelné tyto (a další) jsou pro praktický návrh automatického řízení. V případě nedostatečnosti může součástí projektu být vyvinutí chybějící funkcionality (a sdílení výsledného balíku s mezinárodní komunitou coby open-source software registrovaný na Github.com). Pro demonstraci použití těchto nástrojů budou uvažována zadání některých úloh z naší vlastní experimentální laboratoře.

Implementace/realizace řídicích algoritmů bude primárně směřovat k prototypovému použití (angl. rapid prototyping) v experimentální/výukové laboratoři ve stylu "normálního módu" známého ze systému Simulink. Regulátor tak může běžet na PC vybaveném převodníkovými kartami či případně na dedikovaném jednodeskovém počítači typu Raspberry Pi či Beaglebone Blue (ekvivalent "externího módu", kdy je kód kompilován do spustitelného binárního kódu nejspíše nebude možno realizovat, protože aktuálně Julia založená na LLVM nic takového přímo nepodporuje). Přirozenou součástí projektu bude prozkoumání existujících řešení. V případě chybějící funkčnosti může být součástí projektu její vyvinutí (a zveřejnění).

Ideálním zakončením projektu bude demonstrace kompletního vývojového cyklu výpočetního návrhu regulátoru i jeho experimentálního ověření na laboratovním modelu, to vše z prostředí jazyka Julia.

References:
[1] „Julia Course". Graduate Course, Department of Automatic Control, Lund University. 2019. https://www.control.lth.se/education/doctorate-program/julia-course/julia-course-2019/.
[2] „The Julia Programming Language". Viděno 23. září 2021. https://julialang.org/.
[3] Deits, Robin. JuliaRobotics: Making robots walk with Julia, 2018. https://www.youtube.com/watch?v=dmWQtI3DFFo.
[4] „Proceedings of the JuliaCon Conferences". Viděno 23. září 2021. https://proceedings.juliacon.org.

 

Contact person: 
Zdeněk Hurák
Image: Julia logo