Software - IMK Engineering – Ingenieurbüro für Mechatronik und Kybernetik Dr. Bruns

Direkt zum Seiteninhalt

Hauptmenü:

Kompetenzen
Kompetenzen  Software
Während der Phase der (industriellen) „Automatisierung“ (s. a. Industrie 4.0), die primär durch die Entwicklungen im Bereich der Elektrotechnik und der Elektronik geprägt wurde, lag der Fokus anfangs auf der Entwicklung leistungsfähiger elektronischer Hardware. Computerprogramme bzw. die auf der Hardware laufende Software waren relativ „einfach gestrickt“, was die meisten SPS-Programmierer wohl sofort bestätigen würden und was auch immer noch gut an den Programmiersprachen der EN bzw. IEC 61131-3 (Anweisungsliste, Kontaktplan etc.) zu erkennen ist. Inzwischen haben sich die Ansprüche und die Anforderungen aber immer mehr von der Hardware hin zur Software verlagert. Während Hardware-Bauteile (ICs etc.) mit umfangreichen Funktionalitäten in nahezu jeder Preisklasse ausreichend verfügbar sind, fehlt es häufig an leistungsfähiger Software. Dies liegt daran, dass sich die Ansprüche an die Software technischer Systeme generell erhöht haben und sich im Zuge des „Internet of Things“ auch weiterhin erhöhen werden. Gebraucht und auch gefordert werden „intelligenteInformationsverarbeitungen, die anhand komplexer Algorithmen bspw. fähig sind zu lernen, den Zustand ihres Systems zu reflektieren und daraus eigenständig Konsequenzen zu ziehen bzw. sich an geänderte Umgebungsbedingungen eigenständig anzupassen. „Self-X“ bzw. „Organic Computing“ ist nur ein Thema von vielen, die in diese Richtung zielen. Diesen Anforderungen wird man nicht mit Anweisungslisten oder Kontaktplänen gerecht. Hier sind mindestens Hochsprachen in Verbindung mit dem Paradigma der „ObjektOrientierten Programmierung“ (OOP) sowie umfangreiche Kenntnisse in Entwicklung und Implementierung von Algorithmen gefordert. Das entsprechende „Know-How“ ist am IMK vorhanden und wird anhand ausgewählter Referenzprojekte auf dieser Webpräsenz demonstriert.
Das können wir für Sie tun

Implementierung bekannter bzw. dokumentierter
Algorithmen und Methoden
Einige ausgewählte Beispiele:
  • Lineare und/oder nichtlineare Verfahren aus dem Bereich der
    Optimierung bzw. des Operations Research
  • Verfahren aus dem Bereich der „Künstlichen Intelligenz“ (KI),
    bspw. maschinelle Lernverfahren
  • Integration linearer Übertragungsglieder in die Echtzeit-
    Informationsverarbeitung (lineare Simulation auf Basis der
    Transitionsmatrix)
  • Integration nichtlinearer Elemente, die eine numerische Integration
    (bspw. durch Runge-Kutta 4) zur Laufzeit erforderlich machen
  • ... und vieles mehr, insbesondere aus dem Bereich des
    Scientific Automation

Entwicklung und Implementierung von
Algorithmen und Methoden für neue Problemstellungen
Im Rahmen des Kreuzungsmanagements wurde z. B. eine neue Methodik entwickelt, implementiert und getestet, mit der Fahrzeuge mit autonomer Fahrfunktion eigenständig Verkehrsknotenpunkte überqueren können. Dabei können aufgrund der Skalierbarkeit des Verfahrens in Echtzeit (wenige Millisekunden) kollisionsfreie Trajektorien berechnet werden, die parallel auch noch hinsichtlich Fahrerpräferenzen (Dauer, Komfort und Energieverbrauch) optimiert werden.

Entwicklung und Implementierung von
grafischen Benutzeroberflächen (GUIs)
Wir nutzen dazu bevorzugt die sehr leistungsfähige, plattformunabhängige und freie C++-Klassenbibliothek Qt. (Siehe Referenzprojekte)

Entwicklung der Software für Ihr „Cyber-Physical System
Wir nutzen dafür eine Referenzarchitektur, die auf dem
Operator-Controller-Modul“ (OCM) aufbaut (siehe unten); ...

... und vieles mehr! Sprechen Sie uns an!

Referenzprojekte
Übersicht einiger ausgewählter Referenzprojekte, zu denen auf der
Webpräsenz des IMK noch weitere Informationen vorhanden sind:
  • 3D Print Engine: Entwicklung und Implementierung komplexer
    Algorithmen, Schnittstellenanpassung (API, DLL), Erstellung einer GUI, ...
  • 6-Achs-Parallelkinematik: Mikrocontroller-Programmierung (STM32F4), Numerische Integration (bspw. Runge-Kutta 4), Entwicklung und
    Implementierung von Algorithmen, bspw. zur Bahnplanung oder zur
    Integration linearer Filter,
    Vernetzung (CAN, UART), Erstellung einer
    GUI, Entwicklung und Implementierung von Zustandsmaschinen,
    Multithreading, ...
  • RoboWrap: Vernetzung (TCP/IP), Entwicklung und Implementierung
    von Zustandsmaschinen,
    Multithreading, Schnittstellenanpassung (API),
    „Strukturierter Text“ nach EN bzw. IEC 61131-3 ...
  • Kreuzungsmanagement: Entwicklung und Implementierung hoch
    komplexer, wissenschaftlicher Algorithmen, Vernetzung (TCP/IP),
    lineare Simulation dynamischer Systeme, Erstellung einer GUI, ...
Die Software für Ihr Cyber-Physical System (CPS)
Für die Entwicklung und die Strukturierung der Software innerhalb von CPS verwenden wir am IMK eine Referenzarchitektur, die auf dem am Lehrstuhl von Prof. Dr.-Ing. LÜCKEL von 1998 bis 2004 entwickelten Konzept des „Operator-Controller-Moduls“ (OPC) [1] basiert. Das OPC wurde auch im Sonderforschungsbereich „Selbstoptimierende Systeme des Maschinenbaus“ (SFB 614), der durch die DFG von 2002 bis 2013 gefördert wurde, verwendet und weiterentwickelt. Die 2015 am IMK eingeführten Modifikationen und Erweiterungen beziehen sich primär auf den Kognitiven Operator“.

Die OCM-Referenzarchitektur, wie sie am IMK verwendet wird
„We talk too much about code, we don’t write enough code. ...
Agile is a cancer that we have to eliminate from the industry.


... ist maßgeschneidert und fügt sich nahtlos ein!


AgileSoftwareentwicklung
Die agile Softwareentwicklung ist eine Gegenbewegung zu den oft als schwergewichtig und bürokratisch angesehenen traditionellen Softwareentwicklungsprozessen wie dem Wasserfallmodell, dem V-Modell oder dem Rational Unified Process.
Mit der Anzahl der beteiligten Mitarbeiter und Fachdisziplinen in einem Software-Projekt steigen die Anforderungen an die Kommunikationsfähigkeit und einen effizienten Informationsaustausch. Agile Vorgehensmodelle (Extreme Programming, Scrum etc.), richtig und maßvoll angewendet, fördern die Kommunikation sowie den Informationsaustausch und können dadurch zum Erfolg des Projekts beitragen.
Dennoch: Guter Code entsteht in erster Linie aus fachlicher Expertise … und muss schließlich auch irgendwann geschrieben werden, wie Erik Meijer gemäß anfänglichem Zitat völlig zu Recht festgestellt hat. Zuverlässiger Code, schnell entwickelt; das ist unser Anspruch am IMK!


Die Softwareentwicklung am IMK im Überblick

Komplexe Algorithmik und wissenschaftliche Methodik
Im Folgenden ist ein Beispiel für spezielle Software-Module mit höherem wissenschaftlichem Anspruch beschrieben. In dem Beispiel geht es um die Abbildung linearer Filter bzw. beliebiger Übertragungsfunktionen und deren Integration in die Echtzeit-Informationsverarbeitung mechatronischer bzw. kybernetischer Systeme. Generell besteht dadurch auch die Möglichkeit der Simulation dynamischer Systeme zur Laufzeit bzw. online. Ansätze aus dem Bereich des Model Predictive Control oder die Integration linearer Beobachter (bspw. LUENBERGER-Beobachter) sind so problemlos möglich! Die Entwicklung und die Implementierung vergleichbarer Module werden im Bereich der Automatisierungstechnik auch als Scientific Automation“ bezeichnet.

Das IMK übernimmt für Sie gerne die Entwicklung derartiger Module sowie deren nahtlose Integration in bestehende „Frameworks“, egal ob in einer Hochsprache (C/C++) oder bspw. als „Strukturierter Text“ gemäß EN 61131-3.

„Online“-Verarbeitung (und Simulation)
linearer dynamischer Systeme

Ein lineares dynamisches System, bei dem es sich insbesondere auch um eine Regelstrecke handeln kann, kann durch eine Zustandsdifferentialgleichung und eine Ausgangsgleichung der folgenden Form beschrieben werden:
\[\underline {\dot x} \left( t \right) = \underline A  \cdot \underline x \left( t \right) + \underline B  \cdot \underline u \left( t \right)\]
\[\underline y \left( t \right) = \underline C  \cdot \underline x \left( t \right)\]
Die Allgemeine Lösung der Zustandsdifferentialgleichung ist dann
\[\underline x \left( t \right) = \int\limits_{{t_0}}^t {{e^{\underline A \left( {t - \tau } \right)}}}  \cdot \underline B  \cdot \underline u \left( \tau  \right) \cdot d\tau  + {e^{\underline A \left( {t - {t_0}} \right)}} \cdot \underline x \left( {{t_0}} \right)\]
Der Term $e^{\underline A t}$ wird auch als Transitionsmatrix $\underline \Phi \left( t \right)$ des Systems bezeichnet. Abtastsysteme, wie sie heute im Zuge der digitalen Datenverarbeitung zum Standard geworden sind, sind durch äquidistante Abtastintervalle $T$ gekennzeichnet. Wird insbesondere bei Regelsystemen die Größe von $T$ angemessen gewählt, so reicht es aus, das Systemverhalten in den Abtastzeitpunkten $k \cdot T$, $k=0, 1, 2, ...$ zu kennen und zu beeinflussen. $u(t)$ kann dann innerhalb der Zeitpunkte $u_{k}$ und $u_{k+1}$ als konstant angesehen werden. Es kann gezeigt werden, dass unter dieser Annahme die Systemgleichungen für die „Online“-Verarbeitung durch
\[{\underline x _{k + 1}} = \underline \Phi  \left( T \right) \cdot {\underline x _k} + \underline H \left( T \right) \cdot {\underline u _k}\]
\[{\underline y _k} = \underline C  \cdot {\underline x _k}\]
dargestellt werden können ($k=0, 1, 2, ...$), mit
\[\underline H \left( T \right) = {\underline A ^{ - 1}} \cdot \left( {\Phi \left( T \right) - I} \right) \cdot \underline B \]
Damit können prinzipiell beliebige lineare dynamische Systeme (Filter, Regler, Regelstrecken etc.) auf einfache und effiziente Weise in digital realisierten Informationsverarbeitungen zur Laufzeit (in Echtzeit) behandelt werden.
[1]
Hestermeyer, Thorsten; Oberschelp, Oliver; Giese, Holger: Structured Information Processing for Selfoptimizing Mechatronic Systems. In: Proceedings of 1st International Conference on Informatics in Control, Automation and Robotics (ICINCO 2004). Setubal, Portugal, 2004
Haben wir Ihr Interesse geweckt? Nehmen Sie gerne Kontakt zu uns auf!
 
Suchen
Zurück zum Seiteninhalt | Zurück zum Hauptmenü