Vollständiges elliptisches Integral II. Art

Im Beitrag Vollständiges elliptisches Integral I. Art erwähne ich die Beschäftigung mit der Hertz’schen Pressung. Diese verlangt aber auch noch nach der II. Art dieser Kategorie eines Elliptischen Integrals.

Die 3. Formel der angeführten Reihenentwicklungen auf THE WOLFRAM FUNCTIONS SITE ist \( K(z) \) sehr ähnlich: \[ E(z) = \frac \pi 2 \sum_{k = 0}^\infty \frac {\left( – \frac 1 2 \right)_k \left( \frac 1 2 \right)_k z^k}{k!^2} \]
Die darin vorkommenden indizierten Klammerausdrücke sind das bereits veröffentlichte Pochhammer-Symbol.
Da eine Konvergenz nur für \( |z|<1 \) gegeben ist, braucht es für \( z<-1 \) noch die Identität \( E(z<-1) = \sqrt {1-z} E \left( \frac z {z-1} \right) \), als zweite von 7 angebotenen auf THE WOLFRAM FUNCTIONS SITE.
Um eine annehmbare Genauigkeit zu erhalten, müssen ausreichend viele Glieder aufsummiert werden, wobei Fakultäten – insbesondere potenziert – dem allzu schnell ein Ende setzen können. Es bietet sich hier also an, die Quotienten \( \frac {\left( – \frac 1 2 \right)_k}{k!} \) und \( \frac {\left( \frac 1 2 \right)_k}{k!} \) zu multiplizieren, was mit \( \left( – \frac 1 2 \right)_k = – \frac {(2k – 2)!}{2^{2k-1} (k-1)!} \) und \( \left( \frac 1 2 \right)_k = \frac {(2k – 1)!}{2^{2k-1} (k-1)!} \) zu \( – \frac 1 {2 \pi} \frac {\Gamma \left[ – \frac 1 2 +k \right]}{\Gamma \left[ 1+k \right]} \frac {\Gamma \left[ \frac 1 2 +k \right] }{\Gamma \left[ 1+k \right]} \) führt. \( \Gamma \) steht dabei für die Gamma-Funktion, die Excel anbietet, weswegen einer Formel nichts mehr im Wege steht. Als Besonderheiten müssen noch folgende speziellen Werte berücksichtigt werden: \( K(1) = 1 \) , \( K(0) = \frac \pi 2 \) und \( K(-1) = \frac {2 \Gamma \left( \frac 3 4 \right)^4 + \pi^2}{2 \sqrt {2 \pi} \Gamma \left( \frac 3 4 \right)^2} \).

Damit die Formel alle Glieder aufsummiert, muss sie als Matrixformel (Arrayformel) eingegeben werden. Die Begrenzung der Gliederanzahl kommt dabei von der größtmöglichen positiven Zahl in Excel, weswegen die Gamma-Funktion keine größere ganze Zahl als 171 zulässt.

Das kann auch mittels der Benutzerdefnierten Funktion E_z(z) erfüllt werden, wobei z eine einzelne Zahl, eine Matrix-Konstante, eine einzelne Zelle oder ein einzeiliger oder einspaltiger Zellbereich sein darf. Nicht mehr die Anzahl der Glieder ist schlagend, sondern die geforderte Genauigkeit, fixiert auf die 15 signifikanten Stellen in Excel, bei deren Erreichen abgebrochen wird. Die Restriktion der Gamma-Funktion kann umgangen werden, weil in einer Schleife nicht jedes Glied gänzlich neu berechnet werden muss. Auch noch Rechenzeit sparend, ist ein neues Glied das vorhergehende multipliziert mit deren Quotienten.

Die nachfolgenden Datei enthält alles obig Beschriebene nachvollziehbar, wobei der Vergleich mit Werten aus Mathematica gezogen wird:

Bemerkung: Wegen der Funktion GAMMA nicht als 97-2003-Version.

Vollständiges elliptisches Integral I. Art

Obwohl mir der Begriff des Elliptischen Integrals seit Langem geläufig ist, drängte sich mir nie eine Anwendung dafür auf. Zum Teil wahrscheinlich deshalb, weil die Abhilfe zu deren Umgehung oftmals in Tabellenform vorliegt.

Als ich mich kürzlich intensiver mit der Hertz’schen Pressung beschäftigte, stolperte ich über eine nun als solche erkannte, schon des Öfteren benutzte Tabelle! Die vorliegenden Zahlenwerte in ein eigenes Tabellenblatt zu tippen und mittels SVERWEIS zu interpolieren, wäre die althergebrachte Vorgehensweise mit existenten Excel-Methoden gewesen.
Alternativ zeigt die 3. Formel der angeführten Reihenentwicklungen auf THE WOLFRAM FUNCTIONS SITE: \[ K(z) = \frac \pi 2 \sum_{k = 0}^\infty \frac {\left( \frac 1 2 \right)_k \left( \frac 1 2 \right)_k z^k}{k!^2} \]
Der darin doppelt vorkommende indizierte Klammerausdruck ist das bereits veröffentlichte Pochhammer-Symbol.
Da eine Konvergenz nur für \( |z|<1 \) gegeben ist, braucht es für \( z<-1 \) noch die Identität \( K(z<-1) = \frac 1 {\sqrt {1-z}} K \left( \frac z {z-1} \right) \), als zweite von 7 angebotenen auf THE WOLFRAM FUNCTIONS SITE.
Um eine annehmbare Genauigkeit zu erhalten, müssen ausreichend viele Glieder aufsummiert werden, wobei Fakultäten – insbesondere potenziert – dem allzu schnell ein Ende setzen können. Es bietet sich hier also an, den Quotienten \( \frac {\left( \frac 1 2 \right)_k}{k!} \) zu quadrieren, was mit \( \left( \frac 1 2 \right)_k = \frac {(2k – 1)!}{2^{2k-1} (k-1)!} \) zu \( \frac {\Gamma \left[ \frac 1 2 +k \right]}{\sqrt \pi \Gamma \left[ 1+k \right]} \) führt. \( \Gamma \) steht dabei für die Gamma-Funktion, die Excel anbietet, weswegen einer Formel nichts mehr im Wege steht. Als Besonderheiten müssen noch folgende speziellen Werte berücksichtigt werden: \( K(1) = \infty \) , \( K(0) = \frac \pi 2 \) und \( K(-1) = \frac {\Gamma \left( \frac 1 4 \right)^2}{4 \sqrt {2 \pi}} \).

Damit die Formel alle Glieder aufsummiert, muss sie als Matrixformel (Arrayformel) eingegeben werden. Die Begrenzung der Gliederanzahl kommt dabei von der größtmöglichen positiven Zahl in Excel, weswegen die Gamma-Funktion keine größere ganze Zahl als 171 zulässt.
Die Formel zeigt deutliche Abweichungen in der Nähe von 1, weil dort die Gliederanzahl nicht mehr auslangt, und hat den Nachteil, dass sie nicht mehrere \( z \) gleichzeitig bedienen kann, weil die Matrixfähigkeit schon für die Gliedersummierung verbraucht wurde!

Das alles kann mittels der Benutzerdefnierten Funktion K_z(z) erfüllt werden, wobei z eine einzelne Zahl, eine Matrix-Konstante, eine einzelne Zelle oder ein einzeiliger oder einspaltiger Zellbereich sein darf. Nicht mehr die Anzahl der Glieder ist schlagend, sondern die geforderte Genauigkeit, fixiert auf die 15 signifikanten Stellen in Excel, bei deren Erreichen abgebrochen wird. Die Restriktion der Gamma-Funktion kann umgangen werden, weil in einer Schleife nicht jedes Glied gänzlich neu berechnet werden muss. Auch noch Rechenzeit sparend, ist ein neues Glied das vorhergehende multipliziert mit deren Quotienten.

Die nachfolgenden Datei enthält alles obig Beschriebene nachvollziehbar, wobei der Vergleich mit Werten aus Mathematica gezogen wird:

Bemerkung: Wegen der Funktion GAMMA nicht als 97-2003-Version.

Pochhammer-Symbol

Für mich als “bloßen” Maschinenbauer hält die Mathematik naturgemäß noch immer Rätsel bereit, so auch kürzlich mit dem Ausdruck \( (a)_n \). Mittels Google fand sich schließlich das bis dato noch nie gebrauchte und mir somit gänzlich unbekannte Pochhammer-Symbol. Darauf gestoßen bin ich auf der Suche nach Reihen-Formeln für elliptische Integrale.

Excel bietet diesbezüglich keine eigene Funktion an, weswegen eine Umsetzung mit anderen, vorhandenen Funktionen nötig war. Da sich eine ausführliche Systematik des Symbols auch bei Wolfram Research findet, stand dem nichts mehr im Wege.
Die Parameter \( a \) und \( n \) schreien zumindest für mich förmlich nach einer Matrixformel, die beide gleichzeitig bedienen kann. Leider verweigerte mir die vorhandene Funktion PRODUKT(Zahl1; [Zahl2]; …) dies, da Zahl1 dazu ein Bereich hätte sein müssen, welcher aber bestimmungsgemäß ausmultipliziert wird. Blieb also “nur” die “abgespeckte” Form des Spaltenvektors, wobei auch die Formel in einer einzelnen Zelle als Matrixformel eingegeben werden muss, damit die einzelnen Faktoren für das Produkt erzeugt werden! Das “Umstricken” einer umgekehrten Anordnung sollte für den geübten “Excelianer” kein Problem darstellen.
Für die “Vollversion” musste ich also VBA bemühen und eine Benutzerdefinierte Funktion POCHHAMMER(a;n) programmieren. \( a \) darf dabei eine einzelne Zahl, eine Matrix-Konstante, eine einzelne Zelle oder ein einzeiliger oder einspaltiger Zellbereich sein. Gleiches gilt für \( n \), wobei hier sinnvollerweise ganze Zahlen erwartet würden. Die FOR-Schleife sorgt bei Nichterfüllung aber ohnehin dafür. Die umgekehrte Anordnung kann einfach mit MTRANS(POCHHAMMER(a;n)) bewerkstelligt werden.

Die folgende Datei enthält die Tabellenblätter Formel und UDF, um Obiges nachvollziehbar zu machen. Formel enthält in Spalte C Einzelformeln, der Rest sind Matrixformeln, eine einzige findet sich in UDF:

VERGLEICH mit Sortierung

Die Funktion VERGLEICH hatte ich schon des Öfteren problemlos benutzt, als ein damaliger Kollege um meinen Rat ersuchte, weil augenscheinlich vorhandene Werte einer Liste damit nicht gefunden wurden.
Das genaue Studium der Hilfe offenbarte, dass wir beide offensichtlich bis dahin den optionalen Vergleichstyp nicht einmal ignoriert hatten!
Für mich hatte das deswegen keine Konsequenzen, weil meine Suchen immer in aufsteigend sortierten Matrizen stattfanden. Er aber suchte nach den genau übereinstimmenden Werten, was ohne Angabe von Vergleichstyp=0 nur zufällig funktionieren konnte.

Vor kurzem wurde ich von einem ehemaligen Kollegen konsultiert, der in einer umfangreichen Auswertung wiederum mit VERGLEICH arbeitete und Vergleichstyp nicht angegeben hatte. Bezüglich seiner Fragestellung spielte das schlussendlich nur eine vernachlässigbare Rolle.
Aber es ergab sich für mich die Frage, warum VERGLEICH die Sortierung nicht gleich selbst “intern” erledigt, wenn man den Vergleichstyp als “1 oder nicht angegeben” oder “-1” festlegt. Da ohnehin “nur” die relative Position des gefunden Wertes in der Suchmatrix ausgegeben wird, bräuchte es dazu doch keine “externe” Sortierung?!

Mit dem vor kurzem veröffentlichten Quicksort drängt sich diese Lösung nun fast auf. Und so entstand nun die Benutzerdefinierte Funktion MATCH2(Suchkriterium;Suchmatrix;[Vergleichstyp]), die sich völlig identisch wie VERGLEICH verhält, aber gegebenenfalls eine interne Sortierung vornimmt. In gewohnter Manier ist auch MATCH2 für Matrixformeln (Arrayformeln) konzipiert!
Im Sinne einer kompakten Lösung wurden die Function MATCH2 als auch die Subroutine QUICKSORT4MATCH2 in einem Modul basMATCH2 untergebracht.
Die folgende Datei demonstriert die zusätzlichen Fähigkeiten von MATCH2:

Winkel zwischen Vektoren

Für die Berechnung des Winkels zwischen Vektoren wird die Umformung des Skalarprodukts \( \vec a \cdot \vec b = \vert \vec a \vert \vert \vec b \vert cos∢( \vec a, \vec b ) \) verwendet: \[ \varphi = \arccos \frac { \vec a \cdot \vec b } { \vert \vec a \vert \vert \vec b \vert } = \arccos \frac { a_1 b_1 + a_2 b_2 + a_3 b_3 } { \sqrt {a_1^2+a_2^2+a_3^2} \sqrt {b_1^2+b_2^2+b_3^2} } \]
Die dafür zur Verfügung stehende Excel-Funktion ARCCOS liefert den Arkuskosinus im Bogenmaß (Radiant) im Wertebereich von 0 (Null) bis \( \pi \) (Pi).
Damit lässt sich aber eine mir immer mal wieder gestellte Frage nicht eindeutig beantworten: “Um welchen Winkel muss man einen Vektor \( \vec a \) drehen, damit er zu einem Vektor \( \vec b \) gleichrichtet ist?”
ARCCOS liefert immer den eingeschlossenen Winkel zwischen 0 und 180°, auch wenn es der Implementwinkel (Ergänzungswinkel auf 360°) wäre. Das ist dem Kommutativgesetz geschuldet, welchem das Skalarprodukt gehorcht: \( \vec a \cdot \vec b = \vec b \cdot \vec a \).

Ein für die Fallunterscheidung notwendiger Indikator ist die y-Komponente des Vektors \( \vec b \) nach der gemeinsamen Drehung des Vektors \( \vec a \) in die z-x-Ebene. Bei \( b_y^\prime<0 \) ist der gesuchte Winkel nämlich der Implementwinkel. Das Minus für die Subtraktion liefert die Funktion VORZEICHEN (Sgn in VBA), wobei \( b_y^\prime=0 \) noch abgefangen werden muss, weil in diesem Fall 1 und nicht 0 gelten muss.

Die folgende Datei zeigt die Umsetzung “Schritt für Schritt” umfänglich mittels Drehmatrix zur Drehung um die z-Achse.
Für die Formeln ist dies nicht nötig, da nur die y-Komponente des gedrehten Vektors \( \vec b \) benötigt wird. Die “Formel ohne Zellbezüge” enthält die Berechnung von \( b_y^\prime \) 3 Mal, was die “Formel mit Namenbezug” mittels eines Namens erledigt.
Die Benutzerdefinierte Funktion VECTORANGLE(VektorA;VektorB) kann mit Zellbezügen und Matrixkonstanten umgehen und via VBA aufgerufen werden. Sie kann als Matrixformel (Arrayformel) angewendet werden, wobei Zeilenvektoren Voraussetzung sind. Spaltenvektoren müssen mittels MTRANS passend gemacht werden. Der 2-dimensionale Fall ist abgedeckt, indem die z-Koordinate als 0 angenommen wird:

Quicksort

Ob ich mit Quicksort während meiner Ausbildung jemals direkt Bekanntschaft geschlossen habe, ist mir nicht mehr erinnerlich, in der Praxis reichte mir jedenfalls immer Bubblesort.

Rückblickend ist es nicht verwunderlich, dass das Sortieren mittels Bubblesort in VBA stets zufriedenstellend ablief. Offensichtlich deswegen, weil immer nur kleine Auflistungen vorkamen, was nie zeitkritisch war.
Dann aber kam ein Array mit zehntausenden Elementen, das Stunden dafür abverlangte. Insbesondere deswegen, weil nach bis zu 3 Kriterien sortiert werden konnte, der Algorithmus somit auch entsprechend oft aufgerufen wurde!

Nicht wissend, ob denn Quicksort die für meine Bedürfnisse beste Methode sei, wurde Google bemüht. Über Sortieralgorithmen findet sich überraschend viel, wahrscheinlich das tägliche Brot vieler “Listenverarbeiter”. Die vertiefte Suche ergab, dass Quicksort als der schnellste Sortieralgorithmus in der Praxis gilt!

Leider konnte ich keine fertige Lösung finden, die alle meine Anforderungen erfüllte:

  • Eine Benutzerdefinierte Funktion für das Tabellenblatt, die auch vom VBA-Code aufgerufen werden kann
  • Eine rekursive Prozedur, die direkt von VBA-Code aufgerufen werden kann
  • Ausgabe der Ergebnisse in Abhängigkeit vom Aufrufer, d. h. Ausgabe in Spalte oder Zeile eines Tabellenblattes bzw. Zeilenvektor für VBA

Für die Umsetzung nahm ich Anleihen bei Microsoft und Online-Excel.

Die Benutzerdefinierte Funktion QUICKSORT(Matrix;[Absteigend = FALSCH]) erwartet eine einspaltige oder einzeilige Matrix, die gemäß der optionalen Sortierreihenfolge sortiert wird. Fehlt diese, dann wird aufsteigend sortiert. Wahrheitswerte werden numerisch verarbeitet, wobei WAHR (= 1) als True (= -1) einsortiert wird! Die Funktion muss als Matrixformel (Arrayformel) eingegeben werden.
In VBA kann die von QUICKSORT rekursiv aufgerufene Prozedur QUICKSORT4VBA(Matrix;[Absteigend = FALSCH]) direkt benutzt werden.

Die folgende Datei zeigt neben Quicksort auch noch die Möglichkeit, numerische Werte mittels der Funktionen KLLEINSTE und KGRÖSSTE zu sortieren:

Parametrische Spline-Interpolation

Eine Spline-Interpolation, wie ich sie in Kubischer Spline veröffentlicht habe, hat den Nachteil, dass die Werte auf der Abszisse streng monoton steigend sein müssen. Schon im Falle eines einzigen übereinander liegenden Paares versagt die dort angewendete Mathematik wegen unendlicher Steigung. Die Lösung ist die Einführung eines Parameters. Angeregt von Professor Scheibls Spline-Interpolation im 2D wurde also die benötige tridiagonale Matrix auf Ordinate und Abszisse angewendet. Alle dafür nötigen Berechnungen wurden, soweit sie auf dem Tabellenblatt nicht notwendigerweise ersichtlich sein müssen, mittels Namen umgesetzt. Die Begrenzung eines Namens auf 255 Zeichen erzwang für Matrix und beide Vektoren eine entsprechende Aufteilung. Matrix “M” und Vektor “V” nutzen für die Funktion INDEX (vorteilhaft nicht volatil und als Bezugsversion verwendet) das “very hidden” Tabellenblatt “X”, damit bei einem eventuellen Umbau wegen gelöschter Zeilen oder/und Spalten keine Bezugsprobleme auftreten können.
Im Prinzip handelt es sich um eine Weiterentwicklung von Kubischer Spline mit folgenden Unterschieden:

  • x-Werte können nun beliebig gewählt werden
  • Für einen “runden” Verlauf im Diagramm sorgt jetzt die dafür erweiterte benutzerdefinierte Funktion SPLINE(X_Werte; S_Werte; Xs_Werte; Ss_Werte; [n_ZW]). Xs_Werte und Ss_Werte sind die Ableitungen nach dem Parameter, die via Namen berechnet werden.
  • Die Abfrage kann jetzt wahlweise für x- oder S(x)-Werte durchgeführt werden
  • Die Werte dafür werden von der benutzerdefinierten Funktion SPLINE_VAL(x; Sx; xs; Ssx; Wert; [Art]; [Aufsteigend]) geliefert. Wert ist die Basis der Abfrage, mit Art (optional mit Default = “x”) und aufsteigender Sortierung (optional mit Default = WAHR).
  • Für den Typ “periodisch” werden nun gleiche Ordinaten und Abszissen der Endpunkte vorausgesetzt, d. h. eine Bedingte Formatierung streicht die Wahl bei Nichterfüllung durch.

Der Vorteil eines parametrischen Splines wird beispielhaft sehr schön anhand einer verschlungenen geschlossen Figur gezeigt. Die Microsoft’sche Methode des Glättens kommt in solchen Fällen leider noch schlechter weg! Das Eck bei geschlossenen Figuren lässt sich überdies nur durch Tricksereien über eng benachbarte Punkte vermeiden.
Natürlich wäre es unsinnig zu erwarten, dass diese Methode bei sehr vielen Punkten angewendet werden würde! Aber dafür dürfte ich aus heutiger Sicht schon ein deutlich einfacheres und trotzdem funktionierendes Prinzip für eine Näherung mit den zwei Nachbarpunkten gefunden haben.
Bis zu dessen Veröffentlichung wünsche ich viel Freude mit der folgenden Datei:

PS: Die beim Öffnen auftretende Fehlermeldung ist scheinbar unvermeidlich.

Kubischer Spline

Eine substantielle Verbesserung der Option “Linie glätten” (engl. “Smoothed line”), der ich mich immer noch widme, hängt an einer Modifikation der Definition der Steigung. Dass diese insbesondere an den Enden verbesserungswürdig ist, habe ich in Linie glätten 3 dargelegt. Die Straklatte stellt für mich dafür den Idealfall dar. Wenn man dies für eine Funktion erfüllen will, dann drängt sich der kubische Spline förmlich auf!
Bei meinen Recherchen traf ich auf Arndt Brünners Kubische Splines. Erklärung und Herleitung haben mich gefesselt! Der Rechner als Java-Applet lädt zum Spielen ein, wobei augenscheinlich deutlich wird, dass die Veränderung jedes Punktes logischerweise Auswirkungen auf den gesamten Spline hat. Der Einfluss ebbt allerdings mit der Entfernung deutlich ab. Es könnte also sehr wohl zielführend sein, “nur” die beiden unmittelbaren Nachbarpunkte zur Definition der Steigung heranzuziehen. Im Gegensatz zu Microsoft nehme man aber nicht den “simplen” Richtungsvektor durch diese beiden Punkte, sondern einen “viferen” kubischen Spline, der durch die 3 Punkte die simpelste Variante einer Straklatte darstellt.
Professor Brünner hat den natürlichen Spline umgesetzt, der in den Endpunkten die Krümmung = 0 aufweist, wobei er beliebige Eingaben der 2. Ableitung offeriert. Ich wollte aber auch Steigungen vorgeben können, was zum vollständigen Spline führt. Überdies wäre es für den periodischen Fall nötig, dass die Endpunkte gleiche 1. und 2. Ableitung aufweisen.
Die folgende Excel-Datei enthält die Berechnung eines kubischen Splines für bis zu max. 52 Knoten {x, S(x)}. Die Restriktion galt für Matrix-Funktionen (z. B. MINV) bis Version 2003. Wer mit 2007 ff. werkt, kann das einfache Prinzip relativ leicht erweitern: Die Steigungen S'(x) an den Knoten ergeben sich als Vektor zufolge Multiplikation einer invertierten tridiagonalen Matrix mit einem Vektor. Das Funktionieren der Matrix- und Vektor-Formel bedingt dabei, dass bezogene Werte und die Formeln selbst nicht in der 1. Zeile beginnen!
Neben diesen ausgeblendeten Spalten findet sich die Auswahl des Typs: natürlich, vollständig und periodisch. Je nach Typ können S'(x) oder S”(x) festgelegt werden. Die Wahl von “periodisch” führt zu gleichen 1. und 2. Ableitungen und damit zu identischer Steigungen und Krümmungen. Im Falle unsinnigerweise ungleicher Ordinaten der Endpunkte wird diese Wahl mittels Bedingter Formatierung durchgestrichen.
Die Anzahl der Zwischenpunkte kann ausgehend von 0 (deckungsgleich mit geglätteter Linie) so eingestellt werden, dass der durch eine benutzerdefinierte Funktion SPLINE(X_Werte; S_Werte; Ss_Werte; [n_ZW]) realisierte Verlauf “rund” wird. X_Werte (Abszisse) und S_Werte (Ordinate) sind die vorgegebenen Knoten, Ss_Werte die errechneten Steigungen und n_ZW (optional mit Default = 0) die Anzahl der Zwischenpunkte.
Darunter können S(x), S'(x) und S”(x) für einen beliebigen x-Werte abgefragt werden. Das Diagramm zeigt sehr schön den Unterschied zwischen Microsoft’scher Methode und kubischem Spline, insbesondere die gekünstelt wirkende Dämpfung durch das Glätten, von den hässlichen Enden gar nicht zu sprechen. Für erste Spielereien sind die Ordinaten Zufallszahlen, die mit F9 zum Leben erweckt werden können:

PS: Die beim Öffnen auftretende Fehlermeldung ist scheinbar unvermeidlich.

Bolzen-Verdrehsicherung

Sind Bolzen höher belastet oder/und schmierbar ausgelegt, dürfen sie sich im Allgemeinen nicht verdrehen. Einerseits sollen die Schmierbohrungen nicht im Pressungsbereich zu liegen kommen, andererseits darf die Kerbwirkung dieser Bohrungen nicht in die höchstbelasteten Randfasern gelangen. In der Praxis finden sich, abgesehen vom klassischen Achshalter, die unterschiedlichsten Lösungen, oftmals mit Schweißungen und Bohrungen, die nachteilig für die (Dauer-)Festigkeit sind. Viele Ausführungen könnten als quasi Werknormen betrachtet werden, denen man die Vorlieben und Möglichkeiten früherer (eigener) Fertigungsmöglichkeiten ansieht! Die vorgeschlagene Ausführung der Bolzen-Verdrehsicherung geht – angenähert durch einfache Kreisbögen – vom Prinzip der geschlossenen Epizykloide und Hypozykloide (Hypotrochoide) aus. Deren Verwandte in Form des Innensechsrunds (Torx) und der Polygonprofile sind bekannt. Es liegt also ein mehrfacher Formschluss vor, der gedrungen bleiben kann und somit wenig Zerspanungsvolumen nach sich zieht, wobei obig erwähnte Schweißungen und Bohrungen samt deren Nachteilen entfallen. Die Ausführungsmöglichkeiten wurden bereits umfangreich mittels Excel (Optimierung via Solver) und CAD beleuchtet. Dies und Prinzip-Skizzen samt mathematischer Herleitungen können zur Findung einer bestmöglichen Ausführung zur Verfügung gestellt werden.

Obiges ist die Beschreibung eines am 18.01.2017 ans ASI übermittelten Projektantrags, dem folgendes Schicksal beschieden war:
“Das Komitee 029 hat in seiner 629. Sitzung, am 21. Juni 2017 folgendes bzgl. Ihres Projektantrages beschlossen: Da dieses Normprojekt derzeit keine Marktrelevanz aufweist und sich auch keine weiteren Stakeholder für eine Beteiligung an der Mitwirkung eines derartigen Normprojektes während der Einspruchsphase gemeldet haben, ist das Komitee 029 der Meinung, dieses Vorhaben nicht zu starten. Es wird daher einstimmig beschlossen, den Projektantrag nicht in das Arbeitsprogramm aufzunehmen und daraus folgend kein Normprojekt zu starten.”

Da die “Beschreibung, was sein würde, wenn die Norm/ONR nicht er- oder überarbeitet wird” lautet: “Dann würde ich meine Erkenntnisse als bereits vorliegende Excel-Berechnungen auf meiner privaten Homepage www.excelution.at präsentieren.”, biete ich für Interessenten 2 Downloads an:

Die Excel-Datei enthält, ausgehend von der einst selbst entwickelten singulären Parabel, die mehrfachen Zykloiden und deren Vereinfachungen, wobei der Sonderfall als “einfachste” Form auch für die optimierte Auslegung zur Verfügung steht:

Die STEP-Baugruppen-Datei beinhaltet dazu alle 5 Varianten, wie sie in der Excel-Datei optimiert wurden. Die Ausführung ist dabei die – zumindest für mich – denkbar einfachste, da die Verdrehsicherung zugleich die Aufgabe der Lagerung übernimmt (Dicke t muss entsprechend erhöht werden) und der Kopf durch einen Sprengring nach DIN 5417 für Wälzlager gemäß DIN 616 gebildet wird. Wenn die dafür erforderlichen Toleranzen nicht (wirtschaftlich) umgesetzt werden können, oder ein (fixer) größerer Kopf benötigt wird, dann braucht es eine entsprechende Aufgabenteilung:

Durchschnittssaldo-Monatsplaner

Für ein Konto mit Mindest-Durchschnittssaldo habe ich zur Abschätzung – mittlerweile für verschiedene Perioden – die Excel-App Durchschnittssaldo veröffentlicht.
Der überwiegende Teil der Buchungen dürfte jedes Monat bezüglich Zeitpunkt und Höhe ziemlich regelmäßig sein. Somit wäre es aber auch möglich, schon am Anfang des Monats zu wissen, welcher Kontostand zu einem ausreichend hohen Durchschnittssaldo an dessen Ende führen würde!
Ausgehend von diesem Kontostand könnte über Ein- und Auszahlungen für jeden Tag der laufende Durchschnittssaldo exakt berechnet werden. Über die Zielwertsuche wäre dieser dann wie gewünscht wählbar. Bankfeiertage sollten sich dabei durch Wahl des Jahres und des Monats von selbst einstellen, damit man Buchungen gegebenenfalls passend verschieben kann. Eine grafische Darstellung darf natürlich auch nicht fehlen!
Die angebotene Excel-App enthält dies alles, wobei für die Berechnung des Ostersonntags (bis einschließlich 8.702 😉 ) 2 alternative Lösungen umgesetzt wurden: Mittels Namen und Benutzerdefinierter Funktionen in eigenen Tabellenblättern. Die Füllfarben für Sams-, Sonn- und Feiertage ergeben sich durch Bedingte Formatierungen. Die Vorgehensweise sollte so selbst erklärend sein, dass Nicht-Österreicher ihre Feiertage auf eine der 2 Arten leicht implementieren können.