Warum modellbasiert entwickeln? Zielsetzung. Projektmotivation. Modelle besser verständlich als Code Kürzere Entwicklungszeiten

Ähnliche Dokumente
Einführung in VHDL (2)

Modellbasierte Softwareentwicklung eines Kamera basierten Scheinwerfer-Adaptions-Algorithmus. Gerd Mauthe

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

Modellbasierte Entwicklung und Test der Regelung einer hydraulischen Belastungseinheit eines Windkraftprüfstandes mit MATLAB/Simulink und Speedgoat

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Eine blinkende LED mit Xilinx ISE 13: das Hello World! der Hardware.

Realisierung einer 32'768-Punkt-FFT für 2 GBytes/s Datenrate auf einem FPGA

Zusicherungen und Laufzeit Überwachungen in der modellbasierten Software Entwicklung

Übungsblatt 8 Lösungen:

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

EINE MODULARE TESTPLATTFORM FÜR DAS PROTOTYPING VON DRAHTLOSEN SYSTEMEN

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

16 Latches und Flipflops (Bistabile Kippstufen)

MATLAB EXPO 2016,

Entwurf und Verifikation digitaler Systeme mit VHDL

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Modulare Grafische Programmierung (MGP) von FPGAs

Was ist VHDL? V: very high speed integrated circuit HDL hardware description language. mächtige HW-Beschreibungssprache. Wozu hat man VHDL entwickelt?

IuK-Projekt am Institut für Mikroelektronik und Eingebettete Systeme. Prof. Dr.-Ing. Peter Schulz Sommersemester 2013

Übersicht. Prof. Dr. B. Lang, HS Osnabrück Konstruktion digitaler Komponenten, 3. Hierarchischer und generischer VHDL-Entwurf - 1 -

3. Prozesse in VHDL 1

Prototyping eines universellen ISM-Band Transmitters auf Basis des NI FlexRIO MDK

Übungen zu. Kraftfahrzeugmechatronik II

Technische Grundlagen der Informatik Kapitel 5. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Ansteuerung Versuchsstand Einfachpendel

Einführung in VHDL. Dipl.-Ing. Franz Wolf

Entwicklungs- und Fertigungskompetenz. Datum:

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping

Simulink - Modelle grafisch vergleichen

Teil 1: Digitale Logik

Schritt 1 : Das Projekt erstellen und programmieren des Zählers

Übersicht aktueller heterogener FPGA-SOCs

Messsysteme für den SwissFEL

Einstellige binäre Addierschaltung (Addierer)

Willkommen. Programmierung (MGP) von FPGAs. zur Präsentation

Simulink: Einführende Beispiele

Dynamisches Testen von Embedded. Hans Georg Hermann ExpertControl GmbH

dspace (1/3) dspace: Gegründet 1988 in Paderborn Mitarbeiter: Über 650 Mitarbeiter weltweit, davon über 70 % Ingenieure Ständiges Mitarbeiterwachstum

Modellbasierte Entwicklung im Kontext von Medizingeräten

Absicherung von Automotive Software Funktionen

Technische Grundlagen der Informatik Kapitel 3. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

4. Simulink. Zweck und grundlegende Eigenschaften Mit Simulink werden Modelle mathematischer, physikalischer Systeme berechnet (simuliert)

Simulation von in VHDL beschriebenen Systemen

Entwurf digitaler Systeme

Entwurf und Validierung paralleler Systeme

Beobachtergestützte Regelung einer Gasheizung in der Minimal-Invasiven-Medizin (kurz MIM) Felix Menzel,

VHDL Post-Route Simulation mit XILINX-FPGA s

Getaktete Schaltungen

Einführung in VHDL. 1 ARCHITECTURE Tauschen OF B e i s p i e l IS. 2 SIGNAL a, b : STD_LOGIC; 4 BEGIN. 5 PROCESS( a, b ) 6 BEGIN.

Versuch 3: Sequenzielle Logik

LabVIEW Real Time Hands on

Codegenerierung für Mikrocontroller aus einem SimulinkModell (Schritt-für-Schritt-Anleitung)

Fertigungstest von Geräten und

Der moderne Funktions- und Softwareentwicklungsprozess

Automatische Testsysteme und ihre Programmierung. Dresden, Michael Dittrich,

IHS2 Praktikum. Zusatzfolien. Integrated HW/SW Systems Group. IHS2 Praktikum Zusatzfolien 2012 Self-Organization 20 April

A Brief Introduction to Functional Safety

Wozu Verifikation? Der Entwurf eines 1 million gate ASIC benötigt ca Mann Tage Quality Assurance benötigt 50% der Zeit/des Geldes

ANBINDUNG KUNDENSEITIGER-TOOLCHAIN ZUR PARAMETRIERUNG VON MECHATRONISCHEN GESAMTSYSTEM-MODELLEN

MBEES Research Abstract Ein Framework zur automatisierten Ermittlung der Modellqualität bei eingebetteten Systemen

Hardware/Software-Entwicklung + Teststand für Libera Hadron. im Rahmen des Kollaborationstreffen am

Rapid Prototyping mit CANape Version

Modellbasierte Entwicklung mechatronischer Systeme mit automatischer Codegenerierung für Cortex-Mx-Controller

Functional Rapid Prototyping bei EC-Motoren für Automotive-Anwendungen

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Synchrone Zähler. Synchroner Dualzähler

Eine elektronische Schaltung von der Idee bis zum Einbau am Experiment

Methoden der agilen Softwareentwicklung für eingebettete Systeme

Das große All-in-All CPLD/FPGA Tutorial

Datenflussrechnen mit FPGAs für die biomedizinische Bildverarbeitung

Freikonfigurierbare I/Os mittels LabVIEW

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

1.) Aufrufen des Programms WinFACT 7 (BORIS)

Dr. Klaus Lamberg, Michael Beine

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Team. Prof. Dirk Timmermann. Siemens AG (ICN Greifswald)

Embedded Hardware Getting Started

Advanced Motion Control Techniques

Embedded OS-9 auf RISC-Prozessoren von Motorola

FAKULTÄT FÜR INFORMATIK

1. Praktische Übung zur Vorlesung Technische Informatik I

Simpack-Echtzeitmodelle für eine Mehrprozessor-HIL Anwendung Uwe Heitz ZF Friedrichshafen AG. ZF Friedrichshafen AG, 2006

Automatisierungstechnik Praktikum Tutorium zum Laboraufbau Elektrisches Netzwerk

Verifikation. ECS Group, TU Wien

Skript zum Labor Maschinenkonstruktion. Konzipieren mechatronischer Produkte: Modellbasierte Programmierung eines Mikroroboters

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Entwurf eines Generators zur Erzeugung von Hard- und Software-Beschreibungen für Bildverarbeitungspipelines

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

PROtroniC LINE. Die All-Rounder für Rapid Control Prototyping

Schrittweise vorgestellt

Flexibel? Logisch! FPGA-Prozessor-Kombination macht die MicroAutoBox noch flexibler. seite 38

FPGAs an der Hochschule München in Lehre und Forschung. Christian Münker, Hochschule München

PC-basierte HIL-Simulation in der elektrischen Antriebstechnik

Erfolg mit Embedded Vision Systemen. Dipl.-Ing. Carsten Strampe Embedded Vision Systeme 1

Verknüpfung von virtueller und realer Welt durch Open Core Engineering

Test integrierter Schaltungen

Transkript:

Projektmotivation Warum modellbasiert entwickeln? Modelle besser verständlich als Code Kürzere Entwicklungszeiten Zielsetzung Automatische Generierung von C Code und VHDL Code aus einem einzigen Modell Einfacher und schneller Wechsel von Software zu Hardware Ausarbeitung eines durchgängigen und automatisierten Workflows von Modellbildung und Simulation bis zur Verifikation am realen Prüfstand und Seriencodeerzeugung Simulink â Modell Software- Code Hardware- Code 22

Einordnung Simulation Grafische Bedienoberfläche MATLAB â Simulink â Workspace Codegenerierung Simulink â Coderä Embedded Coderä C oder C++ Code Compiler Zielsystem spezifisch HDL Coderä HDL XILINX â Vivado â Cadence â Innovus Implementation â dspace â Modulare Hardware und MicroLabBox oder ZedBoardä Zynq â Halbleiterhersteller Messeinrichtungen Oszilloskop Echtzeit Single und Multi Core Software FPGA/ SoC Hardware ASIC Testumgebung HDL Hardware Description Language FPGA Field Programmable Gate Array I SoC System on Chip I ASIC Application Specific Integrated Circuit 33

Unterschiede und Einschränkungen C Code / Embedded Coder TM Datentyp: Double (Single Fixed Point) Berechnungen meist in physikalischen Größen Niedrige Abtastfrequenzen (typisch bei Servoantrieben: 16kHz) Keine Speicherelemente notwendig Keine aufwendigen Anforderungen an Taktzeiten zu berücksichtigen Umfangreiche Auswahl von Simulink â Blöcken VHDL Code / HDL Coder TM Datentyp: Fixed Point Skalierung sinnvoll Hohe Abtastfrequenzen (typisch bei Servoantrieben: 100kHz bis 200kHz) Speicherelemente für ein synchrones Design notwendig (über Input/Output Pipelines) Funktionen wie Division oder Tangens nicht trivial umsetzbar Nur vom HDL Coder TM unterstützte Simulink â Blöcke verwendbar Konsequenzen für eine plattformunabhängige Entwicklung Modellanpassungen für automatische HDL Codegenerierung nötig Properties der einzelnen Blöcke müssen plattformabhängig geändert werden 44

Beispiel der automatischen VHDL Codegenerierung anhand eines D-Flipflops Simulink â Modell Vom HDL Coderä erzeugter VHDL Code Beispielhaft einzelner Block Unit Delay in Simulink â entspricht einfachem D-Flipflop Oft gebraucht für synchrones Design (Speicherelement) HDL Coderä VHDL Code Strukturierte Darstellung Nachvollziehbare Umsetzung Gut verständlich Auch eigenhändige Überprüfung möglich d q LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; ENTITY Subsystem IS PORT( clk : IN std_logic; reset : IN std_logic; enb : IN std_logic; d : IN std_logic; q : OUT std_logic ); END Subsystem; ARCHITECTURE rtl OF Subsystem IS BEGIN -- <S2>/Unit Delay Unit_Delay_process : PROCESS (clk reset) BEGIN IF reset = '1' THEN q <= '0'; ELSIF clk'event AND clk = '1' THEN IF enb = '1' THEN q <= d; END IF; END IF; END PROCESS Unit_Delay_process; END rtl; 55

Arbeitsablauf von der Modellbildung bis zur Verifikation am Prüfstand Stimuli Regler Floating-point Modell Simulation Floating-point Virtuelles System Regler Fixed-point Modell Regelstrecke Modell x #$ x $% Simulation Fixed-point Co-Simulation Funktionsmuster Prototyp RCP Regler FPGA/SoC Regler FPGA/ASIC/SoC HIL SCALEXIO â Regelstrecke Modell Prüfstand Vergleich x $& x $' x $) x $* x $( FIL-Simulation Erprobung am Modell und/ oder Prüfstand Verifikationen am Modell und/ oder Prüfstand 66 RCP Rapid Control Prototyping I FIL FPGA in the Loop I HIL Hardware in the Loop FPGA Field Programmable Gate Array I ASIC Application Specific Integrated Circuit I SoC System on Chip

Positionsregelung eines Tauchspulenmotors Übersicht Schematischer Aufbau Simulationsmodell Regelstrecke Motion Controller Leistungselektronik und Motor Physikalische Modellierung in Simscape Electronics Leistungselektronik 100kHz bis 1MHz Mechanik (Ausschnitt) Blockorientierte Modellierung in Simulink Motor und Mechanik ADC FPGA/ASIC ADC Digitale Regelung Prüfstand DAC Oszilloskop DAC ADC Vcc Vollbrücke Shunt Verarbeitung Motor PMG Leistungselektronik analoge Signale digitale Signale PMG: Positionsmessgerät 77

Skalierung des Modells Physikalisches Modell Positionsreglekeitsreglestromregler Geschwindig- Hysterese- K z P K S T 7 w. e. u. e u e - u - x. Motor - - - x. x - x - ±x -:;< ±x.:;< ±x -:;< Skaliertes Modell w. ±1 Berechnung der Geschwindigkeit K. K T 7 e. u. e u e - u - - ±1 - ±1 - x. x - x - Berechnung der Geschwindigkeit Motor P S z x P P S Skalierung Für eine flächen- und kosteneffiziente FPGA Umsetzung ist eine möglichst enge Wertebereichsbegrenzung der Größen notwendig. Durch eine Skalierung auf die physikalischen Maximalwerte des Antriebssystems ergeben sich Wertebereiche von ±1. Mit dieser Skalierung kann die Auflösung über die Bitbreite einfach verändert werden. Ein Überlauf am Ausgang eines Multiplikationsblockes kann durch diese Skalierung auftreten und muss durch Sättigung verhindert werden. Dies ist unkritisch da physikalisch nicht mehr als der Maximalwert möglich ist. Istwert Sollwert Stellgröße Regelabweichung Position x. w. u. e. Geschwindigkeit x - w u e P S Umrechnung physikalische in skalierte Werte Strom x - w - u - e - 88

Werte- und Zeitskalierung an zwei Beispielen des Reglers Werteskalierung (Proportionalverstärkung Geschwindigkeitsregler) Zeitskalierung (Geschwindigkeitsberechnung aus der Position) Physikalisches Modell u. e K - x - u u = K D e Physikalisches Modell x. 1 z x - T - x - = x. k x. [k 1] T Skalierung auf Maximalwerte u = G H < IJKL ; e = e x -:;< Skalierung auf Maximalwerte Strom x x. = x. ; x x - = x - - Position x. Geschwindigkeit x -.:;< x -:;< Geschwindigkeit x - Berechnung der skalierten Proportionalverstärkung u D x -:;< = K D e D x -:;< Berechnung der skalierten Geschwindigkeit x - D x -:;< = (x. k x. [k 1]) D x.:;< T Skaliertes Modell Skaliertes Modell u. e - x - K u u = x -:;< x -:;< D K D e K x. 1 z - T x - x - = x.:;< D 1 D (x x -:;< T. k x. [k 1]) T u = K D e x - = x. k x. [k 1] T 99

Festlegung verschiedener Datentypen in einem Modell Datentypdefinition für alle Block Outputs (Zentral) Controller.OutputDataType.Multiply.GainSpeed =... {'double';... 'fixdt(12524)';... 'Inherit: Inherit via back propagation'}; Auswahl des Datentyp-Modells in GUI Programmatische Festlegung des Datentyps im Modell für alle Blöcke set_param([subsystem.blockname 'Cascade Controller/Speed Controller/Gain Speed']... 'OutDataTypeStr'char(Controller.OutputDataType.Multiply.GainSpeed(DataTypeNumber))... 'SaturateOnIntegerOverflow''On'); Datentyp-Modell mit Floating-Point Datentypen (Ausschnitt) Datentyp-Modell mit Fixed-Point Datentypen (Ausschnitt) 10

Auszug aus der grafischen Bedienoberfläche zur Modellerstellung und Parametrierung Entwicklung der grafischen Bedienoberfläche mit MATLAB GUIDE Auswahl des Datentyps Eingabe der Maximalwerte des jeweiligen Antriebssystems Maximale Geschwindigkeit x NO:;< = 0.2 : N Maximaler Strom x O:;< = 5A Festlegung der Reglerparameter Eingabe der physikalischen Werte Automatische Berechnung der skalierten Werte in der Callback Function der grafischen Bedienoberfläche z.b. Proportionalverstärkung Geschwindigkeitsregler: u = < HIJKL < IJKL D K D e = K D e K = U$J V D K 'W = 004 : WN D 265 = 106 WN : Übergabe von K an das FPGA-Modell 11

FPGA Implementierung Automatische Code-Erzeugung mit dem HDL Workflow Advisor Ergebnisse Geschwindigkeit 0.03 m/s 0.02 0.01 Geschwindigkeits-Sollwert Geschwindigkeit-Istwert I Simulation Geschwindigkeits-Istwert I Messung 0 0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 ms 2.5 Zeit è Simulationsmodell stimmt sehr gut mit dem realen Verhalten überein 12

Verbesserungen durch FPGA Implementierung Erhöhung der PWM-Frequenz auf 200kHz Deutliche Erhöhung der Bandbreite des Stromregelkreises von ca. 1kHz auf 10kHz Steigerung der Bandbreite des Positions- und Geschwindigkeitsregelkreises Verbesserung der Gleichlaufkonstanz Verbesserung der Positionsstabilität 13 13

Zusammenfassung und Ausblick Aktueller Stand Automatische Generierung von C Code und VHDL Code aus einem einzigen Modell ist möglich Bestätigung der Funktionsfähigkeit des Workflows Ausblick Automatisierung der hardwarespezifischen Modellergänzungen für die Schnittstellen zum Prozess Prüfen der Verwendbarkeit des generierten HDL Codes für die ASIC Entwicklung 14