easy-forum

Deutsch - Hardware => MFD-Titan® => Thema gestartet von: silverspeed am März 26, 2009, 13:38:02 Nachmittag

Titel: Motorregelkreis
Beitrag von: silverspeed am März 26, 2009, 13:38:02 Nachmittag
Hallo Leute!

Ich habe eine Idee und möchte gerne wissen, ob das mit meiner Hardware überhaupt möglich ist.

Hardware habe ich ein MFD mit RA17.

Es geht um einen Regelkreis - genau gesagt möchte ich die Drehzahl eines Motors regeln. Als geregelten Ausgang der Steurung brauche ich den 10V Analogausgang, mit dem ich dann direkt auf die Microbox für den brushless DC Motors gehen kann.

Für die Drehzahl habe ich einen Inkrementalgeber.

Jetzt meine Frage:

möchte das mit einem pid-regler machen.
Vorgestellt habe ich mir, dass ich am MFD als erstes die Drehzahl über tasten eingeben kann, dann auf der nächsten maske die regelparameter einstellen und dann über einen befehl starten.

der sinn dahinter besteht darin, dass ich auf einem demostand die wirkungsweise eines pid-reglers zeigen möchte - daher sollen auch die regelparameter leicht änderbar sein.

ist das prinzipiell möglich, bzw. wo könnte es probleme geben?
gibt es vielleicht schon irgendwo so ein programm, dass ich auf meine anforderungen ändern könnte?

gruß
christian
Titel: Re: Motorregelkreis
Beitrag von: Mr. Spok am März 26, 2009, 14:35:27 Nachmittag
Hallo Silverspeed,

denke es ist möglich, einen Kanal des Ink.-Gebers auf einen CF-Baustein legen. Dann anhand der Parameter des Gebers die Drehzahl aus der gelieferten Frequenz des CF-Bausteins errechnen.
Das wäre dann der Istwert des PID-Reglers. Hast du vielleicht Daten des Gebers (Ink./U) und des Motors
(max. Drehzahl bei 10V am Motorregler). 


mfG Jan
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am März 26, 2009, 14:47:32 Nachmittag
die genauen werte des gebers habe ich derzeit leider nicht zur hand - erst am samstag wieder - denke aber es waren 200 ink./u.

habe mir das so gedacht, dass ich die max. drehzahl bei 10v habe.
die drehzahl habe ich leider auch nicht - kommt auch am samstag dann.
die drehrichtung zu ändern geht vermutlich nicht so einfach oder, denn das wäre vielleicht auch noch schon, wenn ich diese vorwählen kann....
Titel: Re: Motorregelkreis
Beitrag von: KressSwiss am März 26, 2009, 20:33:58 Nachmittag
Zitat von: silverspeed
.....auf einem demostand die wirkungsweise eines pid-reglers zeigen möchte

Um eine PID Regelung zu zeigen braucht Du aber auch eine Störfaktor, der Korrigiert werden muss. In Deinem Fall muss die Motorenwelle ein Bremse haben, oder etwas antreiben bei dem Die Last wechselt. Der PID muss dann die Drehzahl konstant halten. Oder wie siehst Du das? 
Titel: Re: Motorregelkreis
Beitrag von: boppel am März 26, 2009, 21:38:09 Nachmittag
Hallo Christian,

hab Dir mal was angehängt, was evtl. für Deine Anwendung geeignet sein könnte (ist aber nicht getestet, da die schnellen Zähler nicht simuliert werden können, wurde aber prinzipiell so von mir in einer Dosieranwendung eingesetzt).

Durch die konstante Zykluszeit und den "Togglemerker" wird ein Takt mit 100ms erzeugt. D.h. die Drehzahl wird jeweils nach 100ms aktualisiert.
Mit dem Schieberegister kann eine Mittelwertbildung erreicht werden (jeweils über vielfache von 100ms).
Drehzahlbereich soweit ich das überschlagen habe (bei 200 Imp./Umdr. und Drehgeber mit A+B-Kanal) ca. 1,5-450 UpM. Wird im Schieberegister ein höherer Ausgang "angezapft" können auch niedrigere Drehzahlen ermittelt werden (Regelung wird dann aber träger). Höhere Drehzahlen sind wg. Begrenzung auf 3kHz für schnelle Zähler (theoretisch) nicht möglich (habe aber mal gelesen, daß bei Verwendung nur eines Zählers auch höhere Frequenzen messbar sein sollen).
Ich habe einen Inkrementalzähler verwendet (weil:
Zitat
die drehrichtung zu ändern
dann Rechts-/Linkslauf erkannt werden kann- dann aber Drehgeber mit A+B-Kanal erforderlich!).

Den Frequenzzählerbaustein verwende ich bei Drehzahlregelungen nicht, da er nur jede Sekunde einen aktualisierten Wert ausgibt. Da aber mindestens 2 Messwerte (besser 3-4) in der Praxis für eine vernünftige Regelung erforderlich sind, würde die gesamte Einrichtung gähnend langsam werden.

Das Programm soll nur mal die Richtung weisen! Parameter einzelner Bausteine müssen natürlich noch angepaßt werden.
Die PI-Parameter können über das MFD eingestellt werden.

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am März 26, 2009, 22:49:42 Nachmittag
@Swiss yup, das mit der störgröße habe ich bedacht - denke ich werde den motor mit einer unwucht oder bremse belasten, aber zuerst möchte ich das programm fertig haben.

@boppel vielen dank für das beispiel - werde ich mir gleich anschauen und probieren zu verstehen.

Auf den ersten blick ist damit ja schon sehr viel abgedeckt von meiner anforderung....
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 01, 2009, 14:14:35 Nachmittag
so, hat leider jetzt ein wenig länger gedauert.

mein inkrementalgeber hat 200 ink./U mit A,B und N kanal.
ich habe jetzt einmal für testzwecke versucht auf einer eigenen maske die aktuelle drehzahl darzustellen - leider habe ich es nicht geschafft.

kann mir einer von euch dabei helfen?
ich möchte einfach nur den inkrementalgeber beim mfd anklemmen und dann die drehzahl darstellen, wenn ich ihn mit der hand drehe - nur zum testen.

sorry für die vielleicht dumme frage, aber ich bin kompletter neuling in dem bereich der easy
Titel: Re: Motorregelkreis
Beitrag von: KressSwiss am April 01, 2009, 15:37:09 Nachmittag
Hallo
Ich habe Dir das Demoprogramm aus dem Moeller-Trainingscenter heruntergeladen und eine Visualisierung (Maske 1) eingebaut. Leider kann ich es nicht Testen, da ich dazu keine Hardware besitze. Simulation ist nicht möglich, da Hardwarebaustein. Fazit: Alles ohne Gewähr   8)
Viel Erfolg
KressSwiss

 
Titel: Re: Motorregelkreis
Beitrag von: boppel am April 01, 2009, 22:24:29 Nachmittag
Hallo silverspeed,

anliegend noch ein kleines Beispiel, mit zusätzlicher "Drehzahl"-Anzeige (zu beachten ist, daß die "Drehzahl" in "irgendwelchen Einheiten", aber nicht in UpM angezeigt wird! - Das Beispiel soll mal nur einen grundsätzlichen Ansatz zeigen!

@Kress:
In Deiner 2. Zeile schaltest Du die Zählrichtung um: Das kann bei einem Inkrementalzähler nicht sein, da bei diesem die Drehrichtung über die Phasenverschiebung zwischen A und B Kanal ausgewertet wird!
Der RE-Eingang ist der Rücksetzeingang!

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 02, 2009, 11:36:07 Vormittag
vielen dank an euch - ihr seid für mich wirklich gold wert.

@boppel der zähler in deinem programm funktioniert soweit perfekt - zählt in beide richtungen - aber leider bleibt die anzeige "geschwindigkeit" immer auf null stehen. versuche jetzt schon seit einigen stunden da dahinter zu kommen, aber leider bis jetzt noch erfolglos...
Titel: Re: Motorregelkreis
Beitrag von: boppel am April 02, 2009, 18:00:32 Nachmittag
Hallo Silverspeed,

ja, da haben sich noch Fehler eingeschlichen (ist halt sch..., wenn man's nicht simulieren kann).

So müßt's aber was anzeigen.

Sonst auch mals in der Simulation die Bausteinausgänge überwachen (ggf. über Merker als Zwischenspeicher).

Hoffe aber daß die grundsätzliche Funktion klargeworden ist.

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: juergen_j am April 02, 2009, 18:05:17 Nachmittag
hallo christian,
im Anhang nochmal eine Erweiterung des Beispiel von boppel. Damit es vielleicht funktioniert musst du I1 mit I3 verbinden. Viel Spass beim austesten.
Gruss
Jürgen
Titel: Re: Motorregelkreis
Beitrag von: boppel am April 02, 2009, 18:34:27 Nachmittag
Bei der Anzeige für den Zähler erscheint bei mir eine Fehlermeldung wg. Wertbereichsdefinition! (den hatte ich bei der Drehzahl gerade behoben, weildie ursprünglich  auch falsch war).

Aber vielleicht werden wir von Silverspeed demnächst erfahren was der Realität am Nächsten kommt  ;)

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: KressSwiss am April 02, 2009, 21:57:34 Nachmittag
Zitat von: Boppel
@Kress:
In Deiner 2. Zeile schaltest Du die Zählrichtung um: Das kann bei einem Inkrementalzähler nicht sein, da bei diesem die Drehrichtung über die Phasenverschiebung zwischen A und B Kanal ausgewertet wird!
Der RE-Eingang ist der Rücksetzeingang!
Richtig
Da stimmt was nicht. Ich muss da noch einmal über die Bücher.  :-X
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 02, 2009, 22:13:10 Nachmittag
@boppel - bei deinem programm funktioniert der zähler, aber leider nicht die geschwindigkeitsanzeige

@jürgen bei deinem programm ist es genau umgekehrt - da funktioniert der zähler nicht

kann es sein, dass ich vielleicht bei der verdrahtung einen fehler habe?
habe kanal A auf I1 und kanal B auf I2 - und eben jetzt noch I1 und I3 verbunden, mehr nicht.

Titel: Re: Motorregelkreis
Beitrag von: Maikky am April 03, 2009, 00:44:38 Vormittag
Hallo silverspeed.

Ich glaube das Problem im Beispiel von boppel ist, dass das Schieberegister nicht
weiss, was es zählen soll.

Ändere doch mal bei SR1
  - I1 auf CI QV 1
  - Betriebsart DW anstatt BIT

Ich bin wahrlich kein Experte bei dem Baustein, aber es erscheint mir logisch.

Gruß Maikky

Titel: Re: Motorregelkreis
Beitrag von: boppel am April 03, 2009, 04:57:57 Vormittag
Richtig, habe ich vergessen (hätt ich doch besser aus meinem funktionierenden Programm rauskopieren sollen, aber da steht so viel anderes noch dabei, das hätte hier nur Verwirrung gestiftet.
Testen kann ich den Zährler gerade auch nicht).

Aber jetzt sollt's dann langsam mal funktionieren  ::)

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 03, 2009, 13:28:24 Nachmittag
hey leute ich bin begeistert - es funktioniert!!!

werde jetzt dann heute abends versuchen das ganze mit dem pid regler zu kombinieren und dabei die drehzahl als eingangsgröße verwenden....

werde aber sicher wieder viele fragen haben - hoffe ihr unterstützt mich weiterhin so toll.

gruß
christian
Titel: Re: Motorregelkreis
Beitrag von: boppel am April 03, 2009, 21:43:48 Nachmittag
freut mich, daß es (endlich) funktioniert.
Hoffentlich hatten miene Fehler dann wenigstens zu einem Lernerfolg geführt  :-\ :-[

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 08, 2009, 11:05:32 Vormittag
so leute - habe jetzt wieder einiges an zeit investiert, bin aber immer noch nicht zu meinem gewünschten ergebnis gekommen.

kann mir jemand von euch profis die beiden programme (drehzahlanzeige + pid regler) so vereinen, dass ich ein funktionierendes habe - ich schaff das einfach nicht  :'(

auf der maske hätte ich gerne eben wie gehabt die pid regelparameter und die solldrehzahl zum einstellen und eine anzeige für die ist-drehzahl.

mit einem kleinen testprogramm habe ich rausgefunden, dass die max. drehzahl meines motors bei 10v analoger ausgangsspannung ca. 1380 (welche einheit auch immer) ist.

werde noch weiter probieren, vielleicht kann mir ja doch einer behilflich sein...

gruß
christian
Titel: Re: Motorregelkreis
Beitrag von: boppel am April 08, 2009, 18:42:45 Nachmittag
Hallo Silverspeed,

setzt mal hier rein, was Du schon hast, dann kann man mal versuchen den Fehler zu finden.

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 08, 2009, 19:36:11 Nachmittag
sorry, das hätte ich eigentlich schon früher machen können.  :-\

ich habe eigentlich nur versucht, das programm mit der geschwindigkeitsanzeige um den regler zu erweitern - leider passt irgendetwas mit dem soll und ist wert nicht zusammen.

wenn ich z.b. als sollwert 1000 reintippe pendelt sich die drehzahl bei ca. 330 ein...

gruß
christian
Titel: Re: Motorregelkreis
Beitrag von: boppel am April 09, 2009, 19:23:03 Nachmittag
Hallo Silverspeed,

beiliegend eine leicht überarbeitete Version des Programms (u.a. Remanenz für den verwendeten Merkerbereich, damit die PID-Parameter und der Sollwert nicht nach jedem Einschalten neu eingegeben werden müssen), eine weitere Maske mit den Ein-/Ausgangswerten des PID-Reglers.

Gib zunächst mal nur einen P-Anteil an (I-Anteil = 0). ein P-Anteil von 100 bedeutet: 1,00! Beginne mal mit mindestens einem Wert für den P-Anteil von 300 (also 3,00). Den wert so weit erhöhen, bis noch kein Überschwingen auftritt. Der Istwert wird aber in jedem Fall vom Sollwert abweichen. Dies kann durch "Zugabe" eines I-Anteils ausgeregelt werden.

Ich habe mal kurz getestet, bei einem P-Anteil von 3,00 und einem Sollwert von 3 gibt der Regler einen Stellgrad von 9 aus -> müßte also grundsätzlich funktionieren!

Gruß

Boppel
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 13, 2009, 21:24:47 Nachmittag
habe jetzt in den letzten tagen wieder ein wenig rumprobiert.
 ich habe das gefühl, dass die eingabe eines sollwertes keinerlei auswirkung auf die ist-drehzahl hat. wenn ich z.b. 100 als p-anteil eingebe und 0 für i, steigt die drehzahl aprupt auf ihr maximum (ca. 1300) an - vollkommen unabhängig vom sollwert.

habt ihr einen tip, wie ich da am besten weiter mache? ich werde das gefühl nicht los, das etwas mit dem soll/istwerten nicht passt. kann es sein, dass die werte in unterschiedlichen einheiten vorliegen und ins programm einfließen?
Titel: Re: Motorregelkreis
Beitrag von: Juergen.J am April 13, 2009, 22:09:47 Nachmittag
Hallo christian,

ich versehe die Anwendung mit dem Inkrementalwertgeber in Verbindung mit der Drehzahlregelung nicht. Normalerweise wird mit dem Inkrementalwertgeber eine Strecke ausgemessen, was du aber willst ist die Drehzahl deines Motor regeln, also sind meiner Meinung der Frequenzzähler und der PID-Regler die geeigneten Bausteine.

Gruss
Jürgen
Titel: Re: Motorregelkreis
Beitrag von: silverspeed am April 14, 2009, 20:36:28 Nachmittag
@ jürgen: für mich sind das die ersten gehversuche mit der easy - der tipp mit dem inkrementalgeber kam von einem vorposter, mit dem argument, dass der frequenzzähler zu träge sei.

kannst du mir vielleicht bei gelegenheit den inkrementalzähler mit mit frequenzzähler im letzten programm von boppel austauschen?

gruß
christian
Titel: Re: Motorregelkreis
Beitrag von: veltins54 am April 14, 2009, 20:46:31 Nachmittag
hallo silverspeed,

der Frequenzzähler scheint mir für eine Drehzahlregelung nicht besonders geeignet denn
er hat eine Messzeit von 1 sek. das ist mit Sicherheit zu träge.

Gruß veltins54
Titel: Re: Motorregelkreis
Beitrag von: Juergen.J am April 16, 2009, 06:00:38 Vormittag
Hallo Andreas,
die Kollegen haben natürlich recht. Mit der Messdauer von 1 Sekunde ist eine Regelung viel zu träge. Tip zum Beispiel von boppel. Der verwendete CI-Zähler zählt je nach Drehrichtung vorwärts und Rückwärts, also hast du am Ausgang einmal einen positiven Wert, (den brauchts du) und einmal einen negativen Wert. Steuere deinen Motor mittels Netzteil oder Batterie mal mit einem konstanten Wert an und schau dir online an welcher Wert an CI1 angezeigt wird. Hast du negative Werte tausche I1 und I2 an den Klemmen der Easy und probiere es noch einmal. Ebenfalls würde ich für den Anfang mal die Signalglättung FT1 und 2 nicht verwenden, allein um mal die Tendenz zu sehen.
Also nochmals sorry für die Fehlberatung.
Gruss
Jürgen