Forum: Mikrocontroller und Digitale Elektronik Frequenz verlangsamen


von Dennis K. (scarfaceno1)


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

von Peter S. (psavr)


Lesenswert?

>Die Regelung treibt einen 3-phasigen Motor
Asynchron- oder Syncron-Maschine?

Ein asynchroner Motor hat immer einen Schlupf, der mit grössrere Last 
zunimmt, ein synchroner Motor hat keinen Schlupf solange der maximale 
Lastwinkel nicht überschritten wird. Falls doch, wird er zimlich schnell 
stillstehen!

von m.n. (Gast)


Lesenswert?

Wenn Du einen ADC-Eingang verwendest, einen Faktor per Poti 
einzustellen, hilft Dir vielleicht dies weiter:
http://www.mino-elektronik.de/Generator/takte_impulse.htm#bsp4

von Dennis K. (scarfaceno1)


Lesenswert?

Motor ist ja keiner dran.
Der wird durch Widerstände simuliert.
Es geht darum die Regelung und die Last Ausgänge zu testen.

von Harald W. (wilhelms)


Lesenswert?

Dennis K. schrieb:

> Ich habe die Drehzahl direkt aus dem Regler abgegriffen und
> für diese an den Sensor Eingang das Reglers.

Schliess doch einfach einen Frequenzgenerator am Sensoreingang an.
An dem kannst Du jede beliebige Frequenz einstellen.
Gruss
Harald

von Dennis K. (scarfaceno1)


Lesenswert?

Dann muss ich die Ist Drehzahl aber immer der Soll Drehzahl nachregeln.
Und beide auf einander anpassen. Sonst sagt der Regler "Schlupf zu groß" 
und schaltet ab.

von Ulrich H. (lurchi)


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.

von Dennis K. (scarfaceno1)


Lesenswert?

Habe eine analoge Schaltung hier gefunden.

Werde sie ggf mal posten, wenn ich sie sauber aufgezeichnet habe...

Falls Interesse besteht?

: Bearbeitet durch User
von uwe (Gast)


Lesenswert?

Frequenz-Spannungswandler -> Verstärker(von 0 bis 2 fach) -> 
Spannungs-Frequenzwandler

von uwe (Gast)


Lesenswert?

Aber ist das wirklich nur die Drehzahl
> 3-phasigen Motor an
Wenn das nen BLDC ist dann ist das nicht nur die Drehzahlregelung 
sondern auch die Position, und dann get das nicht so einfach.

von Dennis K. (scarfaceno1)


Lesenswert?

Ist ein 3-phasiger AC Motor. Sorry.

von uwe (Gast)


Lesenswert?

google mal lm331

von Dennis K. (scarfaceno1)


Lesenswert?

Und dort dann entsprechend ein Spannungsoffset drauf geben.

AUch eine gute Idee. Werde mir mal die Ausgangsspannung ansehen, da sich 
die Pulse ähnlich sein müssen.

von Dennis K. (scarfaceno1)


Lesenswert?

Habe mir das Datenblatt zum lm331 angesehen. Ist schon recht viel 
Beschaltung, die zusätzlich notwendig ist.

Bin aber über dieses IC auf ein anderes gestoßen, welches sehr 
interessant ist. Den LTC1799.

Damit könnte gut zusammen mit Spannungsoffsets arbeiten denke ich.
Hab mal welche bestellt.

Vielen Dank an alle.

von uwe (Gast)


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.

von m.n. (Gast)


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.

von Dennis K. (scarfaceno1)


Angehängte Dateien:

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.

von Dennis K. (scarfaceno1)


Angehängte Dateien:

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

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Dennis K. schrieb:
> (potentiometer/1024*0.3)

Ich glaube, diese Berechnung wird immer 0 als Ergebnis liefern. Daher 
ändert sich am frequenz_faktor nichts.

von DocMartin (Gast)


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

von Dennis K. (scarfaceno1)


Lesenswert?

Hab´s probiert...

Laut Simulator steht in frequenz Faktor immer:
1062836634

Auch mit typecast

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Dennis K. schrieb:
> Laut Simulator steht in frequenz Faktor immer:
> 1062836634

Dann laß uns das mal übersetzen:
1062836634 -> 0x3f59999A -> 0.85
Dies hatte DocMartin ja schon vorausgesagt.

von Dennis K. (scarfaceno1)


Lesenswert?

Und wie ändere ich diese Tatsache?


Ein typecast hat wie gesagt nichts gebracht.

von m.n. (Gast)


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.

von Dennis K. (scarfaceno1)


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?

: Bearbeitet durch User
von Dennis K. (scarfaceno1)


Lesenswert?

Also das ganze funktioniert jetzt.

Nochmal danke an alle.

von Martinhirschhuber (Gast)


Lesenswert?

Hallo habe eine frage

Wie kann ich eine frequenz verlangsamen ?


Habe einen hallgeber und ein steuergerät würde dazwischen gerne etwas 
montieren um dem steuergerät weniger drezahl zu geben damit ich am 
fahrzeug stecker (signalsteckdose) für sähmaschine andere werte habe

Bitte um ehrliche antworten

Danke

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Martinhirschhuber schrieb:
> Bitte um ehrliche antworten

Zunächst einmal Interpunktion und Groß-/Kleinschreibung erlernen und 
anwenden. Weiterhin keine uralten, fremden Threads kapern.

: Bearbeitet durch User
von N. A. (bigeasy)


Lesenswert?

Martinhirschhuber schrieb:
> Wie kann ich eine frequenz verlangsamen ?

Herunterteilen --> PLL + VCO = fertig.

von Martin H. (martinhirschhuber)


Lesenswert?

Andreas S. schrieb:
> Martinhirschhuber schrieb:
>> Bitte um ehrliche antworten
>
> Zunächst einmal Interpunktion und Groß-/Kleinschreibung erlernen und
> anwenden. Weiterhin keine uralten, fremden Threads kapern.

Ok danke vorerst

von Martin H. (martinhirschhuber)


Lesenswert?

Ok und wie genau mach ich das ?
Welche Bauteile brauche ich ?

Können Sie mir da helfen ??

Lg martin

von Jürgen von der Müllkippe (Gast)


Lesenswert?

N. A. schrieb:
> Herunterteilen --> PLL + VCO = fertig.

Zu kompliziert.

Wenn du exakt mit der halben Frequenz zufrieden bist, genügt ein 
einfacher Frequenzteiler (T Flip Flop).

von Martinhirschhuber (Gast)


Lesenswert?

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

Lg

von Jürgen von der Müllkippe (Gast)


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"

von Martinhirschhuber (Gast)


Lesenswert?

Könnten Sie mir persönlich eine email senden hätte noch paar fragen 
bezüglich des steuergerätes bei mir

martin.hirschhuberm@gmail.com

Danke lg martin

von Harald W. (wilhelms)


Lesenswert?

Martinhirschhuber schrieb:

> für sähmaschine

Meinst Duz eine Drillmaschine, mit der man auf dem Acker sät?

von Martinhirschhuber (Gast)


Lesenswert?

Ja brauchen für die steuerung die halbe frequenz oder etwas wo ich sie 
drosseln kann

Lg martin

von Wolfgang (Gast)


Lesenswert?

Martinhirschhuber schrieb:
> Ja brauchen für die steuerung die halbe frequenz oder etwas wo ich sie
> drosseln kann
Mit der Frequenz ist es alleine nicht getan.
Damit die Sämaschine das Signal erkennt, muss es sicher auch eine 
bestimmte Spannung haben und einen gewissen Strom liefern können.

von Martinhirschhuber (Gast)


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

von m.n. (Gast)


Lesenswert?

Ein ähnliches Problem gab es die Tage schon einmal. Als Lösung dafür der 
Link: Beitrag "Re: Impulse von Reedkontakt als Spannung anzeigen NE555"
Ein einziger ATtiny25 mit Abblockkondensatoren reicht als Hardware aus. 
Den Frequenzbereich kann man anpassen.

von Martinhirschhuber (Gast)


Lesenswert?

Ok
Wer kann mir da was bauen oder machen
Würde es auch gut bezahlen
Habe selbst nicht die mittel und die zeit

Vl kann mir jemand helfen
Wir benötigen die steuerung dringend

Lg martin

von Dieter (Gast)


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.

von m.n. (Gast)


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.

von Martin H. (martinhirschhuber)


Lesenswert?

Hallo liebe Leute

Es geht um ein Signal das verlangsamt werden soll
Wir haben es immer noch nicht hinbekommen
Keine Ahnung an was es liegt

Anstatt im Getriebe die Nutenscheibe zu ändern wäre cool am Sensor was 
zu machen um ein wenig langsameres Signal  zu bekommen

Lg Martin

von m.n. (Gast)


Lesenswert?

Martinhirschhuber schrieb:
> Wer kann mir da was bauen oder machen
> Würde es auch gut bezahlen

Auch, wenn man Dich jetzt erreichen kann, sind Deine Informationen immer 
noch spärlich.
Was habt Ihr nicht hinbekommen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.