Wir schreiben Programme, die komplexe Plobleme lösen - inData Science, Numerik & Physik

Leistungen: Data Science, Numerik & Physik

Data Science, Numerik und Physik in Python, C++ und Fortran

Unsere Expertise ist die Verschmelzung von Data Science, Numerik und Physik. Unsere Codes programmieren wir in Python, C++ und Fortran. Im Folgenden bekommen Sie einen Überblick über die bedienten Themenfelder, die eingesetzten Methoden und die verwendeten Programmiersprachen.

Wie ein Projekt mit der Algorithmus Schmiede ganz konkret aussieht, lesen Sie unter Referenzprojekte.

Anwendungen: Data Science, Numerik und Physik

Algorithmus-Entwicklung

Ein Algorithmus ist im Grunde eine Schritt-für-Schritt-Anleitung, die einem Computer sagt, was er tun soll, um ein bestimmtes Problem zu lösen. In der Datenanalyse können Algorithmen verwendet werden, um Muster in großen Datensätzen zu identifizieren und Entscheidungen zu treffen, die auf diesen Daten basieren. Wir entwickeln Algorithmen hauptsächlich, um die Effizienz von Produktionsprozessen zu verbessern, indem Zeitbedarf, Ressourceneffizienz oder Produktqualität optimiert werden.

Physik

In der Produktion tragen physische Modelle dazu bei, Prozesse zu optimieren und Fehler zu minimieren. Durch die Modellierung eines Produktionsschritts, kann ein vollständiges Verständnis der Vorgänge erreicht werden und negative Überraschungen können mathematisch exakt ausgeschlossen werden.

Durch die Abschätzung der Größenordnung potentieller Störgrößen, können die zugehörigen physikalischen Prozesse in das physikalische Modell aufgenommen oder ausgeschlossen werden. Das ermöglicht einen schnellen, zielgerichteten und kosteneffizienten Entwicklungsprozess.

Design of Experiment

Design of Experiments (DoE) ist eine Methode zur systematischen Planung, Durchführung und Auswertung von Experimenten. Hierbei wird untersucht, welche Parameter verändert werden müssen, um ein gewünschtes Ergebnis zu erzielen. Hierbei wird mit möglichst wenigen Experimenten ein hinreichend vollständiges Verständnis des untersuchten Systems aufgebaut.

Ein statistisch effizientes Vorgehen bei der Versuchsplanung ist vor allem dann wichtig, wenn die Durchführung eines Experiments sehr kostspielig ist – oft sind Experimente mit Produktionsstopps verbunden. Zusätzlich entwickelt die Algorithmus Schmiede statistische Methoden, um Produktionsunterbrechungen zu minimieren und die notwendigen Erkenntnisse aus kostengünstigen Datenquellen abzuleiten.

Data-Science

Data Science

Die Identifikation von Zusammenhängen in komplexen Datensätzen liefert entscheidende Vorteile in den Bereichen:

  • Qualitätskontrolle
  • Prediktive Maintanance (Vorhersage von Wartungsbedarf)
  • Optimierung der Produktionsleistung
  • Vorhersage der Produktionsauslastung
  • Detektion von außergewöhnlichen Ereignissen

Der sachgemäße Aufbau von Machine Learning Modellen zu diesen Zwecken erfordert jedoch einige Expertise. Ein einziger zusätzlicher identifizierter Zusammenhang kann den entscheidenden Wettbewerbsvorteil für Sie bedeuten. Profitieren Sie hierbei von unserer Expertise.

Regelungstechnik

Mit Hilfe von physikalischen Modellen entwickeln wir hocheffiziente Regelungsalgorithmen, die Prozessparameter wie Temperatur, Druck, Geschwindigkeit oder Position automatisch steuern. Hierdurch verkürzen sich Produktionszeiten und im Fehlerfall wird die Wahrscheinlichkeit für Ausschusschargen reduziert.

Durch die Auswahl geeigneter zusätzlicher Sensorik können wir weitere Effizienzsteigerungen anstoßen, Wartungsintervalle verlängern und die Prozesssicherheit erhöhen. Hierbei kommt uns vor allem unsere Expertise in den Bereichen Reinforcement-Learning und Monte Carlo Simulationen zugute.

Fehlerdiagnose

Die Fehlersuche in komplexen Systemen, wie Produktionsprozessen oder Datenverarbeitungspipelines kann sich lange ziehen und sich zur Bedrohung von Marge und Investments entwickeln. Ein besonders kritischer Punkt ist hierbei die Betriebsblindheit und der zunehmende Verdruss der eigenen Mitarbeiter.

Die Experten der Algorithmus Schmiede sind es gewohnt, sich lange Zeit unter höchster Konzentration mit technischen Problemen auseinander zu setzen. Unser methodisches Vorgehen ermöglicht es uns zudem Fehler systematisch einzugrenzen oder Mechanismen zu entwickeln, um deren Reproduzierbarkeit herzustellen.

Computer Vision

Computer Vision befasst sich mit der automatisierten Verarbeitung, Analyse und Interpretation von digitalen Bildern oder Videos. Hierbei werden Objekte in Bildern erkannt, die Qualität von Oberflächen bestimmt oder auf die Position eines Objektes im 3 dimensionalen Raum zurückgeschlossen.

Wir setzen die Bibliothek OpenCV in Kombination mit Python und C++ ein. Zusätzlich entwickeln wir eigene Routinen, z.B.

  • Steigerung der Präzession mit Subpixel-Interpolation
  • Performante Bildfilter zur Verarbeitung von NAN-Pixeln
  • Algorithmen zur Kantendetektion für atypische Bildkanten

Mit geeigneten Annahmen über Plausibilität und Kontext können wir Informationen erschließen, welche sich nicht mathematisch eindeutig aus dem Bildmaterial ableiten lassen. Damit steigern wir die Genauigkeit von optischen Sensoren oder ersparen Ihnen den Einsatz von neuer Sensorik.

Numerik

Die effiziente und exakte Lösung mathematischer Probleme ist ein essenzieller Bestandteil unserer Arbeit. Über den Einsatz typischer Numerik-Bibliotheken hinaus, sind wir in der Lage eigene hocheffiziente Algorithmen zu implementieren, welche welche speziell auf Ihren Anwendungsfall zugeschnitten sind. Sie profitieren dadurch von stark verkürzen Rechenzeiten und reduzieren damit Energiebedarf und Wartezeiten.

Messtechnik

Die Genauigkeit von Sensorsignalen lässt sich oft zusätzlich steigern, in dem die Rahmenbedingungen Ihres spezifischen Einsatzzwecks miteinbezogen werden. So lassen sich Messtarifakte korrigieren, in dem die Messwerte in Kombination mit weiteren Informationen betrachtet werden, z.B.:

  • Komplementäre Sensordaten
  • Physikalischen Gesetze und Grenzwerte
  • Objekteigenschaften

Auch entwickeln wir die notwendigen Algorithmen zur Verwertung der Informationen neu eingebrachter Sensorik. Wenn sie ein neues Messinstrument einsetzen, entwickeln wir Lösungen für z.B.

  • Vorhersagemodelle für weitere Prozessschritte
  • Detektion von Ausreißern und Fehlerfällen
  • Automatische Anpassung von Maschineneinstellungen

Digitaler Zwilling

Ein digitaler Zwilling, ermöglicht Ihnen das schnelle, automatische und vollständige simulieren eines Systems. Dies können Sie nutzen, um Abläufe in der Produktion zu optimieren, Vorhaben zur Erweiterung von Anlagen zu evaluieren oder neue Softwarereleases vor dem produktiven Einsatz zu testen.

Bei der Simulation eines Produktionsprozesses mit Hilfe eines digitalen Zwillings sparen Sie sich Produktionsstillstände, Umrüstzeiten, Schadenfälle und Ausschuss. Ihre Entwicklungszyklen werden schneller und Sie können neuartige Konzepte erproben, die zuvor nicht denkbar waren.

Spezialexpertise

Reinforcement Learning

Reinforcement Learning optimiert Systemsteuerungen, indem es diese befähigt selbstständig Hypothesen aufzustellen und diese in Eigenregie zu erproben. Diese Technik bringt erstaunliche Ergebnisse wie balancierende Roboter, strategische Entscheidungen in der Spieltheorie, Empfehlungssysteme oder autonome Steuerungsprozesse hervor. Gleichzeitig erfordert das Aufbauen dieser Systeme einige Erfahrung, um einen tatsächlichen Lernerfolg sicherzustellen. Sollten die Erprobungsversuche in kostspieligen Fehlerzuständen enden können, ist der Aufbau von Sicherheitsmechanismen notwendig, wobei unsere Stärken in der physikalischen Modellbildung zum tragen kommen.

Weitere Informationen zu Reinforcement Learning finden Sie in diesem Video.

Monte Carlo

Monte Carlo Simulationen kommen überall dort zum Einsatz, wo sich zu viele kombinatorische Möglichkeiten ergeben, um eine sinnvolle Berechnung anzustellen.

Beispiel: Ein Roboter fährt durch ein Lagerhaus. Wie viele andere Roboter trifft er auf seinem Weg zu einem Zielpunkt. Die Routen den anderen Roboter sind nicht bekannt.

Monte Carlo Simulationen nehmen hier verschiedenste Szenarien an und werten diese statistisch aus. Einen besonderen Vorteil bieten hierbei

  • verhältnismäßig einfache Implementierung
  • hohe Parallelisierbarkeit
  • hohe Flexibilität beim Trade-off Genauigkeit / Rechenzeit

Angewendet auf unser Roboterbeispiel, ließe sich mit Monte Carlo eine Schnelleinschätzung für eine möglichst staufreie Route treffen. Damit könnte der Roboter sofort seine Fahrt beginnen. Dank der Flexibilität von Monte Carlo könnte während der Fahrt die Route basierend auf den bisherigen Ergebnisse noch weiter verfeinert werden.

Differenzialgleichungen

Differenzialgleichungen beschreiben dynamische Systeme, die sich durch ihr eigenes Verhalten wieder selbst beeinflussen.

Stellen Sie sich zum Beispiel eine Luftblase in einer Flüssigkeit vor:

  • Der Auftrieb ist abhängig von der Tiefe, da das Volumen der Blase mit steigendem dem Umgebungsdruck abnimmt.
  • Die Reibungskräfte nehmen mit zunehmender Aufstiegsgeschwindigkeit ebenfalls zu.

Wir stellen die zugehörigen Differenzialgleichungen für solche Systeme auf und lösen diese mit numerischen Bibliotheken oder eigenen Implementierungen.

Programmiersprachen: Python, C++ & Fortran

Programmierung in Python

Wir setzen Python als Standardsprache für explorative Themen ein. Unsere reichhaltige Erfahrung, unter anderem in den Bibliotheken

  • Numpy
  • SciPy
  • Pandas
  • Matplotlib
  • OpenCV
  • Sklearn
  • Graphtool
  • NetworkX
  • Unittest
  • Pytest
  • Multiprocessing

hilft uns Hypothesen schnell zu testen und effizienten Code zu schreiben. Wir programmieren nach PEP8 Standard und unterhalten eine hohe Code-Coverage unserer Unittests. Damit stellen wir für unsere Kunden eine hohe Wartbarkeit unserer Arbeitsergebnisse sicher.

Programmierung in C/C++

Performancekritische Codes implementieren wir in C++. Hierbei folgen wir dem C++ 17 Standard. Unsere firmeneigenen Numerik-Bibliotheken erweitern wir ständig und reduzieren damit Entwicklungszeiten für unsere Kunden. Unsere Expertise in der Ansprache von C++ Codes über Python, ermöglicht es uns schnell komplexe Integrationstest-Frameworks aufzubauen. Normalerweise entwickeln wir unsere Codes unter Linux und nutzen Cross-Compiling (MinGW), um Windows-DLLs zu exportieren.

Programmierung in Fortan

Wir entwickeln gewöhnlich keine neue Software in Fortran. Wegen unseres akademischen Hintergrundes in der theoretischen Physik, sind wir aber bereits vielfach mit großen Fortran-Codes von (Fortran 77 bis Fortran 2008) in Berührung gekommen, haben mit diesen gearbeitet, diese weiterentwickelt und diese in moderne Sprachen übersetzt.

Weiter verfügen wir über ein großes Netzwerk herausragender Fortran Entwickler, die wir im Bedarfsfall für Projekte gewinnen können.

Firmenportrait zum Download

Data Science, Numerik & Physik in der Produktion

Kontakt

Wenn Sie noch Fragen zu unseren Leistungen am Schmelzpunkt von Data Science, Numerik und Physik in Python, C++ und Fortran haben, kontaktieren Sie uns einfach.