PLL - Software in Lazarus

Zur Vorstellung von Komponenten und Units für Lazarus

Re: PLL - Software in Lazarus

Beitragvon hpt » 5. Apr 2015, 10:18 Re: PLL - Software in Lazarus

.... leider ist es nicht so trivial wie es mschnell beschreibt. Ich suche eigentlich nur nach einem Algorithmus für eine PLL (DPLL). Stellen würde ich mit PWM. Anpassen, umschalten und anwenden möchte ich dann schon selbst versuchen (zumindest versuchen).
Wie und was ich so im www gesehen habe, ist schon ein Stück Mathematk notwendig, aber allzu viel gibt es nicht zu finden. Obwohl man von einer PLL-Regelung für Motore lesen kann, eine Anwendung die läuft, habe ich jedoch noch niergends entdecken können!
Frohes Osterfest HPT
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon Horst_h » 5. Apr 2015, 18:50 Re: PLL - Software in Lazarus

Hallo,

was unterscheidet deine PLL von einer Regelstrecke mit Ausgleich auf Abweichung 0.
Also PI oder PID- Regler.
Wenn Deine Lichtschranke 12,5 Impulse/s macht, könntest Du die Impulse mit einem Monoflop so formen das ein ImpulsPause Verhältnis von 50/50 besteht. Also 40 ms Impulslänge.
Den Impuls an einen Integrator und man hat 0.5 Ub bei der richtigen Drehzahl.
Wenn dass erreicht ist, erzeugt man selbst das phasenrichtigen signal und logisch undiert sie mit tatsächlichen Impulsen, bei Phasenverschiebung ist Puls entsprechend verkürzt bei 180 Grad sogar 0.
Den Monoflop kann man leicht digital erzeugen: Bei Impulseingang läuft ein Timer entsprechend lang T_mono.Ein anderer Timer misst die Zeit zwischen zwei Impulsen T_mom.
Für die Drehzahl braucht es nur T_mom, denn T_mono ist konstant.
Für die Phase braucht es nur die Zeit von t_richtig bis t_impuls, die man zu 0 machen möchte.

Der rotierende Spiegel scheint ja eine sehr große Massenträgheit gegenüber dem Motor zu haben, gleichzeitig braucht es nur geringe Antriebsleistung, das wird dann sehr träge.
Vielleicht sollte man mal experimentell versuchen, bei welchem Strom der Motor die Drehzahl von 750 U/min hält.Dann könnte man erst mit diesem oder etwas höherem Strom das ganze erst einmal anfahren lassen bis man in die Nähe der Wunschdrehzahl kommt.

Gruß Horst
Horst_h
 
Beiträge: 56
Registriert: 20. Mär 2013, 08:57

Beitragvon mschnell » 5. Apr 2015, 22:52 Re: PLL - Software in Lazarus

Genau: Erst Frequenz (Drehzahl) Regelung. Wenn die genau genug stimmt auf Phasen-Regelung umschalten

Drehzahl-Regelung: Eingang; Drehzahl-Abweichung, also Drehzahl zunächst messen und dann (Soll - Ist) ausrechnen. Wenn das Signal, zu dem der Motor synchronisiert werden soll, keine konstante Frequenz hat, beide Drehzahlen messen und von einander abziehen. Darauf dann sinnvoller Weise eine PID-Regelung mit einstellbarem P, I und D Parametern P1, I1, D1.

Phasen-Regellung: die Phasendifferenz (proportional zum Winkel, läuft vor >0, läuft nach <0) messen und auf "0" ausregeln. Darauf dann sinnvoller Weise wieder eine PID-Regelung mit einstellbarem P, I und D Parametern P2, I2, D2.

Finde ich übrigens logisch, aber überhaupt nicht trivial. Und dann noch die 6 Parameter sinnvoll einstellen ... !

Ob Die notwendigen Zeit-Messungen mit Usermode - Software zuverlässig genug gemacht werden können ist auch so eine Frage.

-Michael
Zuletzt geändert von mschnell am 7. Apr 2015, 09:11, insgesamt 2-mal geändert.
mschnell
 
Beiträge: 3215
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 hpt » 6. Apr 2015, 18:55 Re: PLL - Software in Lazarus

.... hört sich alles ganz gut an.
Ich habe natürlich auch ähnliche Experimente gemacht. Die Drehzahl sollte kein Problem sein, aber mit der Phasenregelung, hat es so seine Tücken! Denn wenn das Bild einmal drüberläuft (über 0) braucht es eine Weile, bis es wieder synchronisiert. Diese Effekte sind bei TV total unbrauchbar. Wünschen würde ich mir ein Einrasten wie bei einer PLL und dann auch das Halten! Mich würde einfach interessieren, wie das in Software zu lösen ginge. Unter DPLL gäbe es ja einige Infos im www aber für mich nicht umsetzbar. Wissenschaft ist für mich eine Wissenschaft, wenn sie Wissen schafft, ohne zu viel Wissenschaft.
mfG HPT
hpt
 
Beiträge: 48
Registriert: 26. Jul 2014, 17:45
OS, Lazarus, FPC: Lazarus | 
CPU-Target: 32Bit
Nach oben

Beitragvon mse » 7. Apr 2015, 07:27 Re: PLL - Software in Lazarus

hpt hat geschrieben:Die Drehzahl sollte kein Problem sein, aber mit der Phasenregelung, hat es so seine Tücken! Denn wenn das Bild einmal drüberläuft (über 0) braucht es eine Weile, bis es wieder synchronisiert.

Da vermute ich, dass auf der Sollphase ein Sprung von 0 auf max geschieht. Falls dem so ist, sollte die Fehlerberechnung so angepasst werden, dass der Fehlerwert im Bereich der Sollphase stetig ist, also von positiven Werten über 0 zu negativen Werten.
mse
 
Beiträge: 1900
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 » 7. Apr 2015, 09:17 Re: PLL - Software in Lazarus

hpt hat geschrieben: Wünschen würde ich mir ein Einrasten wie bei einer PLL und dann auch das Halten!


"Einrasten" ist bei einer PLL kein Bestandteil der Regelung, sondern ein zusätzliche Ausgangs-Signal, das bedeutet, dass die Regel-Abweichung klein genug ist, dass man annehmen kann, dass es "unter normalen Umständen" nicht passieren wird, dass die Phasen-Abweichung das Vorzeichen wechselt.

Ein "Halten" bedeutet, dass die Regel-Abweichung "unter normalen Umständen" sehr nahe bei 0 bleibt. Hierzu müssen die Regel-Parameter P2, I2, D2 einfach klein genug sein.

hpt hat geschrieben:Denn wenn das Bild einmal drüberläuft (über 0) braucht es eine Weile, bis es wieder synchronisiert.
Wenn das passiert, funktioniert die Phasenregelung nicht. (D.h. sie rastet nicht ein - siehe oben). Das kann diverse Gründe haben:

- Die Regelung schwingt, weil die P2, I2, D2 Parameter nicht so gewählt sind dass die Regel-Schwingung ausreichend bedampft wird.
- Es wurde zu früh von Frequenz auf Phasenregelung umgeschaltet
- Die Regelstrecke (Aktuator -> Prozess -> Messung) ist technisch so instabil, dass eine Phasenregelung schlicht nicht möglich ist.

Besonders ärgerlich ist natürlich, wenn einfach die Messung nicht sauber funktioniert. Bei einer Software-Regelung kann das natürlich leicht passieren, weil bekanntermaßen ein normales Betriebssystem die Reaktion eines User-Programms beliebig lange verzögern und damit eine Messung beliebig verfälschen und/oder die Regel-Reaktion beliebig lange aufhalten kann. Was natürlich auch Auswirkungen auf die Integral- und Differential-Berechnung der PID-Reglung hat.

-Michael
mschnell
 
Beiträge: 3215
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

• Themenende •
Vorherige

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried