projektowanie i prototypowanie systemów sterowania z

78
Automatyka - Zastosowania, Metody i Narzędzia, Perspektywy (AZMNP) Wykład #6 WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI – KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA Jarosław Tarnawski, dr inż. Listopad, 2016

Upload: doandung

Post on 11-Jan-2017

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projektowanie i prototypowanie systemów sterowania z

Automatyka - Zastosowania, Metody

i Narzędzia, Perspektywy (AZMNP) – Wykład #6

WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI – KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA

Jarosław Tarnawski, dr inż.

Listopad, 2016

Page 2: Projektowanie i prototypowanie systemów sterowania z

Projektowanie i prototypowanie systemów

sterowania z wykorzystaniem środowiska

Matlab/Simulink, jego darmowych

odpowiedników oraz zbliżonych funkcjonalnie

narzędzi informatycznych – wady, zalety, funkcjonalność, ograniczenia

Wykorzystanie metod i narzędzi informatyki dla

potrzeb projektowania i implementacji

zaawansowanych systemów sterowania i

podejmowania decyzji

Page 3: Projektowanie i prototypowanie systemów sterowania z

Definicje

CAD - Computer-Aided Design Projektowanie wspomagane komputerowo

CAE - Computer-Aided Engineering „Inżynieria” wspomagana komputerowo

CAM - Computer-Aided Manufacturing Wytwarzanie wspomagane komputerowo

Page 4: Projektowanie i prototypowanie systemów sterowania z

Cykl powstawania produktu

• CAD i CAE powstały w celu skrócenia procesu produkcyjnego. Zastosowanie komputerów i specjalizowanego oprogramowania uczyniło ten etap bardziej elastycznym

Rozwój koncepcji CAD

etapy biznesowe np. badania rynku

Projekt CAD

Kalkulacja

Prototyp CAE

Testowanie CAE

Produkcja CAM

Wyrób

Page 5: Projektowanie i prototypowanie systemów sterowania z

Prototyp

Prototyp - pierwowzór; pierwszy, próbny, doświadczalny egzemplarz maszyny nowego typu; wzorzec.

Zatem prototypowanie to ogół czynności zmierzających do opracowania próbnego, doświadczalnego egzemplarza maszyny, obiektu, regulatora itd.

Page 6: Projektowanie i prototypowanie systemów sterowania z

Szybkie prototypowanie (ang. Rapid prototyping)

Pojęcie znane w różnych dziedzinach inżynierii Mechanice i architekturze- CAD/CAM/CNC/Drukarki3D Informatyce - środowiska RAD (ang. Rapid Application

Development) zawierające wizualne komponenty wspomagające programowanie (np. środowiska Visual C++ czy C++ Builder CodeGear dawniej Borland)

Elektronice – zintegrowane środowiska do projektowania układów elektronicznych np. OrCAD, Protel zintegrowane z systemami trawienia płytek drukowanych i lutowaniem elementów

Typowe programy CAD/CAE: SolidWorks, Pro/ENGINEER, Autodesk Inventor

Page 7: Projektowanie i prototypowanie systemów sterowania z

Szybkie prototypowanie w automatyce

W automatyce szybkie prototypowanie oznacza ogół czynności zmierzających do zbudowania prototypu układu sterowania umożliwiającego wszechstronne przetestowanie badanego aspektu – najczęściej jakości działania regulatora, ale także urządzenia pomiarowego, wykonawczego, optymalizatora, estymatora, filtru, systemu wspomagania decyzji itd.

Page 8: Projektowanie i prototypowanie systemów sterowania z

Szybkie prototypowanie w automatyce

Zmierza do stworzenia takich warunków w jakich przyjdzie pracować badanemu urządzeniu

Nie chodzi tu już o „czystą: symulację komputerową, tylko działanie „in situ” – w miejscu, w warunkach jakich będzie pracowało dane urządzenie.

Urządzenie implementujące badany element przeważnie posiada większe możliwości niż docelowe

Page 9: Projektowanie i prototypowanie systemów sterowania z

Dlaczego warto się zajmować RAD/SCRz w Matlab/Simulink?

• Jest to obecnie najpopularniejsze środowisko

symulacyjne zarówno w przemyśle jak i środowisku naukowym.

• Oferuje szerokie możliwości symulacji programowej i bogatą bibliotekę funkcji, procedur, przyborników

• Wykorzystanie możliwości środowiska Matlab/Simulink nie musi ograniczać się do symulacji programowej

Page 10: Projektowanie i prototypowanie systemów sterowania z

Dlaczego warto się zajmować RAD/SCRz w Matlab/Simulink?

• Wykorzystanie narzędzi Real-Time Workshop

umożliwia implementację systemów wbudowanych na wielu różnych platformach (mikrokontrolery, PCty, DSP, RTOSy)

• Wykorzystanie przyborników Real-Time Windows Target oraz xPC wraz z kartami akwizycji danych pomiarowych umożliwia uzyskanie symulacji HIL

Page 11: Projektowanie i prototypowanie systemów sterowania z

Dlaczego warto się zajmować SCRz w Matlab/Simulink?

• Otrzymujemy zatem niezwykle elastyczne środowisko symulacyjne i zarazem środowisko szybkiego prototypowania i weryfikacji systemów wbudowanych.

• Jest to nowoczesny, funkcjonalny i elastyczny sposób pracy inżyniera automatyka

Page 12: Projektowanie i prototypowanie systemów sterowania z

Szybkie prototypowanie w automatyce

Systemy przeznaczone do szybkiego prototypowania cechują się dużą elastycznością tj. możliwościami realizacji różnych zadań i włączania w różne miejsca pętli sterowania, możliwościami analizy i oceny jakości pracy prototypu.

Przeważnie nie są przeznaczone jako docelowe, przemysłowe urządzenia.

Page 13: Projektowanie i prototypowanie systemów sterowania z

Współczesne projektowanie

• Projektowanie i wytwarzanie w ogólnie pojętej inżynierii zmieniło się istotnie w ciągu ostatnich lat. Najistotniejszymi czynnikami wpływającymi na te zmiany są (zintegrowane) środowiska do projektowania , symulacji, optymalizacji, wspomagania wytwarzania i zarządzania.

• Klasyczne podejście z posiadaniem fizycznego prototypu i testowaniu jego podsystemów zastąpiono narzędziami symulacyjnymi . Pozwala to w ogólności na: – Skrócenie czasu realizacji projektu – Zmniejszenie kosztów – Testowanie całego systemu wraz z otoczeniem – Szybsze zauważenie problemów integracji poszczególnych podsystemów – Przewidywanie różnych, rozbudowanych scenariuszy – Zrównoleglenie pracy i testowanie oprogramowania przed posiadaniem

fizycznej części – Podniesienie jakości produktu

Page 14: Projektowanie i prototypowanie systemów sterowania z

• Zastosowanie narzędzi symulacyjnych podczas fazy projektowej pozwala na testowanie podsystemów zarówno w zakresie ich działania szczegółowego, konkretnego dla danego podsystemu jak również ich współpracy i interakcji. Możliwe jest sprawdzenie poprawności działania systemu, jego niezawodności i ewentualnej potrzeby uwzględnienia redundancji. W symulacji mogą być uwzględnione zagadnienia ‘starzenia się’ sprzętu i analizy jego pracy podczas użytkowania. Biorąc pod uwagę powyższe kolejne zalety tego typu projektowania to: minimalizowanie ryzyka, podniesienie efektywności procesu wytwarzania produktu, osiągnięcie wyższej jakości w krótszych okresach.

Page 15: Projektowanie i prototypowanie systemów sterowania z

Główne elementy środowiska

• Projektowanie z wykorzystaniem modelowania

• Środowisko symulacyjno/weryfikacyjne

Page 16: Projektowanie i prototypowanie systemów sterowania z

Wybrane gałezie przemysłu korzystające z CAD/CAE/CAM

• Lotniczy

• Kosmiczny

• Motoryzacja

• Chemia

• Energetyka

• Transport/logistyka

Page 17: Projektowanie i prototypowanie systemów sterowania z

Rys. [1]

Page 18: Projektowanie i prototypowanie systemów sterowania z

• Symulacja jest podejściem do analizy systemu dynamicznego w celu możliwości zapoznania się niejako od wewnątrz z zachowaniem tego systemu. Symulacja prowadzi do wykonywania eksperymentów na modelu systemu przy czym symulowany system odnosi się do rzeczywistego obiektu natomiast symulowany model jest jego abstrakcją.

Page 19: Projektowanie i prototypowanie systemów sterowania z

Przykładowy proces powstawania satelity [1] Phases and milestones in space projects

PSP -Product Structure Plan

Page 20: Projektowanie i prototypowanie systemów sterowania z
Page 21: Projektowanie i prototypowanie systemów sterowania z

System za wyjątkiem elementów pasywnych może być zazwyczaj przedstawiony za pomocą abstrakcji składającej się z sterowań (oddziaływań) oraz fizyki (modelu) obiektu, na który oddziałujemy

Projektowanie i weryfikacja takich systemów obecnie oparte są na drodze

symulacyjnej. Modelowane są zjawiska fizyczne zachodzące w obiekcie sterowania (elektryczne, mechaniczne, termodynamiczne, dynamika płynów itd.) oraz oddziałujący na model system sterowania. Realizacja poszczególnych zjawisk może być prowadzona z różnym poziomem odwzorowania detali.

Kryteria techniczne prowadzenia symulacji tak pojętego systemu dotyczą ● analizy, współpracy i interakcji wszystkich elementów systemu ● otrzymywania rezultatów symulacji jako systemu rozumianego jako całość Otrzymanego za pomocą modelowania: ◊ składowych systemu i ich funkcjonalności, ◊ interfejsów, metod współpracy i interakcji podczas połączeń i działania, ◊ zjawisk zewnętrznych, które mogą zaistnieć w trakcie pracy systemu .

Page 22: Projektowanie i prototypowanie systemów sterowania z

Szczegółowość oraz złożoność modelowania systemu wynika z zapotrzebowania procesu inżynierskiego. Modele symulacyjne zawierają funkcjonalność docelowych urządzeń uwzględniając np. protokoły komunikacyjne, tryby pracy, zużycie energii itd. Jednak w modelu nie jest najważniejsze dokładne odwzorowanie samego sposobu działania danego komponenetu, a raczej jego znaczenie w systemie i uwzględnienie sposobu działania z innymi elementami. W związku z tym mogą być zastosowane uproszczenia modeli jednak oczywiście do granicy określonej przez założoną dokładność i funkcjonalność modelu.

Page 23: Projektowanie i prototypowanie systemów sterowania z

• Zasadniczo odchodzi się od analizowania oddzielnie różnych aspektów modelowanego systemu np. oddzielnego modelu mechanicznego i elektrycznego czy termodynamicznego.

• Podejście nazwane "model-based development and verification” zostało zastosowane do satelity CryoSat 1 przez Europejską Agencję kosmiczną gdzie model prototypowy został całkowicie zastąpiony przez symulacje.

Page 24: Projektowanie i prototypowanie systemów sterowania z

Ograniczenie ryzyka takiego podejścia uzyskuje się przez: • Projektowaniu w miarę możliwości z wykorzystaniem

standardowych komponentów • przesymulowanie rozpatrywanych konfiguracji przez ich

realizacją sprzętową • oraz szerokie wykorzystanie technik symulacyjnych, aby

wspierać wszystkie ważne etapy weryfikacji projektu systemu,

Jest to podejście nazwane "Assembly, Integration and Testing", (AIT).

Page 25: Projektowanie i prototypowanie systemów sterowania z

● Weryfikacja oznacza sprawdzenie, czy wszystkie zdefiniowane wymagania systemowe, które są określone w dokumencie wymagań formalnych, są spełnione. Dowód może być osiągnięty przez analizę obliczeń, symulacji, testów i kontroli - metody dobrane są w zależności od rodzaju wymagań.

● Walidacja jest, po to aby sprawdzić, że system, wykonuje, jak pierwotnie zakładano – np. o ładowności, że zapewnia obrazy o określonej rozdzielczości itd.

Page 26: Projektowanie i prototypowanie systemów sterowania z

• Współczesne złożone systemy takie jak samoloty, samochody, statki kosmiczne lub inne złożone maszyny współcześnie budowane są jako zestaw – wyposażenie sprzętowe i oprogramowanie sterujące

OBC On-board computer OBSW On-board software [1]

Page 27: Projektowanie i prototypowanie systemów sterowania z

Rysunek przedstawia proces rozwoju jako klasyczny model V, składający się z gałęzi: projektowania i weryfikacji. Ten model jednak dla całego systemu, składa się z zestawu połączonych V-etapów.

Można go odczytać w następujący sposób - od prawej do lewej: ● Aby móc sprawdzić szczegółowe wymagania na system (w tym przypadku statek kosmiczny) przez testowanie systemu, oprogramowanie dla docelowego komputera musi być dostępne ● Oznacza to, integracja sprzętu (HW) / oprogramowania (SW) musi być zakończona w tym etapie. ● W celu sprawdzenia prawidłowej integracji HW / SW, już wstępnie zweryfikowane oprogramowanie sterujące musi być dostępne. ● I wreszcie, aby móc wcześniej sprawdzić oprogramowanie dla zintegrowanych algorytmów sterowania - na przykład do kontroli położenia - dane referencyjne muszą być dostępne. Te ostatnie pochodzą z kampanii weryfikacji algorytmu, który też musi być już zakończone w tym punkcie.

Page 28: Projektowanie i prototypowanie systemów sterowania z

• Rysunek V ponadto wskazuje na ważny fakt dotyczący modelowania

i weryfikacji systemu i koniecznej infrastruktury. Do weryfikacji wszystkich testów funkcjonalności, infrastruktura sprzętowo-programowa jest potrzebna, niezależnie od szczebla - najprostszej weryfikacji algorytmu, aż do bardzo złożonych testów systemowych najwyższego poziomu. Więc w rozwoju systemu do projektowania i badania należy przewidzieć środowisko: ● dla algorytmów sterowania, ● do transformacji algorytmów do kodu oprogramowania na docelowym sprzęcie (przed zintegrowaniem ze sprzętem docelowym), ● do integracji sprzętu / oprogramowania i wreszcie, ● dla całego systemu - tu statków kosmicznych - w tym zintegrowanego komputera pokładowego.

Page 29: Projektowanie i prototypowanie systemów sterowania z

W początkowym etapie, fizyka systemu jest modelowana - w oprogramowaniu lub w stanowisku badawczym i opracowane algorytmy sterowania są włączone do sterowania systemem. Algorytmy w większości nie zostały jeszcze wdrożone w języku programowania docelowego, ani dla docelowego sprzętu. Ten rodzaj testu jest nazywany "Algorytm w pętli". "Algorithm in the Loop“

Po drugie, algorytmy są zakodowane w języku docelowym. Oprogramowanie sterujące

jest wykorzystane do sterowania systemem. Ten rodzaj badań jest nazywany "Oprogramowanie w pętli". "Software in the Loop“

Trzecim krokiem jest załadowanie oprogramowania sterującego do komputera docelowego. Zasada ta nazywa się "Sterownik w pętli". Pierwszy etap badań to integracja oprogramowania na komputerze docelowym. "Controller in the Loop“

Czwarty i ostatni etap testowania systemu to oprogramowania sterującego w sprzęcie

docelowym teraz kontrolować modelowany system. Ta faza nazywana jest "Komputery w pętli". "Hardwarein the Loop“

Page 30: Projektowanie i prototypowanie systemów sterowania z

• [1]

Page 31: Projektowanie i prototypowanie systemów sterowania z

[1]

Page 32: Projektowanie i prototypowanie systemów sterowania z
Page 33: Projektowanie i prototypowanie systemów sterowania z
Page 34: Projektowanie i prototypowanie systemów sterowania z
Page 35: Projektowanie i prototypowanie systemów sterowania z
Page 36: Projektowanie i prototypowanie systemów sterowania z
Page 37: Projektowanie i prototypowanie systemów sterowania z

Oprogramowanie wspomagające projektowanie/symulację/testowanie

• Matlab http://www.mathworks.com/products/matlab/ • LabView http://poland.ni.com/labview • SciLab http://www.scilab.org/ • Modelica https://www.openmodelica.org/ • GnuOctave https://www.gnu.org/software/octave/ • i wiele innych mniej znanych

Page 38: Projektowanie i prototypowanie systemów sterowania z

Matlab – wybrane toolboxy na potrzeby budowania prototypów i wdrażania

• MATLAB Coder Generate C and C++ code from MATLAB code • MATLAB Compiler Build standalone applications and software

components from MATLAB programs • Simulink Coder Generate C and C++ code from Simulink and

Stateflow models • Simulink PLC Coder Generate IEC 61131-3 Structured Text for PLCs

and PACs • Simulink Real-Time Build, run, and test real-time applications • Real-Time Windows Target Run Simulink models in real time on

Microsoft Windows PCs • 164 third party solutions Real-Time simulation • Programming Raspberry Pi with Simulink • Arduino Support from MATLAB

Page 39: Projektowanie i prototypowanie systemów sterowania z

Matlab – nowe nazewnictwo toolboxów

• RTWT => Simulink Real-Time Desktop

• xPC => Simulink Real-Time

• RTW => Simulink Coder

Page 40: Projektowanie i prototypowanie systemów sterowania z

Matlab Coder MATLAB Coder™ generates standalone C and C++ code from

MATLAB® code. The generated source code is portable and readable. MATLAB Coder supports a subset of core MATLAB language features, including program control constructs, functions, and matrix operations. It can generate MEX functions that let you accelerate computationally intensive portions of MATLAB code and verify the behavior of the generated code.

Page 41: Projektowanie i prototypowanie systemów sterowania z

Matlab Coder

C or C++ source code enables you to:

•Prototype on PCs

•Create a library

•Implement as embedded code

The MEX function can be called in place of the original MATLAB code to:

•Verify the compiled code back in MATLAB

•Accelerate the execution

Page 42: Projektowanie i prototypowanie systemów sterowania z

Matlab Coder

• ANSI/ISO compliant C and C++ code generation • MEX function generation for fixed-point and floating-point math • Project management tool for specifying entry points, input data properties, and

other code-generation configuration options • Static or dynamic memory allocation for variable-size data • Code generation support for many functions and System objects™ in

Communications System Toolbox™, Computer Vision System Toolbox™, DSP System Toolbox™, and Phased Array System Toolbox

• Support for common language matlab features, including matrix operations, subscripting, program control statements (if, switch, for, while), and structures

• MATLAB Coder works with common language matlab features and Embedded Coder to generate C code from Simulink models that contain MATLAB code. The generated C code can be used for:

– Standalone execution – Integration with other software – Accelerating MATLAB algorithms – Embedded implementation

Page 43: Projektowanie i prototypowanie systemów sterowania z

MATLAB Compiler

• MATLAB Compiler™ lets you share MATLAB® programs as standalone applications or shared libraries for integration with common programming languages. Applications and libraries created with MATLAB Compiler use the MATLAB Compiler Runtime, which enables royalty-free deployment to users who do not have MATLAB. You can package the MATLAB Compiler Runtime with the application or have your users download it during installation.

Page 44: Projektowanie i prototypowanie systemów sterowania z

Matlab Compiler

• Packaging of your MATLAB programs as standalone applications or shared libraries

• Royalty-free distribution of applications to users who do not have MATLAB

• Integration of MATLAB programs into Java™, Microsoft® .NET, and Excel® applications using MATLAB builder products

• Large-scale deployment of MATLAB programs using MATLAB Production Server™

• Encryption of MATLAB code to protect your intellectual property

Page 45: Projektowanie i prototypowanie systemów sterowania z

Matlab Compiler

Page 46: Projektowanie i prototypowanie systemów sterowania z

Matlab Compiler

Page 47: Projektowanie i prototypowanie systemów sterowania z
Page 48: Projektowanie i prototypowanie systemów sterowania z
Page 49: Projektowanie i prototypowanie systemów sterowania z

Simulink Coder

• Simulink Coder™ (formerly Real-Time Workshop®) generates and executes C and C++ code from Simulink® diagrams, Stateflow® charts, and MATLAB® functions. The generated source code can be used for real-time and nonreal-time applications, including simulation acceleration, rapid prototyping, and hardware-in-the-loop testing. You can tune and monitor the generated code using Simulink or run and interact with the code outside MATLAB and Simulink.

Page 50: Projektowanie i prototypowanie systemów sterowania z

Simulink Coder

• ANSI/ISO C and C++ code and executables for discrete, continuous, or hybrid Simulink and Stateflow models

• Incremental code generation for large models • Integer, floating-point, and fixed-point data type

support • Code generation for single-rate, multirate, and

asynchronous models • Single-task, multitask, and multicore code execution

with or without an RTOS • External mode simulation for parameter tuning and

signal monitoring

Page 51: Projektowanie i prototypowanie systemów sterowania z

Simulink Coder

• Compiling and Executing Generated Code

• Simulink Coder offers built-in support for compilation and execution of generated code with popular desktop environments, including:

• Eclipse™ IDE

• Microsoft® Visual C++® IDE

• Linux® operating system

• Windows® operating system

Page 52: Projektowanie i prototypowanie systemów sterowania z

PLC Coder

• Simulink PLC Coder™ generates hardware-independent IEC 61131-3 Structured Text from Simulink® models, Stateflow® charts, and Embedded MATLAB® functions. The Structured Text is generated in PLCopen XML and other file formats supported by widely used integrated development environments (IDEs). As a result, you can compile and deploy your application to numerous programmable logic controller (PLC) and programmable automation controller (PAC) devices.

• Simulink PLC Coder generates test benches that help you verify the Structured Text using PLC and PAC IDEs and simulation tools. Support for industry standards is available through IEC Certification Kit (for IEC 61508 and IEC 61511).

Page 53: Projektowanie i prototypowanie systemów sterowania z

PLC Coder

• Automatic generation of IEC 61131-3 Structured Text • Simulink support, including reusable subsystems, PID controller blocks,

and lookup tables • Stateflow support, including graphical functions, truth tables, and state

machines • Embedded MATLAB support, including if-else statements, loop constructs,

and math operations • Support for multiple data types, including Boolean, integer, enumerated,

and floating-point, as well as vectors, matrices, buses, and tunable parameters

• IDE support, including 3S-Smart Software Solutions CoDeSys, Rockwell Automation® RSlogix™ 5000, Siemens® SIMATIC® STEP® 7, Omron Sysmac Studio, and PLCopen XML

• Test-bench creation • Simulink PLC Coder generates test benches that help you verify the

Structured Text using PLC and PAC IDEs and simulation tools.

Page 54: Projektowanie i prototypowanie systemów sterowania z

PLC Coder

• Simulink PLC Coder can output Structured Text in a variety of file formats used by third-party IDEs. File formats supported by Simulink PLC Coder include:

• 3S-Smart Software Solutions CoDeSys • B&R Automation Studio™ • Beckhoff® TwinCAT® • Omron Sysmac Studio • KW-Software MULTIPROG® • Phoenix Contact® PC WORX™ • Rockwell Automation® RSLogix™ 5000 • Siemens® SIMATIC® STEP® 7 IDE • IDEs that use generic ASCII files • PLCopen XML

Page 55: Projektowanie i prototypowanie systemów sterowania z
Page 56: Projektowanie i prototypowanie systemów sterowania z

Simulink Real-Time

• Simulink Real-Time™ lets you create real-time applications from Simulink® models and run them on dedicated target computer hardware connected to your physical system. It supports real-time simulation and testing, including rapid control prototyping, DSP and vision system prototyping, and hardware-in-the-loop (HIL) simulation.

• With Simulink Real-Time you can extend your Simulink models with driver blocks, automatically generate real-time applications, define instrumentation, and perform interactive or automated runs on a dedicated target computer equipped with a real-time kernel, multicore CPU, I/O and protocol interfaces, and FPGAs.

• Simulink Real-Time and Speedgoat target computer hardware are expressly designed to work together to create real-time systems for desktop, lab, and field environments. Simulink Real-Time can also be used with custom target computer and I/O hardware

Page 57: Projektowanie i prototypowanie systemów sterowania z

Simulink Real-Time

• Automatic generation of real-time applications from Simulink models targeting dedicated CPUs, I/O and protocol hardware, and FPGAs (with HDL Coder™)

• Multitasking and multicore real-time kernel with microsecond granularity and concurrent execution support

• Speedgoat target computer hardware integration for turnkey desktop, lab, and field use

• Driver blocks for I/O, including analog, digital, pulse train, encoders, transformers, passive components, serial, audio, shared memory, and reconfigurable FPGA

• Driver blocks for protocols and data buses, including Raw Ethernet, real-time UDP, CAN, EtherCAT®, EtherNet/IP™, Lin, SAE J1939, FlexRay™, Camera Link®, USB video, ARINC 429, and MIL-STD-1553

• Simulink Real-Time Explorer with gigabit Ethernet connection to multiple target computers for management, execution, and instrumentation of real-time applications

• Standalone operation of real-time applications with high-resolution signal display • MATLAB® functions for test scripting, and APIs for developing standalone client

applications and user interfaces (Visual Basic, C/C++, Java™, and .NET)

Page 58: Projektowanie i prototypowanie systemów sterowania z

dSpace

Jest to sprzętowo-programowy system czasu rzeczywistego oparty o środowisko Matlab/Simulink

Modelowanie (host computer) realizowane jest klasycznie w Matlabie/Simulinku natomiast wykonywanie modelu (target computer) wykonywane jest na platformie sprzętowej z procesorem/procesorami sygnałowymi DSP. Dzięki temu uzyskuje się dużą rozdzielczość czasową.

Rozwija firma dSpace GMBH.

Znajduje szerokie zastosowanie w przemyśle samochodowym i lotniczym

Page 59: Projektowanie i prototypowanie systemów sterowania z

dSpace

Page 60: Projektowanie i prototypowanie systemów sterowania z

Real-Time Workshop

• RTW jest rozszerzeniem możliwości Matlaba i Simulinka umożliwiającym automatyczne generowanie, porządkowanie i kompilację kodu źródłowego z modeli w postaci Simulinka w celu wykorzystania w aplikacjach czasu rzeczywistego różnego typu.

Page 61: Projektowanie i prototypowanie systemów sterowania z

Cechy RTW

• RTW stanowi narzędzie generowania kodu źródłowego dedykowanego dla danego środowiska uruchomieniowego umożliwiając tzw. szybkie prototypowanie i wdrażanie.

Page 62: Projektowanie i prototypowanie systemów sterowania z

RTW

Wraz z innymi narzędziami i komponentami Matlaba i Simulinka RTW cechuje:

Automatyczne generowanie kodu dostosowane do różnych platform docelowych

Szybka i prosta ścieżka od projektu systemu do jego implementacji

Integracja z Matlabem i Simulinkiem Prosty, graficzny interfejs użytkownika Otwarta architektura i rozszerzalny proces

budowy aplikacji

Page 63: Projektowanie i prototypowanie systemów sterowania z

RTW

• Poniższy diagram prezentuje proces generowania kodu źródłowego z Simulinka za pomocą RTW

Page 64: Projektowanie i prototypowanie systemów sterowania z

Główne składniki RTW • Generator kodu Simulinka (ang. Simulink Code Generator) – Automatycznie

generuje kod w języku C z modelu Simulinka

• Proces tworzenia aplikacji (ang. Make Process) – Proces tworzenia aplikacji w RTW rozszerzalny przez użytkownika umożliwia skonfigurowanie procesów kompilacji i linkowania kodu generowanego dla potrzeb użytkownika lub dla celów szybkiego prototypowania

• Tryb zewnętrzny Simulinka (ang. Simulink External Mode) – Tryb zewnętrzny umożliwia komunikację pomiędzy Simulinkiem i modelem wykonywanym w środowisku czasu rzeczywistego lub w innym procesie na tym samym komputerze. Tryb zewnętrzny umożliwia strojenie parametrów, zapisywanie danych oraz wizualizację stanu procesu w trakcie wykonywania modelu.

Page 65: Projektowanie i prototypowanie systemów sterowania z

Główne składniki RTW

Wsparcie docelowości (ang. Targetting support) – Wykorzystując docelowości załączone w RTW można budować systemy czasu rzeczywistego i środowiska prototypowania. Zarówno podstawowe jak i dodatkowe docelowości czasu rzeczywistego dostarczają struktury dla budowy konfigurowalnego szybkiego prototypowania lub budowy środowisk docelowych. Dodatkowo opcjonalne środowiska Real-Time Windows Target oraz xPC Target umożliwiają wykorzystanie niemal dowolnego PCta w system docelowy lub system szybkiego prototypowania. W celu uwzględnienia możliwości poszczególnych mikroprocesorów opcjonalny toolbox Real-Time Embbeded Coder umożliwia uruchamiania kodu RTW w różnych środowiskach mikroprocesorowych.

odwzorowane w RTW i umożliwia generowanie kodu w sposób

przyrostowy dla hierarchii niezależnych składników modeli

Page 66: Projektowanie i prototypowanie systemów sterowania z

Główne składniki RTW

Szybkie symulowanie (ang. Rapid Simulations) Wykorzystując tryb szybkiego symulowania, w S-funkcji lub szybkim symulowaniu można przyspieszyć wykonywanie symulacji średnio od 5 do 20 razy. Pliki wykonywalne w tych systemach omijają normalny tryb interpretatora Simulinka. Kod generowany przez Szybkie symulowanie, docelową S-funkcję i docelowe szybkie symulowanie jest wysoko optymalizowany do wykonywania wyłącznie algorytmów zawartych w modelu użytkownika. Dodatkowo generator kodu stosuje wiele technik optymalizujących takich jak likwidowanie zer i jedynek w obliczeniach dla bloków filtrów

Modelowanie wielkiej skali (ang. Large-scale modeling) – Wsparcie dla modelowania wielopoziomowego z Simulinka jest

Page 67: Projektowanie i prototypowanie systemów sterowania z

Budowa aplikacji z RTW

Określenie wymogów aplikacji Konfiguracja ustawień generowania kodu Uruchomienie narzędzia wspomagającego (ang. Model Advisor

Tool) Ewentualna korekta ustawień konfiguracyjnych z wykorzystaniem

raportu z narzędzia wspomagającego Generowanie kodu z modelu Simulinka Ewentualne powtórzenie operacji 2-5 Zbudowanie obrazu programu wykonywalnego Weryfikacja wyników generowanych przez program wykonywalny

w porównaniu do wyników oryginalnego modelu Simulinka Zachowanie konfiguracji dla której dokonano generowania kodu Wykorzystanie narzędzia generowania raportu (ang. Report

Generator) do automatycznego udokumentowania projektu

Page 68: Projektowanie i prototypowanie systemów sterowania z

Budowa aplikacji z RTW

Page 69: Projektowanie i prototypowanie systemów sterowania z

Przykład RTW

• Model układu sterowania

Page 70: Projektowanie i prototypowanie systemów sterowania z

Przykład RTW

• Parametry symulacji

Page 71: Projektowanie i prototypowanie systemów sterowania z

Przykład RTW

• System docelowy (ang. Target system)

Page 72: Projektowanie i prototypowanie systemów sterowania z

Przykład RTW

• Obsługiwane systemy docelowe przez RTW

Page 73: Projektowanie i prototypowanie systemów sterowania z

• Po skompilowaniu otrzymujemy

• i możemy uruchomić skompilowany plik

Page 74: Projektowanie i prototypowanie systemów sterowania z

• W celu uruchomienia modelu w tzw. trybie zewnętrznym Simulinka ustawiamy w opcji Interface tryb External mode

Page 75: Projektowanie i prototypowanie systemów sterowania z

• Z menu Tools wybieramy opcję External Mode Control Panel i wybieramy opcję Signal&Triggering

Page 76: Projektowanie i prototypowanie systemów sterowania z

• Następnie wydajemy polecenie !PID –tf inf –w & w oknie External Mode Control Panel wybieramy komendę Connect, a później Start Real-Time Code. Otwierając okna oscyloskopów można obserwować przebiegi zmiennych. Ewnentualne zmiany parametrów w trakcie symulacji muszą być przesłane do modelu za pomocą opcji z menu Edit/Update Diagram.

• Aby zakończyć symulację wybierz opcję Stop Real-Time Code z External Mode Control Panel.

Page 77: Projektowanie i prototypowanie systemów sterowania z

• xPC oraz Raspberry PI zostaną przedstawione w osobnej prezentacji

Page 78: Projektowanie i prototypowanie systemów sterowania z

Bibliografia

[1] J. Eickhoff, Simulating Spacecraft Systems, Springer Aerospace Technology Springer-Verlag, Berlin Heidelberg, 2009

[2] Materiały informacyjne i dokumentacje techniczne firmy Mathworks:

• RTWT • xPC • Simulink Coder • Matlab Coder • RTW