Experimente mit Kuramoto Oszillatoren

vorhergehende Artikel in: Chaos Java Numerik
22.03.2022

Angeregt durch einen Artikel auf Arxiv im letzten Jahr recherchierte ich ein wenig und stieß auf viele Diskussionen von Kuramoto Oszillatoren im Internet - so viele, dass ich auch damit experimentieren wollte.

Dieser Artikel ist zwar unter Chaos eingereiht - treffender müsste man ihn allerdings unter "Emergenz" oder "Selbstorganisation" fassen. Bei meinen Versuchen stellte sich heraus, dass man mit den richtigen Parametern nicht nur die ursprüngliche Art der Synchronisierung erreichen kann - näheres dazu weiter unten...

Ich begann mit dem ursprünglichen Standard-Modell

Dieses Modell beschreibt die Phasenänderung eines jeden Oszillators abhängig von seiner Eigenfrequenz und der durch die Kopplungskonstante modulierten Einflüsse aller anderen Oszillatoren im System.

Anschließend modifizierte ich die Gleichung so, dass die Einflüsse der anderen Oszillatoren nur noch regional und nicht mehr global wirksam wurden:

Dabei ist zu beachten, dass die eindimensionale Anordung von Oszillatoren als Ring verstanden wird - sonst würden auf die Oszillatoren am rechten und linken Rand weniger Einflüsse von ihren Nachbarn wirken.

Diese "Box"-Nachbarschaft variierte ich anschließend noch ein wenig wie folgt:

Wobei galt:

Und die Gewichte selber durch entsprechende Funktionen über den Abstand der beiden Oszillatoren i und j bestimmt wurden - wieder wurde hier von der Topologie eines Rings für die Kopplung der Oszillatoren ausgegangen.

Als Funktionen für die Gewichte wurden die (vereinfachte) Gauss-Verteilung

und das Ricker-Wavelet betrachtet:

Dabei ist wieder zu beachten, dass im Argument der Funktionen der Abstand der beiden Oszillatoren auf dem Ring gemeint ist.

Für diese Untersuchungen wurde die Erstellung einer GUI nötig, mit der ich die Parameter der Gewichtsfunktionen, die Gewichtsfunktion selbst und den Kopplungsfaktor variieren und den Einfluss auf die Phasen der Oszillatoren beobachten konnte. Für den eindimensionalen Fall sah ein erster Entwurf der GUI wie folgt aus:

Screenshot GUI für die Experimente mit Kuramoto-Oszillatoren in einem eindimensionalen Ring

Interessant fand ich bei diesen Experimenten die Tatsache, dass es bei der Benutzung der Formel des Ricker-Wavelets für die Bestimmung der Gewichte mit denen benachbarte Oszillatoren einander beeinflussten Werte für dessen Parameter gab, bei dem die Phasen sich nicht synchronisierten, sondern sich (nahezu) äquidistant verteilten - wurde dieser Parameterbereich verlassen, stellte sich wieder die Synchronisation ein - egal, ob der Bereich nach unten oder oben verlassen wurde! Ein Beispiel für eine solche Verteilung der Phasen über den gesamten zur Verfügung stehenden Bereich ist in der obigen Abbildung dargestellt. Dabei war die Stärke des Kopplungsfaktors nahezu unerheblich - bei sehr kleinen Werten dieses Parameters wurde die Kopplung der benachbarten Oszillatoren natürlich unwirksam und damit folgte jeder wieder seiner Eigenfrequenz - allerdings stellte sich die äquidistante Verteilung bereits bei geringer Stärke der Kopplung ein und bleib von da an stabil. Diesseits und jenseits des für die äquidistante Verteilung der Phasen benötigten Wertes für Sigma wirkte sich eine Änderung der Kopplungskonstanten durchaus aus: Je höher deren Wert, desto geringer die Varianz der Phasen zwischen den einzelnen Oszillatoren.

Artikel, die hierher verlinken

Kuramoto in 2 Dimensionen

22.05.2022

Ich habe mich bereits vor einigen Wochen mit diesem System beschäftigt - nun war es an der Zeit, ein wenig zu variieren...

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Keycloak, OTP, FIDO

    11.06.2021

    Ich berichtete neulich über die Installation und erste Tests von Keycloak. Nun bin ich tiefer eingetaucht und habe die diversen Möglichkeiten untersucht, die Authentifizierung mittels zweiten Faktors sicherer zu machen.

    Weiterlesen

Neueste Artikel

  • Performanceverbesserungen in dWb+ 4.4pre2 build 11264

    In meinem letzten Artikel zum Thema dWb+ beschrieb ich ein neues Feature der Lösung - nunmehr wende ich mich einer wichtigen nichtfunktionalen Anforderung zu

    Weiterlesen
  • Flat Notes und Navidrome neu im Docker-Zoo

    Ein weiteres Self-Hosting-Experiment hat zu zwei neuen Diensten in meinem Docker-Zoo geführt...

    Weiterlesen
  • TPM per PKCS#11 in Java-Anwendungen nutzen

    Nach meinen Erfolgen mit einem TPM in der Version 1.2 zur Absicherung von SSH-Verbindungen wollte ich versuchen, seine Funktionalität in Java-Anwendungen zu integrieren...

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.