Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Bei einem Projekt soll das Verdrehspiel an einem Getriebe gemessen werden und dazu bräuchte ich einen geeignete Drehgeber mit einer hohen Auslösung von ca. 200 000 Inkrementen was in etwa 6.5 Winkelsekunden sind.
Meine Frage lautet welche Drehgeber dafür in Frage kommen könnten?
Wäre diese Auflösung mit SinCos Drehgeber durch geeignete Interpolation möglich? Als Hardware würd ich die 6210 von NI nehmen.
Ich hoffe ihr könnt mir helfen und bin Dankbar für jeglichen Hinweis.
Anzeige
28.06.2011, 09:55 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2011 15:14 von Lucki.)
Mit Interpolation ist das wunderbar zu machen. Voraussetzung ist, daß die Ausgangssignale A und B analog herauskommen und möglichst genau sinusförmig sind. Bei der Drehgebern von Heidenhain, welche für Interpoation spezifiziert sind, ist das der Fall. Der Winkel ist
Phi = arctan(A/B)
wobei der Quadrant, in dem man sich befindet, mittels der Vorzeichen von A und B bestimmt werden kann.
Es bleibt aber ein Incrementalgeber, der absolute Winkel ergibt sich es dem vorhergehenden Winkel plus gemesse Winkeldifferenz zur vorangegangenen Messung.
Die Zeit dt zwischen zwei Messungen muß so klein sein, daß bei der höchten Drehzahl die Winkeldifferenz nicht größer als 180% ist. (sonst funktioniert das Tracking nicht)
Je höher die Abtastrate und je kleiner die Strichzahl, desto höher die mögliche maximale Drehzahl. Also nicht blindlings einen Drehgeber mit möglichst hoher Strichzahl kaufen, das geht in die Hose. Erst rechnen, dann kaufen.
Die sequentielle Abtastung von A und B bei den meisten Messkarten ist ein Problem. Ich habe es so gemacht, daß ich erst die Rohverläufe über eine Umdrehung aufgezeichnet habe (mehr brauchte ich nicht), und dann vor den Berechnungen die A- und B- Waveforms ausgerichtet habe.
Es ist alles einfach, aber wenn Du glaubst das nicht zu schaffen, dann kannst Du auch für einen vierstelligen Eurobetrag die Interpolation mit einem Zusatzgerät von Heidenhain machen lassen. Wobei Du dann das Problem hast, die exotische Ausgangs-Schnittstelle (Weiß nicht genau welche) mit dem PC zu verbinden.
28.06.2011, 10:47 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2011 12:24 von panduci.)
Vielen dank für die rasche und ausführliche Antwort.
Damit ich das richtig Verstanden habe...
Ich habe beispielsweise eine Abtastrate von 200kHz und kann somit bei 4000 Inkrementen eine maximale Drehzahl von 50Hz=3000U/min aufzeichnen.
Die interpolation erfolgt nach der Aufzeichnung, sprich im LabVIEW.
Zitat:Die sequentielle Abtastung von A und B bei den meisten Messkarten ist ein Problem. Ich habe es so gemacht, daß ich erst die Rohverläufe über eine Umdrehung aufgezeichnet habe (mehr brauchte ich nicht), und dann vor den Berechnungen die A- und B- Waveforms ausgerichtet habe.
Die Karte 6210 verfügt über eine sequenztielle Abtastung-->es entsteht quasi ein Fehler da die Kanäle nicht simultan aufgezeichnet werden können.
Was meinst du über die Rohverläufe und anschließendes ausrichten?
Zitat:Es ist alles einfach, aber wenn Du glaubst das nicht zu schaffen, dann kannst Du auch für einen vierstelligen Eurobetrag die Interpolation mit einem Zusatzgerät von Heidenhain machen lassen. Wobei Du dann das Problem hast, die exotische Ausgangs-Schnittstelle (Weiß nicht genau welche) mit dem PC zu verbinden.
Hoffe das wird nicht notwendig sein
28.06.2011, 15:51 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2011 16:00 von Lucki.)
(28.06.2011 10:47 )panduci schrieb: Ich habe beispielsweise eine Abtastrate von 200kHz und kann somit bei 4000 Inkrementen eine maximale Drehzahl von 50Hz=3000U/min aufzeichnen.
Die interpolation erfolgt nach der Aufzeichnung, sprich im LabVIEW.
Nicht ganz: Die Abtastung sollte mindestens pro halbe Strichlänge erfolgen, nicht jede Strichlänge. Daraus folgen 2000 Striche pro Umdrehung, nicht 4000. Außerdem: Das ist ein theoretischer Wert, ich würde hier noch mal Sicherheit geben und einen Wandler mit 1000 Strichen nehmen. Bedenke, daß der Winkel zwischen zwei Strichen mit 16bit interpoliert wird, die Genauigkeit ist enorm. Von daher beteht überhaupt keine Notwendigkeit, mit der Strichzahl bis an die Grenze zu gehen.
Zitat:Die Karte 6210 verfügt über eine sequenztielle Abtastung-->es entsteht quasi ein Fehler da die Kanäle nicht simultan aufgezeichnet werden können.
Was meinst du über die Rohverläufe und anschließendes ausrichten?
Man muß für die Datenerfassung das Format Waveform verwenden. Der Zeitversatz zwischen den Kanälen (1/fmax + 10us Beruhigungszeit) ist in den t0's der Waveforms berücksichtigt. Und es gibt eine wunderbere Funktion "Sigalverläufe ausrichten" (Signalverarbeitung /Signalverlaufskonditioniering), damit werden die Kanäle mittels Interpolation alle auf das t0 von Kanal 0 ausgerichtet. Anders gesagt: Der Zeitversatz wird herausgerechnet. Damit die Interpolation nicht überbeansprucht wird, sollte der Zeitversatz nicht mehr als einige Grad betragen. Auch das spricht für einen Dekoder mit eher niedriger Strichzahl.
Habe im vorigen Posting die Formel korrigiert. A / B sind ja schon der sin / cos, die Formel muß also heißen arctan(A/B) und nicht arctan(sin(A)/cos(B)).
Der Grad der Interpolation ist also theoretisch nur von der Systemgenauigkeit (z.B.: Datenblatt vom Geber) des Gebers abhängig. Eigentlich müsste dann ein Geber mit 1000 Inkremente ausreichen um die gewünschte Genauigkeit zu erreichen.
Hoffe ich habe es richtig Verstanden:
1) Einlesen der A und B Spur von einem Geber mit 1000 Inkremente--> je nach Drehzahl Abtastzeit einstellen.
2) Ausrichten der Signalverläufe
3) Bilden von atan(A/B)
4) Anschließende Interpolation
Zitat:Bedenke, daß der Winkel zwischen zwei Strichen mit 16bit interpoliert wird, die Genauigkeit ist enorm.
Woher kommen denn die 16bit bzw. mit was für einer Funktion erfolgt die Interpolation im LabVIEW?
29.06.2011, 07:06 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2011 07:52 von Lucki.)
(28.06.2011 18:25 )panduci schrieb: Woher kommen denn die 16bit bzw. mit was für einer Funktion erfolgt die Interpolation im LabVIEW?
Das war nicht wörtlich zu nehmen. Ich bin davon ausgegangen, daß Du eine 16bit-Messkarte verwendest. Die Messung von A und B erfolgte dann mit 16 bit Auflösung. In der Praxis ist es weniger, wenn das 1V-Signal z.B im 2 oder 10V- Bereich gemessen wird. Vor allem aber: der Winkel wird mit einer (nicht linearen) Formel berechnet. Wenn die A und B in der Formel 16 bit Auflösung haben, folgt daraus nicht automatisch 16 bit Winkelauflösung zwischen 2 Strichen. Es ist aber ein Anhaltspunkt.
Von einer 10 000 fachen Auflösung des Winkels zwischen 2 Strichen kannst Du aber ausgehen. (Schau Dir mal die Spezifikation das Interpolations-Zusatzes von Heidenhain an)
D.h. aus einem Winkelencoder mit 1000 Strichen wird ein Encoder mit 10^7 Strichen.
Hab mir mal die Spezifikation der Interpolationselektroniken angesehen. Die erreichen echt enorme Auflösungen mit einem 1000 Strich Geber. Der Unterschied in unserem Fall ist dass bei ihnen die Interpolation in einer Elektronik und bei uns Softwaretechnisch realisiert wird.
Hab jedoch noch eine Frage zur Interpolation im Labview.
Reicht da eine Lineare Interpolation aus?
Bzw. wird der errechnet Winkel interpoliert oder die Sinussignale A und B und dann erst der Winkel berechnet?
Hab mir mich jetzt einmal an die Programmierung herangewagt. Dazu hab ich einen SIN/COS Drehgeber von Kübler mit einer 6009 Karte betrieben. Die Eingänge hab ich differential eingelesen und ausgerichtet (sequentielle Abtastung). Anschließend wurden die Signale A und B über die Funktion atan2 (berücksichtigt Quadranten) in Winkelwerte umgerechnet. Mit dem VI "2 Pi Sprünge" entfernen hab ich dann den Phaseverlauf ausgegeben. Die errechneten Winkel stimmen genau obwohl ich nur mit 20KHz abtaste.
Mach mir jedoch noch immer über die Interpolation gedanken. Aus meiner sicht wäre es sinnvoll die Interpolation nachdem Ausrichten der Signale zu vorzunehmen.
(06.07.2011 09:26 )panduci schrieb: Aus meiner sicht wäre es sinnvoll die Interpolation nachdem Ausrichten der Signale zu vorzunehmen.
Wenn Du mich fragst: etwas anderes habe ich nie gemeint.
Und Deiner Beschreibung nach hast Du die Interpolation gut hingekriegt. So z.B hat es bei mir wunderbar funktioniert - dein Interpolations-VI müßte also genau so aussehen:
Ja meins sieht genau so aus, hab halt nur den atan2 genommen.
Wieviel Abtastpunkte hast du denn damals für das A und B Signal gewählt bzw. wie war das Verhältnis von Abtastfrequenz zu Signalfrequenz?
Die Interpolation ist als nur die Umrechnung zum Winkel über den atan?
Hab gedacht ich kann das Signal(A,B) durch eine lineare Interpolation noch zusätzlich verbessern?