Desmo inside!

Die Sache mit der desmodromischen Ventilsteuerung sollte eigentlich jedem Ducati-Fahrer wenigstens grob geläufig sein, war sie doch bis vor Kurzem Markenzeichen und Alleinstellungsmerkmal einer jeden Ducati.

Desmodromische Ventilsteuerung, Screenshot aus Interaktiver 3D Animation.

Für die Ungeduldigen: >> hier << geht’s direkt zur Animation.

Aber eben: «grob geläufig» ist nicht das Gleiche wie «gründlich verstanden».

Jedenfalls in dem Umfang, der erforderlich ist, den «Großen Desmo-Service», eine relativ teure Wartung eines Ducati-Motors mit Ventilspiel-Einstellung und Zahnriemenwechsel in Eigenregie selbst durchführen zu können. Ich wollte das jedenfalls vorher buchstäblich be-griffen haben, bevor ich ansonsten wegen eines evtl. Fehlers für möglicherweise mehrere Wochen meine Monster 1200S ausser Gefecht gesetzt hätte, bei dem im kommenden Jahr anstehenden ersten selbst-durchgeführten «Großen Desmo-Service».

Ziel des vorliegenden Blog-Beitrags ist es, zunächst die beteiligten Bauteile vorzustellen, ihre Funktion zu beschreiben sowie schließlich in einer interaktiv allseitig dreh- und zoombaren Echtzeit 3D-Animation (nicht vor-gerendert) zu zeigen. Damit vorab das Konzept der Desmodromik klar wird, sowie die Anteile der jeweiligen Bauteile an der Realisierung dieses Konzepts.

Fragen zu Zerlegung des Zylinderkopfs, Einstellung des Ventilspiels, Zusammenbau, benötigten (Spezial-) Werkzeugen etc. werde ich in einem Folgeartikel behandeln.


Vor diesem Hintergrund traf es sich gut, daß ich vor etwa einem Jahr über eine Anzeige auf Ebay-Kleinanzeigen stolperte:

Zylinderkopf (liegend), Multistrada 2010, defekt, €99,-

Der Defekt bestand in einem Riss im Kopf, in der Folge in einem anhaltenden Verlust von Kühlwasser, welches durch den Brennraum abhanden kam. Anscheinend nicht ungewöhnlich in dieser Baureihe. Ansonsten aber war der Kopf lt. Beschreibung mechanisch intakt und komplett, mit beiden Nockenwellen, allen Kipp- und Schlepphebeln nebst Hebelwellen, allen Ventilen mit allen Shims etc.. Hab ich natürlich gleich zugeschlagen und zunächst in meinen Vorrat aufgenommen.

Den winterlichen Straßenverhältnissen und den unter dem Vorwand von Corona verhängten «Maßnahmen» sei Dank, hatte ich kürzlich viel Zeit, mich diesem Projekt endlich einmal durchgehend zu widmen. Ich habe den Kopf zerlegt, jedenfalls alle beweglichen Bauteile zur Ansteuerung eines (1) Ventils ausgebaut (für alle übrigen Ventile funktioniert das genau gleich):

Ducati Desmo Testastretta 1200 Evoluzione Ventiltrieb
Bewegte Bauteile für die Ansteuerung eines (1) Einlassventils an einem Ducati 1200 Testastretta Evoluzione Motor (hier: aus Multistrada 2010, liegender Zylinder)

Im Anschluss daran habe ich alle beteiligten Bauteile im Rahmen meiner Amateur-Möglichkeiten akribisch vermessen, mittels digitaler Schieblehre (Ablesegenauigkeit: 0.01 mm), Messuhr (ebenfalls 0.01 mm Ablesegenauigkeit.

Für die Positionen der Schlepp-/Kipphebelachsen relativ zum gewählten Koordinatenursprung in der Drehachse der Einlass-Nockenwelle, sowie die Neigungswinkel der Ventile konnte ich auf eine CAD-Zeichnung des Testastretta Evoluzione Kopfs zurückgreifen, die ich im Internet aufgestöbert hatte:

CAD Zeichnung Schnitt eines Ducati Testastretta Evoluzione Zylinderkopfs
Schnittzeichnung des Ducati Testastretta Evoluzione Kopfs; Quelle: www.desmo-net.com

Die Zeichnung habe ich zu diesem Zweck passend skaliert ausgedruckt und mit dem Geodreieck ausgemessen.

Die aufgewandte Sorgfalt bei der Vermessung diente dem Zweck, später anhand dieser Informationen eine realistische und aussagekräftige Computeranimation zu erstellen, bei der man das Zusammenspiel aller beteiligten Bauteile aus allen Richtungen «in Aktion» und quasi-beliebiger Verlangsamung betrachten kann.

Nockenwelle

Messung von Durchmessern und Längen der einzelnen Wellenabschnitte mittels digitaler Schieblehre. Fasen, sowie Radien und Breiten von Freistichen an Querschnittsübergängen nach Augenmaß geschätzt.

Für die Vermessung der Nocken habe ich die Nockenwellen mit ihrem linken Ende in das Futter meiner Drehbank eingespannt. Für die Abtastung in Schritten von 5° habe ich mir einen kleinen Adapter gefertigt, den ich auf das Zahnriemen-seitige M17 x 1.0 mm Feingewinde der Nockenwelle aufgeschraubt, und auf dessen Planfläche ich mittels Klebestrips eine 360° Winkelscheibe aus dem Architekturbedarf geklebt hatte.

Dann habe ich das Dreibackenfutter von Hand durchgedreht, und alle 5° eine Ablesung an Winkelmessscheibe und Messuhr vorgenommen und die jeweiligen Werte notiert. Hier die resultierenden Nockenformen, für die beiden Nockenwellen des liegenden Zylinders:

Ducati Desmo Testastretta 1200 Evoluzione Nockenformen
Hinweis: Blick von Zahnriemenseite, Null-Grad Lage links, Winkelskala im Uhrzeigersinn, entsprechend Drehrichtung der Nockenwellen im Gegenuhrzeigersinn!

Es fällt bereits auf, daß die beiden Nockenwellen für Einlass und Auslass voneinander verschieden und nicht untereinander austauschbar sind. Damit hier auch ohne Vergleich keinerlei Irrtümer aufkommen können, ist jede Nockenwelle eindeutig gekennzeichnet:

Nockenwellen Ducati Testastretta Evoluzione eindeutig gekennzeichnet

Die Kennzeichnung der Nockenwellen verwendet folgenden Schlüssel:

OOrizzontaleliegender Zylinder
VVerticalestehender Zylinder
AAspirazioneEinlass
SScaricoAuslass
Schlüssel der Nockenwellenkennzeichnung

Die «10Q1» am Ende des Codes bezeichnet offensichtlich den Produktionszeitraum. Der Verkäufer des untersuchten Zylinderkopfs sprach nämlich von seiner 2010er Multistrada.

Schlepp- bzw. Kipphebel

Zur Namensgebung:

  • beim Öffner-Hebel handelt es sich technisch um einen Schlepphebel, weil sich der Antrieb (Nocken-seitige Kontaktbahn) und der Abtrieb (Ventil-seitige Kontaktbahn) auf der gleichen Seite der Hebel-Drehachse befinden.
  • beim Schliesser-Hebel handelt es sich technisch um einen echten Kipphebel, weil sich der Antrieb (Nocken-seitige Kontaktbahn) und der Abtrieb (Ventil-seitige Kontaktbahn) auf gegenüberliegenden Seiten der Hebel-Drehachse befinden.

So sehen die beiden Hebel in Natura aus:

Sehr schön zu sehen sind jeweils die Anlassfarben, die zweifelsfrei anzeigen, daß die Stahlguss-Rohlinge im Anschluss an ihre mechanische Bearbeitung (Bohren, Fräsen, Schleifen, Läppen) noch einer Wärmebehandlung unterzogen wurden, um z.B. die Kontaktbahnen zu härten.

Im Hinblick auf die angestrebte Modellierung dieser Bauteile in meinem Visualisierungsprogramm war die unregelmäßige Formgebung der o.a. Hebel eine kleine Herausforderung für mich. Denn standardmäßig werden für technische Visualisierungen Grundkörper unterstützt, wie Kugel, Kegel, Torus, Zylinder, Quader etc., sowie Bool’sche Operationen (Addition, Subtraktion, Union, Schnitt) zwischen derartigen Grundkörpern. Zudem noch Extrusionskörper und Rotationskörper, aber all dies kam hier nicht in Frage.

Nach scharfem Hinsehen habe ich die eigentlich entscheidenden Oberflächen identifiziert, welche für die Funktion unbedingt erforderlich sind: das sind nämlich die Teil-Oberflächen, die in unmittelbarem Kontakt zu anderen Bauteilen stehen und Kräfte übertragen:

Diese Kontaktflächen sind zum Glück Kreisbahnen, oder Abschnitte davon:

Ducati Desmo Testastretta Evoluzione Kinematisches Ersatzschema
Kinematische Äquivalenz: Ersatz der Kontaktbahnen durch Rollen passender Durchmesser und Position

Für die kinematische Funktion dieser Getriebekette würde sich nichts ändern, wenn man die originalen Schlepp- bzw. Kipphebel durch entsprechende Rollen-Schlepp- bzw. -Kipphebel mit Rollenzentrum und Durchmesser der dünn ausgezogenen Vollkreise ersetzen würde. Und natürlich können derartige Rollen theoretisch beidseitig (also Nocken- und Ventilseitig) eingesetzt werden. Das wird in einem Fortsetzungsbeitrag hier auf diesem Blog noch eine Rolle spielen.

Für die weiter unten vorgestellte Animation habe ich mich auf die präzise Modellierung der Kontakt-Konturen beschränkt, und die Querschnitte dazwischen ohne Verlust an Genauigkeit der Animation eher grob modelliert.

Ventile, Shims und C-Ringe

Das Ventil ist ebenfalls in Gänze ein höchst-belastetes High-Tech Bauteil. Für die desmodromische Funktion und die vorliegende Animation ist insbesondere dessen oberes Ende zu betrachten:

Beide Shims tragen am Zylinderumfang eingeprägt, bzw. geätzt/gelasert die Bezeichnung ihrer nominellen Dicke (rechtes Bild). Auch da komme ich in einem Folgebeitrag drauf zurück.

Zum Verständnis des oben rechts abgebildeten Shim-Pakets aus Öffner-Shim (oben) und Schliesser-Shim (unten) muss man dessen»Innere Werte» betrachten:

Ganz linksdas nackte Ende des Ventilschafts
2. von linksSchliesser-Shim (blau) auf den Ventilschaft aufgesteckt
3. von linksC-Ringe (rot) in die Rille des Ventilschafts eingelegt
4. von linksSchliesser-Shim bis zum Anschlag an den C-Ringen
hochgeschoben;
C-Ringe werden dadurch in ihrer Position fixiert.
5. von linksÖffner-Shim (grün) von oben aufgesteckt
Reihenfolge bei der Montage der Shims auf dem Ventilschaft

Die Ventil-Baugruppe bestehend aus Ventil und Shims wird in ihrer Ventilführung radial fixiert und axial über Öffner-Schlepphebel und Schliesser-Kipphebel zwischen der geöffneten und geschlossenen Position hin und her bewegt:

Ventile werden zwischen Öffner-Schlepphebel und gegabeltem Schliesser-Kipphebel eng geführt; Schlepp- und Kipphebelwellen wg. Übersichtlichkeit ausgeblendet;

Dabei drückt der Öffner-Schlepphebel (hellgrün) während der Öffnungsphase des Ventils von oben auf den Öffner-Shim (grün-transparent), welcher seine Kraft direkt auf den Kopf des Ventilschafts überträgt.

Zum Schliessen des Ventils drückt der gegabelte Schliesser-Kipphebel (hellblau) von unten gegen den Schliesser-Shim (blau-transparent), welcher die Kraft über die eingelegten C-Ringe auf den Ventilschaft überträgt und so eine Schliessung des Ventils bewirkt.

Konstruktiv wurde dabei darauf geachtet, daß sich die beteiligten Bauteile niemals gegeneinander verspannen. Es muss in jeder Winkelstellung der Nockenwelle, bei jeder Drehzahl und bei jeder Motortemperatur ein minimales Spiel im Antriebsstrang eines jeden Ventils vorhanden bleiben.

Hilfsfeder

Die Beschreibung der am desmodromischen Ventiltrieb beteiligten Bauteile wäre nicht vollständig, ohne die «Hilfsfeder» zu berücksichtigen. Damit ein Ventil dicht schliesst, sorgt je Ventil eine Hilfsfeder in der Ruhelage für ein Anpressen des Ventiltellers in seinen Ventilsitz. Die Hilfsfeder zieht den Schliesser-Kipphebel permanent vom Schliessnocken weg, wodurch der Schließer-Kipphebel permanent auf den Schliesser-Shim Druck ausübt und das Ventil in die «geschlossen»-Stellung drückt. Der in der Animation freie, nach unten ragende Schenkel der Drehfeder stützt sich in der Realität gegen eine Nase im Zylinderkopf ab.

So sieht die Hilfsfeder aus, und es gibt sie in einer «rechten» und (spiegelbildlich) «linken» Ausführung. Die sind also nicht beliebig untereinander austauschbar:

Hilfsfeder der Schliesser-Kipphebel am Testastretta Motor

«Hilfsfeder» klingt so unscheinbar, dabei ist sie überraschend kräftig dimensioniert:

Mit einem

  • Drahtdurchmesser von 2.8 mm
  • mittlerer Windungsdurchmesser: 19.3 mm
  • vorgespannt: 5 Windungen

komme ich auf eine Dreh-Federrate von ca. 35 Nmm/°. Bei geschlossenem Ventil ist die Feder um rund 60° vorgespannt, und arbeitet im Betrieb um weitere bis zu 20°, was einem Moment am Schliesser-Kipphebel im Bereich von ca. 2.15 bis 2.85 Nm entspricht. Daraus folgt am Wirk-Radius von 28 mm eine Schliesskraft bei geschlossenem Ventil von rund 80 N, sowie bei geöffnetem Ventil eine auf rund 100 N ansteigende Widerstandskraft.

Dazu passend habe ich auf der Einlassseite (ohne Zahnriemen) ein Moment von 7 Nm gemessen, um die Nockenwelle über den Punkt des größten Widerstands hinweg zu drehen.

So, mit diesem Wissen bewaffnet, kann man nun die gesamte Konstruktion richtig würdigen. Hier geht’s zur interaktiv beeinflussbaren Echtzeit 3D-Animation des desmodromischen Ventiltriebs:

Zur Animation

  • Links-Klicken-und-Ziehen dreht die Animation (Betrachtung aus frei wählbarer Richtung),
  • Rechts-Klicken-und-Ziehen verschiebt den Bildausschnitt (PAN)
  • über das Mausrad kann man ein- und aus-zoomen.
  • Mittels der Funktionen im Bildschirm-Menü lassen sich Bauteile ein- oder ausblenden,
  • sowie die Animation in ihrer Geschwindigkeit beeinflussen.

Wer bis hierher durchgehalten hat, interessiert sich vermutlich auch für die Fortsetzung des Themas. Stichworte: «the making of …», Reverse Engineering, Vorwärtskinematik, Berechnung von Paaren konjugierter Kurvenscheiben mittels Inverser Kinematik in meinem interaktiven «Desmo Lab».

Zur Computergrafik und Performance

Update 15.01.2023

Ich habe einen zwei Jahre alten Traum realisiert und die Einlassnockenwelle mit Hilfe von in meinem «Desmo Lab» berechneten Nockenkonturen sowie Positionen der Kipp- und Schlepphebelachsen perfektioniert. Motivation und Vorgehen beschreibe ich in meinem jüngsten Beitrag «Pimp my Desmo». Die Animation ist weiterhin über den bekannten Link zugänglich. Ihre Versionsnummer habe ich auf 3.0 angehoben.

Update 15.10.2021

Die Animation ist immer noch gleich geblieben, allerdings habe ich einige verwendete Oberflächen (Materialien) mithilfe von «dynamic cube reflection mapping» mit einer scheinbar hochglanzpolierten Chrom-Oberfläche versehen. Vielleicht habe ich den Effekt in meiner Begeisterung ein wenig großzügig aufgetragen, aber ich find’s ganz schick. 😎

Edle Mechanik verdient edle Materialien

Update 20.01.2021

Mit Version 2.02 hat sich nach aussen hin nichts verändert, unter der «Verkleidung» habe ich aber weitere Code-und Datenoptimierung betrieben, mit dem Ziel und Ergebnis 😎 des verbesserten Load-Balancings zwischen CPU und GPU. Der komplette Kopf läuft nach Seitenaufruf nun auf meinem iPhone 5s mit 32 fps. Ich habe dies auf verschiedenen Ebenen erreicht:

In Cinema4d habe ich, soweit möglich, bei Bool’schen Operationen angehakt, daß das Ergebnis jeweils in einem (1) Objekt abgelegt wird, anstatt die beiden Teilnehmer der Operation zu behalten.

Dadurch wurde die innere Struktur des VRML2.0 Exports weniger komplex. Wenn man so will, entspricht dies einer Art Vor-Kompilierung auf Datenebene.

Im Viewer habe ich die aus einem VRML-Import resultierenden Einzel-Meshes in ein einziges ge-«merged». In der Summe der Maßnahmen konnte ich so die Anzahl von «calls» an die GPU von vorher 320 / Frame auf weniger als ein Viertel herunter bringen.

Update 11.01.2021

Nachdem ich die Entwicklung bisher als «proof-of-concept» betrieben hatte, um zu sehen ob ich die Animation auf Standard-Hardware flüssig zum Laufen kriege, habe ich anschliessend noch Zeit investiert, den Code zu verschlanken und insgesamt effizienter zu gestalten, um Performance-Reserven zu haben für den kompletten Testastretta Evoluzione Kopf, mit beiden Nockenwellen samt allen beweglichen Anbauteilen. Mein MacBook Air ächzt, aber hält die 60 fps. Das ist nun mit Version 2.0 vorläufig abgeschlossen. 😎

Ich hatte sogar noch «Luft», Kipp- und Schlepphebel realitäts-näher zu modellieren. Die vollständige Szene umfasst nun rund 139’000 Dreiecksflächen.

Update 04.01.2021

Ich habe Bauteile mit «einfacher» Geometrie als TubeBufferGeometry und als LatheBufferGeometry direkt in Three.js hart-kodiert. Komplizierter geformte Bauteile importiere ich nun als VRML2.0 Dateien, wodurch die gesamte Grafik nun kontinuierlich (Phong) schattiert ist. Die Anzahl der Dreiecksflächen hat sich – bei verbesserter visueller Wirkung – auf rund 67’000 reduziert. (Heimliches Ziel ist es, auch noch die Auslass-Seite gleichzeitig mit anzuzeigen. Für eine flüssige Animation mit 60 fps werde ich dann allerdings ein potenteres Notebook als mein MacBook Air benötigen.)

Ausserdem habe ich mir die künstlerische Freiheit gegönnt, die beiden Shims semi-transparent darzustellen. 😎


Noch ein paar Bemerkungen zur Performance der vorgestellten Animation:

Die Liebe zum Detail hat einen Preis, der durch zunehmenden Berechnungsaufwand zu entrichten ist. Insgesamt umfasst das vollständige 3D-Modell des Desmodromischen Ventiltriebs im Modellierungsprogramm rund 185’000 Eckpunkte (vertices) und rund 170’000 Dreiecksflächen (faces). Das verwendete Datenaustausch-Format (stl) zwischen meinem Modellierungsprogramm (Cinema4D) und dem für diese Animation entwickelten Viewer kennt keinerlei logische Zusammenhänge zwischen benachbarten Dreiecksflächen. Was zur Folge hat, daß gemeinsame Eckpunkte benachbarter Dreiecksflächen mehrfach 3D-transformiert werden. Da steckt also noch gehöriges Optimierungspotenzial drin.

Auf meiner Entwicklungsmaschine, einem MacBook Air 13″ aus 2017, welche nicht im Ruf steht, eine Monster-Gaming-Maschine zu sein, werden in Grundstellung, unmittelbar nach Seitenaufruf, volle 60 frames pro Sekunde erreicht. Eine entsprechende Performance-Statistik wird oben links im Bildschirm angezeigt.

Trotzdem kommt der Rechner beim Einzoomen gehörig ins Schwitzen, wie man am anschwellenden Lüftergeräusch unschwer erkennen kann. Dabei bricht auch die Framerate ein. Unabhängig von der gewählten Zoomtiefe werden zwar immer gleich viele Vertices 3D-transformiert, jedoch werden abhängig von der Zoom-Tiefe unterschiedlich viele Pixel gezeichnet. Die Grafik-Hardware meines MacBook Air ist für diese Animation offensichtlich durch ihre maximale Pixel-Füllrate limitiert, nicht durch die 3D-Transformationsleistung.

Die Verringerung der Animationsgeschwindigkeit über den «Speed»-Regler der GUI bringt keine Entlastung. Denn hierdurch wird lediglich das Winkelinkrement der Nockenwelle zwischen zwei aufeinander folgenden frames manipuliert, während die Framerate und damit die Berechnungslast konstant bleiben.

Wer eine noch schwächere Hardware einsetzt, kann durch Ausblenden von Bauteilen die Komplexität des Modells reduzieren. Besonders lohnend ist das Ausblenden der «Hilfsfeder», welche alleine für über je 60’000 vertices und faces verantwortlich ist. Bei Limitierung durch die Flächenfüllrate der GPU hilft nur Aus-Zoomen, so daß nur eine kleinere Bildschirmfläche beschrieben werden muss.

Unerwartet: auf meinem sieben Jahre alten iPhone 5s werden in Grundstellung ebenfalls noch beachtliche ca. 34 fps erreicht, bei allerdings sehr viel weniger sichtbaren Pixeln.

Ich übernehme übrigens keinerlei Haftung für evtl. abrauchende GPUs! 😉

2 Gedanken zu „Desmo inside!“

  1. Ich bin total geflasht!!
    Nicht nur von der Animation an sich und der dazugehörigen Erklärung. Sondern dass sich jemand die Mühe macht, das alles zu vermessen und zu erstellen! Muss Myriaden von Stunden gekostet haben. Neben der Energie und der Kenntnisse hätte ich weder Zeit noch Drive so etwas zu machen! Chapeau!

    1. Frank, freut mich immens, daß ich Dich derart begeistern konnte 😎
      Ja, in diese Animation sind schon ein paar Stunden Lebenszeit reingeflossen. Aber es hat sich für mich nicht nach immens viel Arbeit angefühlt, da hier viele bereits vorhandene Erfahrungen aus meinen diversen Hobbies zusammengeflossen sind: Ducati, Computergrafik, mechanische Fertigung und natürlich mein Beruf, den ich wirklich als Berufung erlebe. Letzterer hat das strukturierte Vorgehen und die nötige Ausdauer beigesteuert.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert