PLL - Software in Lazarus

Zur Vorstellung von Komponenten und Units für Lazarus

PLL - Software in Lazarus

Beitragvon hpt » 29. Mär 2015, 11:44 PLL - Software in Lazarus

Werte Expterten!
Eine Idee und ein Projekt beschäftigt mich seit einiger Zeit. Ich soll bzw. möchte einen Motor per PLL- in Drehzahl und !Phase! synchronisieren.
Eine Hardware-Lösung mit dem CD4046 habe ich schon getestet. Die Drehzahl ist 750U/min und ein guter Fangbereich ist mit nur einem Kenn-Impuls pro Umdrehung mit besagtem IC nicht ausreichend möglich. Deshalb und auch aus Gründen einer Umschaltung auf eine andere Drehzahl erscheint mir eine Softwarelösung als die geeignetere.
Leider finde ich im www nichts und bitte deshalb um Info, wer sich mit dieser oder ähnlicher Materie schon beschäftigt hat, oder sogar einen Ansatz in Pascal (Lazarus) hat. Es ist sicher eine interessante und spannende, aber für mich nicht lösbare Aufgabe.
Mit besten Grüßen HPT
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 29. Mär 2015, 12:12 Re: PLL - Software in Lazarus

Welchen Phasenkomparator hast du vom 4046 verwendet? Mit dem Phasenkomparator II und richtig dimensioniertem Schlaufenfilter sollte es schon gehen.
Sonst empfiehlt es sich vielleicht einen Frequenz- mit einem Phasenregler zu kombinieren. Die Berechnung ist vermutlich nicht ganz einfach.
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon hpt » 29. Mär 2015, 16:19 Re: PLL - Software in Lazarus

Mich würde aber trotzdem eine Software-Lösung interessieren. Dürfte für µC oder PC sicher kein Problem sein auch Parameter zu verändern um zu sehen, was passiert. Stelle mir vor, dass durch eine Visualisierung Einiges veranschaulicht werden kann und dadurch auch klarer werden könnte, wo Grenzen liegen usw.
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 29. Mär 2015, 16:22 Re: PLL - Software in Lazarus

Wie beabsichtigst du die Motorphase zu erfassen?
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon hpt » 29. Mär 2015, 16:43 Re: PLL - Software in Lazarus

Im Prinzip kommt einmal pro Umdrehung ein Impuls von einem Lichtschranken und als Referenz gibt es einen Synchimpuls (750Hz). Beides kommt am Ende hardwaremäßig, kann aber für Testzwecke mal simuliert werden....
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 29. Mär 2015, 17:17 Re: PLL - Software in Lazarus

Und wie erfasst du die Zeiten? Mit einem PC ist das vor allem auf Windows nicht so einfach oder gar nicht machbar. Und für uP's ist Lazarus ziemlich sicher nicht das geeignete Werkzeug...
750 UPM entspricht etwa 10 Hz, die Regelbandbreite dürfte dann etwa bei 1 Hz liegen, reicht das?
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon hpt » 29. Mär 2015, 18:12 Re: PLL - Software in Lazarus

...ich hätte schon auch die Möglichkeit mit einem Atmegaxx und BASCOM einen Versuch zu starten, aber auch dort findet sich niemand für eine SPLL.
Und wenn ich deine Ausführungen (auch beim gedämpften Zeiger) mir ansehe, denke ich, "das" ist der Experte! Nur - ich wüsste nicht, wie ich an die Sache gehen könnte. Prinzipiell kenne ich die Funktion einer PLL und weiß auch, dass sie in Videorecordern zum synchronisieren der Kopfscheibe eingesetzt wurde. Nur die Algorithmen für eine SPLL sind für mich irgendwo in den Stratosphären....
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 30. Mär 2015, 07:12 Re: PLL - Software in Lazarus

Bitte beschreibe doch mal die Anwendung.
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon hpt » 30. Mär 2015, 10:14 Re: PLL - Software in Lazarus

Ich beschäftige mich mit mechanischem Fernsehen (Nipkow-Scheibe) --> www.traussnigg.com/promef . Das Ziel ist, ein Kopfrad mit 30 Spiegel 750Umin synchron mit dem TV-Signal (1 synch-Imp/Umdrehung) in Phase zu synchronisieren.
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 30. Mär 2015, 10:58 Re: PLL - Software in Lazarus

Wow!
Ich würde eine Geschwindigkeitsregelung mit einer übergelagerten Phasenregelung probieren. Relativ einfach lässt sich eine robuste Geschwindigkeitsregelung mit einem eisenlosen DC-Motor (Minimotor, Portescap, Maxon...) und einer Spannungsquelle mit negativem Innenwiderstand, wobei der Quellenwiderstand = -Ri des Motors ist, realisieren. Die Drehzahl entspricht dann recht genau dem Eingangswert der Spannungsquelle und ist lastunabhängig. Falls du keinen DC-Motor einsetzen kannst, für die PWM-Generierung von AC-Motoren gibt es spezielle Chips und uP's und entsprechende "Evaluation Boards".
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon hpt » 30. Mär 2015, 15:22 Re: PLL - Software in Lazarus

Diesen Vorschlag mit "Geschwindigkeitsregelung mit einer übergelagerten Phasenregelung" würde ich ganz gerne aufnehmen und probieren. Aber dazu fehlt mir wohl die Mathematik. Jetzt solltest du mir aber auch sagen, wo du die überdurchschnittlichen Kenntnisse zur Mathematik - speziell im Bereich digitale Filterung usw. hernimmst. Dieses Gebiet ist ja eher elitär und für mich geheimnissumwittert ...
fG HPT
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 30. Mär 2015, 16:02 Re: PLL - Software in Lazarus

hpt hat geschrieben:Diesen Vorschlag mit "Geschwindigkeitsregelung mit einer übergelagerten Phasenregelung" würde ich ganz gerne aufnehmen und probieren. Aber dazu fehlt mir wohl die Mathematik.

Die Geschwindigkeitsregelung des DC-Motors würde ich mit einer Operationsverstärker-Schaltung realisieren. Dabei wird der Motorstrom gemessen und abhängig davon die Ausgangsspannung erhöht, dies führt zum erwähnten negativen Innenwiderstand und kompensiert den internen Spannungsabfall am Innenwiderstand des Motors. Da die Gegen-EMK beim DC-Motor mit eisenlosem Rotor zur Drehzahl streng proportional ist, resultiert eine gute lastunabhänige Drehzahlkonstanz ohne dass die Drehzahl überhaupt gemessen werden muss.
Wie die Phasenregelung realisiert werden sollte kann ich auch nicht aus dem Ärmel schütteln, da muss man sich einfach hineinknien. Ich würde es vermutlich mit einem uP probieren, aber auch eine analoge Lösung mit dem 4046 ist denkbar, wenn die Geschwindigkeitsregelung die Drehzahl in den richtigen Bereich bringt. Wichtig ist, dass man sich bewusst wird, dass die Phase das Integral der Winkelgeschwindigkeit ist und man dadurch in der Regelschlaufe bereits eine 90° Phasenschiebung hat, die man bei den Stabilitätsbetrachtungen berücksichtigen muss.
Jetzt solltest du mir aber auch sagen, wo du die überdurchschnittlichen Kenntnisse zur Mathematik - speziell im Bereich digitale Filterung usw. hernimmst. Dieses Gebiet ist ja eher elitär und für mich geheimnissumwittert ...
fG HPT

Das ist mein Beruf, ich mache seit vielen Jahren Hard- und Softwareentwicklungen.
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon mschnell » 31. Mär 2015, 12:25 Re: PLL - Software in Lazarus

mse hat geschrieben:Die Geschwindigkeitsregelung des DC-Motors würde ich mit einer Operationsverstärker-Schaltung realisieren.


Man kann durchaus mit dem PWM-Ausgang eines Microprozessors (+Transistoren plus Spule) direkt eine DC/DC-Wandler Schaltung (meist Step-Down Wandler) realisieren. Das Spart Strom und Bauteile.

Für Phasenregelung ("PLL") gibt es jede Menge Literatur. Meist zur Frequenz-Vervielfachung verwendet, hier aber sicher auch anwendbar. Vermutlich muss wegen der Trägheit der Regelstrecke der Regel-Algorithmus zwischen Frequenz- und Phasen-Regelung dynamisch umgeschaltet werden. Wenn ein externer Phasen-Komparator verwendet wird, wird vermutlich zusätzlich Hardware für die Geschwindigkeits-Regelung benötigt, weil ein Phasen-Komparator auf Vielfachen oderr ganzen Teilen der gewünschten Frequenz einrasten kann

Am besten nimmt man aber einen Schrittmotor. Dann stimmen Geschwindigkeit und Phase immer.

-Michael
Zuletzt geändert von mschnell am 5. Apr 2015, 22:40, insgesamt 2-mal geändert.
mschnell
 
Beiträge: 3221
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon mse » 31. Mär 2015, 12:32 Re: PLL - Software in Lazarus

mschnell hat geschrieben:Am besten nimmt man aber einen Schrittmotor. Dann stimmen Geschwindigkeit und Phase immer.
l

Nur bis zum Ausrasten. Hast du dir das Trägheitsmoment der Anwendung angeschaut? ;-)
Zudem bleibt das Problem der Synchronisierung mit einem entfernten Signal bestehen. Es geht hier um eine Nipkow-Scheibe.
mse
 
Beiträge: 1967
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon mschnell » 31. Mär 2015, 12:35 Re: PLL - Software in Lazarus

mse hat geschrieben:Nur bis zum Ausrasten.

Klar. Der Schrittmotor braucht natürlich auch eine Regelung . (Am besten kauft man einen Motor mit Regelung mit CAN-Bus-Interface von Lenze :D )

-Michael
mschnell
 
Beiträge: 3221
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried