Frequenz verlangsamen

#3770012
Lesenswert?

Hallo.

Mal wieder eine Frage. Ich möchte einer Regelung einen Drehzahl Schlupf 
vorgaukeln. Die Regelung treibt einen 3-phasigen Motor an. Dieser 
generiert je nach Drehzahl eine Frequenz, bei der 1kHz etwa 10.000 rpm 
entsprechen. Ich habe die Drehzahl direkt aus dem Regler abgegriffen und 
für diese an den Sensor Eingang das Reglers. Somit ist Drehzahl_Soll 
immer gleich Drehzahl_Ist.

Nun regelt aber die Regelung nicht, da sie ja keinen Bedarf erkennt. Um 
nun Last zu erzeugen wäre es schön einen Schlupf aus der bereits 
entnommenen Frequenz zu erzeugen.

Ich habe versucht mittels RC-Glied und Schmitt-Trigger etwas zu 
erzeugen, jedoch hilft mir das verzögern des Signals nicht weiter.
Die Frequenz muss sich ändern. Vielleicht ein halbes Prozent unterhalb 
der eingehenden Frequenz.
Ist das in analoger Schalttechnik machbar?
Oder muss ein µC dazu bemüht werden?

Vielen Dank schonmal

Dennis
#3770198
Lesenswert?

Eine Frequenz einfach so etwas nach oben oder unten zu verschieben ist 
nicht so einfach. Das geht im Prinzip mit multiplizierenden Mischern. 
Damit bekommt man die Summe und Differenz aus den beiden beteiligten 
Frequenzen.
Über Phasenschieber, 2 Mischer und einen Addieren kann man auch nur die 
Summe bekommen.

Die Umsetzung ist bei 1 KHz ggf. einfacher digital als Analog. Das hängt 
aber auch von der Art der Signale ab, die man bekommt bzw. benötigt.
Gast #3771529
Lesenswert?

Und wie wandelst du mit dem die Frequenz in eine Spannung?
Wenn du möglichst wenig zusätzliche Beschaltung haben willst nimm nen 
µC.
Mit dem machst du dann ne Frequenzmessung per Input Capture, rechnest 
nen Offset drauf und gibst per Output Compare die neu errechnete 
Frequenz aus.
Da dich die absolute Frequenz nicht interessiert kommst du auch ohne 
Qurz aus und brauchs den µC nur mit ner stabilen Spannung zu versorgen.
Den offset kannst du dann mit nem Poti per ADC oder über UART 
einstellen.
Gast #3771595
Lesenswert?

uwe schrieb:
> Wenn du möglichst wenig zusätzliche Beschaltung haben willst nimm nen
> µC.
> Mit dem machst du dann ne Frequenzmessung per Input Capture, rechnest
> nen Offset drauf und gibst per Output Compare die neu errechnete
> Frequenz aus.
> Da dich die absolute Frequenz nicht interessiert kommst du auch ohne
> Qurz aus und brauchs den µC nur mit ner stabilen Spannung zu versorgen.
> Den offset kannst du dann mit nem Poti per ADC oder über UART
> einstellen.

Das hatte ich bereits in meinem obigen Link vorgeschlagen.
Ist vielleicht aber doch zu kompliziert, eine Schaltung einfach 
nachzubauen.
#3785177
Lesenswert?

Hi,

also ich finde die Idee mit dem µC am besten.
Ich werde diese auch für einen 2ten Aufbau nutzen.

Im ersten Aufbau ist anhängte Schaltung verbaut, da sie schon läuft und 
ich alle Teile da hatte, ging es so am schnellsten...

Dennoch vielen Dank.

m.n. schrieb:
> Das hatte ich bereits in meinem obigen Link vorgeschlagen.
> Ist vielleicht aber doch zu kompliziert, eine Schaltung einfach
> nachzubauen.

Nein ist es nicht. Finde auch die anderen Schaltungen auf der Seite sehr 
interessant und habe schon ein paar Anwendungen dafür...
Nochmals danke dafür.
Angehängte Dateien:
#3789827
Lesenswert?

Hallo nochmal,

ich baue nun die 2te Ausführung und nutze den Frequenzwandler mit dem 
µC.

Funktioniert auch soweit. Jetzt möchte ich allerdings keine starre 
Frequenz ausgeben. Bzw keine starre Änderung der eingehenden Frequenz.

Also habe ich an ADC0 ein Poti angeschlossen und den festen Faktor der 
Frequenz durch eine Variable ersetzt.
Die Variable kommt vom ADC. Nur nimmt er immer noch einen starren Faktor 
bei der Ausgabe der neuen Frequenz. Vielleicht kann mal einer drüber 
schauen, ob der Code so stimmt.

float frequenz_faktor ist die berechnete variable
uint_16 potentiometer ist die Variable, die aus ADCW ausgelesen wird

Die Rechnung

frequenz_faktor = 1.000+(potentiometer/1024*0.3)-0.15;

soll mir einen Wert zwischen 0.85 und 1.15 liefern. (+- 15 Prozent)

Der ADC sollte im Free Running Mode laufen und über die ISR(ADC_vect) 
den Wetr potentiometer aktualisieren.

Ach ganz unten bei der Berechnung der neuen Frequenz muss dann natürlich 
frequenz * frequenzfaktor stehen.
Nicht frequenz * 1
Angehängte Dateien:
Gast #3789836
Lesenswert?

Hallo,

evtl. kommt bei

frequenz_faktor = 1.000+(potentiometer/1024*0.3)-0.15;

immer 0.85 raus?
Das liegt daran, daß potentiometer/1024 in Integer gerechnet wird und 
deshalb immer 0 ergibt, Nachkommastellen werden ja einfach 
abgeschnitten...

Abhilfe wäre typecast:

frequenz_faktor = 1.000+((float)potentiometer/1024.0*0.3)-0.15;

Ahoi, Martin
Gast #3789949
Lesenswert?

Dennis K. schrieb:
> Und wie ändere ich diese Tatsache?
>
> Ein typecast hat wie gesagt nichts gebracht.

Ich weiß ja nicht, was Du wo eingetippt hast. Mit irgendwelchen Tests in 
irgendwelchen Simulatoren kann ich nichts anfangen.
Mir selber fehlt die Zeit, Deine angedachte Schaltung zu testen.

Aber es ist nicht ersichtlich, warum der ADC freilaufend per Interrupt 
abgefragt wird. Es reicht völlig an der Stelle: frequenz = frequenz * 
frequenz_faktor den Faktor zuvor in main() zu ermitteln.

Rund um das von Dir angepaßte Programm finden sich andere Programme, bei 
denen ein Poti ganz entspannt eingelesen, gefiltert und verrechnet wird.
Die entsprechende Anpassung solltest Du doch hinbekommen.
#3789985
Lesenswert?

Den Interrupt freilaufend per Interrupt abzufragen erschien mir die 
einfachste Möglichkeit. Da das Hauptprogramm mit messen beschäftigt ist, 
wollte ich nicht auf die Wandlung des ADCs warten.

Außerdem wird die Main nur einmal ausgeführt. Dann hängt er in der for 
schleife und wird nur durch Interrupts unterbrochen.

Aber dann ein anderer Ansatz...

Ach ja, noch eine Frage:

m.n. schrieb:
> Dann laß uns das mal übersetzen:
> 1062836634 -> 0x3f59999A -> 0.85

Wie wurde das umgerechnet?
Gast #6260129
Lesenswert?

Martinhirschhuber schrieb:
> Ok wo bekomme ich das teil haben Sie einen shop oder eine webseite
> für mich ?

Evtl. gibt es bei eBay fertig aufgebaute kleine Boards. Ansonsten selber 
bauen. Entweder mit CMOS Bauteilen oder noch besser altmodisch und 
störungssicher (wegen Sähmaschine) mit zwei Transistoren.

Beitrag "Re: wie viele Transistoren braucht ein D-FF"
Gast #6260391
Lesenswert?

Ja genau

Das signal bewegt sich von 1,08v - 4,56 v sprich ( high - low )

Von wenig geschwindigkeit 2,0 hrz
Bis max geschwindigkeit 700 hrz

Wir brauchen ca 20 % weniger geschwindigkeitssignal wenn wir die volle 
geschwindigkeit haben

 Also von haus aus weniger um im kleinen geschwindikeitsbereich auch 
weniger zu haben

Die steuerung sollte zwischen sensor ( Hallgeber ) und getriebebox 
(steuergerät )

Lg martin
Gast #6263111
Lesenswert?

Bei der Variabilität der Eingangssfrequenz von 2 bis 700Hz funktioniert 
eigentlich nur ein Zähler, der so eingestellt wird, dass der den fünften 
Impuls verwirft. Somit hast Du sauber 20% weniger über den gesamten 
Bereich. Wir wissen aber nicht was die interne Signalauswertung macht. 
Die könnte bei der Unregelmäßigkeit auf Error springen.
Gast #6263273
Lesenswert?

Dieter schrieb:
> Bei der Variabilität der Eingangssfrequenz von 2 bis 700Hz funktioniert
> eigentlich nur ein Zähler, der so eingestellt wird, dass der den fünften
> Impuls verwirft.

Oben habe ich doch ein Programm verlinkt, was das problemlos erledigt. 
Es ist hinreichend kommentiert, aber wenn Du noch Fragen dazu hast: nur 
zu.

> Somit hast Du sauber 20% weniger über den gesamten
> Bereich.

Das Gegenteil ist der Fall. Ich denke, es geht darum, Saatgut in 
gleichen Abständen abhängig von der Fahrgeschwindigkeit einzubringen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren