DE112009000846T5 - Geschwindigkeitsdetektionsvorrichtung und Servomotor - Google Patents

Geschwindigkeitsdetektionsvorrichtung und Servomotor Download PDF

Info

Publication number
DE112009000846T5
DE112009000846T5 DE112009000846T DE112009000846T DE112009000846T5 DE 112009000846 T5 DE112009000846 T5 DE 112009000846T5 DE 112009000846 T DE112009000846 T DE 112009000846T DE 112009000846 T DE112009000846 T DE 112009000846T DE 112009000846 T5 DE112009000846 T5 DE 112009000846T5
Authority
DE
Germany
Prior art keywords
coordinates
actual
rotation
temporary
coordinate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112009000846T
Other languages
English (en)
Other versions
DE112009000846B4 (de
Inventor
Shouichi Numazu-shi Sato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shibaura Machine Co Ltd
Original Assignee
Toshiba Machine Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Machine Co Ltd filed Critical Toshiba Machine Co Ltd
Publication of DE112009000846T5 publication Critical patent/DE112009000846T5/de
Application granted granted Critical
Publication of DE112009000846B4 publication Critical patent/DE112009000846B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P13/00Indicating or recording presence, absence, or direction, of movement
    • G01P13/02Indicating direction only, e.g. by weather vane
    • G01P13/04Indicating positive or negative direction of a linear movement or clockwise or anti-clockwise direction of a rotational movement
    • G01P13/045Indicating positive or negative direction of a linear movement or clockwise or anti-clockwise direction of a rotational movement with speed indication
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/12Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means
    • G01D5/244Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing characteristics of pulses or pulse trains; generating pulses or pulse trains
    • G01D5/24409Interpolation using memories
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P3/00Measuring linear or angular speed; Measuring differences of linear or angular speeds
    • G01P3/42Devices characterised by the use of electric or magnetic means
    • G01P3/44Devices characterised by the use of electric or magnetic means for measuring angular speed
    • G01P3/48Devices characterised by the use of electric or magnetic means for measuring angular speed by measuring frequency of generated current or voltage
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D2205/00Indexing scheme relating to details of means for transferring or converting the output of a sensing member
    • G01D2205/85Determining the direction of movement of an encoder, e.g. of an incremental encoder

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Abstract

Geschwindigkeitsdetektionsvorrichtung zum periodischen Abtasten von Koordinaten, die eine Position eines sich bewegenden Körpers anzeigen, der eine Drehbewegung oder eine reziprozierende Bewegung durchführt, und zum Detektieren einer Geschwindigkeit eines sich bewegenden Körpers basierend auf den Koordinaten, umfassend:
einen Speicher, der eine Mehrzahl von voreingestellten temporären Winkeln und trigonometrischen Funktionswerten entsprechend jeweils den temporären Winkeln speichert;
ein erstes Register, das tatsächliche erste Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen ersten Koordinaten durch eine erste Abtastung erhalten werden;
ein zweites Register, das tatsächliche zweite Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen zweiten Koordinaten durch eine zweite Abtastung als Nächstes nach der ersten Abtastung erhalten werden;
einen Rotationsrichtungs-Diskriminator, der zumindest entweder eine x-Koordinate oder eine y-Koordinate bei den temporären Koordinaten auf einer Linie berechnet, die zwischen einem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen...

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Geschwindigkeitsdetektionsvorrichtung und einen Servo-Motor.
  • Verwandter Stand der Technik
  • Bei der Bewegungssteuerung durch einen Servo-Motor gibt ein Positionsdetektor SIN- und COS-Signale basierend auf einer Bewegungsdistanz einer Maschine oder einem Bewegungswinkel einer Achse derselben aus. Eine arithmetische Schaltung des Positionsdetektors tastet die SIN- und COS-Signale für jede Einheitszeit ab und berechnet eine Bewegungsgeschwindigkeit oder eine Winkelgeschwindigkeit basierend auf einer Distanzdifferenz oder einer Winkeldifferenz zwischen zwei Abtastwerten und einem Zeitintervall zwischen den Abtastungen.
  • Wie beispielsweise in den 7A und 7B gezeigt, unter der Annahme, dass durch zwei Abtastungen erhaltene Koordinaten (x1, y1) und (x2, y2) sind, und dass ein Abtast-Zeitintervall t(sec) ist, kann eine Winkelgeschwindigkeit ω(rad/sec) durch die folgende Gleichung (1) ausgedrückt werden. ω = (θ2 – θ1)/t = (tan–1(y2/x2) – tan–1(y1/(x1))t (Gleichung 1)
  • In Gleichung (1) sind θ1(rad) und θ2(rad) Absolutwinkel (Amplituden) jeweils zu den Zeitpunkten der zwei Abtastungen. Wie in Gleichung (1) gezeigt, ist es erforderlich, die Amplituden aus den Koordinaten zu berechnen, um so die Winkelgeschwindigkeit ω zu erhalten.
  • Um dieses Problem anzugehen, wird erwogen, eine CPU oder eine Kunden-spezifische LSI(„Large-Scale Integrated”)-Schaltung als Arithmetikschaltung zu verwenden und eine Berechnung der Gleichung (1) durch eine Digital-Logikschaltung zu realisieren.
  • Nichts desto weniger erfordert Arc Tangens (tan–1) eine Division von sin/cos. Um den Arc Tangens zu berechnen, gibt es zwei nachfolgende Probleme. Zuerst, wenn ein cos sich auf einem Einheitskreis 0 annähert, ist ein Absolutwert des Tangens (sin ÷ cos) recht hoch. Dies führt zu einem recht großen Fehler beim Ergebnis des Arc Tangens.
  • Zweitens ist es notwendig, eine Division (sin ÷ cos) vorzunehmen, um den Arc Tangens und den Tangens zu erhalten. Die Division ist in einer Digitalschaltung schwierig zu realisieren. Um die Division zu realisieren, ist es notwendig, eine weitaus größer dimensionierte Digitalschaltung zu verwenden als jene für Multiplikation und Addition.
  • Weiterhin verursacht ein Brummen oder Rauschen, das an einer Stromversorgungsspannung auftritt, oft eine Fluktuation bei den SIN- und COS-Signalen in tatsächlichen Operationen. In diesem Fall detektiert eine Geschwindigkeitsdetektionsvorrichtung möglicherweise eine Bewegungsgeschwindigkeit oder eine Winkelgeschwindigkeit eines sich bewegenden Körpers fehlerhaft.
  • Daher ist es eine Aufgabe der vorliegenden Erfindung, eine Geschwindigkeitsdetektionsvorrichtung und einen Servo-Motor bereitzustellen, die in der Lage sind, eine hochgenaue Detektion einer Bewegungsgeschwindigkeit oder einer Winkelgeschwindigkeit eines sich bewegenden Körpers unter Verwendung einer Arithmetikschaltung kleiner Dimensionen zu detektieren, selbst falls ein Brummen oder Rauschen an einer Stromversorgungsspannung auftritt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Geschwindigkeitsdetektionsvorrichtung zum periodischen Abtasten von Koordinaten, die eine Position eines sich bewegenden Körpers anzeigen, der eine Drehbewegung oder eine reziprozierende Bewegung durchführt, und zum Detektieren einer Geschwindigkeit eines sich bewegenden Körpers basierend auf den Koordinaten gemäß einer Ausführungsform der vorliegenden Erfindung umfasst:
    einen Speicher, der eine Mehrzahl von voreingestellten temporären Winkeln und trigonometrischen Funktionswerten entsprechend jeweils den temporären Winkeln speichert;
    ein erstes Register, das tatsächliche erste Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen ersten Koordinaten durch eine erste Abtastung erhalten werden;
    ein zweites Register, das tatsächliche zweite Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen zweiten Koordinaten durch eine zweite Abtastung als Nächstes nach der ersten Abtastung erhalten werden;
    einen Rotationsrichtungs-Diskriminator, der zumindest entweder eine x-Koordinate oder eine y-Koordinate bei den temporären Koordinaten auf einer Linie berechnet, die zwischen einem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel θ in einer Richtung einer Koordinatenachse erhalten wird, wobei der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend entweder auf einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten, wobei der Ursprung der Koordinaten ein Drehzentrum ist und θ der Drehwinkel ab den tatsächlichen ersten Koordinaten bis zu der Koordinatenachse ist; und
    einen Prozessor, der zweite Rechen-Koordinaten berechnet, die durch Multiplikation, Addition oder Subtraktion zwischen den tatsächlichen ersten Koordinaten und einem der trigonometrischen Funktionswerte repräsentiert sind, um die zweiten Rechen-Koordinaten näher an die tatsächlichen zweiten Koordinaten zu bringen, basierend auf der Rotationsrichtung, wobei der Prozessor die Geschwindigkeit des sich bewegenden Körpers basierend auf einem der temporären Winkel berechnet, entsprechend dem trigonometrischen Funktionswert, der für die zweiten Rechen-Koordinaten verwendet wird, wobei
    der Rotationsrichtungs-Diskriminator zumindest entweder eine x-Koordinate oder eine y-Koordinate in temporären Koordinaten auf einer Linie berechnet, welche zwischen dem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel β in Richtung der Koordinatenachse erhalten wird,
    der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den zweiten Rechen-Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend auf entweder einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten,
    der Ursprung der Koordinaten das Drehzentrum ist, und
    β der Rotationswinkel ab den zweiten Rechen-Koordinaten zur Koordinatenachse ist.
  • Ein Servo-Motor zum periodischen Abtasten von Koordinaten, die eine Position eines sich bewegenden Körpers anzeigen, der eine Drehbewegung oder eine reziprozierende Bewegung macht, und zum Detektieren einer Geschwindigkeit eines sich bewegenden Körpers basierend auf den Koordinaten umfasst gemäß einer Ausführungsform der vorliegenden Erfindung:
    einen Speicher, der eine Mehrzahl von voreingestellten temporären Winkeln und trigonometrischen Funktionswerten entsprechend jeweils den temporären Winkeln speichert;
    ein erstes Register, das tatsächliche erste Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen ersten Koordinaten durch eine erste Abtastung erhalten werden;
    ein zweites Register, das tatsächliche zweite Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen zweiten Koordinaten durch eine zweite Abtastung als Nächstes nach der ersten Abtastung erhalten werden;
    einen Rotationsrichtungs-Diskriminator, der zumindest entweder eine x-Koordinate oder eine y-Koordinate bei den temporären Koordinaten auf einer Linie berechnet, die zwischen einem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel θ in einer Richtung einer Koordinatenachse erhalten wird, wobei der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend entweder auf einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten, wobei der Ursprung der Koordinaten ein Drehzentrum ist und θ der Drehwinkel ab den tatsächlichen ersten Koordinaten bis zu der Koordinatenachse ist; und
    einen Prozessor, der zweite Rechen-Koordinaten berechnet, die durch Multiplikation, Addition oder Subtraktion zwischen den tatsächlichen ersten Koordinaten und einem der trigonometrischen Funktionswerte repräsentiert sind, um die zweiten Rechen-Koordinaten näher an die tatsächlichen zweiten Koordinaten zu bringen, basierend auf der Rotationsrichtung, wobei der Prozessor die Geschwindigkeit des sich bewegenden Körpers basierend auf einem der temporären Winkel berechnet, entsprechend dem trigonometrischen Funktionswert, der für die zweiten Rechen-Koordinaten verwendet wird, wobei
    der Rotationsrichtungs-Diskriminator zumindest entweder eine x-Koordinate oder eine y-Koordinate in temporären Koordinaten auf einer Linie berechnet, welche zwischen dem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel β in Richtung der Koordinatenachse erhalten wird,
    der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den zweiten Rechen-Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend auf entweder einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten,
    der Ursprung der Koordinaten das Drehzentrum ist, und
    β der Rotationswinkel ab den zweiten Rechen-Koordinaten zur Koordinatenachse ist.
  • Die vorliegende Erfindung kann eine Geschwindigkeitsdetektionsvorrichtung und einen Servo-Motor bereitstellen, die zum hochgenaue Detektieren einer Bewegungsgeschwindigkeit oder einer Winkelgeschwindigkeit eines sich bewegenden Körpers in der Lage sind, unter Verwendung einer arithmetischen Schaltung kleiner Dimensionierung, selbst falls ein Brummen oder Rauschen an einer Stromversorgungsspannung auftritt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm einer Geschwindigkeitsdetektionsvorrichtung 100 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 ist ein Blockdiagramm, das eine interne Konfiguration des Prozessors 50 zeigt;
  • 3 ist ein Diagramm, das das Konzept einer ersten Berechnung zeigt, die durch den Rotationsrichtungs-Diskriminator 53 vorgenommen wird;
  • 4A und 4B sind Diagramme, die das Konzept von Berechnungen nach der durch den Rotationsrichtungs-Diskriminator 53 vorgenommenen Anfangsberechnung zeigt;
  • 5 ist ein Konzeptdiagramm zur Vornahme einer Konvergierung der zweiten Rechen-Koordinaten xci, yci in tatsächliche zweite Koordinaten (x2, y2);
  • 6 ist ein Konzeptdiagramm einer Berechnung für die Rotationsrichtung in einem Fall, bei dem Brummen oder Rauschen an einer Stromversorgungsspannung auftritt; und
  • 7A und 7B zeigen Koordinaten, die durch zwei Abtastungen erhalten werden.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen erläutert. Die vorliegende Erfindung ist nicht auf die Ausführungsformen beschränkt.
  • 1 ist ein Blockdiagramm einer Geschwindigkeitsdetektionsvorrichtung 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Geschwindigkeitsdetektionsvorrichtung 100 beinhaltet einen Drehcodierer oder eine lineare Skala 10, einen A/D-Wandler 40 und einen Prozessor 50. Der Prozessor 50 ist eine Universal-CPU oder eine kundenspezifische LSI-Schlatung. Der Prozessor 50 kann beispielsweise ein FPGA (Feld-programmierbares Gate-Array) sein. Die Geschwindigkeitsdetektionsvorrichtung 100 kann in beispielsweise einem Servo-Motor vorgesehen sein, der einen sich bewegenden Körper beinhaltet, der eine Rotationsbewegung oder eine reziprozierende Bewegung macht. Der sich bewegende Körper ist beispielsweise ein Rotor oder ein reziprozierender Arm des Servo-Motors, der in einer Werkzeugmaschine vorgesehen ist.
  • Der Drehcodierer oder die lineare Skala 10 geben Signale (SIN-Signale oder COS-Signale) von Koordinaten (sin, cos) aus, die Positionen des sich bewegenden Körpers anzeigen, der die Rotationsbewegung oder die reziprozierende Bewegung durchführt. Der A/D-Wandler 40 wandelt das SIN-Signal und das COS-Signal aus dem Drehcodierer oder der linearen Skala 10 in Digitalsignale um. Der Prozessor 50 empfängt Digitalsignale, basierend auf dem SIN-Signal und dem COS-Signal, jeweils aus dem A/D-Wandler 40 und berechnet eine Winkelgeschwindigkeit oder eine Geschwindigkeit des sich bewegenden Körpers.
  • Während ein FPGA als der Prozessor 50 verwendet werden kann, kann irgendein anderer beliebiger LSI anstelle eines FPGA verwendet werden. Alternativ kann der Prozessor 50 durch eine Universal-CPU und Software realisiert werden.
  • 2 ist ein Blockdiagramm, das eine interne Konfiguration des Prozessors 50 zeigt. Der Prozessor 50 beinhaltet eine CORDIC-Rotation 51, einen Speicher 52, einen Rotationsrichtungs-Diskriminator 53, einen Selektor 56, ein erste Register R11, ein zweites Register R21, ein drittes Register R31, ein als ein viertes Register dienendes Winkel-Integrationsregister R41, ein Winkelgeschwindigkeits-Halteregister R51 und einen Addierer 80.
  • Ein Prozess des Berechnens der Winkelgeschwindigkeit aus dem SIN-Signal und dem COS-Signal wird unter Bezugnahme auf 2 erläutert. Um die Winkelgeschwindigkeit zu berechnen, wird ein CORDIC (Coordinates Rotation Digital Computer, Koordinaten-Rotations-Digital-Computer) Algorithmus verwendet. Der CORDIC-Algorithmus beinhaltet einen Vektorisierungsmodus und einen Rotationsmodus. In der vorliegenden Ausführungsform verwendet der Prozessor 50 den Rotationsmodus. Dieser CORDIC-Algorithmus ist im Prozessor 50 beinhaltet und durch eine Logikschaltung realisiert.
  • Um das Verständnis zu erleichtern, wird in dieser Ausführungsform angenommen, dass der Drehcodierer 10 eine Sinuswelle und eine Cosinuswelle in einem Zyklus ausgibt, wenn der als der sich bewegenden Körper dienende Rotor sich einmal dreht. Die Geschwindigkeitsdetektionsvorrichtung 100 tastet periodisch Koordinaten des Rotors in einem Zyklus ab. Die Geschwindigkeitsdetektionsvorrichtung 100 erfasst zweidimensionale Koordinaten (Euclidische Koordinaten) (x1, y1) durch eine erste Abtastung und erfasst auch zweidimensionale Koordinaten (x2, y2) nach einer gewissen Zeit durch eine zweite Abtastung nach der ersten Abtastung. (x1 und x2 sind Sinuswerte und y1 und y2 sind Cosinuswerte). Die Geschwindigkeitsdetektionsvorrichtung 100 berechnet einen Winkel θ zwischen einer Position des Rotors während der ersten Abtastung und derjenigen während der zweiten Abtastung, basierend auf den Koordinaten x1, y1 und x2, y2 unter Verwendung des CORDIC-Algorithmus. Da das Abtasten periodisch ausgeführt wird, kann die Geschwindigkeitsdetektionsvorrichtung die Winkelgeschwindigkeit beim Berechnen dieses Winkels Φ erfassen.
  • Der Speicher 52 speichert eine Mehrzahl von voreingestellten temporären Winkeln Φ0 bis Φn0 > Φ1 > Φ2 ...Φn) (wobei n eine natürliche Zahl ist) und trigonometrische Funktionswerte cosΦ0 bis cosΦn und tanΦ0 bis tanΦn entsprechend jeweils den temporaeln Winkeln Φ0 bis Φn. In einem Anfangszustand der Geschwindigkeitsdetektionsvorrichtung 100 speichern die ersten bis dritten Register R11 bis R31 keine spezifischen Werte.
  • Zuerst empfängt der Prozessor 50 die durch das erste Abtasten erhaltenen ersten Koordinaten (x1, y1) = (sinθ, cosθ) des Rotors in Form von Digitalwerten aus dem A/D-Wandler 40. Die ersten Koordinaten werden im zweiten Register R21 gespeichert.
  • Anfangs sind das erste Register R11 und das dritte Register R31 undefiniert. Zu diesem Zeitpunkt wird ein Berechnungswert eliminiert, weil der Wert auf einem undefinierten Wert basiert.
  • Als Nächstes führt der Prozessor 50 die zweite Abtastung in einem nächsten Zyklus durch. Der Prozessor 50 empfängt die tatsächlichen zweiten Koordinaten (x2, y2) = (sin(θ + Φ), cos(θ + Φ)), des bei der zweiten Abtastung in Form von D aus dem A/D-Wandler 40 erfassten Rotor. Die zweiten Koordinaten (sin(θ + Φ), cos(θ + Φ)) werden im zweiten Register R21 gespeichert. In diesem Moment speichert das erste Register R11 die ersten Koordinaten (sinθ, cosθ).
  • 3 ist ein Diagramm, das die Positionsbeziehung zwischen den ersten Koordinaten (sinθ, cosθ) und den tatsächlichen zweiten Koordinaten (sin(θ + Φ), cos(θ + Φ)) und das Konzept einer ersten Berechnung, die durch den ersten Rotationsrichtungs-Diskriminator 53 vorgenommen wird, zeigt.
  • Die tatsächlichen zweiten Koordinaten (sin(θ + Φ), cos(θ + Φ)) entsprechen den tatsächlichenen Koordinaten, die erhalten werden, wenn der Rotor auf den ersten Koordinaten (sinθ, cosθ) um Φ rotiert wird, wie in 3 gezeigt. Man beachte, dass θ und Φ in Einheiten von Rad (Radiant) vorliegen. Auf einem Blatt von 3 rotiert der Rotor in einer Richtung gegen den Uhrzeigersinn (CCW) (in 3 eine Pfeilrichtung).
  • Wenn der Prozessor 50 die tatsächlichen zweiten Koordinaten empfängt, ist das dritte Register R31 noch undefiniert. Deshalb wählt der in 2 gezeigte Selektor 56 das erste Register R11 aus und sendet die ersten Koordinaten (sinθ, cosθ) an den Rotationsrichtungs-Diskriminator 53 und die CORDIC-Rotation 51. Andererseits sendet das zweite Register R21 die zweiten Koordinaten (sin(θ + Φ), cos(θ + Φ)) an den Rotationsrichtungs-Diskriminator 53 und die CORDIC-Rotation 51.
  • Der Rotationsrichtungs-Diskriminator 53 berechnet anfangs temporäre Koordinaten P(x', y') auf einer Linie, die einen durch Rotieren des Rotors um die tatsächlichen zweiten Koordinaten (sin(θ + Φ), cos(θ + Φ)) um einen Rotationswinkel θ in einer Richtung einer Koordinatenachse X erhaltenen Punkt mit einem Ursprung O verbindet, während angenommen wird, dass der Ursprung O von Koordinaten ein Rotationszentrum ist und dass der Drehwinkel ab den tatsächlichen ersten Koordinaten (sinθ, cosθ) der Koordinatenachse X θ ist. In 3 ist ein Abstand r vom Ursprung O zu den ersten tatsächlichen Koordinaten gleich einem Abstand r vom Ursprung O zu den tatsächlichen zweiten Koordinaten. Daher sind die temporären Koordinaten P(x', y') gleich einem Punkt, der durch Rotieren des Rotors auf den tatsächlichen zweiten Koordinaten um den Rotationswinkel θ in Richtung der Koordinatenachse X erhalten wird.
  • Der Rotationsrichtungs-Diskriminator 53 unterscheidet eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten, basierend darauf, ob ein Vorzeichen der Koordinate y' in den temporären Koordinaten P(x', y') Plus oder Minus ist. Beispielsweise ist in der in 3 gezeigten Ausführungsform y' ein Positivwert, so dass der Rotationsrichtungs-Diskriminator 53 unterscheidet, dass der Rotor in der CCW-Richtung dreht. Im Gegensatz dazu, falls y' ein Negativwert ist, unterscheidet der Rotationsrichtungs-Diskriminator 53, dass der Rotor in einer CW(Uhrzeigersinn)-Richtung dreht.
  • Anfangs (bei i = 0) berechnet der Rotationsrichtungs-Diskriminator 53 die temporären Koordinaten P(x', y') anhand der Gleichungen (1) und (2). Die Ableitung der Gleichungen (1) und (2) wird später beschrieben. x' = x2·x1 + y2·y1 (Gleichung 1) y' = –x2·y1 + x1·y2 (Gleichung 2)
  • Obwohl er in der Lage ist, sowohl x' als auch y' zu berechnen, berechnet der Rotationsrichtungs-Diskriminator 53 nicht notwendigerweise beides, sondern kann auch nur eines von x und y' berechnen. Beispielsweise unterscheidet im oben gezeigten spezifischen Beispiel der Rotationsrichtungs-Diskriminator die Rotationsrichtung des Rotors basierend auf dem Vorzeichen von y'. Entsprechend reicht es aus, dass der Rotationsrichtungs-Diskriminator 53 die Berechnung nur unter Verwendung der Gleichung (2) vornimmt.
  • Die CORDIC-Rotation 51 berechnet die zweiten Rechen-Koordinaten (xci, yci) unter Verwendung der ersten Koordinaten (x1, y1) = (sinθ, cosθ) wie auch der trigonometrischen Funktionswerte cosΦ0 bis cosΦn und tanΦ0 bis tanΦn aus dem Speicher 52. Die zweiten Rechenkoordinaten (xci, yci) sind Koordinaten, die wiederholt berechnet werden, um so zu den tatsächlichen zweiten Koordinaten (x2, y2) zu konvergieren, wenn die CORDIC-Rotation 51 den Winkel Φ berechnet.
  • Das dritte Register R31 speichert die zweiten Rechen-Koordinaten (xci, yci) auf halber Strecke dieser Berechnung. Die zweiten Rechen-Koordinaten (xci, yci) können durch die Gleichungen (3) oder (4) ausgedrückt werden.
  • Der Rotationsrichtungs-Diskriminator 53 wählt entweder Gleichung (3) oder (4) aus, basierend auf beispielsweise dem Vorzeichen von y'. Die CORDIC-Rotation 51 führt Berechnungen aus, die durch die Gleichungen (3) oder (4) ausgedrückt sind, entsprechend der Auswahl des Rotationsrichtungs-Diskriminators 53. xci = cosΦi·(xci-1 – yci-1·tanΦi) yci = cosΦi·(yci-1 + xci-1·tanΦi) (Gleichung 3) oder xci = cosΦi·(xci-1 + yci-1·tanΦi) yci = cosΦi·(yci-1 – xci-1·tanΦi) (Gleichung 4)
  • In den Gleichungen (3) und (4) ist Φi = tan–12–i (i = 0, 1, 2, ... n), und xci-1 = x1 und yci-1 = y1 bei i = 0.
  • Falls beispielsweise das Vorzeichen von y' Plus ist, ist klar, dass die in 3 gezeigten tatsächlichen zweiten Koordinaten an einer Position sind, die durch Rotieren des Rotors auf den tatsächlichen ersten Koordinaten um den Ursprung O in CCW-Richtung erhalten werden. Daher wählt anfangs der Rotationsrichtungs-Diskriminator 53 die Gleichungen (4) aus, so dass die CORDIC-Rotation 51 die zweiten Rechen-Koordinaten (xci, yci) berechnen kann, die durch Bewegen der tatsächlichen zweiten Koordinaten in der CW-Richtung erhalten werden.
  • Die Gleichungen (3) und (4) werden unten erläutert. Zuerst können die ersten Koordinaten und die tatsächlichen zweiten Koordinaten jeweils durch Gleichungen (5) bis (8) ausgedrückt werden. x1 = cosθ (Gleichung 5) y1 = sinθ (Gleichung 6) x2 = cos(θ + Φ) (Gleichung 7) y2 = sin(θ + Φ) (Gleichung 8)
  • Die Gleichungen (7) und (8) werden zu Gleichungen (9) und (10) transformiert, indem das Additions-Theorem der trigonometrischen Funktion jeweils verwendet wird. x2 = cosθ·cosΦ-sinθ·sinΦ (Gleichung 9) y2 = sinθ·cosΦ – cosθ·sinΦ (Gleichung 10)
  • Falls die Gleichungen (5) und (6) den Gleichungen (9) und (10) zugewiesen werden, werden die Gleichungen (9) und (10) zu Gleichungen (11) bzw. (12) transformiert. x2 = cosΦ(x1 – y1·tanΦ) (Gleichung 11) y2 = cosΦ(y1 + x1·tanΦ) (Gleichung 12)
  • Zu dieser Zeit wird der CORDIC-Algorithmus eingefügt. Spezifischer ist ein Wert von tanΦ auf –2–1 oder +2–1 begrenzt, wie in Gleichung (11) gezeigt. Der derart begrenzte tanΦ wird als tanΦi definiert. tanΦi = ±2–i = ±1, ±2–1, ±2–2, ... (i = 0, 1, 2, ...n) (Gleichung 13)
  • Zu diesem Zeitpunkt ist ein möglicher Wert von Φi wie durch Gleichung (12) ausgedrückt beschränkt. Dieser Winkel Φi ist ein diskreter numerischer Wert und wird nachfolgend als ”temporärer Winkel Φi” bezeichnet. Φi = tan–1 (±2–1) = ±0,78 rad, ±0,46 rad, ±0,25 rad, ±0,12 rad (Gleichung 14)
  • Weiterhin, falls über tanΦi wie durch Gleichung (11) ausgedrückt entschieden wird, wird über cosΦi spontan wie durch Gleichung (15) ausgedrückt entschieden. cosΦi = cos(tan–1(±2–i)) = 0.71, 0.89, 0.97, 0.99 (Gleichung 15)
  • Falls der temporäre Winkel Φi den Gleichungen (11) und (12) zugewiesen ist, werden die zweiten Rechen-Koordinaten erhalten. Man beachte, dass die Gleichung (1) erfüllt ist, falls der temporäre Winkel Φi positiv ist und die Gleichung (2) erfüllt ist, falls der temporäre Winkel Φi negativ ist.
  • In den Gleichungen (13) bis (15) gezeigte diskrete numerische Werte für jedes i werden vorab eingestellt und im Speicher 52 gespeichert. Das heißt, der Speicher 52 speichert den temporären Winkel Φi und die trigonometrischen Funktionswerte tanΦi und cosΦi entsprechend dem temporären Winkel Φi für jedes i. Die CORDIC-Rotation 51 erfasst den temporären Winkel Φi, basierend auf der Gleichung (3) oder (4), während Bezug genommen wird auf die im Speicher 52 gespeicherten und in den Gleichungen (13) bis (15) gezeigten numerischen Werte.
  • Die CORDIC-Rotation 51 berechnet die zweiten Rechen-Koordinaten (xci, yci), die in Gleichung (3) oder (4) gezeigt sind, für jedes i in der Reihenfolge von von i = 0, 1, 2, ....
  • Die 4A und 4B sind Diagramme, die eine Positionsbeziehung zwischen den tatsächlichen zweiten Koordinaten und den zweiten Rechen-Koordinaten und das Konzept von Berechnungen nach der durch den Rotationsrichtungs-Diskriminator 53 vorgenommene Anfangsrechnung zeigen.
  • Nach der Anfangsrechnung (i ≥ 1) unterscheidet der Rotationsrichtungs-Diskriminator 53 eine Rotationsrichtung des Rotors aus den zweiten Rechen-Koordinaten (xci-1, yci-1) zu den tatsächlichen zweiten Koordinaten (x2, y2) unter Verwendung der zweiten Rechen-Koordinaten (xci-1, yci_1) und der tatsächlichen zweiten Koordinaten (x2, y2). Spezifischer, falls angenommen wird, dass der in 4A gezeigte Ursprung O ein Rotationszentrum ist und ein Rotationswinkel ab den zweiten Rechen-Koordinaten (xci-1, yci-1) zur Koordinatenachse X gleich β ist, berechnet der Rotationsrichtungs-Diskriminator 53 zumindest entweder x' oder y' in temporären Koordinaten P(x', y') auf einer Linie, die einen durch Rotieren des Rotors auf der tatsächlichen zweiten Koordinate (x2, y2) um den Drehwinkel β in einer Richtung der Koordinatenachse X erhaltenen Punkt, mit dem Ursprung O verbindet. In den 4A und 4B ist ein Distanz r vom Ursprung O zu den tatsächlichen zweiten Koordinaten (x2, y2) gleich einer Distanz r ab dem Ursprung O zu den zweiten Rechen-Koordinaten (xci-1, yci-1). Daher sind die temporären Koordinaten P(x', y') gleich einem Punkt, der durch Rotieren des Rotors auf den tatsächlichen zweiten Koordinaten (x2, y2) um den Rotationswinkel β in Richtung der Koordinatenachse X erhalten wird.
  • Der Rotationsrichtungs-Diskriminator 53 unterscheidet die Rotationsrichtung von den zweiten Rechen-Koordinaten (xci-1, yci-1) zu den tatsächlichen zweiten Koordinaten (x2, y2), basierend darauf, ob das Vorzeichen der Koordinate y' in den temporären Koordinaten P(x', y') Plus oder Minus ist. Beispielsweise ist in der in 4B gezeigten Ausführungsform y' ein negativer Wert, so dass der Rotationsrichtungs-Diskriminator 53 unterscheidet, dass der Rotor in CW-Richtung von den zweiten Rechenkoordinaten zu den tatsächlichen zweiten Koordinaten rotiert. Umgekehrt, falls y' ein Positivwert ist, unterscheidet der Rotationsrichtungs-Diskriminator 53, dass der Rotor sich in CCW-Richtung dreht.
  • Nach der Anfangsberechnung (i ≥ 1) werden die temporären Koordinaten P(x', y') gemäß Gleichungen (16) und (17) berechnet. x' = xci-1·x1 + yci-1·y1 (Gleichung (16) y' = xci-1·y1 + x1·yci-1 (Gleichung (17)
  • Obwohl er in der Lage ist, sowohl x' als auch y' zu berechnen, berechnet der Rotationsrichtungs-Diskriminator 53 nicht notwendigerweise beides, sondern kann auch nur eines von x' und y' berechnen. Beispielsweise unterscheidet im oben gezeigten spezifischen Beispiel der Rotationsrichtungs-Diskriminator 53 die Rotationsrichtung ab den zweiten Rechen-Koordinaten bis zu den tatsächlichen zweiten Koordinaten gemäß dem Vorzeichen von y'. Entsprechend reicht es aus, dass der Rotationsrichtungs-Diskriminator 53 die Berechnung nur unter Verwendung von Gleichung (2) vornimmt.
  • Die CORDIC-Rotation 51 führt Berechnungen durch, wie durch die Gleichungen (3) oder (4) ausgedrückt, um so die zweiten Rechen-Koordinaten (xci, yci) näher an die zweiten Koordinaten (x2, y2) zu bringen. Um die zweiten Rechen-Koordinaten (xci, yci) in CCW-Richtung zu bewegen, verwendet die CORDIC-Rotation 51 die Gleichungen (3). Um die zweiten Rechen-Koordinaten (xci, yci) in CW-Richtung zu bewegen, verwendet die CORDIC-Rotation 51 die Gleichungen (4).
  • Nach der Anfangsberechnung führt der Rotationsrichtungs-Diskriminator 53 wiederholt Berechnungen aus, die durch Gleichung (16) oder (17) ausgedrückt sind, und führt die CORDIC-Rotation 51 wiederholt Berechnungen aus, die durch die Gleichungen (3) oder (4) ausgedrückt sind, wann immer die zweiten Rechen-Koordinaten aktualisiert werden. Als Ergebnis ist es möglich, die zweiten Rechen-Koordinaten (xci, yci) dazu zu bringen, zu den tatsächlichen zweiten Koordinaten (x2, y2) zu konvergieren, wie in 5 gezeigt.
  • Beim Prozess der Konvergenzberechnungen wird ein durch Aufaddieren der temporären Winkel +Φi oder –Φi erhaltener Winkel der zu erhaltende Rotationswinkel.
  • 5 ist ein Konzeptdiagramm, um die zweiten Rechen-Koordinaten (xci, yci) dazu zu bringen, zu den tatsächlichen zweiten Koordinaten (x2, y2) zu konvergieren. Zuerst transformiert die CORDIC-Rotation 51 die ersten Koordinaten (x1, y1) nach (xci-1, yci-1) und weist Werte der Gleichungen (13) bis (15) bei i = 0 der Gleichung (3) zu, wodurch die zweiten Koordinaten (xc0, yc0) erhalten werden. Zu diesem Zeitpunkt wählt der in 2 gezeigte Selektor 56 das erste Register 11 aus und sendet die ersten Koordinaten (x1, y1) an die CORDIC-Rotation 51 und den Rotationsrichtungs-Diskriminator 53. Die zweiten Rechen-Koordinaten (xc0, yc0) sind Koordinaten, die durch Rotieren des Rotors auf den ersten Koordinaten (x1, y1) zu den zweiten Koordinaten (x2, y2) um Φ0 um in CCW-Richtung erhalten werden. Nach der Berechnung hält das in 2 gezeigte dritte Register 31 die zweiten Rechen-Koordinaten (xc0, yc0). Man beachte, dass das Rotationswinkel-Halteregister R41 die temporären Anfangswinkel +Φ0 oder –Φ0 hält.
  • Als Nächstes weist die CORDIC-Rotation 51 die zweiten Rechen-Koordinaten (xc0, yc0) und Werte der Gleichungen (13) bis (15) bei i = 1 der Gleichung (4) zu, wodurch die zweiten Koordinaten (xc1, yc1) erhalten werden. Zu dieser Zeit wählt der in 2 gezeigte Selektor 56 das dritte Register R31 aus und sendet die zweiten Rechen-Koordinaten (xc0, yc0) an die CORDIC-Rotation 51 und den Rotationsrichtungs-Diskriminator 53. Die CORDIC-Rotation 51 verwendet die Gleichungen (4). Ein Verfahren, durch welches der Rotationsrichtungs-Diskriminator 53 die Gleichungen (4) auswählt, ist das gleiche wie das oben beschriebene.
  • Die zweiten Rechen-Koordinaten (xci, yci) sind Koordinaten, die durch Rotieren des Rotors auf den zweiten Rechen-Koordinaten (xc0, yc0) zu den tatsächlichen zweiten Koordinaten (x2, y2) um Φ1 in der CW-Richtung erhalten werden. Zu dieser Zeit addiert der Addierer 80 den temporären Winkelfluss +Φ1 oder –Φ1 zum temporären Winkel +Φ0 oder –Φ0, der in Rotationswinkel-Halteregister R41 gespeichert ist und führt dieses Additionsergebnis an das Rotationswinkel-Halteregister R41 zurück.
  • Die CORDIC-Rotation 51 führt wiederholt ähnliche Berechnungen für i = 3, 4, ... aus. Wie in Gleichung (14) gezeigt, wird ein Wert des temporären Winkels Φi niedriger, wenn i größer wird. Entsprechend konvergieren die zweiten Rechen-Koordinaten (xci, yci) in die aktuellen zweiten Koordinaten (x2, y2). Zu diesem Zeitpunkt speichert das dritte Register R31 die zweiten Rechen-Koordinaten (xci, yci) und der Selektor 56 sendet die zweiten Rechen-Koordinaten (xci, yci) an die CORDIC-Rotation 51 und den Rotationsrichtungs-Diskriminator 53, wenn nächste zweite Rechen-Koordinaten (xci+1, yci+1) zu berechnen sind.
  • Der Addierer 80 addiert den temporären Winkel +Φi oder –Φi zum temporären Winkel +Φi-1 oder –Φi-1, die im Rotationswinkel-Halteregister R41 gespeichert sind und gibt das Additionsergebnis an das Rotationswinkel-Halteregister R41 zurück. Auf diese Weise addiert der Addierer 80 temporäre Winkel +Φ0 oder –Φ0, +Φ1 oder –Φ1, +Φ2 oder –Φ2, ... und +Φi oder –Φi auf, und das Rotationswinkel-Halteregister R41 hält den sich ergebenden temporären Winkel. Wenn der temporäre Winkel Φi konvergiert, wird der im Rotationswinkel-Halteregister R1 gespeicherte Winkel zum Rotationswinkel Φ ab den tatsächlichen ersten Koordinaten bis zu den zweiten Koordinaten.
  • Eine Reihe von Berechnungen wird während eines Zeitraums von den zweiten bis zu den dritten Abtastungen durchgeführt. Das heißt, die CORDIC-Rotation 51 konvergiert die zweiten Rechen-Koordinaten (xci, yci) zu tatsächlichen zweiten Koordinaten (x2, y2) während einer Ein-Zyklus-Periode. Als Ergebnis ist es möglich, den Rotationswinkel Φ von den tatsächlichen ersten Koordinaten zu den zweiten Koordinaten zu erhalten.
  • Dadurch kann die CORDIC-Rotation 51 den tatsächlichen Rotationswinkel Φ bei jeder Abtastung erhalten. Die Ein-Zyklus-Abtastperiode ist eine voreingestellte Periode. Entsprechend kann die Geschwindigkeitsdetektionsvorrichtung 100 die Winkelgeschwindigkeit durch den temporären Winkel Φi gleich oder näher an dem tatsächlichen Winkel θ + Φ erhalten, der bei jeder Abtastung erhalten wir. Die Geschwindigkeitsdetektionsvorrichtung 100 gibt diese Winkelgeschwindigkeit aus.
  • In der vorliegenden Ausführungsform werden die tatsächlichen zweiten Koordinaten rotational um so viel wie den Rotationswinkel (θ oder β) zwischen den tatsächlichen ersten Koordinaten oder zweiten Rechen-Koordinaten und der X-Achse bewegt. Dies ermöglicht es dem Rotationsrichtungs-Diskriminator 53, genau zu diskriminieren, ob die tatsächlichen ersten Koordinaten oder zweiten Rechen-Koordinaten in CW-Richtung oder CCW-Richtung relativ zu den tatsächlichen zweiten Koordinaten sind.
  • Selbst falls die Distanz vom Ursprung O zu den tatsächlichen ersten Koordinaten sich vom Abstand vom Ursprung O zu den tatsächlichen zweiten Koordinaten unterscheidet, kann der Rotationsrichtungs-Diskriminator 53 ähnlich und genau die Positionsbeziehung zwischen den tatsächlichen ersten Koordinaten oder zweiten Rechen-Koordinaten und den tatsächlichen zweiten Koordinaten diskriminieren.
  • Beispielsweise verursacht im tatsächlichen Betrieb ein Brummen oder Rauschen, das in einer Stromversorgungsspannung auftritt, oft eine Fluktuation beim SIN-Signal und COS-Signal. In diesem Fall unterscheidet sich der Abstand vom Ursprung O zu den tatsächlichen ersten Koordinaten, von demjemigen vom Ursprung O zu den tatsächlichen zweiten Koordinaten, wie in 6 gezeigt. In diesem Fall ist y2 kleiner als y1, trotz der Rotation des Rotors in der CCW-Richtung. Entsprechend, falls der Rotationsrichtungs-Diskriminator 53 die Rotationsrichtung des Rotors einfach aus einer Größen-Beziehung zwischen y1 und y2 zu diskriminieren hat, diskriminiert der Rotationsrichtungs-Diskriminator 53 möglicherweise die Rotationsrichtung des Rotors fehlerhaft.
  • Jedoch ist gemäß der vorliegenden Ausführungsform y' in den temporären Koordinaten P ein Positivwert, wie in 6 gezeigt, so dass der Rotationsrichtungs-Diskriminator 53 diskriminieren kann, dass die tatsächlichen zweiten Koordinaten in der CCW-Richtung relativ zu den tatsächlichen ersten Koordinaten sind. Das heißt, gemäß der vorliegenden Ausführungsform, selbst falls ein Brummen oder Rauschen in der Stromversorgungsspannung auftritt, kann der Rotationsrichtungs-Diskriminator 53 akkurat die Positionsbeziehung zwischen den ersten tatsächlichen Koordinaten und den tatsächlichen zweiten Koordinaten unterscheiden. Dasselbe gilt für die Positionsbeziehung zwischen den zweiten Rechen-Koordinaten und den tatsächlichen zweiten Koordinaten.
  • Selbst falls die Distanz vom Ursprung O zu den tatsächlichen ersten Koordinaten sich von der vom Ursprung O zu den tatsächlichen zweiten Koordinaten unterscheidet, sind die Gleichungen (1) und (2) und die Gleichungen (13) und (14) für die Unterscheidung der Rotationsrichtung anwendbar.
  • Beispielsweise wird die Beziehung zwischen den tatsächlichen zweiten Koordinaten (x2, y2) und den temporären Koordinaten P, in 6 gezeigt, durch die nachfolgende Gleichung (18) ausgedrückt.
  • Figure 00210001
  • Gleichungen (22) und (23) sind von den Gleichungen (18) bis (21) abgeleitet. x' = (1/r1)·(x2·x1 + y2·y1) (Gleichung 22) y' = (1/r1)·(–x2·y1 + x1·y2) (Gleichung 23)
  • Da eine Distanz r1 vom Ursprung O zu den aktuellen ersten Koordinaten (x1, y1) konstant positiv ist, wird über Vorzeichen von x' und y' basierend auf Gleichung (2) entschieden, unabhängig von der Distanz r1.
  • Der Rotationsrichtungs-Diskriminator 53 gemäß der vorliegenden Ausführungsform, die oben beschrieben ist, unterscheidet die Positionsbeziehung zwischen den tatsächlichen ersten Koordinaten oder den zweiten Rechen-Koordinaten und den tatsächlichen zweiten Koordinaten relativ zur X-Achse. Es ist überflüssig zu sagen, dass der Rotationsrichtungs-Diskriminator 53 die Positionsbeziehung relativ zur Y-Achse diskriminieren kann. In diesem Fall unterscheidet der Rotationsrichtungs-Diskriminator 53 die Positionsbeziehung zwischen den tatsächlichen ersten Koordinaten oder zweiten Rechen-Koordinaten und den tatsächlichen zweiten Koordinaten, darauf basierend, ob das Vorzeichen von x' in Gleichung (2) Plus oder Minus ist. Das heißt, es reicht aus, dass der Rotationsrichtungs-Diskriminator 53 die Berechnung gemäß nur der Gleichung (2) durchführt und die Gleichungen (3) oder (4) anhand des bei der Berechnung erhaltenen Vorzeichens von x' auswählt. Da eine durch den Rotationsrichtungs-Diskriminator 53 relativ zur Y-Achse durchgeführte Operation leicht aus dieser Ausführungsform abgeschätzt werden kann, werden Erläuterungen derselben weggelassen.
  • In der vorliegenden Ausführungsform berechnet die Geschwindigkeitsdetektionsvorrichtung 100 die Winkelgeschwindigkeit des Rotors. Alternativ ist die Geschwindigkeitsdetektionsvorrichtung 100 auf einen sich bewegenden Körper angwendbar, der eine reziprozierende Bewegung macht. Bei dieser Alternative kann die Geschwindigkeitsdetektionsvorrichtung 100 eine durch die CORDIC-Rotation 51 berechnete Winkelgeschwindigkeit als eine Geschwindigkeit des sich bewegenden Körpers detektieren.
  • Gemäß der vorliegenden Ausführungsform kann die Geschwindigkeitsdetektionsvorrichtung 100 den Rotationswinkel unter Verwendung des sin-Signals und des cos-Signals detektieren, ohne die Division (Arc Tangens) zu verwenden, welche die Genauigkeit der Geschwindigkeitsdetektion beeinträchtigt. Daher ist es möglich, sicherzustellen, dass die Geschwindigkeitsdetektionsvorrichtung 100 eine hohe Genauigkeit aufweist.
  • Gemäß der vorliegenden Ausführungsform führt die Geschwindigkeitsdetektionsvorrichtung 100 Berechnungen durch, um so die zweiten Rechen-Koordinaten näher an die tatsächlichen zweiten Koordinaten heranzubringen, unter Verwendung einer von vier arithmetischen Operationen außer Division, d. h. Multiplikation, Addition oder Subtraktion, wie durch die Gleichungen (3) und (4) ausgedrückt. Es ist dadurch möglich, die Arithmetikschaltung in der Geschwindigkeitsdetektionsvorrichtung 100 relativ einfach im Aufbau zu machen. Dies kann die gesamte Vorrichtung 100 kleiner und für Massenproduktion geeignet machen.
  • ZUSAMMENFASSUNG
  • Eine Geschwindigkeitsdetektionsvorrichtung beinhaltet einen Rotationsrichtungs-Diskriminator, der eine x-Koordinate oder eine y-Koordinate in temporären Koordinaten auf einer Linie zwischen einem Ursprung der Koordinaten und einem Punkt berechnet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Drehwinkel θ in einer Richtung einer Koordinatenachse erhalten wird, wobei der Rotationsrichtungs-Diskriminator eine Rotationsrichtung aus den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend entweder auf einem Vorzeichen der x- oder y-Koordinate in den temporären Koordinaten; und einen Prozessor, der zweite Rechen-Koordinaten berechnet, die durch eine Multiplikation, Addition oder Subtraktion zwischen den tatsächlichen ersten Koordinaten und einer der trigonometrischen Funktionswerte repräsentiert ist, um zweite Rechen-Koordinaten näher an die tatsächlichen zweiten Koordinaten zu bringen, und die Geschwindigkeit des sich bewegenden Körpers basierend auf den temporären Winkeln entsprechend dem für die zweiten Rechen-Koordinaten verwendeten trigonometrischen Funktionswert berechnet.

Claims (10)

  1. Geschwindigkeitsdetektionsvorrichtung zum periodischen Abtasten von Koordinaten, die eine Position eines sich bewegenden Körpers anzeigen, der eine Drehbewegung oder eine reziprozierende Bewegung durchführt, und zum Detektieren einer Geschwindigkeit eines sich bewegenden Körpers basierend auf den Koordinaten, umfassend: einen Speicher, der eine Mehrzahl von voreingestellten temporären Winkeln und trigonometrischen Funktionswerten entsprechend jeweils den temporären Winkeln speichert; ein erstes Register, das tatsächliche erste Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen ersten Koordinaten durch eine erste Abtastung erhalten werden; ein zweites Register, das tatsächliche zweite Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen zweiten Koordinaten durch eine zweite Abtastung als Nächstes nach der ersten Abtastung erhalten werden; einen Rotationsrichtungs-Diskriminator, der zumindest entweder eine x-Koordinate oder eine y-Koordinate bei den temporären Koordinaten auf einer Linie berechnet, die zwischen einem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel θ in einer Richtung einer Koordinatenachse erhalten wird, wobei der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend entweder auf einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten, wobei der Ursprung der Koordinaten ein Drehzentrum ist und θ der Drehwinkel ab den tatsächlichen ersten Koordinaten bis zu der Koordinatenachse ist; und einen Prozessor, der zweite Rechen-Koordinaten berechnet, die durch Multiplikation, Addition oder Subtraktion zwischen den tatsächlichen ersten Koordinaten und einem der trigonometrischen Funktionswerte repräsentiert sind, um die zweiten Rechen-Koordinaten näher an die tatsächlichen zweiten Koordinaten zu bringen, basierend auf der Rotationsrichtung, wobei der Prozessor die Geschwindigkeit des sich bewegenden Körpers basierend auf einem der temporären Winkel berechnet, entsprechend dem trigonometrischen Funktionswert, der für die zweiten Rechen-Koordinaten verwendet wird, wobei der Rotationsrichtungs-Diskriminator zumindest entweder eine x-Koordinate oder eine y-Koordinate in temporären Koordinaten auf einer Linie berechnet, welche zwischen dem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel β in Richtung der Koordinatenachse erhalten wird, der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den zweiten Rechen-Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend auf entweder einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten, der Ursprung der Koordinaten das Drehzentrum ist, und β der Rotationswinkel ab den zweiten Rechen-Koordinaten zur Koordinatenachse ist.
  2. Vorrichtung nach Anspruch 1, wobei der Speicher Φ0 bis Φn speichert, wobei Φ0 > Φ1 > Φ2 ...Φn und n eine natürliche Zahl ist, als die temporären Winkel und cosΦ0 bis cosΦn und tanΦ0 bis tanΦn als die trigonometrischen Funktionswerte speichert; und der Prozessor wiederholt Gleichungen (3) oder (4) berechnet, wobei Φi = tan–12–i und i = 0, 1, 2, ... n, und xci-1 = x1 und yci-1 = y1 bei i = 0, wobei die ersten Koordinaten (x1, y1) sind, die tatsächlichen zweiten Koordinaten (x2, y2) und die zweiten Rechen-Koordinaten (xci, yci) sind: xci = cosΦi·(xci-1 – yci-1·tanΦi) yci = cosΦi·(yci-1 + xci-1·tanΦi) (Gleichung 3) oder xci = cosΦi·(xci-1 + yci-1·tanΦi) yci = cosΦi·(yci-1 – xci-1·tanΦi) (Gleichung 4)
  3. Vorrichtung nach Anspruch 2, wobei der Rotationsrichtungs-Diskriminator: die temporären Koordinaten (x', y') durch Berechnen von Gleichung (1) oder (2) bei i = 0 berechnet x' = x2·x1 + y2·y1 (Gleichung 1) y' = –x2·y1 + x1·y2 (Gleichung 2), eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend darauf, ob ein Vorzeichen des x' oder des y' Plus oder Minus ist, und entweder Gleichung (3) oder (4) anhand der Rotationsrichtung selektiert, wobei der Rotationsrichtungs-Diskriminator: die temporären Koordinaten (x', y') durch Berechnung von Gleichung (16) oder (17) bei i ≥ 1 berechnet: x' = xci-1·x1 + yci-1·y1 (Gleichung (16) y' = xci-1·y1 + x1·yci-1 (Gleichung (17), eine Rotationsrichtung aus den zweiten Rechen-Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend darauf, ob das Vorzeichen des x' oder das Vorzeichen des y' Plus oder Minus ist, und entweder die Gleichungen (3) oder (4) anhand der Rotationsrichtung auswählt.
  4. Vorrichtung nach Anspruch 3, wobei der Prozessor die zweiten Rechen-Koordinaten (xci, yci) für jedes i in der Reihenfolge von i = 0, 1, 2, ... unter Verwendung der Gleichungen (3) oder (4), die durch den Rotationsrichtungs-Diskriminator ausgewählt sind, berechnet, und die Geschwindigkeit des sich bewegenden Körpers basierend auf dem temporären Winkel berechnet, der für die zweiten Rechen-Koordinaten verwendet wird, die am nächsten an den tatsächlichen zweiten Koordinaten liegen.
  5. Vorrichtung nach Anspruch 1, weiter umfassend: ein drittes Register, das sequentiell die zweiten Rechen-Koordinaten hält; und ein viertes Register zum Aufaddieren des temporären Winkels.
  6. Servo-Motor zum periodischen Abtasten von Koordinaten, die eine Position eines sich bewegenden Körpers anzeigen, der eine Rotationsbewegung oder eine reziprozierende Bewegung durchführt und zum Detektieren einer Geschwindigkeit des sich bewegenden Körpers, basierend auf den Koordinaten, umfassend: einen Speicher, der eine Mehrzahl von voreingestellten temporären Winkeln und trigonometrischen Funktionswerten entsprechend jeweils den temporären Winkeln speichert; ein erstes Register, das tatsächliche erste Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen ersten Koordinaten durch eine erste Abtastung erhalten werden; ein zweites Register, das tatsächliche zweite Koordinaten des sich bewegenden Körpers speichert, wobei die tatsächlichen zweiten Koordinaten durch eine zweite Abtastung als Nächstes nach der ersten Abtastung erhalten werden; einen Rotationsrichtungs-Diskriminator, der zumindest entweder eine x-Koordinate oder eine y-Koordinate bei den temporären Koordinaten auf einer Linie berechnet, die zwischen einem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel θ in einer Richtung einer Koordinatenachse erhalten wird, wobei der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend entweder auf einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem . Vorzeichen der y-Koordinate in den temporären Koordinaten, wobei der Ursprung der Koordinaten ein Drehzentrum ist und θ der Drehwinkel ab den tatsächlichen ersten Koordinaten bis zu der Koordinatenachse ist; und einen Prozessor, der zweite Rechen-Koordinaten berechnet, die durch Multiplikation, Addition oder Subtraktion zwischen den tatsächlichen ersten Koordinaten und einem der trigonometrischen Funktionswerte repräsentiert sind, um die zweiten Rechen-Koordinaten näher an die tatsächlichen zweiten Koordinaten zu bringen, basierend auf der Rotationsrichtung, wobei der Prozessor die Geschwindigkeit des sich bewegenden Körpers basierend auf einem der temporären Winkel berechnet, entsprechend dem trigonometrischen Funktionswert, der für die zweiten Rechen-Koordinaten verwendet wird, wobei der Rotationsrichtungs-Diskriminator zumindest entweder eine x-Koordinate oder eine y-Koordinate in temporären Koordinaten auf einer Linie berechnet, welche zwischen dem Ursprung der Koordinaten und einem Punkt verbindet, der durch Rotieren der tatsächlichen zweiten Koordinaten um so viel wie einen Rotationswinkel β in Richtung der Koordinatenachse erhalten wird, der Rotationsrichtungs-Diskriminator eine Rotationsrichtung von den zweiten Rechen-Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend auf entweder einem Vorzeichen der x-Koordinate in den temporären Koordinaten oder einem Vorzeichen der y-Koordinate in den temporären Koordinaten, der Ursprung der Koordinaten das Drehzentrum ist, und β der Rotationswinkel ab den zweiten Rechen-Koordinaten zur Koordinatenachse ist.
  7. Servo-Motor nach Anspruch 6, wobei der Speicher Φ0 bis Φn speichert, wobei Φ0 > Φ1 > Φ2 ...Φn und n eine natürliche Zahl ist, als die temporären Winkel und cosΦ0 bis cosΦn und tanΦ0 bis tanΦn als die trigonometrischen Funktionswerte speichert; und der Prozessor wiederholt Gleichungen (3) oder (4) berechnet, wobei Φi = tan–12–i und i = 0, 1, 2, ...n, und xci-1 = x1 und yci-1 = y1 bei i = 0, wobei die ersten Koordinaten (x1, y1) sind, die tatsächlichen zweiten Koordinaten (x2, y2) und die zweiten Rechen-Koordinaten (xci, yci) sind: xci = cosΦi·(xci-1 – yci-1·tanΦi) yci = cosΦi·(yci-1 + xci-1·tanΦi) (Gleichung 3) oder xci = cosΦi·(xci-1 + yci-1·tanΦi) yci = cosΦi·(yci-1 – xci-1·tanΦi) (Gleichung 4)
  8. Servo-Motor nach Anspruch 7, wobei der Rotationsrichtungs-Diskriminator: die temporären Koordinaten (x', y') durch Berechnen von Gleichung (1) oder (2) bei i = 0 berechnet x' = x2·x1 + y2·y1 (Gleichung 1) y' = –x2·y1 + x1·y2 (Gleichung 2), eine Rotationsrichtung von den tatsächlichen ersten Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend darauf, ob ein Vorzeichen des x' oder des y' Plus oder Minus ist, und entweder Gleichung (3) oder (4) anhand der Rotationsrichtung selektiert, wobei der Rotationsrichtungs-Diskriminator: die temporären Koordinaten (x', y') durch Berechnung von Gleichung (16) oder (17) bei i ≥ 1 berechnet: x' = xci-1·x1 + yci-1·y1 (Gleichung (16) y' = xci-1·y1 + x1·yci-1 (Gleichung (17), eine Rotationsrichtung aus den zweiten Rechen-Koordinaten zu den tatsächlichen zweiten Koordinaten unterscheidet, basierend darauf, ob das Vorzeichen des x' oder das Vorzeichen des y' Plus oder Minus ist, und entweder die Gleichungen (3) oder (4) anhand der Rotationsrichtung auswählt.
  9. Servo-Motor nach Anspruch 8, wobei der Prozessor die zweiten Rechen-Koordinaten (xci, yci) für jedes i in der Reihenfolge von i = 0, 1, 2, ... unter Verwendung der Gleichungen (3) oder (4), die durch den Rotationsrichtungs-Diskriminator ausgewählt sind, berechnet, und die Geschwindigkeit des sich bewegenden Körpers basierend auf dem temporären Winkel berechnet, der für die zweiten Rechen-Koordinaten verwendet wird, die am nächsten an den tatsächlichen zweiten Koordinaten liegen.
  10. Servo-Motor nach Anspruch 6, weiter umfassend: ein drittes Register, das sequentiell die zweiten Rechen-Koordinaten hält; und ein viertes Register zum Aufaddieren des temporären Winkels.
DE112009000846T 2008-05-22 2009-05-11 Geschwindigkeitsdetektionsvorrichtung und Servomotor Expired - Fee Related DE112009000846B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008134559A JP2009281883A (ja) 2008-05-22 2008-05-22 速度検出装置およびサーボモータ
JP2008-134559 2008-05-22
PCT/JP2009/058739 WO2009142118A1 (ja) 2008-05-22 2009-05-11 速度検出装置およびサーボモータ

Publications (2)

Publication Number Publication Date
DE112009000846T5 true DE112009000846T5 (de) 2011-05-12
DE112009000846B4 DE112009000846B4 (de) 2013-04-04

Family

ID=41340050

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009000846T Expired - Fee Related DE112009000846B4 (de) 2008-05-22 2009-05-11 Geschwindigkeitsdetektionsvorrichtung und Servomotor

Country Status (5)

Country Link
US (1) US8401817B2 (de)
JP (1) JP2009281883A (de)
KR (1) KR101239570B1 (de)
DE (1) DE112009000846B4 (de)
WO (1) WO2009142118A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6205683B2 (ja) * 2012-05-30 2017-10-04 株式会社リコー 回転角度検出装置、画像処理装置及び回転角度検出方法
JP2015121519A (ja) * 2013-12-25 2015-07-02 株式会社リコー 角度検出装置およびモータ駆動制御装置
JP6335661B2 (ja) * 2014-06-04 2018-05-30 キヤノン株式会社 演算装置およびその制御方法
JP6750857B2 (ja) * 2016-06-14 2020-09-02 キヤノン株式会社 座標データ回転演算装置及び座標データ回転演算方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62211505A (ja) * 1986-03-12 1987-09-17 Nippon Gakki Seizo Kk エンコ−ダ用変位検出回路
JPH07294992A (ja) 1994-04-27 1995-11-10 Nikon Corp 振れ補正機能を有する撮影装置
KR19990085924A (ko) 1998-05-22 1999-12-15 윤종용 삼각함수 생성장치 및 방법
DE19937737C2 (de) 1999-08-10 2003-10-30 Pilz Gmbh & Co Vorrichtung zum sicheren Überwachen der Drehbewegung einer Welle
JP3598938B2 (ja) * 2000-04-19 2004-12-08 日本電気株式会社 携帯無線システム及びそれに用いる携帯無線装置並びにそれらに用いる周波数誤差推定方法
ATE318518T1 (de) * 2000-12-14 2006-03-15 Car Forni Srl Sa Förderband für einen tunnelofen
DE10164462B4 (de) 2001-12-20 2007-04-26 IHP GmbH - Innovations for High Performance Microelectronics/ Institut für innovative Mikroelektronik GmbH CORDIC-Einheit
JP2004032432A (ja) * 2002-06-26 2004-01-29 Matsushita Electric Ind Co Ltd 受信装置
EP1471332A1 (de) 2003-04-17 2004-10-27 Dialog Semiconductor GmbH Digitale Schnittstelle für einen Winkelsensor
EP1711888A1 (de) 2004-01-28 2006-10-18 Koninklijke Philips Electronics N.V. Implementierung des cordischen algorithmus für komplexe phasendrehung
JP2006201148A (ja) 2004-12-22 2006-08-03 Toshiba Mach Co Ltd 信号処理装置、信号処理方法、信号処理プログラム、信号処理プログラムを記録した記録媒体、速度検出装置、サーボ機構
JP4987269B2 (ja) * 2005-08-22 2012-07-25 東芝機械株式会社 速度検出装置およびサーボモータ
US7932692B2 (en) 2006-11-13 2011-04-26 Denso Corporation Control system for rotary electric machine with salient structure
JP4987448B2 (ja) 2006-12-05 2012-07-25 東芝機械株式会社 速度検出装置

Also Published As

Publication number Publication date
US8401817B2 (en) 2013-03-19
JP2009281883A (ja) 2009-12-03
KR101239570B1 (ko) 2013-03-05
DE112009000846B4 (de) 2013-04-04
WO2009142118A1 (ja) 2009-11-26
US20110040522A1 (en) 2011-02-17
KR20110004448A (ko) 2011-01-13

Similar Documents

Publication Publication Date Title
DE102007062780B4 (de) Magnetischer Absolutkodierer
DE112009000846B4 (de) Geschwindigkeitsdetektionsvorrichtung und Servomotor
DE102007022196A1 (de) Drehwinkel-Detektorgerät, welches eine Messung von Graden einer Drehung einer Welle ermöglicht, die 360° überschreitet
CN109546808B (zh) 一种舵机及用于减小舵机虚位的方法
DE102006039176B4 (de) Geschwindigkeits-Erfassungsvorrichtung und Servomotor
DE102007057476B4 (de) Geschwindigkeitserfassungsvorrichtung
DE112016007397T5 (de) Drehwinkeldetektionsvorrichtung und Drehwinkeldetektionsverfahren
DE102008006526B4 (de) Wellenform-Korrekturvorrichtung und Wellenform-Korrekturverfahren
DE2425226A1 (de) Verfahren und vorrichtung zum ausmessen von oberflaechen
JPS63106826A (ja) 多次元デ−タ入力マウス装置
US11041708B2 (en) Angle sensing device
DE102015013162B4 (de) Anzuzeigende Punktsequenzdaten in Zeitreihendaten bezüglich Antriebsachsen umwandelnde Zeitreihendatenanzeigevorrichtung
DE102018207631A1 (de) Verfahren und Programm zur Winkelkalibrierung einer Drehwelle
DE4407446C1 (de) Verfahren und Vorrichtung zur schnellen Interpolation von Zwischenwerten aus periodischen phasenverschobenen Signalen sowie deren Verwendung
CN110829911B (zh) 一种步进电机驱动方法及驱动设备
JP3243770B2 (ja) 回転運動入力方法
EP1362221A1 (de) Drehwinkelsensor
DE102020213886B3 (de) Magnetsensorsystem
CN111801630A (zh) 变位机轴坐标系标定方法、机器人系统及存储装置
CN111856075B (zh) 旋转方向判断方法和装置及旋转方向检测装置
CN108381550B (zh) 一种基于模板的快速机器人抓取姿态的规划方法
DE102011086371A1 (de) Steuermodul für einen Antriebsmotor
DE102018112892A1 (de) Messsystem zum Bestimmen einer Relativbewegung
JP6656874B2 (ja) 回転系の位置フィードバック制御方法
EP1769460A1 (de) Computertomografieverfahren zur rekonstruktion von objektbildern aus echten und fiktiven messwerten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130705

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee