Summary: | Complex physical models are becoming increasingly used in industry for simulation and optimization. Modeling languages such as Modelica allow creating model libraries of physical components, which in turn can be used to compose system models of, e.g., vehicle systems, power plants and electronic systems. JModelica.org is an open source tool suite for Modelica. It includes a compiler for Modelica and for the language extension Optimica, which is used to formulate dynamic optimization problems based on Modelica models. Direct collocation methods are used in JModelica.org to transcribe a dynamic optimization problem into a large-scale nonlinear program with sparse structure. This structure can be exploited for parallel solution of the linear Karush Kuhn Tucker KKT system solved in each step of an interior point method. Currently, the non-linear programming solvers available in JModelica.org do not support parallel algorithms for the solution of the structured problem. The optimization platform in JModelica.org was modified to generate efficient C-code that could be linked with an external non-linear programming solver with parallel computation capability. CasADi, JModelica. org’s third party software, is used to generate C-code from the model equations, after collocation has been applied. Speed up factors over 20 were obtained for the compilation of the generated files, and the problem of non-compilable files was overcome. A C++ interface was implemented to link the generated files with the parallel framework that solves non-linear problems with an interior point algorithm.A large-scale trajectory optimization problem, such as the start-up optimization of a power cycle model, was used to evaluate the performance of the interface and the parallel algorithm. Speedup of over 2.5 was obtained with 4 processors in a shared memory architecture. === Komplexa fysikaliska modeller anvånds alltmer inom industrin för simulering och optimering. Modelleringsspråk som Modelica möjliggör skapandet av modellbibliotek av fysikaliska komponenter, som i sin tur används för att skapa systemmodeller av t.ex. fordonssystem, kraftverk och elektronik. JModelica.org är ett open-source verktyg för Modelica. Det består av en kompilator för Modelica och dess utökning Optimica, som används för att formulera dynamiska optimeringsproblem baserat påModelica-modeller. Direkta kollokationsmetoder används i JModelica.org för att transkribera dynamiska optimeringsproblem till storskaliga olinjära program med gles struktur. Denna struktur kan utnyttjas vid parallell lösning av det linjära KKT-systemet som löses i varje iteration i en inre-punkts-metod. De nuvarande lösarna för olinjära program i JModelica.org stödjer inte parallella algoritmer. Optimeringsplattformen i JModelica.org har modifierats för att generera effektiv C-kod som kan länkas med en extern lösare för olinjära program som utför parallella beräkningar. CasADi, JModelica.org’s tredjepartsmjukvara, används för att generera C-kod från modellekvationerna efter att kollokation har applicerats. Kompileringstiden har minskat med en faktor större än 20 och det tidigare problemet med ej kompilerbara filer har lösts. Ett C++-gränssnitt implementerades för att länka de genererade filerna med det parallella ramverket. Ett storskaligt trajektorieoptimeringsproblem, såsom uppstartsoptimering av en modell av ett kraftverk, användes för att evaluera prestandan av gränssnittet och den parallella algoritmen. En uppsnabbningsfaktor på2.5 erhölls med 4 processor som delar minne.
|