Abstract | Embedded control systems software is continually gaining importance, it is becoming more complex and it often must comply with very rigid requirements. At the same time, legacy software components proven in practice are preferred in safety critical embedded control systems. Model-based development has emerged as an approach that can tackle the complexities of embedded control systems, but its' application can be hindered by established development procedures based on legacy components. Real-time properties validation in the context of model-based development is not well researched so this can also protract introduction of model-based techniques. This thesis proposes methods to facilitate transition from legacy development practices into modern model-based embedded control systems development. This goal is achieved by transferring knowledge and confidence condensed in legacy software components across the gap and by validating real-time properties of the embedded software. Legacy software components are integrated into model-based development toolchain in a systematical and structured way. It has been shown that this approach provides flexibility in managing components and facilitates their reuse, that it provides highly customizable automated code generation, and that it enables linking of newly generated code with legacy object files. Novel methods for real-time properties validation have been proposed that supplement existing functional model-based testing approaches. Software component real-time testing based on configuration space partitioning and on real-time testing pattern has been elaborated. The method itself has been thoroughly validated to establish confidence in the testing results which have shown to be consistent and reliable. All steps in the process can be (i) fully automated, (ii) partially automated with fine tuning of particular aspects, or (iii) performed completely manually. This enables full control of the tests on the one side and effortless regression testing of large number of components on the other side. Real-time properties of complex control software structures can be validated by novel real-time integration testing method derived from the proposed component testing approach. Here, the model of the system under test is incorporated in the real-time testing pattern adapted for control algorithm testing. The executable code, generated from such model and executed on the target, provides validation of real-time properties either in an open-loop or in a closed control loop with model of the environment executed in real-time alongside the tested algorithm. It has been shown that this method represents a natural extension of the conventional functional processor-in-the-loop testing. All the proposed methods have been validated in three case studies which describe two real-life embedded control system development projects. |
Abstract (croatian) | Programska podrška ugradbenih računalnih sustava upravljanja postaje njihov sve važniji dio, sve je složenija i nameću joj se sve teži zahtjevi. Istovremeno, kod sigurnosno kritičnih ugradbenih sustava upravljanja prednost se daje korištenju naslijeđenih programskih komponenata čija je kvaliteta i pouzdanost potvrđena dugotrajnom eksploatacijom. Modelski razvoj programske podrške prikladan je za kompleksne ugradbene sustave, ali njegova primjena može biti otežana u okruženjima s uhodanim razvojnim postupcima zasnovanim na naslijeđenim komponentama. Vrednovanje vremenskih ograničenja u okviru modelskog razvoja nije dovoljno istraženo pa i to može biti kočnica njegove implementacije. U radu su predložene metode koje olakšavaju prijelaz s naslijeđenih razvojnih postupaka na moderan razvoj ugradbenih sustava upravljanja zasnovan na modelu. Naslijeđene programske komponente sistematski i strukturirano su integrirane u MATLAB/Simulink skup programskih alata za modelski razvoj. U okviru istraživanja, izrađeno je GRAPlab proširenje ovog modelskog okruženje koje se sastoji od skupa Simulink komponenata i od programskih alata za automatsko generiranje programskog koda. GRAPlab komponente sastoje se od Simulink maskiranog atomskog podsustava, datoteke koja definira međuovisnosti parametara i inicijalizacijske funkcije. Maskirani atomski podsustavi su Simulink modeli izrađeni od izvornih Simulink komponenata te skriveni iza grafičkog simbola i dijaloga za parametriranje. Kod promjene parametara GRAPlab bloka, njegova inicijalizacijska funkcija na temelju definiranih međuovisnosti parametara modificira sadržaj modela te prilagođuje izgled grafičkog simbola i dijaloga za parametriranje. Svakoj GRAPlab komponenti pridružena je datoteka koja definira njezino mapiranje prilikom generiranja programskog koda za ciljni ugradbeni računalni sustav. Na ovaj način, omogućeno je generiranje ciljnog programskog koda iz GRAPlab modela korištenjem naslijeđenih programskih komponenata. U radu je pokazano kako GRAPlab pristup omogućuje fleksibilno upravljanje komponentama, olakšava njihovo ponovno korištenje, pruža prilagodljivo automatizirano generiranje programskog koda i omogućuje povezivanje novogeneriranog koda s naslijeđenim objektnim datotekama. Nove metode vrednovanja vremenskih svojstava predložene su kao nadopuna postojećim pristupima funkcionalnom modelskom vrednovanju. Vrednovanje vremenskih svojstava programskih komponenata zasnovano je na particioniranju njihova konfiguracijskog prostora i na predlošku za vremensko vrednovanje. Particioniranje konfiguracijskog prostora komponenata provodi se pomoću metode klasifikacijskih stabala. Komponente na razini modelskog okruženja razlažu se na inačice, koje predstavljaju komponente na razini ciljnog sustava, a inačice se razlažu na konfiguracije, odnosno različite načine parametriranja inačice. Za svaku konfiguraciju inačice komponente, automatski se generira model korištenjem predloška za vrednovanje vremenskih svojstava. Predložak postavlja vrednovanu konfiguraciju na programsku zadaću nižeg prioriteta zajedno s generatorom promjenjivog procesorskog opterećenja, dok se sve moguće konfiguracije dane inačice smještaju na programsku zadaću višeg prioriteta zajedno s nadzorom brzine odziva na prekide. Generiranjem programskog koda iz modela za vrednovanje i njegovim izvođenjem na ciljnom sustavu, mjere se vremena izvođenja i kašnjenje odziva na prekide te se nadzire funkcionalno ponašanje konfiguracije. Predloškom je osigurano prekidanje vrednovane konfiguracije u svakoj mogućoj točki njena izvođenja pa se tako tijekom vrednovanja provjerava „otpornost na prekide“. Sama metoda iscrpno je provjerena kako bi se steklo pouzdanje u njezine rezultate koji su se pokazali dosljednim i pouzdanim. Proces vrednovanja može biti (i) potpuno automatiziran, (ii) djelomično automatiziran uz podešavanje pojedinih aspekata ili (iii) proveden u potpunosti ručno. Time su istovremeno omogućeni potpuna kontrola nad procesom i jednostavno regresijsko vrednovanje velikog broja komponenata. Cijeli postupak vrednovanja iscrpno je dokumentiran automatskim postupkom generiranja izvještaja zasnovanim na LaTeX predlošcima. U radu je predloženo ublažavanje kompleksnosti vrednovanja složenih programskih struktura upravljanja razlaganjem vrednovanja u tri koraka. U prvom koraku provodi se vrednovanje u otvorenoj petlji. Ovaj korak može se dalje razložiti u dvije faze: u prvoj fazi vrednuje se funkcionalno ponašanje algoritma dok se u drugoj fazi vrednovani algoritam ugrađuje u predložak za vrednovanje vremenskih svojstava. Radi se o predlošku za vrednovanje vremenskih svojstava sličnom predlošku za vrednovanje programskih komponenata, ali prilagođenom vrednovanju upravljačkih algoritama. Drugi korak sastoji se od funkcionalnog vrednovanja kod kojega se programski kod vrednovanog sustava generiran iz modela izvodi na ciljnom sustavu u zatvorenoj upravljačkoj petlji s modelom okoline, odnosno procesa, izvođenom unutar simulacijskog okruženja na osobnom računalu. Vrednovanje vremenskih svojstava upravljačkog algoritma u zatvorenoj upravljačkoj petlji podržano je trećim korakom metode. Ovdje se model procesa prilagođuje za generiranje ciljnog programskog koda koji se potom izvodi na ciljnom sustavu. Na ovaj način omogućeno je zatvaranje upravljačke petlje na ciljnom sustavu i njezino izvođenje u stvarnom vremenu. Glavna ograničenja posljednje faze odnose se na kompromise koje je potrebno napraviti kako bi se model procesa prilagodio za generiranje ciljnog programskog koda te na ograničenja resursa ciljnog sustava koji mora moći paralelno izvoditi programski kod modela okoline i programski kod vrednovanog upravljačkog algoritma. Sve predložene metode vrednovane su kroz tri studije slučaja koje opisuju dva projekta razvoja stvarnih ugradbenih sustava upravljanja. Metoda vrednovanja programskih komponenata provjerena je nizom eksperimenata nad naslijeđenim programskim komponentama namijenjenim kontroleru za digitalnu obradu signala TMS320F28335 tvrtke Texas Instruments. Ova je metoda primijenjena tijekom razvoja sigurnosne platforme za upravljanje pružnim prijelazima na vrednovanje programskih komponenata za C8051F580 mikrokontroler tvrtke Silicon Laboratories. Sigurnosna platforma mora zadovoljiti vrlo stroge SIL (engl. Safety Integrity Level)zahtjeve razine 4, a primjenom predložene metode vrednovanja komponenata značajno je pojednostavljen postupak certifikacije. Metoda vrednovanja upravljačkih algoritama primijenjena je na vrednovanje algoritma za praćenje točke maksimalne snage tijekom razvoja centralnog pretvarača za fotonaponske elektrane. |