Desmo – reverse engineered

Die Interaktive 3D Animation eines Ducati Testastretta Evoluzione Zylinderkopfs hatte ich ja bereits vorgestellt, auch die an dessen desmodromischer Ventilsteuerung beteiligten Bauteile.

Eine Auswahl von Bauteilen für die Testastretta Evoluzione Animation (gerendert)

Motivation

Drei Dinge haben mich bewogen, diese Animation zu erstellen. Alle waren und sind mir gleichermaßen wichtig:

  1. wollte ich wissen, welche Performance ich mittels Javascript und der three.js Bibliothek aus der bescheidenen Grafik-Hardware meines MacBook Air herauskitzeln kann. (Die verbaute Intel HD Graphics 6000 belegt im GPU Vergleichsranking einen soliden 318. Platz von über 600 getesteten, mit Gesamturteil «terrible») . Mein Appetit wuchs dann aber während des Essens, und in der mir eigenen Bescheidenheit finde ich, daß das Ergebnis insgesamt ziemlich beeindruckend geworden ist. 😎
  2. vermittelt die interaktive Wahl von Blickrichtung, Detaillierung und Geschwindigkeit auf die Animation Einblicke und Einsichten, die für die Meisten nicht alltäglich sein dürften, und die über den Informationsgehalt einschlägiger YouTube-Videos deutlich hinausgehen.
  3. interessieren mich die konstruktiven Randbedingungen, unter denen die Konstrukteure bei Ducati den Testastretta-Motor und dessen «Evoluzione» entwickelt haben.

Speziell der dritte Punkt ist insofern eine Herausforderung, als Ducati selbst die Herausgabe von Konstruktionsunterlagen an die Öffentlichkeit nur sehr restriktiv handhaben dürfte. Und da fängt es dann für mich an, richtig interessant zu werden. Wieviele seiner Geheimnisse kann man der existierenden Konstruktion durch scharfes Hinsehen und scharfes Nachdenken, sowie mit einem geschulten Maschinenbauer-Verstand trotzdem entreissen? Das ist klassisches Aufgabengebiet des Reverse Engineering. Wenn man diesen Ziel konsequent verfolgt, erreicht man im Idealfall ein sehr vergleichbares Verständnis einer Konstruktion, wie es der ursprüngliche Konstrukteur selbst hatte. Und man könnte – theoretisch – auf dieser Basis die Konstruktion in einer anderen Richtung weiterentwickeln, als es der Konstrukteur des Originals schließlich unternommen hat.

Das ist – zugegeben – ein sehr ehrgeiziges Konzept, welches wohl nur von finanzstarken und sehr gut ausgerüsteten Tunern oder Rennställen verfolgt werden könnte. Aber interessant wäre es schon. Und das angewandte Verfahren kann ich immerhin darlegen. Das Reverse Engineering des Zylinderkopfs und der darin realisierten Steuerzeiten ist dazu der erste Schritt.

Was mich zurück zur Animation bringt.

Erstellung der Animation

Um von den in meinem Visualisierungsprogramm (Cinema4D) modellierten Einzelbauteilen zu einer funktionierenden, d.h.: von offen-sichtlichen Widersprüchen freien Computeranimation zu kommen, muss man dafür sorgen, daß sich alle Bauteile zu jedem Zeitpunkt an der richtigen Position und in der jeweils richtigen Orientierung (Winkellage(n)) befinden. Das klingt nach einer gewaltigen und eigentlich unlösbaren Aufgabe.

Zum Glück lässt sich die auf ein handhabbares Maß vereinfachen. Und das geht so:

Wenn man über Positionen und Orientierungen redet, benötigt man zuerst ein Koordinatensystem. Ich habe mich für das folgende entschieden, um mir die Arbeit nicht unnötig schwer zu machen:

Verwendetes Koordinatensystem: Rot, Grün, Blau entsprechen X, Y, Z-Achsen

Jedes beliebige andere Koordinatensystem wäre ebenso möglich gewesen, aber die Rotationsachse der Einlassnockenwelle mit der Z-Achse zusammenfallen zu lassen, erschien mir zweckmäßig. Aus den gleichen Überlegungen heraus habe ich die X-Achse (rot) quer durch die Drehachsen beider Nockenwellen gelegt. Damit entspricht die X-Z-Ebene (mit y = 0) der Trennfuge zwischen Zylinderkopf und Zylinderkopfdeckel. Diese gut fassbare Referenzebene hat mir die Vermessung von Abständen am realen Zylinderkopf sehr erleichtert.

Von den ursprünglich sechs Freiheitsgraden (3 Translation, 3 Rotation) jedes Bauteils fallen viele wegen gewollter konstruktiver Beschränkungen weg, d.h., die Bauteile sind diesbezüglich fixiert. So verlaufen etwa alle Drehhachsen (Nockenwellen, Schlepp- bzw. Kipphebelwellen) parallel zueinander und parallel zur Z-Achse. Die jeweils zugehörigen X-Y-Koordinaten bleiben während eines gesamten Umlaufs der Nockenwellen konstant. Rotationen um X- und Y-Achse sind ebenfalls konstruktiv ausgeschlossen. Das Problem vereinfacht sich so bereits auf ein zweidimensionales:

Schnittzeichnung des Ducati Testastretta Evoluzione Kopfs; Quelle: www.desmo-net.com

Die Bauteil-Positionen entlang der Z-Achse ergeben sich aus der vermessenen Nockenwellen-Geometrie. Die Z-Koordinaten von Schlepp- und Kipphebel ergeben sich aus passend zur Nocken-Lage auf der Nockenwelle eingearbeiteten Taschen im Zylinderkopf derart, daß besagte Hebel ihren jeweiligen Nocken vollständig in Z-Richtung überdecken. Die Nockenwelle selbst wird auf der Z-Achse durch zwei Bundflächen der Welle beidseits des rechten Nockenwellenlagers axial fixiert (nachfolgend durch Pfeile markiert):

Nockenwelle axial durch Bundflächen am rechten NW-Lagers fixiert.

Alle diese Z-Werte müssen nur einmalig passend initialisiert werden, und bleiben dann während eines gesamten Nockenwellenumlaufs konstant.

Zweitens lassen sich bestimmte Bauteile gruppieren, da sie sich jederzeit gemeinsam bewegen bzw ihre Koordinaten/Orientierungen beibehalten. Hierzu gehören

Nockenwelle:rotiert gemeinsam mit Flansch, Riemenrad, Scheibe, Inbusschraube, Nutmutter.
Schliess-Kipphebel:schwingt gemeinsam mit beweglichem Anteil der Hilfsfeder
Ventil:verschiebt sich entlang seiner lokalen(!) Längsachse gemeinsam mit Shims und C-Ringen; beide Ventile jeder Seite (Einlass, Auslass) sind in je einer Gruppe zusammengefasst.
Gestell:Schlepp- und Kipphebelwellen, sowie der feststehende Anteil der Hilfsfedern bewegen sich während der gesamten Animation überhaupt nicht.
Gruppierung von Bauteilen zwecks Reduktion des Animationsaufwands

Vorwärtskinematik

Damit reduziert sich der Aufwand beim Zusammenfügen der Bauteile zu einer realistischen Animation auf das Problem, die Schwingwinkel von Schlepp- und Kipphebel(Gruppen) sowie die Hübe der Ventil(Gruppen) passend für jede Winkelstellung der Nockenwelle zu bestimmen.

Dieses Verfahren entspricht der Vorwärtskinematik: Nockenwelle treibt an, Schlepp- und Kipphebel sowie Ventile folgen aufgrund von Zusammenhalts-Bedingungen.

Die Durchführung dieses Schritts war dann wieder eine Fleißaufgabe. 😎

Da ich die Nockenwelle auf meiner Drehbank in Schritten von 5° abgetastet hatte, habe ich das gleiche Intervall auch in diesem Schritt beibehalten. In Cinema4D habe ich alle beteiligten Bauteile relativ zueinander passend in der X-Y-Ebene platziert, die Nockenwelle in 5°-Schritten verdreht,

dann je Schritt (insgesamt 360° / 5° = 72 Winkellagen) dazu passend, mittels rein visueller Kontrolle:

  • den Schlepphebel um seine Drehachse derart verdreht, daß die Nocken-seitige Kontaktfläche spielfrei am Öffnungsnocken anliegt

  • die Ventilbaugruppe derart entlang ihrer lokalen Längsachse verschoben, daß die Oberkante des Öffner-Shims spielfrei an der Ventil-seitigen Kontaktfläche des Schlepphebels anliegt

  • den Schließ-Kipphebel um seine Drehachse derart verdreht, daß die Nocken-seitige Kontaktfläche spielfrei am Schließnocken anliegt. Was übrigens sachlich falsch ist, aber ich hatte gehofft, daß unvermeidliche visuelle Ungenauigkeiten an der Kontaktfläche zwischen Schliesser-Shim und der Shim-seitigen Kontaktfläche des Kipphebels weniger auffällig sein würden, als evtl. klaffende Lücken oder «negative Spiele» zwischen Kipphebel und Schliessnocken. Da (und nur da!) habe ich die Animation vorsorglich also ein wenig aufgehübscht.

Das Ganze dann für beide Nockenwellen. So sieht das Zwischenergebnis aus:

Steuerungsdaten für die Interaktive 3D-Animation des Testastretta Evoluzione Zylinderkopfs

Jeder der obigen sechs Verläufe ist nun durch eine punktweise definierte Funktion mit 72 Stützstellen beschrieben, wobei ich fehlende Werte zwischen jeweils zwei benachbarten Stützstellen durch lineare Interpolation gewinne.

Ventilerhebungskurven

Für die Animation benötige ich tatsächlich alle sechs der obigen Kurvenverläufe. Im Sinne des Reverse Engineerings hätten aber die Ventilerhebungskurven von Einlass- und Auslassventilen (EV und AV aus obiger Grafik) für die weiteren Untersuchungen völlig ausgereicht. Hier noch einmal in unretuschierter, voller Schönheit:

Ventilerhebungskurven einer Ducati Multistrada 1200 ’10 aus Messung abgeleitet

Sehr schön zu erkennen sind hier die Ventilüberschneidung im Ladungswechsel-OT, ein beim Auslassventil kleinerer Ventilhub als beim Einlassventil, sowie die Anlauf- und Ablauframpen der eigentlichen Ventilerhebungen.

Die Anlauframpen haben den Zweck, das anfängliche Ventilspiel mit mäßiger Geschwindigkeit aufzunehmen, bevor die beteiligten Massen dann auf die volle Ventilgeschwindigkeit beschleunigt werden.

Die Ablauframpen dienen dazu, daß Ventil vor dem Aufsetzen im Ventilsitz vorzuverzögern, damit es mit reduzierter Geschwindigkeit dort aufsetzt.

Der gegenüber dem Einlassventil kleinere Zeitquerschnitt des Auslassventils, als Funktion von Ventilhub, Ventildurchmesser und Öffnungs-Winkelintervall, ist dem Umstand geschuldet, daß das verbrannte Gemisch unter anfänglich hohem Druck auch durch kleine Auslass-Querschnitte strömt, später durch den in Richtung OT sich bewegenden Kolben aktiv aus dem Brennraum ausgetrieben wird, während beim Ansaugen des frischen Gemischs eine Druckdifferenz von maximal 1 bar erreicht werden kann, und man dem Frischgemisch daher einen möglichst geringen Widerstand (Drosselquerschnitte!) entgegensetzen möchte.

Bleibt die spannende Frage:

Woher wusste der Konstrukteur, daß genau diese Nockenformen und Schlepp- bzw. Kipphebel zum gewünschten Ergebnis hinsichtlich Steuerzeiten und Ventilhüben führen würden?

Die vielleicht überraschende Antwort ist: er wusste es nicht, und es war ihm auch weitgehend egal. Jedenfalls soweit es die resultierenden Formen angeht. Was die gewünschten Steuerzeiten angeht: da war er sich allerdings sicher, daß diese eingehalten würden. Weil er sich nämlich bei der Konstruktion des Ventiltriebs der Inversen Kinematik bedient hatte.

Darüber gibt es inzwischen einen Folgeartikel mit meinem Interaktivem Desmo Lab, einem Kinematik-Simulator zur Echtzeit-Berechnung und Visualisierung konjugierter Kurvenscheiben, wie sie im desmodromischen Ventiltrieb von Ducati Zweizylinder Motoren Verwendung finden.

Gültigkeitsgrenzen der Animation

Vielleicht noch ein paar Worte zur erzielten bzw. erwartbaren Genauigkeit der Animation:

Die Animation soll nicht nur schön aussehen, sondern die Realität mit allen relevanten Details möglichst exakt abbilden. Ich habe z.B. darauf geachtet, daß die stirnseitigen T-Nuten der Nockenwelle zur Winkellage der Nocken passen. Die Passfedernuten zur Winkelfixierung der Flansche auf den Nockenwellen weisen ebenfalls die korrekte Winkellage auf. Ebenso die roten Markierung auf den Stirnseiten der beiden Riemenräder relativ zu ihrer jeweiligen Passfedernut, sowie die Lage der Gewindebohrungen in den Flanschen. Dito die «Indexbohrungen» in den Scheiben und die Langlöcher in den Riemenrädern.

Man muss sich aber darüber im Klaren sein, daß die Animation keine Details enthält, welche ich nicht explizit hinein modelliert und programmiert habe. Ich habe nämlich nur das mit aufgenommen, was mir relevant erschien. Vielleicht habe ich dabei wichtige Einzelheiten übersehen. In dem Fall würde ich mich über einen entsprechenden Hinweis freuen.

Ich möchte auch nicht verschweigen, daß die Animation trotz aller Sorgfalt voller sonstiger Fehler und Ungenauigkeiten steckt. In der Reihenfolge der Begehung, ohne vergleichende Wertung:

  • Rundlauffehler des Dreibackenfutters meiner Drehbank,
  • Messungenauigkeiten von Schieblehre und Messuhr,
  • Winkelfehler beim Anbringen der 360°-Scheibe auf dem stirnseitigen M17x1.0 Feingewinde der Einlass-Nockenwelle per Augenmaß, relativ zur T-Nut,
  • Vermutlich abweichender Winkelfehler beim Anbringen der 360°-Scheibe auf dem stirnseitigen M17x1.0 Feingewinde der Auslass-Nockenwelle. ==> dies verfälscht möglicherweise die Aussagen über die vorgefundene Ventilüberschneidung,
  • systematischer Fehler beim Vermessen der Nockenkontur mittels Messuhr: diese trägt an ihrer Spitze eine gehärtete Kugel mit Durchmesser 2.5 mm. Somit habe ich tatsächlich eine Äquidistante zur eigentlichen Nockenkontur erfasst – eine Rollenmittelpunktsbahn aussen mit Radius 1.25 mm. Sichtbare Fehler ergeben sich insbesondere in steilen Flankenabschnitten der Nocken, besonders deutlich sichtbar im flachen(!) Teil der Schließnocken,
  • Parallaxenfehler bei der Peilung über die Schnittkante des Drehmeissels bei der Ablesung der Winkelstellung des Dreibackenfutters,
  • Ungenauigkeiten (Augenmaß) bei der Vermessung/Modellierung der «speziell» geformten Bauteile Schlepphebel und Kipphebel,
  • Ungenauigkeiten beim Abgriff der X- und Y-Koordinaten der Schlepp- und Kipphebelachsen aus obiger technischer Zeichnung,
  • Ungenauigkeiten bei der visuellen Kontrolle der Einhaltung von Zusammenhaltsbedingungen
  • Ventilspiele wurden überhaupt nicht modelliert, bzw. bewusst ausgelassen

sowie vermutlich noch weitere Fehlerquellen, derer ich mir nicht einmal bewusst bin.

Update 04.03.2021:

Inzwischen habe ich das Desmo-Lab fertiggestellt und in einem separaten Blog-Beitrag hier veröffentlicht. Es handelt sich um einen interaktiven Kinematik-Simulator zur Echtzeit-Berechnung eines Paars konjugierter Kurvenscheiben am Beispiel einer desmodromischen Ventilsteuerung.

Hierin werden kinematisch ideale Positionen von Kipp- und Schlepphebelachsen berechnet, unter Verwendung der realen (d.h.: immer noch vermessenen!) Bauteilgeometrie von Öffner-Schlepp- und Schliesser-Kipphebel.

Ich könnte auf dieser Basis nun meine bisherigen, mängelbehafteten Messwerte (s.o.) als Grundlage der Nockenwellen-Modellierung und Animation durch mathematisch exakte Positionen, Schwingwinkel, Ventilbaugruppen-Positionen und Nockenkonturen ersetzen, welche ohne weiteres Zutun in jeder Winkelstellung der Nockenwellen zu einem garantiert perfekten visuellen Eindruck führen würden, ohne unerwünschte Spiele zwischen Bauteilen, und ohne real unmögliche «Durchdringungen» von miteinander im Kontakt stehenden Bauteilen. Natürlich weiterhin ohne Modellierung der realen und eingeplanten Ventilspiele. Aber gut: in der Animation muss ich weder auf Verschleiss, noch auf thermische Ausdehnung von Bauteilen Rücksicht nehmen. 😉

Im Moment zögere ich noch. Teils aus Trägheit, und andererseits um die «historische Authentizität» der Animationserstellung nicht zu verfälschen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht.