MATLAB Compiler, MATLAB Coder

Stworzenie algorytmu obliczeniowego w MATLAbie to dla niektórych koniec pracy, dla innych dopiero początek. Każdy algorytm obliczeniowy czemuś służy i może się zdarzyć, że końcowy odbiorca będzie zainteresowany wielokrotnym wykorzystaniem algorytmu, a nie będzie w ogóle zainteresowany MATLABem, czy też szerzej, technologią wykorzystaną do jego opracowania. W środowisku MATLAB istnieją dwa podejścia umożliwiające oderwanie owocu pracy (algorytmu, aplikacji) od drzewa (środowiska MATLAB) i sprezentowanie go „na zewnątrz”. Każde podejście przeznaczone jest dla trochę innej grupy odbiorców i każde wymaga uzbrojenia środowiska MATLAB w dodatkowe moduły (toolboxy): MATLAB Compiler lub MATLAB Coder. Same nazwy modułów niestety nie pomagają w rozszyfrowaniu tego, co się za nimi kryje.

MATLAB Compiler – tworzenie aplikacji okienkowych

MATLAB Compiler to moduł, który umożliwia stworzenia aplikacji okienkowej, działającej u użytkownika końcowego w identyczny sposób, w jaki działa na komputerze z zainstalowanym MATLABem. Oczywiście po wygenerowaniu aplikacji edycja m-plików w celu zmiany parametrów pracy programu nie będzie już możliwa. Niezbędne jest zatem przygotowanie jakiegoś interfejsu użytkownika, dzięki któremu będzie można te parametry zmienić, wskazać miejsce z którego trzeba wczytać dane wejściowe itp. To akurat nie jest trudne, zwłaszcza teraz, gdy w MATLAbie pojawiło się nowe narzędzie dedykowane do tworzenia GUI. MATLAB Compiler jest bardzo prosty w obsłudze. Po uruchomieniu narzędzia wskazujemy główny m-plik tworzonego programu i po kilku minutach otrzymujemy instalator aplikacji, który można przenieść na maszynę docelową (gdzie nie ma MALTABa). Aplikacje można tworzyć w wersjach dla systemów Windows, Linux i MacOs.

Sama aplikacja generowana przy pomocy narzędzia MATLAB Compiler jest często mikroskopijnych, jak na współczesne standardy, rozmiarów. Jej wielkość może wynosić zaledwie kilka bądź kilkanaście MB. Podczas procesu instalacji na komputerze docelowego użytkownika ląduje jednak jeszcze jeden, niezbędny do działania MATLABowej aplikacji program: MCR (MATLAB Runtime Component). Jest to „silnik” pozwalający działać aplikacji podobnie jak środowiska JAVA czy .NET Framework umożliwiając działanie aplikacji napisanych w Javie i C#. Oprócz programów typu stand-alone MATLAB Compiler umożliwia również tworzenie wtyczek do Microsoft Excell.

MATLAB Compiler bardzo dobrze nadaje się do tworzenia aplikacji narzędziowych. W przypadku większych projektów, gdy w grę wchodzą kwestie komunikacji sieciowej aplikacji, autoryzacji dostępu itp. sensowniejszym wyborem może okazać się inny język programowania. W takim przypadku nie trzeba jednak całkowicie rezygnować z MATLABa, przy pomocy MATLAB Compiler SDK istnieje możliwość wygenerowania komponentu (biblioteki, pakietu) który może zostać włączony do projektu tworzonego w innym języku programowania (C++, C#, JAVA, Python). Złożone algorytmy obliczeniowe można można zatem stworzyć w MATLAbie, a pozostałą część aplikacji w innym środowisku.

MATLAB Coder – generacja kodu C

MATLAB Compiler świetnie sprawdza się, gdy trzeba przygotować aplikację działającą na standardowym komputerze, jednak konieczność instalacji MCR przekreśla możliwość stosowania rozwiązania w innych przypadkach. Nie wszyscy czytelnicy wpadną na pomysł, jakie to mogą być te inne rodzaje komputerów, więc spieszę z wyjaśnieniem. MATLAB jest często wykorzystywany do opracowywania algorytmów sterowania czy algorytmów przetwarzania sygnałów, które docelowo mają funkcjonować np. na mikrokontrolerach. W takich przypadkach wykorzystanie MATLAB Compiler i instalacja MCR nie jest możliwa. Tworzenie oprogramowania dla mikrokontrolerów czy systemów operacyjnych czasu rzeczywistego to złożony proces i MATLAB nie może całkowicie wyręczyć twórców, jednak dzięki modułowi MATLAB Coder można „przetłumaczyć” opracowany w m-plikach algorytm na język C. To umożliwia na bezproblemowe wcielenie algorytmu do większego projektu tworzonego w tym języku. Jeśli algorytm nie jest opracowywany w MATLABie, a w Simulinku, niezbędny może okazać się Simulink Coder.

W przypadku wykorzystania MATLAB Coder i Simulink Coder możemy liczyć na przyspieszenie działania. Nowa wersja MATLABa jest znacznie szybsza od poprzednich jednak nie ma co czarować, na pewno wykonanie kodu napisanego w MATLABie nie będzie tak szybkie jak wykonanie analogicznego kodu napisanego w C. Skora tak, to po co komu MATAB Compiler? Niestety MATLAB Coder nie radzi sobie z każdą funkcją i instrukcją dostępną w MATLABie.  Świetnie przetłumaczy na język C m-funkcje wykorzystujące przyborniki Signal Processing i Control System ale jest kompletnie bezradny w przypadku zwykłej funkcji plot.

Poniżej tabelka porównująca MATLAB Coder i MATLAB Compiler SDK.

CompilerVsCoder

(Visited 279 times, 1 visits today)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *