DE10330809A1 - Motorsteuerungsgerät - Google Patents

Motorsteuerungsgerät Download PDF

Info

Publication number
DE10330809A1
DE10330809A1 DE10330809A DE10330809A DE10330809A1 DE 10330809 A1 DE10330809 A1 DE 10330809A1 DE 10330809 A DE10330809 A DE 10330809A DE 10330809 A DE10330809 A DE 10330809A DE 10330809 A1 DE10330809 A1 DE 10330809A1
Authority
DE
Germany
Prior art keywords
control
phase
rotor
power supply
motor
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
DE10330809A
Other languages
English (en)
Other versions
DE10330809B4 (de
DE10330809B8 (de
Inventor
Shigeru Kariya Kamio
Kenichi Kariya Fujiki
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.)
Denso Corp
Original Assignee
Denso Corp
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
Priority claimed from JP2002199469A external-priority patent/JP3886042B2/ja
Priority claimed from JP2002207559A external-priority patent/JP3947922B2/ja
Priority claimed from JP2002207558A external-priority patent/JP3849931B2/ja
Priority claimed from JP2002207557A external-priority patent/JP3849930B2/ja
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE10330809A1 publication Critical patent/DE10330809A1/de
Publication of DE10330809B4 publication Critical patent/DE10330809B4/de
Application granted granted Critical
Publication of DE10330809B8 publication Critical patent/DE10330809B8/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4062Monitoring servoloop, e.g. overload of servomotor, loss of feedback or reference
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P6/00Arrangements for controlling synchronous motors or other dynamo-electric motors using electronic commutation dependent on the rotor position; Electronic commutators therefor
    • H02P6/12Monitoring commutation; Providing indication of commutation failure
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42287On feedback failure, use profile stored in memory during learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42322Emit dummy pulses, detect loss of pulses, feedback failure, wire brake, short

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Power Engineering (AREA)
  • Control Of Electric Motors In General (AREA)
  • Control Of Motors That Do Not Use Commutators (AREA)

Abstract

Ein Vorhandensein/Fehlen einer Fehlfunktion wird in einem Regelungssystem eines Motors (12) überwacht. Wenn eine Fehlfunktion in dem Regelungssystem erfasst wird, wird der Motor (12) durch Schalten zu einer offenen Regelkreissteuerung angesteuert. Während der offenen Regelkreissteuerung wird der Motor (12) durch sequentielles Schalten der Motorstromzufuhrphase gedreht, ohne Kodiereinrichtungszählwertinformationen zurückzuführen. Der Positionszählwert (Ncntop) wird jedes Mal, wenn die Stromzufuhrphase geschaltet wird, inkrementiert oder dekrementiert. Wenn der Positionszählwert (Ncntop) einen Sollzählwert (Acnt) erreicht hat, wird bestimmt, dass der Rotor eine Zielposition erreicht hat, woraufhin die offene Regelkreissteuerung beendet wird.

Description

  • Die vorliegende Erfindung betrifft ein Motorsteuerungsgerät zur Drehansteuerung (Drehen) des Rotors eines Motors zu einer Zielposition durch Erfassen der Drehposition des Rotors auf der Grundlage eines Zählwerts eines Impulssignals einer Kodiereinrichtung und durch sequentielles Schalten der Stromzufuhrphase des Motors.
  • Bürstenlose Motoren, wie beispielsweise geschaltete Reluktanzmotoren, werden in jüngster Zeit vermehrt verlangt, da sie preiswert sind und einen einfachen Aufbau aufweisen. Diese Motoren beziehen eine Kodiereinrichtung zur Ausgabe eines Impulssignals synchron mit der Drehung des Rotors ein, der durch sequentielles Schalten der Stromzufuhrphase durch Zählen von Impulsen eines Impulssignals der Kodiereinrichtung und Erfassen der Drehposition des Rotors auf der Grundlage des Zählwerts gedreht wird. Durch Ermöglichen einer Erfassung der Drehposition des Rotors auf der Grundlage des Kodiereinrichtungszählwerts nach einem Starten werden Motoren dieses Typs mit einer Kodiereinrichtung als Antriebsquellen für verschiedene Positionsschaltvorrichtungen verwendet, bei denen eine Positionsschaltsteuerung (Positionierungssteuerung) zum Drehen des Rotors zu einer Zielposition mittels eines Regelungssystems (das heißt, eines Geschlossener-Regelkreissteuerungssystems) ausgeführt wird.
  • Während einer Regelung zum Drehen des Rotors zu einer Zielposition auf der Grundlage des Kodiereinrichtungszählwerts wird, wenn beispielsweise ein Impulssignal der Kodiereinrichtung zeitweilig aus einem bestimmten Grund verloren wird oder ein Rauschimpuls, der auf einer Signalleitung der Kodiereinrichtung auftritt, irrtümlicherweise als regulärer Impuls erkannt wird, die Synchronisation zwischen der Stromzufuhrphase oder derzeitigen Zufuhrphase (dem Kodiereinrichtungszählwert) und der Drehphase des Rotors verloren und der Rotor kann nicht länger normal angesteuert werden. Als Ergebnis kann der Rotor stoppen oder sich in eine umgekehrte Richtung drehen, was einen Zustand verursacht, bei dem die Regelung nicht auf übliche Weise fortgesetzt werden kann. In einem derartigen Fall wird der Motor unsteuerbar.
  • Ferner kann, wenn eine Trennung bzw. Abschaltung in der Antriebsspule oder Ansteuerungsspule eines Motors auftritt oder eine zugehörige Ansteuerungsschaltung eine Fehlfunktion aufweist, der Motor nicht normal angesteuert werden. Angesichts dessen ist in der JP-A-2001-271917 eine Ausfallsicherungsschaltung vorgeschlagen, bei der der Statorkern eines Motors mit zwei unabhängigen Systemen von Ansteuerungsspulen ausgestattet ist und zwei Systeme von Ansteuerungsschaltungen zur Ansteuerung der jeweiligen Systeme von Ansteuerungsspulen separat bereitgestellt sind. Wenn eine Fehlfunktion in der Ansteuerungsspule oder der Ansteuerungsschaltung eines Systems auftritt, wird die Drehposition des Rotors unter Verwendung der Ansteuerungsspule des anderen Systems und der Ansteuerungsschaltung des anderen Systems geregelt, die keine Fehlfunktion aufweisen.
  • Wenn jedoch eine Fehlfunktion in der Ansteuerungsspule oder der Ansteuerungsschaltung eines Systems auftritt und die Drehposition des Rotors unter Verwendung lediglich der Ansteuerungsspule des anderen Systems geregelt wird, halbiert sich das Antriebsdrehmoment zu dem bei einem normalen Zustand. Aufgrund des unzureichenden Antriebsdrehmoments kann die Drehposition des Rotors möglicherweise nicht geregelt werden. Um jedoch ein ausreichendes Antriebsdrehmoment, das eine normale Regelung mit lediglich der Ansteuerungsspule eines einzelnen Systems ermöglicht, sicherzustellen, ist eine große Ansteuerungsspule erforderlich, wobei folglich der Motor übermäßig groß wird.
  • Eine Aufgabe der vorliegenden Erfindung ist, die vorstehend beschriebenen Nachteile zu beseitigen.
  • Gemäß einer ersten Ausgestaltung der Erfindung wird ein Vorhandensein/Fehlen einer Anomalie in dem Regelungszustand während einer Regelung (geschlossener Regelkreis bzw. Geschlossener-Regelkreissteuerung) überwacht. Wenn eine Anomalie in dem Regelungszustand erfasst wird, wird ein Schalten von der Regelung zu einer offenen Regelkreissteuerung (open-loop control) ausgeführt und der Rotor wird durch sequentielles Schalten der Stromzufuhrphase des Motors ohne Regelungskodiereinrichtungszählwertinformationen gedreht.
  • Wenn der Kodiereinrichtungszählwert während einer Regelung beispielsweise aufgrund eines Verlustes eines Impulses der Kodiereinrichtung oder von Rauschen anormal wird, sind die Stromzufuhrphase (das heißt der Kodiereinrichtungszählwert) und die Drehphase des Rotors nicht länger miteinander synchronisiert, was einen anormalen Regelungszustand (Rotordrehzustand) verursacht. Erfindungsgemäß wird ein Schalten von der Regelung zu der offenen Regelkreissteuerung oder Offener-Regelkreissteuerung bei einer Erfassung einer Anomalie ausgeführt. Als Ergebnis kann, auch wenn eine Anomalie oder dergleichen in dem Kodiereinrichtungszählwert während der Regelung auftritt, was einen anormalen Regelungszustand (Rotordrehzustand) zeitweise verursacht, der Rotor zu der Zielposition durch die offene Regelkreissteuerung gedreht werden. Die Zuverlässigkeit der Motorsteuerung kann somit vergrößert werden.
  • Gemäß einer zweiten Ausgestaltung der Erfindung wird ein Vorhandensein/Fehlen einer Fehlfunktion in einem Regelungssystem zum Drehen des Rotors zu einer Zielposition auf der Grundlage des Kodiereinrichtungszählwerts überwacht. Wenn eine Fehlfunktion in dem Regelungssystem erfasst wird, wird ein Schalten von der Regelung zu einer offenen Regelkreissteuerung ausgeführt und die Stromzufuhrphase des Motors wird ohne ein Rückführen von Kodiereinrichtungszählwertinformationen sequentiell geschaltet. Ferner wird die Anzahl von Malen eines Schaltens der Stromzufuhrphase gezählt und der Rotor wird zu der Zielposition auf der Grundlage eines sich ergebenden Zählwerts gedreht.
  • Auch wenn das Regelungssystem eine Fehlfunktion aufweist, was einen Zustand verursacht, bei dem der Motor nicht durch eine Regelung auf die übliche Weise angesteuert werden kann, kann der Motor weiterhin auf die übliche Weise durch eine offene Regelkreissteuerung angesteuert werden. Wenn beispielsweise die Kodiereinrichtung eine Fehlfunktion aufweist, die ein unerlässliches Bauelement des Regelungssystems ist, kann der Motor nicht länger durch eine Regelung auf die übliche Weise angesteuert werden. Jedoch bleibt auch in diesem Fall eine Möglichkeit, dass der Motor durch die offene Regelkreissteuerung auf die übliche Weise angesteuert werden kann. Folglich kann, wenn ein Schalten von der Regelung zu der offenen Regelkreissteuerung ausgeführt wird, wenn eine Fehlfunktion in dem Regelungssystem erfasst wird, der Rotor zu der Zielposition gedreht werden. Die Zuverlässigkeit der Motorsteuerung kann somit vergrößert werden.
  • Gemäß einer dritten Ausgestaltung der Erfindung wird, wenn eine Regelungsausführungsbedingung erfüllt ist, eine Regelung ausgeführt, die den Rotor zu einer Zielposition durch Erfassen der Drehposition des Rotors auf der Grundlage des Kodiereinrichtungszählwerts und durch sequentielles Schalten der Stromzufuhrphase des Motors dreht. Wenn die Regelungsausführungsbedingung aufgrund einer Fehlfunktion oder dergleichen nicht erfüllt ist, wird ein Schalten von der Regelung zu einer offenen Regelkreissteuerung ausgeführt und die Stromzufuhrphase wird sequentiell durch Zuführen eines Ansteuerungssignals zu einer Ansteuerungsschaltung des Motors geschaltet, ohne Kodiereinrichtungszählwertinformationen zurückzuführen. Impulse des Ansteuerungssignals werden gezählt und der Rotor wird zu der Zielposition auf der Grundlage eines sich ergebenden Zählwerts gedreht. Ein Vorhandensein/Fehlen einer Anomalie in der Kodiereinrichtung wird bestimmt, indem der Kodiereinrichtungszählwert und der Zählwert des Ansteuerungssignals, die während der offenen Regelkreissteuerung erhalten werden, verglichen werden.
  • Wenn der Kodiereinrichtungszählwert während einer Regelung beispielsweise aufgrund eines Verlustes eines Impulses der Kodiereinrichtung oder von Rauschen anormal wird oder wenn eine Trennung in den Signalleitungen der Kodiereinrichtungen auftritt, sind die Stromzufuhrphase (das heißt der Kodiereinrichtungszählwert) und die Drehphase des Rotors nicht länger miteinander synchronisiert, was einen anormalen Regelungszustand (Rotordrehzustand) verursacht. In einem derartigen Fall ist die Regelungsausführungsbedingung nicht länger erfüllt und ein Schalten von der Regelung zu einer offenen Regelkreissteuerung wird ausgeführt. Als Ergebnis kann, auch wenn eine Anomalie in dem Kodiereinrichtungszählwert aufgrund eines Verlustes eines Impulses der Kodiereinrichtung oder von Rauschen auftritt oder eine Trennung in den Signalleitungen der Kodiereinrichtung auftritt, der Rotor zu einer Zielposition durch die offene Regelkreissteuerung gedreht werden. Ein Kodiereinrichtungszählwert, der während der offenen Regelkreissteuerung erhalten wird, und der Zählwert des Ansteuerungssignals, der während der offenen Regelkreissteuerung erhalten wird, werden miteinander verglichen. Ob die Kodiereinrichtung normal arbeitet, kann auf genaue Weise auf der Grundlage davon bestimmt werden, ob der Kodiereinrichtungszählwert (das heißt die Drehgröße, die unter Verwendung der Kodiereinrichtung erfasst wird) dem Zählwert des Ansteuerungssignals (das heißt der Drehgröße einer Ansteuerung durch die offene Regelkreissteuerung) entspricht.
  • Gemäß einer vierten Ausgestaltung der Erfindung weist der Motor zumindest zwei unabhängige Systeme von Ansteuerungsspulen auf und zumindest zwei Systeme von Ansteuerungsschaltungen zur separaten Ansteuerung der zumindest zwei Systeme von Ansteuerungsspulen des Motors sind bereitgestellt. Die Ansteuerungsspule und die Ansteuerungsschaltung jedes Systems sind bereitgestellt, um in der Lage zu sein, den Motor eigenständig zu drehen. Eine Anomaliediagnoseeinrichtung bestimmt ein Vorhandensein/Fehlen einer Anomalie in der Ansteuerungsspule und der Ansteuerungsschaltung jedes Systems. Wenn eine Anomalie in einem der zumindest zwei Systeme von Ansteuerungsspulen und Ansteuerungsschaltungen erfasst wird, wird ein Schalten zu einer offenen Regelkreissteuerung ausgeführt, bei der die Stromzufuhrphase sequentiell geschaltet wird, indem ein Ansteuerungssignal zu der Ansteuerungsschaltung des verbleibenden Systems, das auf die übliche Weise arbeitet, zugeführt wird. Impulse des Ansteuerungssignals werden gezählt und der Rotor wird zu einer Zielposition auf der Grundlage eines sich ergebenden Zählwerts gedreht.
  • Wie es vorstehend beschrieben ist, wird, wenn eine Anomalie in einem der zumindest zwei Systeme von Ansteuerungsspulen und Ansteuerungsschaltungen erfasst wird, eine offene Regelkreissteuerung unter Verwendung der Ansteuerungsspule und der Ansteuerungsschaltung des verbleibenden Systems, das auf die übliche Weise arbeitet, ausgeführt, wodurch der Rotor mit einer niedrigen Geschwindigkeit angesteuert werden kann. Folglich kann, auch wenn eine Anomalie in der Ansteuerungsspule und der Ansteuerungsschaltung eines Systems aufgetreten ist und das Antriebsdrehmoment verkleinert worden ist, der Rotor zu einer Zielposition mit einer niedrigen Geschwindigkeit durch eine offene Regelkreissteuerung gedreht werden. Als Ergebnis wird die Zuverlässigkeit der Motorsteuerung vergrößert und die Ansteuerungsspule jedes Systems muss in ihrer Größe nicht vergrößert werden, was es ermöglicht, eine Vergrößerung des Motors zu vermeiden.
  • Die vorstehend genannten und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der nachstehenden ausführlichen Beschreibung unter Bezugnahme auf die beigefügte Zeichnung besser ersichtlich. Es zeigen:
  • 1 eine perspektivische Darstellung einer Positionsschaltvorrichtung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung,
  • 2 einen SR-Motor,
  • 3 ein Schaltungsdiagramm, das eine Schaltung zur Ansteuerung des SR-Motors zeigt,
  • 4 eine schematische Darstellung des gesamten Steuerungssystems der Positionsschaltvorrichtung,
  • 5 eine Draufsicht eines Drehmagneten einer Kodiereinrichtung,
  • 6 eine Seitenansicht der Kodiereinrichtung,
  • 7A ein Zeitablaufdiagramm, das Ausgangssignalverläufe der Kodiereinrichtung zeigt,
  • 7B ein Zeitablaufdiagramm, das ein Stromzufuhrphasenschaltmuster zeigt,
  • 8 und 9 Flussdiagramme, die eine Anfangsansteuerungsroutine zeigen,
  • 10 ein Flussdiagramm, das eine P-Positions-Anfangsansteuerungsroutine zeigt,
  • 11 ein Flussdiagramm, das eine Nicht-P-Positions-Anfangsansteuerungsroutine zeigt,
  • 12 ein Zeitablaufdiagramm, das eine beispielhafte Steuerung einer P-Positions-Anfangsansteuerung zeigt,
  • 13 ein Zeitablaufdiagramm, das eine beispielhafte Steuerung in einem Fall zeigt, bei dem eine Positionsschaltmanipulation während einer Anfangsansteuerung ausgeführt wird,
  • 14 ein Zeitablaufdiagramm, das ein Anfangspositionsabweichungslernverfahren in einem Fall zeigt, bei dem eine Positionsschaltmanipulation während einer Anfangsansteuerung ausgeführt wird,
  • 15 ein Flussdiagramm, das eine Kodiereinrichtungszählerroutine zeigt,
  • 16 eine beispielhafte Zählwertinkrement-ΔN-Berechnungsabbildung zeigt,
  • 17 ein Zeitablaufdiagramm, das eine Beziehung zwischen einer angewiesenen Schaltposition, einem A-Phasensignal, einem B-Phasensignal und einem Kodiereinrichtungszählwert zeigt,
  • 18 ein Zeitablaufdiagramm, das eine beispielhafte Steuerung bei dem SR-Motor zeigt,
  • 19 ein Zeitablaufdiagramm, das eine Zeitsteuerung eines Übergangs von einer Regelung zu einem Zielpositionsstop- und Halteprozess zeigt,
  • 2022 Flussdiagramme, die eine Steuerungsbetriebsarteinstellroutine zeigen,
  • 23 ein Flussdiagramm, das eine Zeitsynchrone-Motorsteuerungsroutine zeigt,
  • 24 ein Flussdiagramm, das eine Betriebsart-1-Routine zeigt,
  • 25 ein Flussdiagramm, das eine Betriebsart-3-Routine zeigt,
  • 26 ein Flussdiagramm, das eine Betriebsart-4-Routine zeigt,
  • 27 ein Flussdiagramm, das eine Stromzufuhrverarbeitungsroutine zeigt,
  • 28 eine beispielhafte Umwandlungstabelle, die für eine Umwandlung eines Werts Mptn%12 in eine Stromzufuhrphase in dem Fall eines Ein-/Zwei-Phasen-Stromzufuhrverfahrens zu verwenden ist,
  • 29 eine beispielhafte Tabelle, die für eine Einstellung eines Stromzufuhreinschaltdauerverhältnisses entsprechend einer Batteriespannung während einer Anstoßsteuerung zu verwenden ist,
  • 30 ein Flussdiagramm, das eine Regelungsroutine zeigt,
  • 31 ein Flussdiagramm, das eine Stromzufuhrphaseneinstellroutine zeigt,
  • 32 ein Flussdiagramm, das einen Stromzufuhrprozess veranschaulicht, bei dem eine Drehung von einem Zustand gestartet wird, der U- und W-Phasen entspricht,
  • 33 ein Flussdiagramm, das eine Rotordrehgeschwindigkeitsberechnungsroutine zeigt,
  • 34 ein Flussdiagramm, das eine Geschwindigkeitsphasenvoreilungskorrekturgrößeneinstellroutine zeigt,
  • 35 eine Veranschaulichung einer Beziehung zwischen einem Eingriffsabschnitt einer Arretierfeder und jedem einer P-Positions-Haltevertiefung und einer Nicht-P-Positions-Haltevertiefung eines Arretierhebels,
  • 36 ein Flussdiagramm einer Spielgrößelernroutine,
  • 37 eine beispielhafte Tabelle, die für eine Einstellung eines Hinweglaufkorrekturwerts ΔVover entsprechend einer Batteriespannung zu verwenden ist,
  • 38 eine Veranschaulichung einer Beziehung zwischen einem tatsächlichen Messwert ΔNact und einem Entwurfswert ΔNd des bewegbaren Bereichs des Rotors und von Spielgrößen ΔGp und ΔGnp,
  • 39 und 40 Flussdiagramme, die eine P-Positionsseiten-Anstoßsteuerungsroutine zeigen,
  • 41 ein Zeitablaufdiagramm, das eine beispielhafte P-Positionsseiten-Anstoßsteuerung zeigt,
  • 42 und 43 Flussdiagramme, die eine Nicht-P-Positionsseiten-Anstoßsteuerungsroutine zeigen,
  • 44 ein Zeitablaufdiagramm, das eine beispielhafte Ausführungszeitsteuerung einer P-Positionsseiten-Anstoßsteuerung und einer Nicht-P-Positionsseitenanstoßsteuerung veranschaulicht,
  • 45 und 46 ein Flussdiagramm, das eine Sollzählwerteinstellroutine zeigt,
  • 47 ein Zeitablaufdiagramm, das einen beispielhaften Wiederherstellungsprozess zeigt,
  • 48 Veranschaulichungen von Verfahren zur Erfassung einer Anomalie in einem A-Phasensignal und einem B-Phasensignal der Kodiereinrichtung,
  • 49 eine Veranschaulichung eines Verfahrens zur Erfassung einer Umkehrung des Rotors während einer Regelung,
  • 50 ein Zeitablaufdiagramm, das eine beispielhafte offene Regelkreissteuerung veranschaulicht,
  • 51 ein Flussdiagramm, das eine Wiederherstellungsverarbeitungsroutine zeigt,
  • 52 eine Veranschaulichung eines Verfahrens zur Berechnung eines Anfangswerts eines Positionszählwerts Ncnt bei dem Start einer offenen Regelkreissteuerung,
  • 53 ein Flussdiagramm, das eine A-/B-Phasensignal-Anomalieerfassungsroutine zeigt,
  • 54 ein Flussdiagramm, das eine Umkehrungszählerroutine zeigt,
  • 55 ein Flussdiagramm, das eine Umkehrungsbestimmungsroutine zeigt,
  • 56 und 57 Flussdiagramme, die eine Systemanomaliediagnoseroutine zeigen,
  • 58 und 59 Flussdiagramme, die eine Ausfallsicherungsverarbeitungsroutine zeigen,
  • 60-62 Flussdiagramme, die eine offene Regelkreissteuerungsroutine zeigen,
  • 63 eine beispielhafte Umwandlungstabelle, die für eine Umwandlung eines Werts Mptnop%6 in eine Stromzufuhrphase zu verwenden ist,
  • 64 eine beispielhafte Tabelle, die für eine Bestimmung eines Werts eines maximalen Drehgeschwindigkeitsparameters mspdmax auf der Grundlage einer Batteriespannung zu verwenden ist,
  • 65 eine beispielhafte Tabelle, die zur Bestimmung einer Stromzufuhrzeit tm auf der Grundlage eines Drehgeschwindigkeitsparameters mspd zu verwenden ist,
  • 66 ein Flussdiagramm, das eine Motordrehmomentbegrenzungsroutine zeigt, die während einer offenen Regelkreissteuerung ausgeführt wird,
  • 67 ein Flussdiagramm, das eine Angewiesene-Schaltposition-Einstellroutine zeigt,
  • 68 ein Zeitablaufdiagramm, das eine Beziehung zwischen einem Schalten einer angewiesenen Schaltposition sft und einer offenen Regelkreissteuerung zeigt,
  • 69 ein Zeitablaufdiagramm, das ein Steuerungsbeispiel zeigt, bei dem ein Ausfallsicherungsprozess ausgeführt wird, wenn eine Anomalie bei einem Schalten von der P-Position zu der Nicht-P-Position auftritt (eine offene Regeikreissteuerung ist erfolgreich),
  • 70 ein Zeitablaufdiagramm, das ein Steuerungsbeispiel zeigt, bei dem ein Ausfallsicherungsprozess ausgeführt wird, wenn eine Anomalie bei einem Schalten von der P-Position zu der Nicht-P-Position auftritt (eine offene Regelkreissteuerung schlägt fehl),
  • 71 ein Flussdiagramm, das eine Z-Phasenkorrekturroutine gemäß einem zweiten Ausführungsbeispiel der Erfindung zeigt,
  • 72 ein Zeitablaufdiagramm, das eine Z-Phasenkorrektur veranschaulicht,
  • 73 ein Flussdiagramm, das eine A-/B-Phasentrennungserfassungsroutine gemäß dem zweiten Ausführungsbeispiel der Erfindung zeigt,
  • 74 ein Flussdiagramm, das eine Z-Phasentrennungserfassungsroutine zeigt,
  • 75 ein Flussdiagramm, das eine Z-Phasensignal-Anomalieerfassungsroutine zeigt,
  • 76-78 Flussdiagramme, die eine Offene-Regelkreissteuerungsroutine gemäß einem dritten Ausführungsbeispiel der Erfindung zeigen,
  • 79 eine beispielhafte Tabelle, die zur Bestimmung eines Werts eines maximalen Drehgeschwindigkeitsparameters mspdmax auf der Grundlage einer Batteriespannung zu verwenden ist,
  • 80 ein Flussdiagramm, das eine Ansteuerungsspulentrennungserfassungsroutine zeigt,
  • 81 ein Flussdiagramm, das eine Stromzufuhrverarbeitungsroutine zeigt,
  • 82 ein Schaltungsdiagramm, das eine Schaltung zur Ansteuerung des SR-Motors zeigt,
  • 83 ein Schaltungsdiagramm, das eine Schaltung zur Ansteuerung des SR-Motors gemäß einem vierten Ausführungsbeispiel der Erfindung zeigt, und
  • 84 ein Flussdiagramm, das eine Ansteuerungsspulentrennungserfassungsroutine zeigt.
  • (Erstes Ausführungsbeispiel)
  • Ein erstes Ausführungsbeispiel, bei dem die vorliegende Erfindung bei einer Positionsschaltvorrichtung eines Fahrzeugs angewendet wird, ist nachstehend unter Bezugnahme auf die 1-48 beschrieben.
  • Zuerst ist die Konfiguration eines Positionsschaltmechanismus 11 unter Bezugnahme auf 1 beschrieben. Ein Motor 12 als eine Antriebsquelle des Positionsschaltmechanismus 11 ist beispielsweise ein geschalteter Reluktanzmotor, umfasst einen Geschwindigkeitsverringerungsmechanismus 26 (siehe 4) und ist mit einem Ausgangswellensensor 14 zur Erfassung einer Drehposition einer Ausgangswelle 13 des Geschwindigkeitsverringerungsmechanismus 26 ausgestattet.
  • Ein Arretierhebel 15 ist bei der Ausgangswelle 13 befestigt.
  • Ein L-förmiger Feststellstab 18 ist bei dem Arretierhebel 15 befestigt. Ein kegelförmiger Körper 19, der bei der Spitze des Feststellstabs 18 bereitgestellt ist, ist in Kontakt mit einem Sperrhebel 21. Der Sperrhebel 21 wird in die vertikale Richtung entsprechend der Position des kegelförmigen Körpers 19 bewegt und sperrt oder entriegelt dadurch ein Parkgetriebe 20. Das Parkgetriebe 20 ist bei der Ausgangswelle eines Automatikgetriebes 27 angebracht. Wenn das Parkgetriebe 20 durch den Sperrhebel 21 gesperrt ist, werden die Antriebsräder des Fahrzeugs in einem drehungsverhinderten Zustand (d.h. einem Parkzustand) gehalten.
  • Demgegenüber ist eine Arretierfeder 23 zum Halten des Arretierhebels 15 bei der Position einer Parkposition (nachstehend als "P-Position" abgekürzt) oder des anderen Bereichs (nachstehend als "Nicht-P-Position" bezeichnet) bei einer Trägerbasis 17 befestigt. Der Arretierhebel 15 wird bei der P-Position gehalten, wenn ein Eingriffsabschnitt 23a, der bei der Spitze der Arretierfeder 23 bereitgestellt ist, in eine P-Position-Haltevertiefung 24 des Arretierhebels 15 geht. Der Arretierhebel 15 wird bei der Nicht-P-Position gehalten, wenn der Eingriffsabschnitt 23a der Arretierfeder 23 in eine Nicht-P-Position-Haltevertiefung 25 des Arretierhebels 15 geht.
  • In der P-Position wird der Feststellstab 18 in eine derartige Richtung bewegt, dass er sich dem Sperrhebel 21 nähert, wodurch ein dicker Abschnitt des kegelförmigen Körpers 19 den Sperrhebel 21 anhebt und ein Vorsprung 21a des Sperrhebels 21 in eine Zahnlücke des Parkgetriebes 20 geht, um es zu sperren. Als Ergebnis wird die Ausgangswelle des Automatikgetriebes 27 (und die Antriebsräder) in einem gesperrten Zustand (d.h. einem Parkzustand) gehalten.
  • Demgegenüber wird bei der Nicht-P-Position der Feststellstab 18 in eine derartige Richtung bewegt, dass er von dem Sperrhebel 21 weggeht, wodurch der dicke Abschnitt des kegelförmigen Körpers 19 den Kontakt mit dem Sperrhebel 21 verliert und somit der Sperrhebel 21 nach unten geht. Als Ergebnis löst sich der Sperrhebel 21 von dem Parkgetriebe 20 und somit wird das Parkgetriebe 20 entriegelt. Die Ausgangswelle des Automatikgetriebes 27 wird in einem drehbaren Zustand (d.h. einem Zustand, bei dem das Fahrzeugs in der Lage ist, zu fahren) gehalten.
  • Der vorstehend genannte Ausgangswellensensor 14 ist ein Drehsensor (beispielsweise ein Potentiometer) zur Ausgabe einer Spannung, die einem Drehwinkel der Ausgangswelle 13 des Geschwindigkeitsverringerungsmechanismus 26 des Motors 12 entspricht. Auf der Grundlage der Ausgangsspannung des Ausgangswellensensors 14 kann erkannt werden, ob der derzeitige Bereich die P-Position oder Nicht-P-Position ist.
  • Als Nächstes ist der Aufbau des Motors 12 unter Bezugnahme auf 2 beschrieben. Gemäß diesem Ausführungsbeispiel ist der Motor 12 ein geschalteter Reluktanzmotor (nachstehend als "SR-Motor" abgekürzt). Der SR-Motor 12, bei dem sowohl ein Stator 31 als auch ein Rotor 32 hervorstehende Pole aufweist, hat den Vorteil, dass kein Permanentmagnet erforderlich ist und somit der Aufbau einfach ist. Die innere Umfangsoberfläche eines zylindrischen Körpers des Stators 31 ist beispielsweise mit 12 hervorstehenden Polen 31a in regelmäßigen Intervallen ausgebildet.
  • Demgegenüber weist der Rotor 32 beispielsweise acht hervorstehende Pole 32a auf, die nach außen hervorstehen und in regelmäßigen Intervallen in der Umfangsrichtung angeordnet sind. Wenn der Rotor 32 sich dreht, liegt jeder hervorstehende Pol 32a des Rotors 32 den hervorstehenden Polen 31a des Stators 31 mit einer kleinen Lücke dazwischen der Reihe nach gegenüber. Die 12 hervorstehenden Pole 31a des Stators 31 sind mit insgesamt sechs Wicklungen 33 von U-, V- und W-Phasen und insgesamt sechs Wicklungen 34 von U'-, V'- und W'-Phasen der Reihe nach umwickelt. Es ist ersichtlich, dass die Anzahl von hervorstehenden Polen 31a des Stators 31 und die Anzahl von hervorstehenden Polen 32a des Rotors 32 in geeigneter Weise verändert werden können.
  • Gemäß diesem Ausführungsbeispiel sind die Wicklungen 33 und 34 bei den 12 hervorstehenden Polen 31a des Stators 31 beispielsweise in einer Reihenfolge entsprechend V-Phase → W-Phase → U-Phase → V-Phase → W-Phase → U-Phase → V'-Phase → W-Phase → U'-Phase → V'-Phase → W-Phase → U'-Phase umwickelt. Wie es in 3 gezeigt ist, sind sechs Wicklungen 33 der U-, V- und W-Phasen und die sechs Wicklungen 34 der U'-, V'- und W-Phasen miteinander verbunden, um zwei Systeme von Motorenergieversorgungsabschnitten 35 und 36 zu bilden. Der eine Motorenergieversorgungsabschnitt 35 ist durch eine Y-Verbindung der sechs Wicklungen 33 der U-, V- und W-Phasen gebildet (die zwei Wicklungen 33 der gleichen Phase sind miteinander in Reihe geschaltet). Der andere Motorenergieversorgungsabschnitt 36 ist durch eine Y-Verbindung der sechs Wicklungen 34 der U'-, V'- und W-Phasen gebildet (die zwei Wicklungen 34 der gleichen Phase sind miteinander in Reihe geschaltet). Bei den zwei Motorenergieversorgungsabschnitten 35 und 36 werden die Wicklungen der U-Phase und der U'-Phase zur gleichen Zeit mit Energie versorgt, die Wicklungen der V-Phase und der V'-Phase werden zur gleichen Zeit mit Energie versorgt und die Wicklungen der W-Phase und der W'-Phase werden zur gleichen Zeit mit Energie versorgt.
  • Die zwei Motorenergieversorgungsabschnitte 35 und 36 werden durch getrennte Motoransteuerungseinrichtungen 37 bzw. 38 angesteuert, wobei eine Batterie 40 des Fahrzeugs als eine Energiequelle verwendet wird. Eine Bereitstellung der zwei Systeme von Motorenergieversorgungsabschnitten 35 und 36 sowie der zwei Systeme von Motoransteuerungseinrichtungen 37 und 38 auf diese Weise ermöglicht es, den SR-Motor 12 durch das andere System zu drehen, auch wenn ein System eine Fehlfunktion aufweist. Obwohl die Schaltungskonfiguration jeder der Motoransteuerungseinrichtungen 37 und 38 ein Unipolar-Ansteuerungstyp ist, bei dem ein Schaltelement 39, wie beispielsweise ein Transistor, für jede Phase bereitgestellt ist, kann eine Bipolar-Ansteuerungstyp-Schaltungskonfiguration verwendet werden, bei der zwei Schaltelemente für jede Phase bereitgestellt sind. Es ist ersichtlich, dass die Erfindung ebenso bei einer Konfiguration anwendbar ist, bei der lediglich ein Einzelsystem-Motorenergieversorgungsabschnitt und lediglich eine Einzelsystem-Motoransteuerungseinrichtung bereitgestellt sind.
  • Die Ein-/Aus-Steuerung der Schaltelemente 39 der Motoransteuerungseinrichtungen 37 und 38 wird durch eine ECU 41 (Steuereinrichtung) ausgeführt. Wie es in 4 gezeigt ist, sind die ECU 41 und die Motoransteuerungseinrichtungen 37 sowie 38 in einer Positionsschaltsteuereinrichtung 42 aufgenommen. Manipulationssignale von einem P-Positionsschalter 43 für eine Manipulation zum Schalten zu der P-Position und einem Nicht-P-Positionsschalter 44 für eine Manipulation zum Schalten zu der Nicht-P-Position werden der Positionsschaltsteuereinrichtung 42 zugeführt. Ein Bereich, der durch Manipulieren des P-Positionsschalters 43 oder des Nicht-P-Positionsschalters 44 ausgewählt worden ist, wird in einem Bereichsangabeabschnitt 45 angegeben, der in einem (nicht gezeigten) Instrumentenfeld bereitgestellt ist. Der P-Positionsschalter 43 und der Nicht-P-Positionsschalter 44 sind beispielsweise Momentschalter.
  • Der SR-Motor 12 ist mit einer Kodiereinrichtung 46 zur Erfassung einer Drehposition des Rotors 32 ausgerüstet. Ein spezifischer Aufbau der Kodiereinrichtung 46, welche eine magnetische Drehkodiereinrichtung ist, ist beispielsweise wie folgt. Wie es in den 5 und 6 gezeigt ist, ist ein ringförmiger Drehmagnet 47, der auf eine derartige Weise magnetisiert ist, dass N-Pole und S-Pole wechselweise in der Umfangsrichtung mit einem konstanten Abstand angeordnet sind, bei einer Seitenoberfläche des Rotors 32 konzentrisch befestigt. Drei Magneterfassungselemente 4850, wie beispielsweise Hall-IC, liegen dem Drehmagneten 47 gegenüber. Gemäß diesem Ausführungsbeispiel ist der Magnetisierungsabstand der N-Pole und der S-Pole des Drehmagneten 47 bei 7,5° eingestellt, was gleich einem Drehwinkel des Rotors 32 ist, der einer einzelnen Stromzufuhr zu dem SR-Motor 12 entspricht. Wie es nachstehend beschrieben ist, wird, wenn die Stromzufuhrphase des SR-Motors 12 sechs Mal durch ein Ein-/Zwei-Phasen-Stromzufuhrverfahren geschaltet wird, eine Stromzufuhr für alle Phasen ringsum (umlaufend) bewirkt und der Rotor 32 sowie der Drehmagnet 47 drehen sich gemeinsam um 7,5° × 6 = 45°. Die Anzahl von N-Polen und S-Polen, die in diesem Drehwinkelbereich von 45° des Drehmagneten 47 vorhanden sind, beträgt insgesamt sechs.
  • N-Pole (N'-Pole), die Referenzdrehpositionen des Rotors 32 entsprechen, und S-Pole (S'-Pole) auf beiden Seiten jedes dieser N-Pole sind breiter als die anderen Magnetpole in der radialen Richtung. Gemäß diesem Ausführungsbeispiel sind in Anbetracht der Tatsache, dass der Rotor 32 und der Drehmagnet 47 sich gemeinsam um 45° drehen, während eine Stromzufuhr für alle Phasen des SR-Motors 12 ringsum bewirkt wird, die breiten magnetisierten Abschnitte (N'), die den Referenzdrehpositionen des Rotors 32 entsprechen, mit einem Abstand von 45° ausgebildet. Folglich sind insgesamt acht breite magnetisierte Abschnitte (N'), die den Referenzdrehpositionen entsprechen, in dem gesamten Drehmagneten 47 gebildet. Alternativ hierzu kann ein einzelner breiter magnetisierter Abschnitt (N'), der einer Referenzdrehposition entspricht, in dem gesamten Drehmagneten 47 gebildet sein.
  • Drei Magnetismuserfassungselemente 4850 sind so angeordnet, dass sie die nachstehende Positionsbeziehung zueinander und zu dem Drehmagneten 47 aufweisen. Das Magnetismuserfassungselement 48 zur Ausgabe eines A-Phasensignals und das Magnetismuserfassungselement 49 zur Ausgabe eines B-Phasensignals sind auf demselben Kreis bei derartigen Positionen angeordnet, dass sie in der Lage sind, sowohl den schmalen magnetisierten Abschnitten (N und S) als auch den breiten magnetisierten Abschnitten (N' und S') des Drehmagneten 47 gegenüber zu liegen. Demgegenüber ist das Magnetismuserfassungselement 50 zur Ausgabe eines Z-Phasensignals außerhalb oder innerhalb der schmalen magnetisierten Abschnitte (N und S) des Drehmagneten 47 bei derartigen Positionen angeordnet, dass es in der Lage ist, lediglich den breiten magnetisierten Abschnitten (N' und S') gegenüber zu liegen. Das Intervall zwischen den zwei Magnetismuserfassungselementen 48 und 49 zur Ausgabe eines A-Phasensignals bzw. eines B-Phasensignals ist so eingestellt, dass die Phasendifferenz zwischen dem A-Phasensignal und dem B-Phasensignal 90° bezüglich eines elektrischen Winkels (3,75° bezüglich eines mechanischen Winkels) wird, wie es in 7A gezeigt ist.
  • Der Begriff "elektrischer Winkel" bezeichnet einen Winkel, der erhalten wird, wenn ein Auftrittszyklus jedes des A-Phasensignals und des B-Phasensignals als 360° betrachtet wird. Der Begriff "mechanischer Winkel" ist ein Winkel, der erhalten wird, wenn der Winkel einer Drehung des Rotors 32 als 360° betrachtet wird. Das heißt, der mechanische Winkel der Phasendifferenz zwischen dem A-Phasensignal und dem B-Phasensignal ist ein Winkel, um den sich der Rotor 32 in einer Zeit von einer nacheilenden Flanke (oder ansteigenden Flanke) des A-Phasensignals zu derjenigen des B-Phasensignals dreht. Das Magnetismuserfassungselement 50 zur Ausgabe des Z-Phasen-Signals ist so angeordnet, dass die Phasendifferenz zwischen dem Z-Phasensignal und dem B-Phasensignal (oder A-Phasensignal) Null wird.
  • Die Ausgabesignale der jeweiligen Magnetismuserfassungselemente 4850 sind bei einem hohen Pegel "1", wenn sie einem N-Pol (oder N'-Pol) gegenüberliegen, und sind bei einem niedrigen Pegel "0", wenn sie einem S-Pol (oder S'-Pol) gegenüberliegen. Das Ausgabesignal (Z-Phasensignal) des Magnetismuserfassungselements 50 ist bei einem hohen Pegel "1", wenn es einem breiten N'-Pol entsprechend einer Referenzdrehposition des Rotors 32 gegenüberliegt, und ist bei einem niedrigen Pegel, wenn es sich bei den anderen Positionen befindet.
  • Gemäß diesem Ausführungsbeispiel wird der Rotor 32 gedreht, wenn die ECU 41 sowohl die ansteigenden Flanken als auch die nacheilenden Flanken des A-Phasensignals und des B-Phasensignals gemäß einer (nachstehend beschriebenen) Kodiereinrichtungszählroutine zählt und die Stromzufuhrphase des SR-Motors 12 auf der Grundlage des Kodiereinrichtungszählwerts schaltet. Bei dieser Operation bestimmt die ECU 41 die Drehrichtung des Rotors 32 auf der Grundlage der Auftrittsreihenfolge eines A-Phasensignalimpulses und eines B-Phasensignalimpulses. Die ECU 41 vergrößert den Kodiereinrichtungszählwert in dem Fall einer normalen bzw. üblichen Drehung (d.h. einer Drehung in einer Richtung von der P-Position zu der Nicht-P-Position) und verkleinert den Kodiereinrichtungszählwert in dem Fall einer umgekehrten Drehung (d.h. einer Drehung in einer Richtung von der Nicht-P-Position zu der P-Position). Mit dieser Maßnahme wird die Entsprechung zwischen dem Kodiereinrichtungszählwert und der Drehposition des Rotors 32 unabhängig davon aufrechterhalten, ob der Rotor 32 sich in die übliche Richtung oder in die umgekehrte Richtung dreht. Folglich kann der Rotor 32 entweder in die übliche Richtung oder in die umgekehrte Richtung durch Erfassen der Drehposition (d.h. des Drehwinkels) des Rotors 32 auf der Grundlage des Kodiereinrichtungszählwerts gedreht werden und Wicklungen 33 oder 34 der A-Phase werden entsprechend der erfassten Drehposition mit Energie versorgt.
  • In 7A und 7B sind jeweils Ausgabesignalverläufe der Kodiereinrichtung 46 und ein Stromzufuhrphasenschaltmuster in dem Fall, dass der Rotor 32 in die umgekehrte Richtung (d.h. die Drehrichtung von der Nicht-P-Position. zu der P-Position) gedreht wird, gezeigt. In jedem der Fälle, dass der Rotor 32 sich in die umgekehrte Richtung (d.h. die Drehrichtung von der Nicht-P-Position zu der P-Position) dreht und dass sich der Rotor 32 in die übliche Richtung (d.h. die Drehrichtung von der P-Position zu der Nicht-P-Position) dreht, wird ein Schalten zwischen einer Ein-Phasen-Stromzufuhr und einer Zwei-Phasen-Stromzufuhr jedes Mal, wenn sich der Rotor 32 um 7,5° dreht, ausgeführt. Wenn sich der Rotor 32 um 4,5° dreht, wird beispielsweise eine Stromzufuhr für alle Phasen ringsum in der Reihenfolge gemäß U-Phase → U- und W-Phasen → W-Phase → V- und W-Phasen → V-Phase → U- und V-Phasen bewirkt. Jedes Mal, wenn die Stromzufuhrphase geschaltet wird, dreht sich der Rotor 32 um 7,5° und die Magnetpole des Drehmagneten 47, die den A-Phasensignal-Magnetismuserfassungselement 48 und dem B-Phasensignal-Magnetismuserfassungselement 49 gegenüberliegen, ändern sich von einem N-Pol zu einem S-Pol (oder einem N'-Pol zu einem S'-Pol) oder von einem S-Pol zu einem N-Pol (oder einem S'-Pol zu einem N'-Pol), wodurch die Pegel des A-Phasensignals und des B-Phasensignals wechselweise umgekehrt werden.
  • Als Ergebnis steigt der Kodiereinrichtungszählwert jedes Mal, wenn sich der Rotor um 7,5° dreht, um zwei an (oder nimmt entsprechend ab). Ferner liegt jedes Mal, wenn eine Stromzufuhr für alle Phasen ringsum bewirkt wird und sich der Rotor um 7,5° dreht, das Z-Phasen-Magnetismuserfassungselement 50 einem breiten N'-Pol entsprechend einer Referenzdrehposition des Rotors 32 gegenüber und das Z-Signal weist einen Hochpegelwert "1" auf. In dieser Spezifikation kann ein Ereignis, dass das A-Phasensignal, das B-Phasensignal oder das Z-Phasensignal einen Hochpegelwert "1" aufweist, als "ein A-Phasensignalimpuls, ein B-Phasensignalimpuls oder ein Z-Phasensignalimpuls wird ausgegeben" bezeichnet werden.
  • Da der Kodiereinrichtungszählwert in dem RAM der ECU 41 gespeichert wird, geht der Kodiereinrichtungszählwert verloren, wenn die Energie zu der ECU 41 ausgeschaltet wird. Folglich entspricht ein Kodiereinrichtungszählwert ("0") in der ECU 41 unmittelbar nach einer Energiezufuhr nicht einer tatsächlichen Drehposition (oder einer Stromzufuhrphase) des Rotors 32. Um die Stromzufuhrphase auf der Grundlage des Kodiereinrichtungszählwerts zu schalten, ist es erforderlich, eine Entsprechung zwischen einem Kodiereinrichtungszählwert und einer tatsächlichen Drehposition des Rotors 32, d.h. zwischen einem Kodiereinrichtungszählwert und einer Stromzufuhrphase, nach der Energiezufuhr zu bilden.
  • Gemäß diesem Ausführungsbeispiel führt die ECU 41 der Positionsschaltsteuereinrichtung 42 eine Anfangsansteuerungsroutine aus, die in (nachstehend beschriebenen) 8 und 9 gezeigt ist. Dies bedeutet, dass während einer Anfangsansteuerung, die nach einer Energiezufuhr zu der ECU 41 ausgeführt wird, eine Stromzufuhr für alle Phasen des SR-Motors 12 ringsum entsprechend einem vorgeschriebenen Zeitplan bewirkt wird und Flanken des A-Phasensignals und des B-Phasensignals der Kodiereinrichtung 46 gezählt werden. Eine entsprechende Beziehung zwischen einem Kodiereinrichtungszählwert, einer Drehposition des Rotors 32 und einer Stromzufuhrphase zu dem Zeitpunkt des Abschlusses der Anfangsansteuerung wird gelernt bzw. erfahren. Bei einer üblichen Ansteuerung, die nachfolgend ausgeführt wird, wird die Stromzufuhrphase auf der Grundlage des Kodiereinrichtungszählwerts und eines Lernergebnisses bestimmt, das bei dem Ende der Anfangsansteuerung erhalten worden ist.
  • Das Lernen während einer Anfangsansteuerung wird auf die nachstehend beschriebene Weise ausgeführt. Wie es in 12 gezeigt ist, wird, wenn eine Anfangsansteuerung ausgeführt wird, wenn der ECU 41 bei einer Einstellung der P-Position Energie zugeführt wird, eine Stromzufuhr für alle Phasen ringsum entsprechend einem vorgeschriebenen Zeitplan beispielsweise in einer Reihenfolge entsprechend W-Phase → U- und W-Phasen → U-Phase → U- und V-Phasen → V-Phase → V- und W-Phasen bewirkt und der Rotor 32 wird in der üblichen Drehrichtung (d.h. der Drehrichtung von der P-Position zu der Nicht-P-Position) angesteuert.
  • Demgegenüber wird, wenn eine Anfangsansteuerung ausgeführt wird, wenn der ECU 41 bei einer Einstellung der Nicht-P-Position Energie zugeführt wird, eine Stromzufuhr für alle Phasen ringsum entsprechend einem vorgeschriebenen Zeitplan beispielweise in der Reihenfolge entsprechend V-Phase → U- und V-Phasen → U-Phase → U- und W-Phasen → W-Phase → V- und W-Phasen bewirkt und der Rotor 32 wird in der umgekehrten Drehrichtung (d.h. der Drehrichtung von der Nicht-P-Position zu der P-Position) angesteuert.
  • Bei der Anfangsansteuerung wird eine Zeit T1 einer Ein-Phasen-Stromzufuhr kürzer als eine Zeit T2 einer Zwei-Phasen-Stromzufuhr eingestellt. Beispielsweise werden T1 und T2 auf 10 ms bzw. 100 ms eingestellt. Bei einer Ein-Phasen-Stromzufuhr, die ein niedriges Drehmoment erzeugt, schwingt der Rotor 32, auch nachdem eine Synchronisation zwischen der Drehposition des Rotors 32 und der Stramzufuhrphase während einer Anfangsansteuerung hergestellt worden ist. Angesichts dessen wird die Zeit T1 einer Ein-Phasen-Stromzufuhr so kurz eingestellt, dass ein Schalten zu der nächsten Zwei-Phasen-Stromzufuhr so bald wie möglich ausgeführt wird. Auf diese Weise wird ein Schwingen des Rotors 32 rasch gestoppt und die Ausgabesignale der Kodiereinrichtung 46 werden stabilisiert.
  • Wenn eine Stromzufuhr für alle Phasen ringsum während einer Anfangsansteuerung in der vorstehend beschriebenen Weise bewirkt wird, stimmen die Drehposition des Rotors 32 und die Stromzufuhrphase notwendigerweise miteinander bei einer bestimmten Stromzufuhrphase überein. Ab dieser Zeit dreht sich der Rotor 32 zu dem Stromzufuhrphasenschalten und das A-Phasensignal und das B-Phasensignal werden von der Kodiereinrichtung 46 synchron zu der Drehung des Rotors 32 ausgegeben.
  • Sowohl die ansteigenden Flanken als auch die nacheilenden Flanken des A-Phasensignals und des B-Phasensignals der Kodiereinrichtung 46 werden während der Anfangsansteuerung gezählt. Folglich kann ein Winkel (d.h. eine Drehgröße), um die sich der Motor 32 tatsächlich synchron mit dem Stromzufuhrphasenschalten bis zu dem Ende der Anfangsansteuerung gedreht hat, durch Überprüfen eines Kodiereinrichtungszählwerts bei dem Ende der Anfangsansteuerung herausgefunden werden. Auf diese Weise wird eine entsprechende Beziehung zwischen einem Kodiereinrichtungszählwert, einer Drehposition des Rotors 32 und einer Stromzufuhrphase bei dem Ende der Anfangsansteuerung erkannt.
  • In dem Beispiel gemäß 12 startet bei einer Anfangsansteuerung der Rotor 32 mit der ersten Stromzufuhrphase (W-Phase). Der Rotor dreht sich um 7,5° und der Kodiereinrichtungszählwert vergrößert sich um zwei jedes Mal, wenn die Stromzufuhrphase geschaltet wird. Der Kodiereinrichtungszählwert erreicht 12 bei dem Ende der Anfangsansteuerung.
  • Im Gegensatz dazu dreht sich, wenn beispielsweise der Rotor 32 nicht durch die ersten drei Stromzufuhrversuche (W-Phase → U- und W-Phasen → U-Phase) gedreht wird und durch die vierten und darauffolgenden Stromzufuhrversuche (lediglich drei Stromzufuhrversuche; U- und V-Phasen → V-Phase → V- und W-Phasen) auf eine derartige Weise gedreht wird, dass die Drehposition des Rotors 32 und die Stromzufuhrphase miteinander synchronisiert sind, der Rotor 32 um 7,5° × 3 = 22,5° bis zu dem Ende der Anfangsansteuerung und der Kodiereinrichtungszählwert erreicht 2 × 3 = 6. Folglich kann ein Winkel (d.h. eine Drehgröße), um die sich der Rotor 32 tatsächlich synchron mit dem Stromzufuhrphasenschalten bis zu dem Ende der Anfangsansteuerung gedreht hat, durch Überprüfen eines Kodiereinrichtungszählwerts bei dem Ende der Anfangsansteuerung herausgefunden werden.
  • Während die letzten Stromzufuhrphasen einer Anfangsansteuerung immer die V- und W-Phasen sind, muss der abschließende Kodiereinrichtungszählwert nicht immer 12 sein und kann beispielsweise 8 oder 4 sein. Bei einer üblichen Ansteuerung, die nach dem Ende der Anfangsansteuerung ausgeführt wird, wird die Stromzufuhrphase auf der Grundlage des Kodiereinrichtungszählwerts bestimmt. Folglich können korrekte Stromzufuhrphasen nicht ausgewählt werden, bis nicht eine Abweichung in einem Kodiereinrichtungszählwert, die bei einer Anfangsansteuerung aufgetreten ist, korrigiert ist.
  • Angesichts des vorstehend Beschriebenen ermöglicht es dieses Ausführungsbeispiel, korrekte Stromzufuhrphasen während einer üblichen Ansteuerung durch Lernen eines Kodiereinrichtungszählwerts bei dem Ende einer Anfangsansteuerung als einen gelernten bzw. erfahrenen Anfangspositionsabweichungswert und durch Korrigieren des Kodiereinrichtungszählwerts unter Verwendung des gelernten Anfangspositionsabweichungswerts während einer nachfolgenden üblichen Ansteuerung auszuwählen. Auf diese Weise wird die Abweichung zwischen dem Kodiereinrichtungszählwert und der Stromzufuhrphase (d.h. der Drehposition des Rotors 32) bei dem Ende der Anfangsansteuerung korrigiert und korrekte Stromzufuhrphasen können während der üblichen Ansteuerung ausgewählt werden.
  • Nach dem Ende der Anfangsansteuerung wird, wie es in 12 gezeigt ist, ein (nachstehend beschriebener) Regelungsstartpositionsstopp- und Halteprozess ausgeführt, bei dem eine Stromzufuhr für die gleichen Phasen wie die Stromzufuhrphasen bei dem Ende der Anfangsansteuerung (d.h. den V- und W-Phasen) beispielsweise für 10 ms ausgeführt wird, wodurch der Rotor 32 bei der Position gehalten wird, bei der er bei dem Ende der Anfangsansteuerung war. Dann wird eine (nachstehend beschriebene) Regelung ausgeführt, wodurch der Rotor 32 zu einer Zielposition Acnt durch Schalten der Stromzufuhrphase auf der Grundlage eines Kodiereinrichtungszählwerts zu diesem Zeitpunkt und eines gelernten Anfangspositionsabweichungswerts gedreht wird. Bei einem Zeitpunkt, bei dem die Drehposition (der Kodiereinrichtungszählwert) des Rotors 32 eine Position erreicht hat, die beispielsweise 0,5° oder weniger knapp bei der Zielposition Acnt ist, wird das Stromzufuhrphasenschalten beendet und der Rotor 32 wird gestoppt. Dann wird ein (nachstehend beschriebener) Zielpositionsstopp- und Halteprozess ausgeführt, bei dem eine Stromzufuhr für die gleiche Phase (die gleichen Phasen) bewirkt wird, und der Rotor 32 wird beispielsweise für 50 ms gestoppt gehalten. Dann wird im Anschluss daran die Stromzufuhr gestoppt, bis die Zielposition Acnt verändert wird.
  • Wenn während einer Anfangsansteuerung eine Positionsschaltanforderung auftritt, d.h., der P-Positionsschalter 43 oder der Nicht-P-Positionsschalter 44 wird manipuliert, wird ein Übergang zu einer üblichen Ansteuerung ausgeführt, nachdem die nächste Zwei-Phasen-Stromzufuhr bewirkt ist (in der Zwei-Phasen-Stromzufuhr selbst, wenn eine Positionsschaltanforderung während dieser Zwei-Phasen-Stromzufuhr auftritt). Dabei wird eine entsprechende Beziehung zwischen einem Kodiereinrichtungszählwert, einer Drehposition des Rotors 32 und einer Stromzufuhrphase bei dem Ende der Zwei-Phasen-Stromzufuhr gelernt. Bei einer nachfolgenden üblichen Ansteuerung wird die Stromzufuhrphase auf der Grundlage eines Lernergebnisses bei dem Ende der Zwei-Phasen-Stromzufuhr und eines Kodiereinrichtungszählwerts bestimmt.
  • Eine Zwei-Phasen-Stromzufuhr, die ein hohes Drehmoment erzeugt, kann den Rotor 32 zu einer Position entsprechend der Zwei-Phasen-Stromzufuhr drehen, auch wenn eine gewisse Abweichung hiervon vorhanden gewesen ist. Folglich ist die Wahrscheinlichkeit hoch, dass ein alleiniges einmaliges oder zweimaliges Ausführen einer Zwei-Phasen-Stromzufuhr während einer Anfangsansteuerung eine Synchronisation zwischen der Drehposition und der Stromzufuhrphase herstellt. Folglich wäre es, wenn eine Positionsschaltanforderung während einer Anfangsansteuerung auftritt, passend, einen Übergang zu einer üblichen Ansteuerung nach Abschluss der nächsten (oder derzeitigen) Zwei-Phasen-Stromzufuhr auszuführen. Mit dieser Maßnahme kann ein Übergang zu einer üblichen Ansteuerung schnell durchgeführt werden, nachdem eine entsprechende Beziehung zwischen einem Kodiereinrichtungszählwert, einer Drehposition des Rotors 32 und einer Stromzufuhrphase gelernt worden ist.
  • Wie es beispielsweise in einem Zeitablaufdiagramm gemäß 13 gezeigt ist, wird, wenn eine Positionsschaltanforderung von der P-Position zu der Nicht-P-Position während eines zweiten Stromzufuhrversuches (U- und W-Phasen) bei einer Anfangsansteuerung auftritt, die Anfangsansteuerung mit der Stromzufuhr für die U- und W-Phasen beendet und ein Übergang zu einer üblichen Ansteuerung wird ausgeführt, wobei eine entsprechende Beziehung zwischen einem Kodiereinrichtungszählwert, einer Drehposition des Rotors 32 und einer Stromzufuhrphase bei dem Ende der Stromzufuhr für die U- und W-Phasen gelernt wird. Gemäß diesem Ausführungsbeispiel wird auch in dem Fall, bei dem ein Übergang zu einer üblichen Ansteuerung vor Abschluss einer Anfangsansteuerung ausgeführt wird, ein Kodiereinrichtungszählwert, der bei dem Ende der Anfangsansteuerung erhalten werden würde, unter der Annahme abgeschätzt, dass die Anfangsansteuerung wie geplant abgeschlossen worden ist, wobei ein Schätzwert als ein gelernter Anfangspositionsabweichungswert verwendet wird.
  • Beispielsweise wird in dem Fall, dass die Anfangsansteuerung nach zwei Stromzufuhrversuchen für die W-Phase und die U- und W-Phasen beendet ist, wie es in 13 gezeigt ist, d.h., die Anfangsansteuerung ist ohne Ausführung von vier Stromzufuhrversuchen beendet worden, deren Ausführung danach angenommen wird, angenommen, dass die vier Stromzufuhrversuche (U-Phase → U- und V-Phasen → V-Phase → V- und W-Phasen) ausgeführt worden sind, und ein gelernter Anfangspositionsabweichungswert wird berechnet, indem ein Zählwertanstieg (2 × 4 = 8) entsprechend einem Drehwinkel der vier Stromzufuhrversuche zu einem Kodiereinrichtungszählwert bei dem Ende der Stromzufuhr für die U- und W-Phasen addiert wird.
  • Bei der herkömmlichen Positionsschaltsteuerung wird jedes Mal, wenn die angewiesene Schaltposition (Zielposition) von der P-Position zu der Nicht-P-Position oder in die umgekehrte Richtung geschaltet wird, eine Regelung ausgeführt, bei der der Rotor zu der Zielposition durch sequentielles Schalten der Stromzufuhrphase des SR-Motors 12 auf der Grundlage des Kodiereinrichtungszählwerts gedreht wird, wobei die Stromzufuhr des SR-Motors 12 daraufhin ausgeschaltet wird.
  • In diesem Fall kann nach dem Ende der Regelung der Rotor 12 bei einer Zielposition durch eine elektromagnetische Kraft durch eine fortgesetzte Energieversorgung der Wicklungen der A-Phase, die der Zielposition entsprechen, gehalten werden. Bei dieser Konfiguration werden jedoch, wenn der Rotor 32 für eine lange Zeit gestoppt ist, die Wicklungen derselben Phase für eine lange Zeit fortgesetzt mit Energie versorgt und können somit überhitzen und durchbrennen. Um eine Überhitzung und ein Durchbrennen der Wicklungen zu verhindern, werden die Wicklungen nicht mit Energie versorgt, während der Rotor 32 gestoppt ist.
  • Wenn jedoch der Rotor 32 nicht mit Energie versorgt wird, während er gestoppt ist, ist keine elektromagnetische Kraft zum Halten des Rotors 32 bei der Zielposition (d.h. der Position bei dem Ende der Regelung) vorhanden, und somit kann der Rotor 32 von der Zielposition abweichen. Gemäß diesem Ausführungsbeispiel ist der mechanische Stopp- und Haltemechanismus bereitgestellt, der den Rotor 32 bei einer Zielposition durch eine Federkraft der Arretierfeder 23 hält. Allerdings kann auch in diesem Fall der Rotor 32 von der Zielposition aufgrund einer Spielgröße in dem Stopp- und Haltemechanismus, von Herstellungsschwankungen usw. abweichen.
  • Bei der herkömmlichen Positionsschaltsteuerung wird zum Starten einer Regelung eine erste Stromzufuhrphase unter Verwendung eines Kodiereinrichtungszählwerts bei dem Ende der vorangegangenen Regelung bestimmt. Die Regelung wird gestartet, sobald die erste Stromzufuhrphase bestimmt ist.
  • Folglich wird bei der herkömmlichen Positionsschaltsteuerung, wenn die Position des Rotors 32 abweicht, während er gestoppt ist, eine Regelung mit einer Stromzufuhrphase gestartet, die von der A-Phase unterschiedlich ist, für die eine Stromzufuhr zuerst bewirkt werden sollte. In diesem Fall kann der Rotor 32 nicht auf übliche Weise zu einer Zielposition gedreht werden. Beispielsweise findet ein Synchronisationsverlust bei dem Start der Regelung statt, was einen Startfehler verursacht, oder der Rotor 32 wird von der Zielposition weggedreht.
  • Wenn der Rotor 32 nur leicht abweicht, während er gestoppt ist, und somit die Position des Rotors 32 in einem Bereich bleibt, der einem Kodiereinrichtungszählwert bei dem Ende der vorangegangenen Regelung entspricht, ist eine A-Phase, für die eine Stromzufuhr zuerst bewirkt wird, eine Stromzufuhrphase bei dem Ende der vorangegangenen Regelung. In diesem Fall weist auch die herkömmliche Positionsschaltsteuerung keine Schwierigkeiten bezüglich der ersten Stromzufuhrphase auf.
  • Eine Regelung wird jedoch unter Verwendung einer Position des Rotors 32 für die Stromzufuhr als eine Referenz ausgeführt. Folglich kann, auch wenn die Abweichung des Rotors 32 so klein ist, dass seine Position in einem Bereich bleibt, der einem Kodiereinrichtungszählwert bei dem Ende der vorangegangenen Regelung entspricht, ein Synchronisationsverlust weiterhin bei dem Start einer Regelung auftreten, was einen Startfehler verursacht, wenn die Regelung gestartet wird, nachdem eine Stromzufuhr für eine A-Phase bewirkt ist, für die eine Stromzufuhr zuerst bewirkt werden sollte, und bevor der Rotor 32 zu einer Position für eine Stromzufuhr bewegt wird und dort gehalten wird.
  • Als eine Gegenmaßnahme gegen dieses Problem wird gemäß diesem Ausführungsbeispiel, wie es in 18 gezeigt ist, zum Starten einer Regelung von einem Zustand, bei dem der SR-Motor 12 nicht mit Energie versorgt wird, ein Prozess (nachstehend als "Regelungsstartpositionsstopp- und Halteprozess" bezeichnet), bei dem Stromzufuhrphasen auf der Grundlage eines derzeitigen Kodiereinrichtungszählwerts ausgewählt werden und der Rotor 32 bei einer Stoppposition durch eine Zwei-Phasen-Stromzufuhr gestoppt und gehalten wird, für eine vorgeschriebene Zeit (beispielsweise 10 ms) ausgeführt. Die Regelung wird dann ausgeführt, um den Rotor 32 zu einer Zielposition zu drehen.
  • Mit dieser Maßnahme wird, auch wenn der Rotor in einer Zeitdauer abweicht, in der er gestoppt sein sollte, die Positionsabweichung des Rotors 32 durch den Regelungsstartpositionsstopp- und Halteprozess unmittelbar vor einem Start einer Regelung korrigiert, wodurch eine Position des Rotors 32 bei dem Start der Regelung korrekt bestimmt werden kann. Folglich kann die Position des Rotors 32 und die Stromzufuhrphase (d.h. der Kodiereinrichtungszählwert) zuverlässig von der ersten Stromzufuhrphase bei dem Start einer Regelung miteinander synchronisiert werden. Es wird möglich, einen Synchronisationsverlust zu verhindern und zu verhindern, dass sich der Rotor 32 weg von einer Zielposition bei dem Start einer Regelung dreht, um es dem Rotor 32 zu ermöglichen, sich zuverlässig zu einer Zielposition mit einer stabilen Regelung zu drehen, und um eine Positionsschaltsteuerung (Positionierungssteuerung) auszuführen, die in hohem Maße stabil und zuverlässig ist.
  • Um die Reaktionsgeschwindigkeit der Positionsschaltsteuerung zu vergrößern, wird die Zeit, die durch den Rotor 32 genommen wird, um eine Zielposition zu erreichen, durch Vergrößern der zugehörigen Drehgeschwindigkeit verkürzt. Als Ergebnis hat unmittelbar nach Erreichen einer Zielposition der Rotor 32 nicht vollständig gestoppt, sondern schwingt.
  • Wenn die Stromzufuhr in einem derartigen Zustand ausgeschaltet wird, kann eine Trägheitskraft den Rotor 32 veranlassen, bei einer Position zu stoppen, die in großem Umfang von einer Zielposition abweicht. Wenn der Rotor 32 bei dem Ende einer Regelung eine zu große Positionsabweichung aufweist, kann die Positionsabweichung nicht korrigiert werden, auch wenn ein Regelungsstartpositionsstopp- und Halteprozess unmittelbar vor dem Start der nächsten Regelung ausgeführt wird.
  • Als eine Gegenmaßnahme gegen dieses Problem wird gemäß diesem Ausführungsbeispiel die Stromzufuhr des SR-Motors 12 nach einem Prozess zum Stoppen des Rotors 32 bei einer Position ausgeschaltet, bei der er bei dem Ende einer Regelung war, wobei ein Halten des Rotors 32 dort durch eine Zwei-Phasen-Stromzufuhr (nachstehend als "Zielpositionsstopp- und Halteprozess" bezeichnet) für eine vorgeschriebene Zeit (beispielsweise 50 ms) nach dem Ende der Regelung ausgeführt wird. Mit dieser Maßnahme kann die Stromzufuhr ausgeschaltet werden, nachdem der Rotor 32 eine Zielposition erreicht hat und eine zugehörige Schwingung gestoppt worden ist, wodurch verhindert wird, dass der Rotor 32 bei einer Position, die in großem Umfang von der Zielposition abweicht, aufgrund einer Trägheitskraft stoppt. Dies ermöglicht es, das Erfordernis einer Vergrößerung der Reaktionsgeschwindigkeit der Positionsschaltsteuerung zu erfüllen, während eine hohe Stabilität und Zuverlässigkeit der Positionsschaltsteuerung aufrechterhalten wird.
  • Gemäß diesem Ausführungsbeispiel wird, wenn die angewiesene Schaltposition (Zielposition) während einer Regelung verändert wird, was eine Umkehrung der Drehrichtung des Rotors 32 erforderlich macht, ein Prozess zum Stoppen des Rotors 32 bei einer Umkehrposition und zum Halten desselben dort durch eine Zwei-Phasen-Stromzufuhr (nachstehend als "Umkehrpositionsstopp- und Halteprozess" bezeichnet) für eine vorgeschriebene Zeit (beispielsweise 50 ms) ausgeführt. Die Regelung wird dann erneut gestartet, um den Rotor 32 zu einer neuen Zielposition zu drehen. Mit dieser Maßnahme kann, wenn die angewiesene Schaltposition (Zielposition) während einer Regelung verändert wird, eine Umkehroperation stabil ausgeführt werden, indem der Rotor 32 bei einer Umkehrposition gestoppt wird und dieser dort gehalten wird. Dies verhindert ein Ereignis, dass eine Abweichung von einer Umkehrposition einen Synchronisationsverlust verursacht (d.h. eine Abweichung der Stromzufuhrphasen), und ermöglicht es, den Rotor 32 zu einer neuen Zielposition zuverlässig zu drehen.
  • Gemäß diesem Ausführungsbeispiel wird eine Regelung beendet und ein Übergang zu einem Zielpositionsstopp- und Halteprozess wird ausgeführt, wenn die Differenz zwischen dem Kodiereinrichtungszählwert und einem Zielzählwert bzw. Sollzählwert, der einer Zielposition entspricht, kleiner oder gleich einem vorgeschriebenen Wert (beispielsweise einem Zählwert, der einer entsprechenden A-Phasenvoreilung der Stromzufuhrphase entspricht) während der Regelung geworden ist. Um den Rotor 32 zu drehen, ist es erforderlich, die Phase der Stromzufuhrphase zu veranlassen, der tatsächlichen Position des Rotors 32 um 2 bis 4 Zählwerte (3,75° bis 15° hinsichtlich des Drehwinkels des Rotors 32) voranzugehen.
  • Folglich sollte, wenn eine Regelung beendet ist, wenn die Differenz zwischen den Kodiereinrichtungszählwert und einem Sollzählwert beispielsweise gleich einem Zählwert entsprechend einer A-Phasenvoreilung der Stromzufuhrphase geworden ist, die letzte Stromzufuhrphase der Regelung mit einer Stromzufuhrphase übereinstimmen, mit der der Rotor 32 bei der Zielposition zu stoppen und dort zu halten ist. Folglich kann, nachdem ein Übergang zu einem Zielpositionsstopp- und Halteprozess ausgeführt ist, die Stromzufuhr für die letzte Stromzufuhrphase der Regelung fortgesetzt werden. Der Übergang von der Regelung zu dem Zielpositionsstopp- und Halteprozess kann glatt ausgeführt werden.
  • Zur Erzeugung eines Drehmoments zur Drehung des Rotors 32 ist es erforderlich, die Phase der Stromzufuhrphase zu veranlassen, der Drehphase des Rotors 32 voranzugehen. Wenn die Drehgeschwindigkeit des Rotors 32 nach einem Start der Regelung ansteigt, steigt die Variationsgeschwindigkeit des Kodiereinrichtungszählwerts an und das Stromzufuhrphasenschalten wird schneller. Ein Drehmoment wird jedoch tatsächlich mit einer Verzögerung, die der Induktivität der Wicklungen 33 oder 34 einer Stromzufuhrphase entspricht, von einem Start der Stromzufuhr der Wicklungen 33 oder 34 erzeugt. Folglich dreht sich, wenn die Drehgeschwindigkeit des Rotors 32 zu hoch ist, der Rotor 32 um einen erheblichen Winkel von einem Start einer Stromzufuhr der Wicklungen 33 oder 34 der Stromzufuhrphase zu einer tatsächlichen Erzeugung eines Drehmoments, d.h., die Drehmomenterzeugung der Stromzufuhrphase verzögert sich zu der tatsächlichen Drehphase des Rotors 32. In diesem Zustand nimmt das Antriebsdrehmoment ab und die Drehgeschwindigkeit des Rotors 32 verringert sich. Ein Erfordernis zur Vergrößerung einer Positionsschaltgeschwindigkeit (d.h. einer Vergrößerung der Drehgeschwindigkeit des Rotors 32) kann nicht erfüllt werden.
  • Eine Gegenmaßnahme gegen dieses Problem ist ein Einstellen der Phasenvoreilung der Stromzufuhrphase auf einen großen Wert im Vorfeld. Wenn jedoch die Phasenvoreilung der Stromzufuhrphase bei einem Start einer Regelung (d.h. bei einem Starten) groß ist, wird das Startdrehmoment niedrig und das Starten des SR-Motors 12 wird instabil oder hat eine Fehlfunktion zur Folge.
  • Ferner neigt, wenn die Phasenvoreilung der Stromzufuhrphase groß eingestellt ist und die Drehgeschwindigkeit des Rotors 32 dadurch vergrößert wird, der Rotor 32 dazu, eine Zielposition aufgrund einer Trägheit bei einem Ende einer Regelung zu passieren (Auftreten einer Überschreitung), d.h., es ist schwierig, den Rotor 32 bei der Zielposition korrekt zu stoppen.
  • Angesichts des vorstehend Beschriebenen wird gemäß diesem Ausführungsbeispiel die Phasenvoreilung der Stromzufuhrphase in Bezug auf die Drehphase des Rotors 32 entsprechend der Drehgeschwindigkeit des Rotors 32 während einer Regelung korrigiert. Dabei wird, wenn es erforderlich wird, die Drehgeschwindigkeit des Rotors 32 zu verringern (beispielsweise, weil der Rotor 32 nahe an eine Zielposition kommt), die Phasenvoreilung der Stromzufuhrphase in der abnehmenden Richtung korrigiert.
  • Genauer gesagt kann eine Korrektur der Phasenvoreilung der Stromzufuhrphase in der abnehmenden Richtung bei einem Start einer Regelung ein Startdrehmoment vergrößern und dadurch die Drehgeschwindigkeit des Rotors 32 rasch erhöhen. Eine Korrektur der Phasenvoreilung der Stromzufuhrphase in der ansteigenden Richtung bei einer Vergrößerung der Drehgeschwindigkeit des Rotors 32 kann die synchronisierte Beziehung zwischen der Drehmomenterzeugung der Stromzufuhrphase und der tatsächlichen Drehphase des Rotors 32 auch während einer Hochgeschwindigkeitsdrehung aufrecht erhalten und macht es somit möglich, den Rotor 32 stabil bei einer hohen Geschwindigkeit zu drehen. Dies ermöglicht es, sowohl eine gute Startleistung als auch eine gute Hochgeschwindigkeitsdrehleistung zu erreichen.
  • Wenn der Rotor 32 danach nahe an die Zielposition kommt, wird die Phasenvoreilung der Stromzufuhrphase in der abnehmenden Richtung korrigiert, wodurch ein Zustand, bei dem die Drehmomenterzeugung der Stromzufuhrphase zu der tatsächlichen Drehphase des Rotors 32 verzögert ist, etabliert wird. Auf diese Weise kann das Antriebsdrehmoment verkleinert werden oder ein Drehmoment (Bremsdrehmoment) kann in der Richtung, die entgegengesetzt zu der Drehrichtung des Rotors 32 ist, erzeugt werden, wodurch die Drehgeschwindigkeit des Rotors 32 zuverlässig verkleinert werden kann und der Rotor 32 bei der Zielposition korrekt gestoppt werden kann. Dies ermöglicht es, eine Regelung auszuführen, die bezüglich der Startleistung, der Hochgeschwindigkeitsdrehleistung und der Stoppleistung (Abbremsleistung) besser ist.
  • Die Drehgröße (d.h. der Drehwinkel) des Rotors 32 wird in die manipulierte Variable für den Positionsschaltmechanismus 11 (d.h. die Gleitlänge des Feststellstabes 18) über das Drehübertragungssystem umgewandelt, das den Geschwindigkeitsverringerungsmechanismus 26, die Ausgangswelle 13, den Arretierhebel 15 usw. umfasst, wobei die Bestandteile des Drehübertragungssystem eine Spielgröße bzw. ein Spiel aufweisen. Beispielsweise ist ein Zahnspiel zwischen den Getrieben oder Zahnrädern des Geschwindigkeitsverringerungsmechanismus 26 vorhanden. Bei einem Aufbau, bei dem ein Verbindungsabschnitt mit einem nicht-kreisförmigen Querschnitt, der bei der Spitze der Drehwelle des Motors 12 ausgebildet ist, in ein Passloch der Ausgangswelle 13 eingepasst ist, ist ein bestimmter Freiraum erforderlich, um eine Einpassarbeit des ersteren in das letztere zu vereinfachen.
  • Ferner ist, wie es in 35 gezeigt ist, wenn der Eingriffsabschnitt 23a der Arretierfeder 23 in die P-Positionshaltevertiefung 24 oder die Nicht-P-Positionshaltevertiefung 25 des Arretierhebels 15 geht, eine leichte Lücke (eine Spielgröße) zwischen dem Eingriffsabschnitt 23a und den Seitenwänden der Haltevertiefung 24 oder 25 vorhanden. Wie es vorstehend beispielhaft beschrieben ist, sind eine Spielgröße, wie beispielsweise ein Zahnspiel, und Lücken zwischen Teilen in dem Drehübertragungssystem zur Umwandlung der Drehgröße des Rotors 32 in die manipulierte Variable für den Positionsschaltmechanismus 11 (d.h. die Gleitlänge des Feststellstabs 18) vorhanden. Selbst wenn die Drehgröße des Rotors 32 korrekt auf der Grundlage des Kodiereinrichtungszählwerts gesteuert werden kann, weist die manipulierte Variable für den Positionsschaltmechanismus 11 einen Fehler entsprechend der Spielgröße in dem Drehübertragungssystem auf. Die manipulierte Variable für den Positionsschaltmechanismus 11 kann nicht genau gesteuert werden.
  • Angesichts dessen ist das vorliegende Ausführungsbeispiel mit einer Funktion zum Lernen bzw. Erfahren einer Spielgröße in dem Drehübertragungssystem versehen. Genauer gesagt werden eine P-Positionsseitenanstoßsteuerung (d.h. eine Erste-Richtung-Anstoßsteuerung) zur Drehung des Rotors 32, bis der Eingriffsabschnitt 23a der Arretierfeder 23 an eine Seitenwand der P-Positionshaltevertiefung 24 als eine P-Positionsseitenbegrenzungsposition des bewegbaren Bereichs des Positionsschaltmechanismus 11 anstößt, und eine Nicht-P-Positionsseitenanstoßsteuerung (d.h. eine Zweite-Richtung-Anstoßsteuerung) zur Drehung des Rotors 32, bis der Eingriffsabschnitt 23a der Arretierfeder 23 an eine Seitenwand der Nicht-P-Positionshaltevertiefung 25 als eine Nicht-P-Positionsseitenbegrenzungsposition anstößt, ausgeführt, wodurch eine Vergrößerung oder Verkleinerung des Kodiereinrichtungszählwerts entsprechend dem Bereich von der P-Positionsseitenbegrenzungsposition zu der Nicht-P-Positionsseitenbegrenzungsposition als ein tatsächlicher Messwert des bewegbaren Bereichs des Positionsschaltmechanismus 11 bestimmt wird.
  • Die Differenz zwischen diesem tatsächlichen Messwert des bewegbaren Bereichs und eines zugehörigen Entwurfwerts wird als ein Spiel bzw. eine Spielgröße des Drehübertragungssystem gelernt. Wenn der Rotor 32 danach zu einer Zielposition gedreht wird, wird die Zielposition eingestellt, indem die gelernte Spielgröße des Drehübertragungssystems berücksichtigt wird. Dies ermöglicht es, eine Zielposition, auch wenn das Drehübertragungssystem eine Spielgröße aufweist, unter Berücksichtigung der Spielgröße einzustellen und dadurch die manipulierte Variable für den Positionsschaltmechanismus 11 genau zu steuern.
  • Wenn ausreichend Zeit zur Verfügung steht, eine Spielgröße des Drehübertragungssystems von einer Energiezufuhr (d.h. einem Einschalten des Zündschalters) zu der ECU 41, die den SR-Motor 12 steuert, bis zu einem Start einer Steuerung bei dem Positionsschaltmechanismus 11 zu lernen, kann eine Spielgröße des Drehübertragungssystems nach der Energiezufuhr zu der ECU 41 und vor einem Start einer Steuerung bei dem Positionsschaltmechanismus 11 gelernt werden, indem eine P-Positionsseitenanstoßsteuerung und eine Nicht-P-Positionsseitenanstoßsteuerung erfolgreich ausgeführt werden. Wenn es jedoch erforderlich ist, eine Steuerung des Positionsschaltmechanismus 11 rasch nach einer Energiezufuhr zu der ECU 41 zu starten, ist möglicherweise nicht ausreichend Zeit vorhanden, eine Spielgröße des Drehübertragungssystems nach der Energiezufuhr zu der ECU 41 zu lernen.
  • Angesichts dessen wird gemäß diesem Ausführungsbeispiel, nachdem eine Steuerung des Positionsschaltmechanismus 11 ohne Lernen einer Spielgröße in einem Zustand, bei dem der Rotor 32 bei der P-Position gestoppt ist, gestartet worden ist, eine P-Positionsseitenanstoßsteuerung ausgeführt und ein Kodiereinrichtungszählwert wird, wenn der Eingriffsabschnitt 23a in Kontakt mit der Seitenwand der P-Positionshaltevertiefung 24 ist, in dem RAM der ECU 41 gespeichert. In einem Zustand, bei dem der Rotor 32 bei der Nicht-P-Position gestoppt ist, wird eine Nicht-P-Positionsseitenanstoßsteuerung ausgeführt und ein Kodiereinrichtungszählwert wird, wenn der Eingriffsabschnitt 23a in Kontakt mit der Seitenwand der Nicht-P-Positionshaltevertiefung 25 ist, in dem RAM der ECU 41 gespeichert. Die Differenz zwischen den Kodiereinrichtungszählwerten, die durch P-Positionsseitenanstoßsteuerung und die Nicht-P-Positionsseitenanstoßsteuerung erhalten werden, wird als ein tatsächlicher Messwert des bewegbaren Bereichs des Positionsschaltmechanismus 11 berechnet. Die Differenz zwischen dem tatsächlichen Messwert des bewegbaren Bereichs und des zugehörigen Entwurfwerts wird als eine Spielgröße gelernt bzw. erfahren.
  • Mit dieser Maßnahme kann, auch wenn nicht ausreichend Zeit zum Lernen einer Spielgröße des Drehübertragungssystems von der Energiezufuhr zu der ECU 41 zu einem Start einer Steuerung bei dem Positionsschaltmechanismus 11 vorhanden war und somit eine Steuerung bei dem Positionsschaltmechanismus 11 ohne Lernen einer Spielgröße des Drehübertragungssystems gestartet worden ist, eine Spielgröße gelernt werden, indem Anstoßsteuerungen ausgeführt werden, wenn der Rotor 32 bei der P-Position und der Nicht-P-Position gestoppt ist. In diesem Fall kann die gleiche Steuerung wie in dem herkömmlichen Fall, der eine Spielgröße des Drehübertragungssystems nicht berücksichtigt, vor einem Abschluss eines Lernens einer Spielgröße ausgeführt werden. Alternativ hierzu kann der Steuerungsgegenstand unter Verwendung einer voreingestellten Durchschnittsspielgröße oder eines Speicherwerts einer gelernten Spielgröße des vorangegangenen Lernens gesteuert werden. In der nachfolgenden Beschreibung bezeichnet der abgekürzte Begriff "Anstoßsteuerung" sowohl eine P-Positionsseitenanstoßsteuerung als auch eine Nicht-P-Positionsseitenanstoßsteuerung.
  • Gemäß diesem Ausführungsbeispiel wird, wenn eine Anstoßsteuerung ausgeführt wird, das Drehmoment des SR-Motors 12 kleiner gemacht als bei einer üblichen Ansteuerung, indem das Stromzufuhreinschaltverhältnis (d.h. der Stromzufuhrfaktor) des SR-Motors 12 kleiner als bei einer üblichen Ansteuerung gemacht wird. Das Drehmoment des SR-Motors 12 wird so stark eingestellt, dass der Eingriffsabschnitt 23a der Arretierfeder 23 zuverlässig über den Vorsprung zwischen den zwei Haltevertiefungen 24 und 25 des Arretierhebels 15 bei der Zeit eines Positionsschaltens gehen kann. Bei der Anstoßsteuerung veranlasst das Drehmoment des SR-Motors 12 den Eingriffsabschnitt 23a der Arretierfeder 23 jedoch, gegen die Haltevertiefung 24 oder 25 des Arretierhebels 15 zu stoßen. Folglich können, wenn das Drehmoment des SR-Motors 12 zu stark ist, die Teile des Drehübertragungssystems, wie beispielsweise der Eingriffsabschnitt 23a der Arretierfeder 23, verformt oder allmählich beschädigt werden, was die Haltbarkeit und Zuverlässigkeit verringert, wenn die Anzahl von Malen von Anstoßsteuerungen ansteigt.
  • Als eine Gegenmaßnahme gegen dieses Problem wird das Drehmoment des SR-Motors 12 während einer Anstoßsteuerung verringert, wodurch die Anstoßkraft des Eingriffsabschnitts 23a der Arretierfeder 23 gegen die Seitenwand der Haltevertiefung 24 oder 25 abgeschwächt werden kann. Dies ermöglicht es, zu verhindern, dass Anstoßsteuerungen die Teile des Drehübertragungssystems, wie beispielsweise den Eingriffsabschnitt 23a der Arretierfeder 23, verformen oder beschädigen, und dadurch eine hohe Haltbarkeit und Zuverlässigkeit sicherzustellen. Bei der Anstoßsteuerung gemäß diesem Ausführungsbeispiel muss der Eingriffsabschnitt 23a der Arretierfeder 23 nicht über den Vorsprung zwischen den zwei Haltevertiefungen 24 und 25 des Arretierhebels 15 gehen. Folglich kann, auch wenn das Drehmoment des SR-Motors 12 während einer Anstoßsteuerung verkleinert wird, die Anstoßsteuerung normal ausgeführt werden, solange das Drehmoment höher als ein Minimumwert ist, der erforderlich ist, den Eingriffsabschnitt 23a der Arretierfeder 23 zu veranlassen, gegen die Seitenwand jeder der Haltevertiefungen 24 und 25 zu stoßen.
  • Gemäß diesem Ausführungsbeispiel wird während einer Anstoßsteuerung die Phasenvoreilung der Stromzufuhrphase korrigiert, um die Drehgeschwindigkeit des Rotors 32 zu verringern. Wenn die Drehgeschwindigkeit des Rotors 32 während Anstoßsteuerungen zu hoch ist, kollidiert der Eingriffsabschnitt 23a der Arretierfeder 23 mit den Seitenwänden der Haltevertiefungen 24 und 25 des Arretierhebels 15 mit einer hohen Geschwindigkeit, wobei ein resultierender Aufschlag allmählich die Teile des Drehübertragungssystems, wie beispielsweise den Eingriffsabschnitt 23a der Arretierfeder 23, verformt oder beschädigt. Eine Verringerung der Drehgeschwindigkeit des Rotors 32 während Anstoßsteuerungen verringert die Geschwindigkeit, mit der der Eingriffsabschnitt 23a der Arretierfeder 23 mit den Seitenwänden der Haltevertiefungen 24 und 25 des Arretierhebels 15 während Anstoßsteuerungen kollidiert, und kann somit den resultierenden Aufprall abschwächen.
  • Dies ermöglicht es, zu verhindern, dass Anstoßsteuerungen die Teile des Drehübertragungssystems, wie beispielsweise den Eingriffsabschnitt 23a der Arretierfeder 23, verformen oder beschädigen, und dadurch eine hohe Haltbarkeit und Zuverlässigkeit sicherzustellen.
  • Gemäß diesem Ausführungsbeispiel wird ein Winkel (d.h. ein Hinweglaufkorrekturwert), um den der Eingriffsabschnitt 23a der Arretierfeder 23 leicht über die Seitenwand der Haltevertiefung 24 oder 25 des Arretierhebels 15 in einem Zustand hinwegläuft, bei dem der Eingriffsabschnitt 23a in Kontakt mit der Seitenwand ist, auf der Grundlage der Batteriespannung als eine Energiequellenspannung für den SR-Motor 12 gefolgert. Dabei wird ein tatsächlicher Messwert des bewegbaren Bereichs des Positionsschaltmechanismus 11 durch den gefolgerten Wert korrigiert. Der Winkel (d.h. der Hinweglaufkorrekturwert), um den der Eingriffsabschnitt 23a der Arretierfeder 23 über die Seitenwand der Haltevertiefung 24 oder 25 des Arretierhebels 15 während einer Anstoßsteuerung hinwegläuft, steigt an, wenn das Drehmoment des SR-Motors 12 ansteigt. Im Allgemeinen variiert das Drehmoment des SR-Motors 12 mit der zugehörigen Energiequellenspannung (d.h. der Batteriespannung) und folglich ist eine Korrelation bzw. Wechselbeziehung zwischen der Energiequellenspannung und dem Drehmoment des SR-Motors 12 vorhanden. Die Energiequellenspannung kann als Ersatzinformation für das Drehmoment des SR-Motors 12 verwendet werden. Folglich kann ein tatsächlicher Messwert des bewegbaren Bereichs des Positionsschaltmechanismus 11 durch Folgern eines Winkels (d.h. eines Hinweglaufkorrekturwerts), um den der Eingriffsabschnitt 23a der Arretierfeder 23 über die Seitenwand der Haltevertiefung 24 oder 25 des Arretierhebels 15 während einer Anstoßsteuerung hinwegläuft, auf der Grundlage der Energiequellenspannung (d.h. der Batteriespannung) als Ersatzinformation für das Drehmoment des SR-Motors 12 und durch Korrigieren eines tatsächlichen Messwerts des bewegbaren Bereichs des Positionsschaltmechanismus 11 durch den gefolgerten Wert genau bestimmt werden.
  • Während der Regelung sind, beispielsweise wenn das A-Phasensignal oder das B-Phasensignal der Kodiereinrichtung 46 zeitweise fehlt, wenn ein Rauschimpuls, der auf der Signalleitung der Kodiereinrichtung 46 überlagert ist, irrtümlicherweise als das normale Impulssignal verwendet wird oder wenn sich der Motor aus irgend einem Grund aus der Phase dreht, die mit Energie versorgte Phase (Kodiereinrichtungszählwert) und die Drehphase des Rotors 32 nicht synchronisiert. Als Ergebnis kann der Rotor 32 nicht auf übliche Weise angesteuert werden. Somit stoppt der Rotor 32 oder dreht sich in umgekehrter Richtung, wobei er unsteuerbar wird, da die Regelung nicht fortgesetzt werden kann.
  • Angesichts des vorstehend Beschriebenen wird gemäß diesem Ausführungsbeispiel während der Regelung überwacht, ob der Zustand einer Regelung (das heißt der Drehzustand des Rotors 32) normal bzw. üblich oder anormal ist. Sobald eine Anomalie erfasst wird, wird ein Schalten von der Regelung zu einer offenen Regelkreissteuerung ausgeführt und ein Wiederherstellungsprozess wird gestartet. Ein Wiederherstellungsprozessausführungsbeispiel, das in 47 gezeigt ist, ist dergestalt, dass ein Schalten zu einer offenen Regelkreissteuerung von einer Regelung zum Schalten der Schaltposition von der P-Position zu der Nicht-P-Position ausgeführt wird und ein Wiederherstellungsprozess gestartet wird, sobald eine Anomalie in dem Regelungszustand aufgetreten ist und der Rotor 32 oder eine Zähloperation des Kodiereinrichtungszählwerts Ncnt einen anormalen Stop während der Regelung ausgeführt hat.
  • Während der offenen Regelkreissteuerung (das heißt des Wiederherstellungsprozesses) wird der Rotor 32 durch sequentielles Schalten der Stromzufuhrphase gedreht, ohne Informationen des Kodiereinrichtungszählwerts Ncnt zurückzuführen. Der Positionszählwert Ncntop der offenen Regelkreissteuerung wird jedes Mal, wenn die Stromzufuhrphase während der offenen Regelkreissteuerung geschaltet wird, inkrementiert (oder dekrementiert). Sobald der Positionszählwert Ncntop einen Sollzählwert Acnt erreicht hat, wird bestimmt, dass der Rotor 32 eine Zielposition erreicht hat. Die offene Regelkreissteuerung (das heißt der Wiederherstellungsprozess) wird beendet und die Regelung wird erneut gestartet. Als Ergebnis kann gemäß diesem Ausführungsbeispiel, auch wenn eine Anomalie in dem Kodiereinrichtungszählwert Ncnt, ein Synchronisationsverlust und dergleichen bei einer Regelung auftritt, was den Regelungszustand (das heißt den Drehzustand des Rotors 32) zeitweise anormal macht, der Rotor 32 zu einer Zielposition durch eine offene Regelkreissteuerung gedreht werden.
  • Eine, zwei oder alle der nachstehend genannten drei Anomalieerfassungsverfahren (1)–(3) können als Regelungszustandsanomalieerfassungsverfahren verwendet werden:
  • [Anomalieerfassungsverfahren (1)]
  • Wie es in 48 gezeigt ist, werden während einer Regelung Flanken eines A-Phasensignals und Flanken eines B-Phasensignals getrennt gezählt. Auf der Grundlage davon, ob die Differenz |Na – Nb| zwischen dem Zählwert Na des A-Phasensignals und dem Zählwert Na des B-Phasensignals größer oder gleich einem Anomaliebestimmungswert (beispielsweise 3) ist, wird bestimmt (überwacht), ob eine Anomalie in dem Regelungszustand aufgetreten ist. Die Differenz zwischen dem Zählwert Nb des A-Phasensignals und dem Zählwert Nb des B-Phasensignals ist 0 oder 1 während einer Regelung, solange das A-Phasensignal und das B-Phasensignal normal ausgegeben werden.
  • Folglich wird, wenn die Differenz |Na – Nb| zwischen den Zählwerten Na und Nb kleiner oder gleich "2" ist, bestimmt, dass eines des A-Phasensignals und des B-Phasensignals zeitweise verloren worden ist, die Schaltung durch einen Rauschimpuls beeinflusst worden ist oder ein ähnliches Phänomen aufgetreten ist. Wenn ein derartiger Zustand auftritt, sind der Kodiereinrichtungszählwert Ncnt und die Drehposition des Rotors 32 nicht länger miteinander synchronisiert und der Drehzustand des Rotors 32 (das heißt der Regelungszustand) wird anormal. Somit kann auf der Grundlage der Differenz |Na – Nb| zwischen den Zählwerten Na und Nb bestimmt werden, ob eine Anomalie in dem Drehzustand des Rotors 32 (das heißt dem Regelungszustand) aufgetreten ist.
  • [Anomalieerfassungsverfahren (2)]
  • Wie es in 48 gezeigt ist, werden ein Flankenintervall ΔTa eines A-Phasensignals und ein Flankenintervall ΔTb eines B-Phasensignals während einer Regelung gemessen. Auf der Grundlage davon, ob das Flankenintervall ΔTa oder das Flankenintervall ΔTb größer oder gleich einem Anomaliebestimmungswert REF (beispielsweise 10 mal ein Durchschnittswert von ΔTa und ΔTb) ist, wird bestimmt (überwacht), ob eine Anomalie in dem Regelungszustand aufgetreten ist.
  • Als eine weitere Version des Anomalieerfassungsverfahrens (2) kann eine Anomalie erfasst werden, indem die Drehgeschwindigkeit des Rotors 32, beispielsweise die Anzahl von Ausgabeimpulsen pro Zeiteinheit der Kodiereinrichtung 46, überwacht wird.
  • [Anomalieerfassungsverfahren (3)]
  • Wie es in 49 gezeigt ist, wird während einer Regelung die Drehrichtung des Rotors 32 auf der Grundlage der Variationsrichtung des Kodiereinrichtungszählwerts Ncnt überwacht. Auf der Grundlage davon, ob die Drehrichtung des Rotors 32 sich von einer Drehrichtung zu einer Zielposition umgekehrt hat, wird bestimmt (überwacht), ob eine Anomalie in dem Regelungszustand (das heißt dem Drehzustand des Rotors 32) aufgetreten ist. Gemäß diesem Ausführungsbeispiel wird die Anzahl von Malen (das heißt ein Zählwert Cr) gezählt, die der Kodiereinrichtungszählwert Ncnt hintereinander in der Richtung, die zu der Richtung zu dem Ziel entgegengesetzt ist, aktualisiert wird. Auf der Grundlage davon, ob der Zählwert Cr größer oder gleich einem Anomaliebestimmungswert (beispielsweise 4) ist, wird bestimmt, ob eine Anomalie in dem Regelungszustand (das heißt dem Drehzustand des Rotors 32) aufgetreten ist. Das heißt, es wird, wenn der Kodiereinrichtungszählwert Ncnt viermal oder mehr hintereinander in der Richtung, die entgegengesetzt zu der Richtung zu dem Ziel ist, aktualisiert worden ist, bestimmt, dass die Drehrichtung des Rotors 32 sich umgekehrt hat und das Umkehrbestimmungsflag Xr wird auf "ein" geschaltet.
  • Ferner wird in diesem Ausführungsbeispiel das Stromzufuhrverfahren bei einer offenen Regelkreissteuerung auf das Ein-/Zwei-Phasen-Stromzufuhrverfahren eingestellt und die erste Stromzufuhr bei dem Start der offenen Regelkreissteuerung wird zu der Zwei-Phasen-Stromzufuhr gemacht. Ferner wird, wie es in 50 gezeigt ist, die Stromzufuhrzeit jeder der Stromzufuhrphasen von drei Schritten beispielsweise von dem Start der offenen Regelkreissteuerung auf eine längste Zeit (beispielsweise 50 ms) eingestellt, um einen sicheren Zugriff des Rotors 32 zu erhalten und die Drehphase und die Stromzufuhrphase sicher miteinander zu synchronisieren. Danach wird die Stromzufuhrzeit deutlich verkürzt. Die Drehgeschwindigkeit des Rotors 32 wird behutsam vergrößert, indem die Stromzufuhrzeit allmählich verkürzt wird, wenn die Drehgeschwindigkeit des Rotors 32 zunimmt.
  • Um eine Drehposition des Rotors während einer offenen Regelkreissteuerung zu folgern, wird eine Anfangsposition (das heißt ein Anfangswert des Positionszählwerts Ncntop) des Rotors 32 bei dem Start der offenen Regelkreissteuerung auf der Grundlage eines Ausgabesignals des Ausgangswellensensors 14 berechnet. Jedes Mal, wenn die Stromzufuhrphase danach geschaltet wird, wird der Positionszählwert Ncntop inkrementiert (oder dekrementiert) und eine Drehposition des Rotors 32 wird auf der Grundlage eines sich ergebenden Positionszählwerts Ncntop gefolgert. Wenn die Differenz zwischen diesem Positionszählwert Ncntop und einem Sollzählwert Acnt kleiner oder gleich einem vorgeschriebenen Wert wird, wird bestimmt, dass die Drehposition in einen Verzögerungs- oder Abbremsbereich gekommen ist. Die Stromzufuhrzeit wird allmählich vergrößert, um die Drehgeschwindigkeit des Rotors 32 behutsam zu verkleinern. Wenn der Positionszählwert Ncntop den Sollzählwert Acnt erreicht hat, wird bestimmt, dass der Rotor 32 die Zielposition erreicht hat, woraufhin die offene Regelkreissteuerung beendet wird und die Regelung erneut gestartet wird.
  • Hierbei kann, wenn ein von der Kodiereinrichtung 46 auszugebender Impuls verloren wird oder ein Rauschen vermischt wird, eine Abweichung in der Beziehung zwischen dem Kodiereinrichtungszählwert Ncnt und der Drehposition des Rotors 32 (das heißt der manipulierten Variablen für den Positionsschaltmechanismus 11) oder der Beziehung zwischen dem Kodiereinrichtungszählwert Ncnt und der Stromzufuhrphase auftreten.
  • Angesichts dessen werden gemäß diesem Ausführungsbeispiel eine Anfangsansteuerung und Anstoßsteuerungen wiederum bei einer Wiederherstellung von einer offenen Regelkreissteuerung zu einer Regelung ausgeführt. Auch wenn eine Abweichung während der offenen Regelkreissteuerung in der Beziehung zwischen dem Kodiereinrichtungszählwert Ncnt und der Drehposition des Rotors 32 (das heißt der manipulierten Variablen für den Positionsschaltmechanismus 11) oder der Beziehung zwischen dem Kodiereinrichtungszählwert Ncnt und der Stromzufuhrphase auftritt, kann die Abweichung durch die Anfangsansteuerung und die Anstoßsteuerungen auf genaue Weise korrigiert werden.
  • In diesem Ausführungsbeispiel wird während einer Periode bzw. Zeitdauer, wenn der Rotor 32 zu einer Zielposition durch eine offene Regelkreissteuerung gedreht wird, ein Manipulationssignal des P-Positionsschalters 43 oder des Nicht-P-Positionsschalters 44 außer acht gelassen, auch wenn dieser manipuliert wird. Während einer offenen Regelkreissteuerung ist die Drehgeschwindigkeit niedrig und folglich ist eine Motoransteuerungszeit für eine Positionsschaltoperation lang. Folglich ist es wahrscheinlich, dass der P-Positionsschalter 43 oder der Nicht-P-Positionsschalter 44 während der offenen Regelkreissteuerung manipuliert wird. Da Drehpositionen des Rotors 32 während einer offenen Regelkreissteuerung nicht korrekt erfasst werden können, kann, wenn die Zielposition (das heißt die angewiesene Schaltposition) geschaltet wird und die Drehansteuerungsrichtung des Rotors 32 dadurch während einer offenen Regelkreissteuerung umgekehrt wird, eine Abweichung in der Synchronisationsbeziehung zwischen der Drehphase des Rotors 32 und der Stromzufuhrphase auftreten und der SR-Motor 12 kann zu einem Synchronisationsverlust neigen. Es kann ein Fall auftreten, bei dem der Rotor 32 nicht angesteuert werden kann. Die Zuverlässigkeit der offenen Regelkreissteuerung kann vergrößert werden, indem ein Manipulationssignal außer acht gelassen wird, auch wenn der P-Positionsschalter 43 oder der Nicht-P-Positionsschalter 44 während einer offenen Regelkreissteuerung manipuliert wird.
  • Hierbei ist es, auch wenn das Regelungssystem eine Fehlfunktion aufweist, was eine Situation verursacht, bei der der SR-Motor 12 durch eine Regelung nicht auf die übliche Weise angesteuert werden kann, weiterhin wahrscheinlich, dass ein Schalten zu einer offenen Regelkreissteuerung eine übliche Ansteuerung bei dem SR-Motor 12 ermöglicht. Beispielsweise kann, auch wenn die Kodiereinrichtung 46 eine Fehlfunktion aufweist oder eines der zwei Systeme von Motorenergieversorgungsabschnitten 35 und 36 (Wicklungen 33 und 34) des SR-Motors 12 oder eines der zwei Systeme von Motoransteuerungseinrichtungen 37 und 38 eine Fehlfunktion aufweist, was die Antriebskraft des SR-Motors 12 verringert, ein Schalten zu einer offenen Regelkreissteuerung eine übliche bzw. normale Ansteuerung bei dem SR-Motor 12 ermöglichen.
  • Angesichts des vorstehend Beschriebenen wird gemäß diesem Ausführungsbeispiel, wenn eine Fehlfunktion in dem Regelungssystem (das heißt eine Systemanomalie) durch eine in 56 und 57 gezeigte Systemanomaliediagnoseroutine erfasst wird, der SR-Motor 12 angesteuert, indem ein Schalten zu einer offenen Regelkreissteuerung eines Ausfallsicherungsprozesses mittels einer in 58 und 59 gezeigten Ausfallsicherungsverarbeitungsroutine ausgeführt wird. Die offene Regelkreissteuerung der Ausfallsicherungsverarbeitung ist die gleiche wie die vorstehend genannte offene Regelkreissteuerung eines Wiederherstellungsprozesses.
  • Wenn der SR-Motor 12 nicht normal angesteuert werden kann, auch wenn derartige Ausfallsicherungsprozesse (offene Regelkreissteuerungen) mehrmals ausgeführt werden, sollte bestimmt werden, dass der SR-Motor 12 unsteuerbar ist, da der SR-Motor 12 oder ein zugehöriges Antriebssteuerungssystem eine vollständige Fehlfunktion aufweist. Folglich wird gemäß diesem Ausführungsbeispiel, wenn beispielsweise eine Motoransteuerung durch einen Ausfallsicherungsprozess (offene Regelkreissteuerung) dreimal oder mehr misslungen ist, nachfolgend bestimmt, dass auch die offene Regelkreissteuerung den SR-Motor 12 nicht steuern kann und die Stromzufuhr des SR-Motors 12 wird ausgeschaltet. Mit dieser Maßnahme kann eine wiederholte Ausführung von offenen Regelkreissteuerungen vermieden werden, nachdem bestimmt ist, dass auch die offene Regelkreissteuerung den SR-Motor 12 nicht steuern kann. Der Energieverbrauch kann somit verringert werden.
  • Gemäß diesem Ausführungsbeispiel wird während einer offenen Regelkreissteuerung (das heißt während eines Ausfallsicherungsprozesses oder eines Wiederherstellungsprozesses) durch Vergleichen des Kodiereinrichtungszählwerts Ncnt (das heißt des Zählwerts eines A-Phasensignals und eines B-Phasensignals der Kodiereinrichtung 46) und des Positionszählwerts Ncntop (das heißt des Zählwerts eines Motoransteuerungssignals) miteinander bestimmt, ob eine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Genauer gesagt wird auf der Grundlage davon, ob die Differenz zwischen Variationen des Kodiereinrichtungszählwerts Ncnt und des Positionszählwerts Ncntop von dem Start einer offenen Regelkreissteuerung zu einem zugehörigen Ende größer oder gleich einem Bestimmungswert ist, bestimmt, ob eine A-Phasen- oder B-Phasentrennung vorhanden ist.
  • Wenn beispielsweise sowohl eine A-Phasentrennung als auch eine B-Phasentrennung in der Kodiereinrichtung 46 vorhanden sind, variiert der Kodiereinrichtungszählwert Ncnt keinesfalls, auch wenn der Rotor 32 während einer offenen Regelkreissteuerung gedreht wird. Wenn entweder eine A-Phasentrennung oder eine B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist, wird die Variation des Positionszählwerts Ncntop bei der offenen Regelkreissteuerung halb so groß wie die bei einem normalen Zustand. Wenn der SR-Motor 12 bei einer offenen Regelkreissteuerung normal angesteuert wird, wird die Variation des Kodiereinrichtungszählwerts Ncnt ein Wert, der einer Drehgröße (Drehwinkel) des Rotors 32 bei der offenen Regelkreissteuerung entspricht. Folglich kann durch Vergleichen des Kodiereinrichtungszählwerts Ncnt und des Positionszählwerts Ncntop während der offenen Regelkreissteuerung bestimmt werden, ob eine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist.
  • Ferner wird gemäß diesem Ausführungsbeispielen, um zu bestimmen, ob eine Anomalie in einem Z-Phasensignal der Kodiereinrichtung 46 während einer offenen Regelkreissteuerung vorhanden ist, ein Ausgabeintervall zwischen Z-Phasensignalimpulsen auf der Grundlage einer Variation des Kodiereinrichtungszählwerts Ncnt (das heißt eines Drehwinkels des Rotors 32) von einer Ausgabe eines Z-Phasensignalimpulses zu einer Ausgabe des nächsten Z-Phasensignalimpulses gemessen. Auf der Grundlage des gemessenen Ausgabeintervalls des Z-Phasensignals wird bestimmt, ob eine Anomalie in dem Z-Phasensignal vorhanden ist. Das heißt, wenn eine Variation des Kodiereinrichtungszählwerts Ncnt (das heißt eines Drehwinkels des Rotors 32) von einer Ausgabe eines Z-Phasensignalimpulses zu einer Ausgabe des nächsten Z-Phasensignalimpulses gleich einem Wert ist, der dem Intervall (gemäß diesem Ausführungsbeispiel 45°) zwischen den Referenzdrehpositionen des Rotors 32 entspricht, wird das Z-Phasensignal als normal bestimmt.
  • Bei mehrmaligem Auftreten eines Zustands, bei dem kein Z-Phasensignalimpuls ausgegeben wird, auch wenn das Intervall zwischen den Referenzdrehpositionen des Rotors 32 durchlaufen ist, wird bestimmt, dass eine Z-Phasentrennung (Anomalie) in der Kodiereinrichtung 46 vorhanden ist. Im Gegensatz dazu wird, wenn ein Z-Phasensignalimpuls ausgegeben wird, bevor das Intervall zwischen den Referenzdrehpositionen des Rotors 32 erreicht ist, bestimmt, dass eine irrtümliche Erfassung eines Z-Phasensignalimpulses (das heißt eine Anomalie) aufgrund von Rauschen oder dergleichen vorliegt.
  • Ob eine A-Phasen-, B-Phasen- oder Z-Phasen-Anomalie in der Kodiereinrichtung 46 vorhanden ist, wird während einer offenen Regelkreissteuerung auf die vorstehend beschriebene Weise bestimmt. Wenn eine A-Phasen- oder B-Phasentrennung (Anomalie) erfasst wird, wird eine Rückkehr von der offenen Regelkreissteuerung zu einer Regelung verhindert. Wenn das A-Phasensignal oder das B-Phasensignal der Kodiereinrichtung 46 anormal ist, wird der Kodiereinrichtungszählwert Ncnt anormal und somit kann der SR-Motor 12 nicht normal angesteuert werden, auch wenn eine Regelung, bei der der Kodiereinrichtungszählwert Ncnt zurückgeführt wird, ausgeführt wird. Folglich kann in diesem Fall eine nutzlose Ausführung einer Regelung vermieden werden, indem eine Rückkehr zu einer Regelung verhindert wird, und der Rotor 32 kann zu einer Zielposition durch die offene Regelkreissteuerung gedreht werden.
  • Wenn eine Anomalie in dem Z-Phasensignal der Kodiereinrichtung 46 während einer offenen Regelkreissteuerung erfasst wird, wird die Z-Phasenkorrektur verhindert. Dies verhindert eine irrtümliche Z-Phasenkorrektur bei dem Auftreten einer Anomalie in dem Z-Phasensignal.
  • Wenn eine Trennung in lediglich einem der zwei Systeme von Ansteuerungsspulen 35 und 36 des SR-Motors 12 (Wicklungen 33 und 34) auftritt, wird eine offene Regelkreissteuerung unter Verwendung der Ansteuerungsspule 35 oder 36 des einen Systems, bei dem keine Trennung vorhanden ist, fortgesetzt. In diesem Fall wird eine Trennung in der Ansteuerungsspule 35 oder 36 entsprechend einer in 80 gezeigten Ansteuerungsspulentrennungserfassungsroutine durch Auslesen von Spannungspegeln (das heißt von Trennungserfassungssignalen) von Eingangsanschlüssen der ECU 41 erfasst, mit denen die Verbindungspunkte der Widerstände 61 und 62 von Trennungserfassungsschaltungen 60 der jeweiligen Phasen verbunden sind.
  • Das vorstehend genannte Positionsschalten wird durch die ECU 41 der Positionsschaltsteuerungseinrichtung 42 entsprechend den nachstehend beschriebenen Routinen ausgeführt, von denen jede nachstehend ausführlich beschrieben ist.
  • [Anfangsansteuerung]
  • Eine Anfangsansteuerung wird entsprechend einer Anfangsansteuerungsroutine ausgeführt, die in 8 und 9 gezeigt ist. Diese Routine wird in einem vorgeschriebenen Zyklus (beispielsweise jede 1 ms) bis zu einem Ende der Anfangsansteuerung unmittelbar nach einer Energiezufuhr zu der ECU 41 (d.h. ummittelbar nach einer Manipulation des Zündschalters von der AUS-Position zu der ACC-Position) ausgeführt.
  • Bei einer Aktivierung dieser Routine wird in Schritt 101 bestimmt, ob ein nachstehend als Offener-Regelkreis- Ausführungsflag bezeichnetes Offener-Regelkreis-Ausführungskennzeichen "ein" ist oder ob ein Wiederherstellungsprozessausführungsflag Xrcv "ein" ist. Das Offener-Regelkreis-Ausführungsflag Xopen ist ein Kennzeichen bzw. Flag, das angibt, ob eine offene Regelkreissteuerung (open loop control) (Ausfallsicherungsprozess), die auszuführen ist, wenn die Kodiereinrichtung 46 oder der SR-Motor 12 eine Fehlfunktion aufweisen, ausgeführt wird. Wenn das Offener-Regelkreis-Ausführungsflag Xopen "ein" ist, bedeutet dies, dass die offene Regelkreissteuerung ausgeführt wird. Das Wiederherstellungsprozessausführungsflag Xrcv ist ein Flag, das angibt, ob ein Wiederherstellungsprozess (offene Regelkreissteuerung), der bei einem Auftreten einer zeitlichen Operationsanomalie zeitweise auszuführen ist, ausgeführt wird. Wenn das Wiederherstellungsprozessausführungsflag Xrcv "ein" ist, bedeutet dies, dass der Wiederherstellungsprozess ausgeführt wird.
  • Wenn das Bestimmungsergebnis in Schritt 101 "ja" ist, wird diese Routine beendet, ohne dass die verbleibenden Schritte ausgeführt werden. Wenn das Bestimmungsergebnis in Schritt 101 "nein" ist, schreitet die Routine zu Schritt 102 voran, in dem bestimmt wird, ob eine vorgeschriebene Zeit (beispielsweise 100 ms), welches eine Wartezeit von einer Initialisierung der ECU 41 zu einer Stabilisierung der Ausgabespannung des Ausgangswellensensors 14 ist, vergangen ist. Wenn die vorgeschriebene Zeit von der Initialisierung der ECU 41 vergangen ist, schreitet die Routine zu Schritt 103 voran, in dem eine Ausgabespannung des Ausgangswellensensors 14 ausgelesen wird. Ob der derzeitige Bereich die P-Position oder die Nicht-P-Position ist, wird auf der Grundlage davon bestimmt, ob die Ausgabespannung kleiner oder gleich einem Bereichsbestimmungswert ist. Wenn der derzeitige Bereich die P-Position ist, schreitet die Routine zu Schritt 104 voran, in dem ein Bereichsbestimmungsflag Xnp auf "1" gesetzt wird, was die Nicht-P-Position bedeutet.
  • Dann schreitet die Routine zu Schritt 106 voran, in dem bestimmt wird, ob das Bereichsbestimmungsflag Xnp "0" ist (P-Position). Wenn das Bereichsbestimmungsflag Xnp "0" ist (P-Position), schreitet die Routine zu Schritt 107 voran, in dem eine P-Positions-Anfangsansteuerungsroutine, die in 10 gezeigt ist, ausgeführt wird. Wenn das Bereichsbestimmungsflag Xnp "1" ist (Nicht-P-Position), schreitet die Routine zu Schritt 108 voran, in dem eine Nicht-P-Positions-Anfangsansteuerungsroutine, die in 11 gezeigt ist, ausgeführt wird.
  • Wenn die P-Positions-Anfangsansteuerungsroutine gemäß 10 in Schritt 107 aktiviert wird, wird in Schritten 201206, bestimmt, zu welchem von "0" bis "5" der Zählwert CASE (oder FALL) eines Stromzufuhrzählers, der die Stromzufuhr während einer Anfangssteuerung zählt, gleich ist. Der Zählwert CASE des Stromzufuhrzählers weist einen Anfangswert "0" auf, der bei der Initialisierungsverarbeitung gesetzt wird und der um eins für jede Stromzufuhr inkrementiert bzw. erhöht wird (Schritt 114 in 9). Eine Stromzufuhrphase und eine Stromzufuhrzeit T werden auf die nachstehend beschriebene Weise entsprechend einem Ergebnis der Bestimmung des Zählwerts CASE eingestellt.
  • Wenn CASE = 0 (erste Stromzufuhr) ist, schreitet die Routine zu Schritt 207 voran, in dem eine W-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T1 (beispielsweise 10 ms) eingestellt wird.
  • Wenn CASE = 1 (zweite Stromzufuhr) ist, schreitet die Routine zu Schritt 208 voran, in dem eine U-/W-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T2 (beispielsweise 100 ms) eingestellt wird.
  • Wenn CASE = 2 (dritte Stromzufuhr) ist, schreitet die Routine zu Schritt 209 voran, in dem eine U-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T1 (beispielsweise 10 ms) eingestellt wird.
  • Wenn CASE = 3 (vierte Stromzufuhr) ist, schreitet die Routine zu Schritt 210 voran, in dem eine U-/V-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T2 (beispielsweise 100 ms) eingestellt wird.
  • Wenn CASE = 4 (fünfte Stromzufuhr) ist, schreitet die Routine zu Schritt 211 voran, in dem eine V-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T1 (beispielsweise 10 ms) eingestellt wird.
  • Wenn CASE = 5 (sechste Stromzufuhr) ist, schreitet die Routine zu Schritt 212 voran, in dem eine V-/W-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T2 (beispielsweise 100 ms) eingestellt wird.
  • Mit den vorstehend beschriebenen Schritten wird in dem Fall, bei dem die Anfangsansteuerung mit der P-Position ausgeführt werden soll, eine Stromzufuhr bei allen Phasen ringsum in einer Reihenfolge gemäß W-Phase → U- und W-Phasen → U-Phase → U- und V-Phasen → V-Phase → V- und W-Phasen bewirkt, wodurch der Rotor 32 in die übliche Drehrichtung (d.h. die Drehrichtung von der P-Position zu der Nicht-P-Position) angesteuert wird. In diesem Fall wird die Ein-Phasen-Stromzufuhrzeit T1 kürzer als die Zwei-Phasen-Stromzufuhrzeit T2 eingestellt.
  • Demgegenüber wird, wenn die Nicht-P-Positions-Anfangsansteuerungsroutine gemäß 11 in Schritt 108 aktiviert wird, in Schritten 221226 bestimmt, zu welchem von "0" bis "5" der Zählwert CASE des Stromzufuhrzählers gleich ist. Eine Stromzufuhrphase und eine Stromzufuhrzeit T werden auf die nachstehend beschriebene Weise entsprechend einem Ergebnis der Bestimmung des Zählwerts CASE eingestellt.
  • Wenn CASE = 0 (erste Stromzufuhr) ist, schreitet die Routine zu Schritt 227 voran, in dem eine V-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T1 (beispielsweise 10 ms) eingestellt wird.
  • Wenn CASE = 1 (zweite Stromzufuhr) ist, schreitet die Routine zu Schritt 228 voran, in dem eine U-/V-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T2 (beispielsweise 100 ms) eingestellt wird.
  • Wenn CASE = 2 (dritte Stromzufuhr) ist, schreitet die Routine zu Schritt 229 voran, in dem eine U-Phasen- Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T1 (beispielsweise 10 ms) eingestellt wird.
  • Wenn CASE = 3 (vierte Stromzufuhr) ist, schreitet die Routine zu Schritt 230 voran, in dem eine U-/W-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T2 (beispielsweise 100 ms) eingestellt wird.
  • Wenn CASE = 4 (fünfte Stromzufuhr) ist, schreitet die Routine zu Schritt 231 voran, in dem eine W-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T1 (beispielsweise 10 ms) eingestellt wird.
  • Wenn CASE = 5 (sechste Stromzufuhr) ist, schreitet die Routine zu Schritt 232 voran, in dem eine V-/W-Phasen-Stromzufuhr ausgewählt wird und die Stromzufuhrzeit T auf T2 (beispielsweise 100 ms) eingestellt wird.
  • Mit den vorstehend beschriebenen Schritten wird in dem Fall, bei dem die Anfangsansteuerung mit der Nicht-P-Position ausgeführt werden soll, eine Stromzufuhr für alle Phasen ringsum in der Reihenfolge gemäß V-Phase → U- und V-Phasen → U-Phase → U- und W-Phasen → W-Phase → V- und W-Phasen bewirkt, wodurch der Rotor 32 in die Umkehrdrehrichtung (d.h. die Drehrichtung von der Nicht-P-Position zu der P-Position) angesteuert wird. Ebenso wird in diesem Fall die Ein-Phasen-Stromzufuhrzeit T1 kürzer als die Zwei-Phasen-Stromzufuhrzeit T2 eingestellt.
  • Nachdem die P-Positions-Anfangsansteuerungsroutine gemäß 10 oder die Nicht-P-Positions-Anfangsansteuerungsroutine gemäß 11 in der vorstehend beschriebenen Weise ausgeführt ist, schreitet die Routine zu Schritt 109, der in 8 gezeigt ist, voran, in dem bestimmt wird, ob eine Positionsschaltmanipulation (d.h. eine Manipulation des P-Positionsschalters 43 oder des Nicht-P-Positionsschalters 44) während der Anfangsansteuerung ausgeführt worden ist. Wenn eine Positionsschaltmanipulation während der Anfangsansteuerung ausgeführt worden ist, schreitet die Routine zu Schritt 110 voran, in dem ein Positionsschaltmanipulationsflag Xchg auf "ein" gesetzt wird. Wenn keine Positionsschaltmanipulation ausgeführt worden ist, schreitet die Routine zu Schritt 111 voran, in dem das Positionsschaltmanipulationsflag Xchg auf "aus" gesetzt wird.
  • Daraufhin schreitet die Routine zu Schritt 112, der in 9 gezeigt ist, voran, in dem der Zählwert CT eines Zählers, der die Stromzufuhrzeit der Stromzufuhrphase zählt, inkrementiert wird. Bei einem nächsten Schritt 113 wird bestimmt, ob die Stromzufuhrzeit CT der Stromzufuhrphase die Stromzufuhrzeit T, die in der Routine gemäß 10 oder 11 eingestellt worden ist, überschritten hat. Wenn die Stromzufuhrzeit CT die Stromzufuhrzeit T nicht überschritten hat, wird diese Routine beendet, ohne die nachfolgenden Schritte auszuführen. Auf diese Weise wird die Stromzufuhr für die Stromzufuhrphase fortgesetzt, bis die Stromzufuhrzeit CT der Stromzufuhrphase die Stromzufuhrzeit T (= T1 oder T2), die in der Routine gemäß 10 oder 11 eingestellt worden ist, überschreitet.
  • Dann schreitet bei einem Zeitpunkt, wenn die Stromzufuhrzeit CT der Stromzufuhrphase die Stromzufuhrzeit T (= T1 oder T2), die in der Routine gemäß 10 oder 11 eingestellt worden ist, überschritten hat, die Routine zu Schritt 114 voran, in dem der Zählwert CASE des Stromzufuhrzählers um eins erhöht wird und die Stromzufuhrphase zu der nächsten Phase geschaltet wird. Bei einem nächsten Schritt 115 wird der Zählwert CT des Stromzufuhrzeitzählers zurückgesetzt. Bei einem nächsten Schritt 116 wird bestimmt, ob der Zählwert CASE des Stromzufuhrzählers "6" erreicht hat, was bedeutet, dass die Anfangsansteuerung beendet werden soll. Wenn der Zählwert CASE "6" erreicht hat, schreitet die Routine zu Schritt 118 voran, in dem ein Anfangsansteuerungsendflag Xend auf "ein" gesetzt wird, was bedeutet, dass die Anfangsansteuerung beendet werden soll.
  • Wenn der Zählwert CASE "6" noch nicht erreicht hat, d.h., wenn die Anfangsansteuerung fortgesetzt werden soll, schreitet die Routine zu Schritt 117 voran, in dem bestimmt wird, ob eine Bedingung zur Beendigung der Anfangsansteuerung in einem Zwischenstadium erfüllt ist. Ob die Bedingung zur Beendigung der Anfangsansteuerung in einem Zwischenstadium erfüllt ist, wird entsprechend den nachfolgend beschriebenen drei Kriterien bestimmt:
    • (1) Das Bereichsbestimmungsflag Xnp ist "0" (P-Position).
    • (2) Der Zählwert CASE der Stromzufuhr ist gleich 2 oder 4, d.h., eine Zwei-Phasen-Stromzufuhr ist beendet worden.
    • (3) Das Positionsschaltmanipulationsflag Xchg ist "ein", d.h., eine Positionsschaltmanipulation ist während der Anfangsansteuerung ausgeführt worden.
  • Wenn zumindest eines der Kriterien (1) bis (3) nicht erfüllt ist, ist die Bedingung zur Beendigung der Anfangsansteuerung in einem Zwischenstadium nicht erfüllt und somit wird die Anfangsansteuerung fortgesetzt. Im Gegensatz dazu ist, wenn alle drei Kriterien (1) bis (3) erfüllt sind, die Bedingung zur Beendigung der Anfangsansteuerung in einem Zwischenstadium erfüllt und die Routine schreitet zu Schritt 118 voran, in dem das Anfangsansteuerungsendflag Xend auf "ein" gesetzt wird, was bedeutet, dass die Anfangsansteuerung beendet werden soll.
  • Daraufhin schreitet die Routine zu Schritt 119 voran, in dem bestimmt wird, ob das Bereichsbestimmungsflag Xnp "1" ist, (d.h., ob die Anfangsansteuerung mit der Nicht-P-Position ausgeführt worden ist). Wenn das Bereichsbestimmungsflag Xnp "1" ist, schreitet die Routine zu Schritt 120 voran, in dem ein Kodiereinrichtungszählwert Ncnt bei dem Ende der Anfangsansteuerung als ein gelernter Anfangspositionsabweichungswert Gcnt gespeichert wird. Bei einem nächsten Schritt 121 wird der Kodiereinrichtungszählwert Ncnt auf einen Wert, der die Nicht-P-Position als eine Referenz aufweist, entsprechend der nachstehenden Gleichung, korrigiert: Ncnt = Ncnt + 288.
  • Gemäß diesem Ausführungsbeispiel wird, wenn der Kodiereinrichtungszählwert Ncnt beginnend von der P-Positionshalteposition, die die Null-Zählwertposition ist, vergrößert wird, der Kodiereinrichtungszählwert Ncnt 288, beispielsweise, wenn der Rotor 32 sich zu der Nicht-P-Positionshalteposition gedreht hat. Folglich wird, wenn die Anfangsansteuerung mit der Nicht-P-Position ausgeführt wird, ein Kodiereinrichtungszählwert Ncnt bei dem Ende der Anfangsansteuerung auf einen Wert, der die Nicht-P-Position als eine Referenz aufweist, korrigiert, indem 288 hinzuaddiert wird.
  • Demgegenüber schreitet, wenn in Schritt 119 bestimmt wird, dass das Bereichsbestimmungsflag Xnp "0" ist (die Anfangsansteuerung ist mit der P-Position ausgeführt worden), die Routine zu Schritt 122 voran, in dem ein gelernter Anfangspositionsabweichungswert Gcnt entsprechend der nachstehenden Gleichung unter Verwendung des Kodiereinrichtungszählwerts Ncnt bei dem Ende der Anfangsansteuerung berechnet wird: Gcnt = Ncnt + 2 × (6 – CASE).
  • Wenn die Anfangsansteuerung beendet worden ist, ohne in einem Zwischenstadium beendet worden zu sein, sollte aufgrund der wiederholten Ausführung von Schritt 114 der Zählwert CASE gleich 6 sein und ein Kodiereinrichtungszählwert bei dem Ende der Anfangsansteuerung wird als ein gelernter Anfangspositionsabweichungswert Gcnt verwendet, wie er ist. Wenn die Anfangsansteuerung mit P-Position ausgeführt wird, wird jedoch, wenn eine Positionsschaltmanipulation während der Anfangsansteuerung ausgeführt wird, ein Übergang zu einer üblichen Ansteuerung nach einem Abschluss der nächsten Zwei-Phasen-Stromzufuhr (nach Abschluss der derzeitigen Zwei-Phasen-Stromzufuhr, wenn eine Positionsschaltanforderung während der derzeitigen Zwei-Phasen-Stromzufuhr auftritt) ausgeführt. Folglich wird ein Kodiereinrichtungszählwert Ncnt, der erhalten werden würde, wenn die Anfangsansteuerung beendet wird, ohne in einem Zwischenstadium beendet zu werden, gefolgert und ein gefolgerter Wert wird als ein gelernter Anfangspositionsabweichungswert Gcnt verwendet. Der Ausdruck "2 × (6 – CASE)" ist eine Zählwertvergrößerung (nachstehend als "Ncnt-Korrekturwert" bezeichnet), der einem Drehwinkel von Stromzufuhrversuchen entspricht, die nicht ausgeführt worden sind.
  • In 14 ist ein Zeitablaufdiagramm gezeigt, das eine Beziehung zwischen dem Zählwert CASE des Stromzufuhrzählers, dem Ncnt-Korrekturwert, der Stromzufuhrphase, dem A-Phasensignal, dem B-Phasensignal und dem Kodiereinrichtungszählwert Ncnt bei einer Anfangsansteuerung veranschaulicht. Wenn beispielsweise eine Anfangsansteuerung bei dem Ende einer U-/W-Phase-Stromzufuhr beendet wird (der Zählwert CASE des Stromzufuhrzählers ändert sich von 1 auf 2), wird der Ncnt-Korrekturwert zu 2 × (6 – CASE) = 2 × (6 – 2) = 8. Wenn eine Anfangsansteuerung bei dem Ende einer U-/V-Phase-Stromzufuhr beendet wird (der Zählwert CASE des Stromzufuhrzählers ändert sich von 3 auf 4), wird der Ncnt-Korrekturwert zu 2 × (6 – CASE) = 2 × (6 – 4) = 4.
  • [Kodiereinrichtungszähler]
  • Als Nächstes sind die Einzelheiten einer Kodiereinrichtungszählerroutine, die in 15 gezeigt ist, beschrieben. Diese Routine wird durch eine A-/B-Phasenunterbrechungsverarbeitung synchron zu sowohl ansteigenden Flanken als auch nacheilenden Flanken eines A-Phasensignals und eines B-Phasensignals aktiviert und zählt sowohl ansteigende Flanken als auch nacheilende Flanken auf die nachstehende Weise. Bei einer Aktivierung dieser Routine werden in Schritt 301 ein Wert A(i) des A-Phasensignals und ein Wert B(i) des B-Phasensignals ausgelesen. Bei einem nächsten Schritt 302 wird ein Zählwertinkrement ΔN, das den derzeitigen Werten A(i) und B(i) und vorangegangenen Werten A(i – 1) und B(i – 1) des A-Phasensignals und des B-Phasensignals entspricht, berechnet, indem eine Zählwertinkrement-ΔN-Berechnungsabbildung, die in 16 gezeigt ist, abgesucht wird.
  • Der Grund für die Verwendung der derzeitigen Werte A(i) und B(i) und der vorangegangenen Werte A(i – 1) und B(i – 1) des A-Phasensignals und des B-Phasensignals ist, eine Drehrichtung des Rotors 32 auf der Grundlage der Reihenfolge eines Auftretens des A-Phasensignals und des B-Phasensignals zu bestimmen. Wie es in 17 gezeigt ist, wird in dem Fall einer üblichen Drehung (d.h. die Drehrichtung von der P-Position zu der Nicht-P-Position) der Kodiereinrichtungszählwert Ncnt vergrößert, indem dem Zählwertinkrement ΔN das Plus-Vorzeichen gegeben wird. In dem Fall einer Umkehrdrehung (d.h. die Drehrichtung von der Nicht-P-Position zu der P-Position) wird der Kodiereinrichtungszählwert Ncnt verkleinert, indem dem Zählwertinkrement ΔN das Minus-Vorzeichen gegeben wird.
  • Nach der Berechnung des Zählwertinkrements ΔN schreitet die Routine zu Schritt 303 voran, in dem ein neuer Kodiereinrichtungszählwert Ncnt berechnet wird, indem das Zählwertinkrement ΔN, wie es in Schritt 302 berechnet ist, zu dem vorangegangenen Kodiereinrichtungszählwert Ncnt addiert wird. Bei einem nächsten Schritt 304 werden die derzeitigen Werte A(i) und B(i) des A-Phasensignals und des B-Phasensignals als Werte A(i – 1) bzw. B(i – 1) gespeichert.
  • [Steuerungsbetriebsarteinstellung]
  • Eine in 20-22 gezeigte Steuerungsbetriebsarteinstellroutine, die jede vorbestimmte Zeit (beispielsweise jede 1 ms) nach dem Ende einer Anfangsansteuerung ausgeführt wird, spezifiziert eine Steuerungsbetriebsart auf die nachstehend beschriebene Weise, indem ein Steuerungsbetriebsartbestimmungswert "Betriebsart" auf einen Wert von D, 1, 3, 4 und 5 eingestellt wird.
    Betriebsart = 0: Stromzufuhr aus (Bereitschaft)
    Betriebsart = 1: übliche Ansteuerung (Regelungsstartpositionsstopp- und Halteprozess und Regelung)
    Betriebsart = 3: Zielpositionsstopp- und Halteprozess
    Betriebsart = 4: Umkehrpositionsstopp- und Halteprozess
    Betriebsart = 5: offene Regelkreissteuerung
  • Bei einer Aktivierung der Steuerungsbetriebsarteinstellroutine wird in Schritt 401 bestimmt, ob ein Systemfehlfunktionsflag Xfailoff auf "ein" gesetzt ist, was bedeutet, dass die Positionsschaltsteuereinrichtung 42 eine Fehlfunktion aufweist. Wenn das Flag Xfailoff "ein" ist, schreitet die Routine zu Schritt 402 voran, in dem ein Prozess zum Halten des SR-Motors 12 in einem Stromzufuhr-Aus-Zustand ausgeführt wird, woraufhin die nachstehend beschriebenen Einstellungen ausgeführt werden: ein Drehrichtungsanweisungswert D = 0 (Stopp), ein Stromzufuhrflag Xon = aus (Stromzufuhr aus), ein Regelungserlaubnisflag Xfb = aus (eine Regelung ist verhindert) und der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 0 (Stromzufuhr aus).
  • Demgegenüber schreitet, wenn das Systemfehlfunktionsflag Xfailoff "aus" ist (keine Fehlfunktion), die Routine von Schritt 401 zu Schritt 403 voran, in dem bestimmt wird, ob das Ausfallsicherungsprozessausführungsflag Xfsop "aus" ist und das Wiederherstellungsprozessausführungsflag Xrcv "aus" ist. Wenn eines oder beide des Ausfallsicherungsprozessausführungsflags Xfsop und des Wiederherstellungsprozessausführungsflags Xrcv "ein" ist/sind, schreitet die Routine zu Schritt 404 voran, in dem die nachstehenden Einstellungen zur Ausführung einer offenen Regelkreissteuerung gemacht werden: der Drehrichtungsanweisungswert D = 0 (Stopp), der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 5 (offene Regelkreissteuerung) und das Regelungserlaubnisflag Xfb = aus (eine Regelung ist verhindert).
  • Wenn sowohl das Ausfallsicherungsprozessausführungsflag Xfsop als auch das Wiederherstellungsprozessausführungsflag Xrcv "aus" sind, schreitet die Routine zu Schritt 405 voran, in dem bestimmt wird, ob das Stromzufuhrflag Xon "ein" ist (Stromzufuhr ein). Wenn das Stromzufuhrflag Xon "aus" ist (Stromzufuhr aus), schreitet die Routine zu 406 voran, in dem die Differenz zwischen einem Sollzählwert (oder Zielzählwert) Acnt und einem Kodiereinrichtungszählwert Ncnt (d.h. die Differenz zwischen einer Zielposition und einer Position des Rotors 32) berechnet wird, wobei auf der Grundlage der Differenz Acnt – Ncnt bestimmt wird, welche von einer üblichen Drehung (d.h. eine Drehung von P-Position zu der Nicht-P-Position), einer Umkehrdrehung (d.h. eine Drehung von der Nicht-P-Position zu der P-Position) und eines Stoppens die derzeitige Drehbetriebsart ist. Zu dieser Zeit wird ein Wert, wie er unter Verwendung eines gelernten Anfangspositionsabweichungswerts Gcnt, der bei der Anfangsansteuerungsroutine gemäß Figuren $ und 9 gelernt bzw. erfahren worden ist, korrigiert wird, als der Kodiereinrichtungszählwert Ncnt verwendet: Ncnt = Ncnt – Gcnt.
  • Der Sollzählwert Acnt wird durch eine Sollzählwerteinstellroutine eingestellt, die in 45 und 46 gezeigt ist.
  • Wenn die Differenz Acnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt größer oder gleich +Kth (beispielsweise +10°) ist, wird bestimmt, dass der Rotor 32 in die übliche Richtung (d.h. die Drehrichtung von der P-Position zu der Nicht-P-Position) gedreht werden muss. Die Routine schreitet zu Schritt 407 voran, in dem die nachstehend beschriebenen Einstellungen ausgeführt werden: der Drehrichtungsanweisungswert D = 1 (übliche Drehung), das Stromzufuhrflag Xon = ein (Stromzufuhr ein) und der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 1 (Regelungsstartpositionsstopp- und Halteprozess und Regelung).
  • Wenn die Differenz Rcnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt kleiner oder gleich –Kth (beispielsweise –10°) ist, wird bestimmt, dass der Rotor 32 in die Umkehrrichtung (d.h. die Drehrichtung von der Nicht-P-Position zu der P-Position) gedreht werden muss. Die Routine schreitet zu Schritt 409 voran, in dem die nachstehenden Einstellungen ausgeführt werden: der Drehrichtungsanweisungswert D = –1 (Umkehrdrehung), das Stromzufuhrflag Xon = ein (Stromzufuhr ein) und der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 1 (Regelungsstartpositionsstopp- und Halteprozess und Regelung).
  • Wenn die Differenz Acnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt in einem Bereich von –Kth bis +Kth (beispielsweise –10° bis +10°) ist, wird bestimmt, dass der Rotor 32 bei der Zielposition durch eine Federkraft der Arretierfeder 23 gehalten werden kann (d.h., es ist nicht erforderlich, den SR-Motor 12 mit Energie zu versorgen). Die Routine schreitet zu Schritt 408 voran, in dem die nachstehenden Einstellungen ausgeführt werden, um den SR-Motor 12 in einem Stromzufuhr-Aus-Zustand zu halten: der Drehrichtungsanweisungswert D = 0 (Stopp), das Stromzufuhrflag Xon = aus (Stromzufuhr aus) und der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 0 (Stromzufuhr aus).
  • Demgegenüber werden, wenn in Schritt 405 bestimmt wird, dass das Stromzufuhrflag Xon "ein" ist (Stromzufuhr ein), in 21 gezeigte Schritte 410415 ausgeführt, wodurch bestimmt wird, ob die angewiesene Schaltposition (Zielposition) umgekehrt worden ist und, wenn die angewiesene Schaltposition umgekehrt worden ist, ob der Drehrichtungsanweisungswert D umgekehrt ist.
  • Genauer gesagt wird zuerst in Schritt 401 bestimmt, ob der Drehrichtungsanweisungswert D gleich "1" ist (übliche Drehung). Wenn der Drehrichtungsanweisungswert D gleich "1" ist (übliche Drehung), schreitet die Routine zu Schritt 411 voran, in dem auf der Grundlage davon, ob die Differenz Acnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt einen negativen Wert aufweist, bestimmt wird, ob es erforderlich ist, die Drehrichtung des Rotors 32 von der üblichen Richtung zu der Umkehrrichtung zu ändern. Wenn es erforderlich ist, die Drehrichtung des Rotors auf diese Weise zu ändern, schreitet die Routine zu Schritt 412 voran, in dem der Drehrichtungsanweisungswert D auf "–1" eingestellt wird (Umkehrdrehung).
  • Im Gegensatz dazu schreitet, wenn in Schritt 410 bestimmt wird, dass der Drehrichtungsanweisungswert D nicht gleich "1" ist (übliche Drehung), d.h., wenn bestimmt wird, dass der Wert D gleich "0" oder "–1" ist, die Routine zu Schritt 413 voran, in dem bestimmt wird, ob der Drehrichtungsanweisungswert D gleich "–1" (Umkehrrichtung) ist. Wenn der Wert D gleich "–1" (Umkehrdrehung) ist, schreitet die Routine zu Schritt 414 voran, in dem auf der Grundlage davon, ob die Differenz Acnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt einen positiven Wert aufweist, bestimmt wird, ob es erforderlich ist, die Drehrichtung des Rotors 32 von der Umkehrrichtung zu der üblichen Richtung zu ändern. Wenn es erforderlich ist, die Drehrichtung des Rotors auf diese Weise zu ändern, schreitet die Routine zu Schritt 415 voran, in dem der Drehrichtungsanweisungswert D auf "1" (übliche Drehung) gesetzt wird.
  • Wenn der Drehrichtungsanweisungswert D in der vorstehend beschriebenen Weise umgekehrt worden ist, schreitet die Routine zu Schritt 416 voran, in dem die nachstehenden Einstellungen ausgeführt werden, um die Drehrichtung des Rotors 32 umzukehren: der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 4 (Umkehrpositionsstopp- und Halteprozess) und das Regelungserlaubnisflag Xfb = aus (die Regelung ist verhindert). Dann schreitet die Routine zu Schritt 417 voran. Demgegenüber schreitet, wenn der Drehrichtungsanweisungswert D nicht umgekehrt worden ist, die Routine zu Schritt 417 voran, wobei Schritt 416 übersprungen wird.
  • In Schritt 417 wird bestimmt, ob der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "4" (Umkehrpositionsstopp- und Halteprozess) ist. Wenn das Bestimmungsergebnis "ja" ist, schreitet die Routine zu Schritt 418 voran, in dem das Stromzufuhrflag Xon auf "ein" (Stromzufuhr ein) gesetzt wird, woraufhin ein Umkehrpositionsstopp- und Halteprozess ausgeführt wird.
  • Demgegenüber werden, wenn das Bestimmungsergebnis in Schritt 417 "nein" ist (d.h. ein Umkehrpositionsstopp- und Halteprozess soll nicht ausgeführt werden), in 22 gezeigte Schritte 419421 ausgeführt, wodurch bestimmt wird, ob die Regelung beendet werden soll. Genauer gesagt wird in Schritt 419 bestimmt, ob der Drehrichtungsanweisungswert D größer oder gleich "0" (übliche Drehung oder ein Stopp) ist. Wenn der Wert D ≥ 0 ist, schreitet die Routine zu Schritt 420 voran, in dem auf der Grundlage davon, ob die Differenz Acnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt kleiner oder gleich +Kref (beispielsweise +0,5°) ist, bestimmt wird, ob die Regelung beendet werden soll. Wenn der Drehrichtungsanweisungswert D gleich "–1" ist (Umkehrdrehung), schreitet die Routine zu Schritt 421 voran, in dem auf der Grundlage davon, ob die Differenz Acnt – Ncnt zwischen dem Sollzählwert Acnt und dem Kodiereinrichtungszählwert Ncnt größer oder gleich –Kref (beispielsweise –0,5°) ist, bestimmt wird, ob die Regelung beendet werden soll.
  • Das heißt, indem der Regelungsendbestimmungswert Kref auf die Phasenvoreilung (beispielsweise 2 bis 4 Zählwerte) der Stromzufuhrphase eingestellt wird, wird die Regelung bei einem Zeitpunkt beendet, der um eine Zeit, die der Phasenvoreilung der Stromzufuhrphase entspricht, einem Zeitpunkt vorausgeht, der durch den Sollzählwert Acnt bestimmt ist. Mit dieser Maßnahme wird die letzte Stromzufuhrphase der Regelung mit einer Stromzufuhrphase in Übereinstimmung gebracht, mit der der Rotor 32 bei der Zielposition (Sollzählwert Acnt) gestoppt und gehalten werden soll.
  • Wenn das Bestimmungsergebnis bei Schritt 420 oder 421 "nein" ist (d.h. die Regelung soll nicht beendet werden), schreitet die Routine zu Schritt 422 voran, in dem der Zählwert CThold eines Stopp- und Haltezeitzählers zum Zählen der Zeit eines Zielpositionsstopp- und Halteprozesses zurückgesetzt wird.
  • Demgegenüber schreitet, wenn das Bestimmungsergebnis in Schritt 420 oder 421 "ja" ist (d.h. die Regelung soll beendet werden), die Routine zu Schritt 423 voran, in dem das Regelungserlaubnisflag Xfb auf "aus" gesetzt wird (die Regelung ist verhindert), woraufhin die Regelung beendet wird und ein Übergang zu einem Zielpositionsstopp- und Halteprozess ausgeführt wird. Bei einem nächsten Schritt 424 wird der Zählwert CThold des Stopp- und Haltezeitzählers inkrementiert, um die Zeit des Zielpositionsstopp- und Halteprozesses zu zählen.
  • Dann wird in Schritt 425 bestimmt, ob die Zeit CThold des Zielpositionsstopp- und Halteprozesses eine vorgeschriebene Zeit (beispielsweise 50 ms) erreicht hat. Wenn die Zeit CThold die vorgeschriebene Zeit (beispielsweise 50 ms) noch nicht erreicht hat, schreitet die Routine zu Schritt 426 voran, in dem die nachstehenden Einstellungen beibehalten werden, um den Zielpositionsstopp- und Halteprozess fortzusetzen: der Drehrichtungsanweisungswert D = 0 (Stopp), das Stromzufuhrflag Xon = ein (Stromzufuhr ein) und der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 3 (Zielpositionsstopp- und Halteprozess).
  • Wenn die Zeit CThold des Zielpositionsstopp- und Halteprozesses die vorgeschriebene Zeit (beispielsweise 50 ms) erreicht hat, schreitet die Routine zu Schritt 427 voran, in dem die nachstehenden Einstellungen ausgeführt werden, um die Stromzufuhr des SR-Motors 12 auszuschalten: der Drehrichtungsanweisungswert D = 0 (Stopp), das Stromzufuhrflag Xon = aus (Stromzufuhr aus) und der Steuerungsbetriebsartwert "Betriebsart" = 0 (Stromzufuhr aus).
  • [Zeitsynchrone Motorsteuerung]
  • sEine Zeitsynchrone-Motorsteuerungsroutine, die in 23 gezeigt ist, wird in einem vorgeschriebenen Zyklus (beispielsweise jede 1 ms) nach dem Ende einer Anfangsansteuerung aktiviert. Ein Regelungsstartpositionsstopp- und Halteprozess, eine Zielpositionsstopp- und Halteverarbeitung oder ein Umkehrpositionsstopp- und Halteprozess wird in dieser Routine ausgeführt.
  • Bei einer Aktivierung dieser Routine wird in Schritt 501 bestimmt, ob das Regelungserlaubnisflag Xfb "aus" ist (die Regelung ist verhindert). Wenn das Regelungserlaubnisflag Xfb "ein" ist (die Regelung ist erlaubt), wird die Routine ohne Ausführung der verbleibenden Schritte beendet. In diesem Fall werden eine Stromzufuhrphaseneinstellung und eine Stromzufuhrverarbeitung durch eine (nachstehend beschriebene) Regelungsroutine, die in 30 gezeigt ist, ausgeführt.
  • Demgegenüber wird, wenn in Schritt 501 bestimmt wird, dass das Regelungserlaubnisflag Xfb "aus" ist (die Regelung ist verhindert), in Schritten 502504 bestimmt, ob der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 1, 3 oder 4 ist. Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "1" ist (Regelungsstartpositionsstopp- und Halteprozess und Regelung), geht die Routine von Schritt 502 zu Schritt 505, in dem eine (nachstehend beschriebene) Betriebsart-1-Routine, die in 24 gezeigt ist, ausgeführt wird, wodurch ein Stromzufuhrphasenbestimmungswert Mptn, der eine Stromzufuhrphase angibt, mit der ein Regelungsstartpositionsstopp- und Halteprozess auszuführen ist, berechnet wird.
  • Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "3" ist (Zielpositionsstopp- und Halteprozess), geht die Routine von Schritt 503 zu Schritt 506, in dem eine (nachstehend beschriebene) Betriebsart-3-Routine, die in 25 gezeigt ist, ausgeführt wird, wodurch ein Stromzufuhrphasenbestimmungswert Mptn, der eine Stromzufuhrphase anzeigt, mit der ein Zielpositionsstopp- und Halteprozess auszuführen ist, berechnet wird.
  • Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "4" ist (Umkehrpositionsstopp- und Halteprozess), geht die Routine von Schritt 504 zu Schritt 507, in dem eine (nachstehend beschriebene) Betriebsart-4-Routine, die in 26 gezeigt ist, ausgeführt wird, wodurch ein Stromzufuhrphasenbestimmungswert Mptn, der eine Stromzufuhrphase anzeigt, mit der ein Stromzufuhrpositionsstopp- und Halteprozess auszuführen ist, berechnet wird.
  • Wie es vorstehend beschrieben ist, wird, wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 1, 3 oder 4 ist, ein Stromzufuhrphasenbestimmungswert Mptn berechnet und die Routine schreitet zu Schritt 508 voran, in dem eine in 27 gezeigte Stromzufuhrverarbeitungsroutine ausgeführt wird, d.h., ein Regelungsstartpositionsstopp- und Halteprozess, ein Zielpositionsstopp- und Halteprozess oder ein Umkehrpositionsstopp- und Halteprozess wird ausgeführt.
  • Demgegenüber schreitet, wenn die Bestimmungsergebnisse bei allen Schritten 502504 "nein" sind, d.h., wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 0 oder 5 ist, die Routine direkt zu Schritt 508 voran, in dem die in 27 gezeigte Stromzufuhrverarbeitungsroutine ausgeführt wird, d.h., die Stromzufuhr wird ausgeschaltet oder eine offene Regelkreissteuerung wird ausgeführt.
  • [Betriebsart-1]
  • Die in 24 gezeigte Betriebsart-1-Routine ist eine Unterroutine, die in Schritt 505 der Zeitsynchrone-Motorsteuerungsroutine gemäß 23 aktiviert wird. In der Betriebsart-1-Routine wird ein Stromzufuhrphasenbestimmungswert Mptn (Stromzufuhrphase) für einen Regelungsstartpositionsstopp- und Halteprozess auf die nachstehend beschriebene Weise eingestellt.
  • Bei einer Aktivierung dieser Routine wird in Schritt 511 der Zählwert CT1 eines Stromzufuhrzeitzählers, der die Zeit eines Regelungsstartpositionsstopp- und Halteprozesses zählt, inkrementiert. Bei einem nächsten Schritt 512 wird bestimmt, ob die Zeit CT1 des Regelungsstartpositionsstopp- und Halteprozesses eine vorgeschriebene Zeit (beispielsweise 10 ms) überschritten hat.
  • Wenn die Zeit CT1 des Regelungsstartpositionsstopp- und Halteprozesses die vorgeschriebene Zeit (beispielsweise 10 ms) nicht überschritten hat, schreitet die Routine zu Schritt 513 voran, in dem bestimmt wird, ob ein Stopp- und Halte-Stromzufuhrphasenspeicherflag Xhold "aus" ist (nicht gespeichert), d.h., ob der vorliegende Zeitpunkt unmittelbar vor einem Start des Regelungsstartpositionsstopp- und Halteprozesses ist. Wenn das Stopp- und Halte-Stromzufuhrphasenspeicherflag Xhold "aus" ist, schreitet die Routine zu Schritt 514 voran, in dem eine derzeitiger Positionszählwert Ncnt – Gcnt als ein Stromzufuhrphasenbestimmungswert Mptn für den Regelungsstartpositionsstopp- und Halteprozess eingestellt wird: Mptn = Ncnt – Gcnt.
  • Der derzeitige Positionszählwert Ncnt – Gcnt ist ein Kodiereinrichtungszählwert Ncnt, der unter Verwendung eines gelernten Anfangspositionsabweichungswerts Gcnt korrigiert wird, und stellt eine derzeitige Position des Rotors 32 korrekt dar.
  • Dann schreitet die Routine zu Schritt 515 voran, in dem der Stromzufuhrphasenbestimmungswert Mptn durch 12 geteilt wird und ein Restbetrag Mptn%12 erhalten wird. Die Zahl "12" ist eine Vergrößerung oder Verkleinerung des Kodiereinrichtungszählwerts Ncnt (Stromzufuhrphasenbestimmungswert Mptn), die auftritt, wenn eine Stromzufuhr für alle Phasen ringsum bewirkt wird. Eine Stromzufuhrphase wird entsprechend einer Umwandlungstabelle, die in 28 gezeigt ist, auf der Grundlage des Werts Mptn%12 bestimmt.
  • In Schritt 516 wird auf der Grundlage davon, ob der Wert Mptn%12 gleich 2, 3, 6, 7, 10 oder 11 ist, bestimmt, ob eine Ein-Phasen-Stromzufuhr (U-Phase, V-Phase oder W-Phase) auszuführen ist. Wenn eine Ein-Phasen-Stromzufuhr auszuführen ist, schreitet die Routine zu Schritt 517 voran, in dem der Stromzufuhrphasenbestimmungswert Mptn um 2 erhöht wird, was einem Schritt entspricht, so dass eine Zwei-Phasen-Stromzufuhr (U- und V-Phasen, V- und W-Phasen oder U- und W-Phasen) ausgeführt wird. Eine Ausführung des Regelungsstartpositionsstopp- und Halteprozesses mit einer Zwei-Phasen-Stromzufuhr, die ein höheres Drehmoment als eine Ein-Phasen-Stromzufuhr erzeugt, verhindert, dass der Rotor 32 in der Nähe einer Regelungsstartposition vibriert, und kann somit den Rotor 32 bei der Regelungsstartposition zuverlässig stoppen und halten.
  • Das Stopp- und Halte-Stromzufuhrphasenspeicherflag Xhold wird bei einem nächsten Schritt 518 auf "ein" (gespeichert) gesetzt. Dann wird diese Routine beendet. Wenn diese Routine später aktiviert wird, sollte das Bestimmungsergebnis in Schritt 513 "nein" werden, wobei somit die Schritte 514518 nicht ausgeführt werden. Das heißt, der Prozess zum Einstellen eines Stromzufuhrphasenbestimmungswerts Mptn (Stromzufuhrphase) für den Regelungsstartpositionsstopp- und Halteprozess wird lediglich einmal unmittelbar vor einem Start des Regelungsstartpositionsstopp- und Halteprozesses ausgeführt.
  • Dann wird, wenn die Zeit CT1 des Regelungsstartpositionsstopp- und Halteprozesses die vorgeschriebene Zeit (beispielsweise 10 ms) überschritten hat, das Bestimmungsergebnis in Schritt 512 zu "ja", woraufhin der Regelungsstartpositionsstopp- und Halteprozess beendet wird und ein Übergang zu einer Regelung ausgeführt wird. Zuerst wird in Schritt 519 ein erster Stromzufuhrphasenbestimmungswert Mptn, mit dem die Regelung zu starten ist, eingestellt, indem entsprechend einer Drehrichtung ein Zählwert (beispielsweise 4 oder 3) entsprechend einer A-Phasenvoreilung der Stromzufuhrphase zu oder von dem Stromzufuhrphasenbestimmungswert Mptn für den Regelungsstartpositionsstopp- und Halteprozess addiert oder subtrahiert wird, woraufhin eine Ansteuerung zum Drehen des Rotors 32 gestartet wird. Dann schreitet die Routine zu Schritt 520 voran, in dem das Regelungserlaubnisflag Xfb auf "ein" (die Regelung ist erlaubt) gesetzt wird.
  • In 32 ist ein Zeitablaufdiagramm gezeigt, das eine A-Phase, für die eine Stromzufuhr zuerst in einem Fall bewirkt wird, bei dem eine Drehung von einem Zustand gestartet wird, der den U- und W-Phasen entspricht, veranschaulicht ist. In diesem Fall wird zum Starten einer üblichen Drehung (d.h, einer Drehung von der P-Position zu der Nicht-P-Position) ein Stromzufuhrphasenbestimmungswert Mptn entsprechend der nachstehenden Gleichung unter Verwendung eines Kodiereinrichtungszählwerts Ncnt, eines gelernten Anfangspositionsabweichungswerts Gcnt und einer Übliche-Drehrichtung-Phasenvoreilung K1 berechnet: Mptn = Ncnt – Gcnt + K1.
  • Wenn die Übliche-Drehrichtung-Phasenvoreilung K1 beispielsweise gleich 4 ist, wird ein Stromzufuhrphasenbestimmungswert Mptn entsprechend der nachstehenden Gleichung berechnet: Mptn = Ncnt – Gcnt + 4.
  • Zum Starten einer üblichen Drehung von einem Zustand, der den U- und W-Phasen entspricht, ist mod(Ncnt – Gcnt) 4 und somit ist Mptn%12 gleich 8 (= 4 + 4). Die U- und V-Phasen werden als erste Stromzufuhrphasen eingestellt.
  • Demgegenüber wird zum Starten einer Umkehrdrehung (d.h. einer Drehung von der Nicht-P-Position zu der P-Position) von einem Zustand, der den U- und W-Phasen entspricht, wenn beispielsweise eine Umkehrdrehrichtung-Phasenvoreilung K2 gleich 3 ist, ein Stromzufuhrphasenbestimmungswert Mptn entsprechend der nachstehenden Gleichung berechnet: Mptn = Ncnt – Gcnt – K2 = Ncnt – Gcnt – 3.
  • Zum Starten einer Umkehrdrehung von einem Zustand, der den U- und W-Phasen entspricht, ist Mptn%12 gleich 1 (= 4 – 3). Die V- und W-Phasen werden als erste Stromzufuhrphasen eingestellt.
  • Auf diese Weise können, indem die Übliche-Drehrichtung-Phasenvoreilung K1 und die Umkehrdrehrichtung-Phasenvoreilung K2 auf 4 bzw. 3 eingestellt werden, Stromzufuhrphasenschaltmuster für die übliche Drehrichtung und die Umkehrdrehrichtung symmetrisch gemacht werden. Bei jeder der üblichen Drehrichtung und der Umkehrdrehrichtung kann eine Drehung gestartet werden, indem eine Stromzufuhr zuerst für eine A-Phase einer Position bewirkt wird, die eine Abweichung von zwei Schritten von der derzeitigen Position des Rotors 32 aufweist.
  • [Betriebsart-3]
  • Die in 25 gezeigte Betriebsart-3-Routine ist eine Unterroutine, die in Schritt 506 der Zeitsynchrone-Motorsteuerungsroutine gemäß 23 aktiviert wird. In der Betriebsart-3-Routine wird ein Stromzufuhrphasenbestimmungswert Mptn (Stromzufuhrphase) für einen Zielpositionsstopp- und Halteprozess in der nachstehend beschriebenen Weise eingestellt.
  • Bei einer Aktivierung dieser Routine wird in Schritt 531 auf der Grundlage davon, ob der Wert Mptn%12 gleich 2, 3, 6, 7, 10 oder 11 ist, bestimmt, ob die Stromzufuhrphase bei dem Ende der Regelung eine Phase (U-Phase, V-Phase oder W-Phase) ist. Wenn sie eine Ein-Phase ist, werden Schritte 532534 ausgeführt, wodurch der Stromzufuhrphasenbestimmungswert Mptn um 2 entsprechend der Drehrichtung der bis dahin ausgeführten Regelung inkrementiert oder dekrementiert (bzw. erniedrigt) wird, wobei die Stromzufuhrphase dadurch auf zwei Phasen, die als Nächstes zu der derzeitigen Ein-Phase sind, verändert wird.
  • Indem dies ausgeführt wird, wird in Schritt 532 die Drehrichtung auf die nachstehend beschriebene Weise bestimmt. Der Drehrichtungsanweisungswert D wird auf "0" (Stopp) in Schritt 426 gemäß 22 gesetzt, unmittelbar bevor diese Routine aktiviert wird (d.h., wenn die Regelung beendet worden ist). Folglich kann die Drehrichtung nicht bestimmt werden, indem der Drehrichtungsanweisungswert D überprüft wird. Angesichts dessen wird gemäß diesem Ausführungsbeispiel unter Berücksichtigung der Tatsache, dass der Stromzufuhrphasenbestimmungswert Mptn bei dem Ende der Regelung und der Positionszählwert Ncnt – Gcnt sich voneinander durch die Phasenvoreilung K1 oder K2 der Stromzufuhrphase unterscheiden, die Drehrichtung auf die nachstehend beschriebene Weise entsprechend einer Größenbeziehung zwischen dem Stromzufuhrphasenbestimmungswert Mptn bei dem Ende der Regelung und dem Positionszählwert Ncnt – Gcnt bestimmt.
  • Wenn Mptn > (Ncnt – Gcnt) gilt, ist die Drehrichtung bestimmt, eine übliche Drehung (d.h. die Drehrichtung von der P-Position zu der Nicht-P-Position) zu sein. Die Routine schreitet zu Schritt 533 voran, in dem der Stromzufuhrphasenbestimmungswert Mptn um 2 erhöht wird, um eine Zwei-Phasen-Stromzufuhr zu bewirken.
  • Demgegenüber wird, wenn Mptn < (Ncnt – Gcnt) gilt, die Drehrichtung bestimmt, eine Umkehrdrehung (d.h. die Drehrichtung von der Nicht-P-Position zu der P-Position) zu sein. Die Routine schreitet zu Schritt 534 voran, in dem der Stromzufuhrphasenbestimmungswert um 2 erniedrigt wird, um eine Zwei-Phasen-Stromzufuhr zu bewirken. Wenn Mptn = (Ncnt – Gnct) gilt, wird bestimmt, dass der Rotor 32 gestoppt ist, wobei somit die Stromzufuhrphase nicht verändert wird.
  • Wie es vorstehend beschrieben ist, wird wie bei dem Regelungsstartpositionsstopp- und Halteprozess der Zielpositionsstopp- und Halteprozess mit einer Zwei-Phasen-Stromzufuhr ausgeführt, die ein höheres Drehmoment als eine Ein-Phasen-Stromzufuhr erzeugt. Dies ermöglicht es, zu verhindern, dass der Rotor 32 in der Nähe einer Zielposition vibriert, und somit den Rotor 32 bei der Zielposition zuverlässig zu stoppen und zu halten.
  • [Betriebsart-4]
  • Die in 26 gezeigte Betriebsart-4-Routine, die eine Unterroutine ist, die in Schritt 507 der Zeitsynchrone-Motorsteuerungsroutine gemäß 23 aktiviert wird, stellt einen Stromzufuhrphasenbestimmungswert Mptn für einen Umkehrpositionsstopp- und Halteprozess auf die nachstehend beschriebene Weise ein.
  • Bei einer Aktivierung dieser Routine wird in Schritt 541 der Zählwert CT4 eines Stromzufuhrzeitzählers, der die Zeit eines Umkehrpositionsstopp- und Halteprozesses zählt, bestimmt. Bei einem nächsten Schritt 542 wird bestimmt, ob die Zeit CT4 des Umkehrpositionsstopp- und Halteprozesses eine vorgeschriebene Zeit (beispielsweise 50 ms) überschritten hat.
  • Wenn die Zeit CT4 des Umkehrpositionsstopp- und Halteprozesses die vorgeschriebene Zeit (beispielsweise 50 ms) nicht überschritten hat, schreitet die Routine zu Schritt 543 voran, in dem auf der Grundlage davon, ob der Wert Mptn%12 gleich 2, 3, 6, 7, 10 oder 11 ist, bestimmt wird, ob die Stromzufuhrphase eine Ein-Phase (U-Phase, V-Phase oder W-Phase) ist. Wenn die Stromzufuhr eine Ein-Phase ist, werden Schritte 544546 ausgeführt, wodurch der Stromzufuhrphasenbestimmungswert Mptn um 2 entsprechend der Drehrichtung der bis dahin ausgeführten Regelung inkrementiert oder dekrementiert wird, wobei die Stromzufuhrphase dadurch zu zwei Phasen verändert wird, die als Nächstes zu der derzeitigen Ein-Phase sind. Schritte 543546 sind gleich den Schritten 531534 der vorstehend beschriebenen Betriebsart-3-Routine gemäß 25.
  • Wie es vorstehend beschrieben ist, wird wie der Regelungsstartpositionsstopp- und Halteprozess und der Zielpositionsstopp- und Halteprozess der Umkehrpositionsstopp- und Halteprozess mit einer Zwei-Phasen-Stromzufuhr ausgeführt, die ein höheres Drehmoment als eine Ein-Phasen-Stromzufuhr erzeugt. Dies ermöglicht es, zu verhindern, dass der Rotor 32 in der Nähe einer Umkehrposition vibriert, und somit den Rotor 32 bei der Umkehrposition zuverlässig zu stoppen und ihn dort zu halten.
  • Dann wird, wenn die Zeit CT4 des Umkehrpositionsstopp- und Halteprozesses die vorgeschriebene Zeit (beispielsweise 50 ms) überschritten hat, das Bestimmungsergebnis in Schritt 542 zu "ja", woraufhin der Umkehrpositionsstopp- und Halteprozesses beendet wird und die Regelung erneut gestartet wird. Zuerst wird in Schritt 547 ein erster Stromzufuhrphasenbestimmungswert Mptn für die neue Regelung eingestellt, indem entsprechend einer Drehrichtung ein Zählwert (beispielsweise 4 oder 3) entsprechend einer A-Phasenvoreilung der Stromzufuhrphase zu oder von dem Stromzufuhrphasenbestimmungswert Mptn für den Umkehrpositionsstopp- und Halteprozesses addiert oder subtrahiert, woraufhin eine Ansteuerung zum Drehen des Rotors 32 gestartet wird. Dann schreitet die Routine zu Schritt 548 voran, in dem die nachstehenden Einstellungen ausgeführt werden: das Regelungserlaubnisflag Xfb = ein (die Regelung ist erlaubt), der Stromzufuhrzeitzählwert CT4 = 0 und der Steuerungsbetriebsartbestimmungswert "Betriebsart" = 1 (übliche Ansteuerung). Dann wird diese Routine beendet.
  • [Stromzufuhrprozess]
  • Die in 27 gezeigte Stromzufuhrverarbeitungsroutine ist eine Unterroutine, die in Schritt 508 der Zeitsynchrone-Motorsteuerungsroutine gemäß 23 aktiviert wird. Diese Routine wird ebenso in Schritt 603 der (nachstehend beschriebenen) Regelungsroutine aktiviert, die in 30 gezeigt ist.
  • Bei einer Aktivierung der Stromzufuhrverarbeitungsroutine gemäß 27 wird in Schritt 551 bestimmt, ob der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "0" ist (Stromzufuhr aus). Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "0" ist (Stromzufuhr aus), schreitet die Routine zu Schritt 552 voran, in dem alle Phasen in einen Stromzufuhr-Aus-Zustand gebracht werden, um einen Bereitschaftszustand (Stand-by) zu etablieren.
  • Demgegenüber schreitet, wenn das Bestimmungsergebnis in Schritt 551 "nein" ist, die Routine zu Schritt 553 voran, in dem bestimmt wird, ob der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "5" (offene Regelkreissteuerung) ist. Wenn der Steuerungsbetriebsartwert "Betriebsart" gleich "5" ist (offene Regelkreissteuerung), schreitet die Routine zu Schritt 554 voran, in dem eine offene Regelkreissteuerung ausgeführt wird. In der offenen Regelkreissteuerung wird der Rotor 32 zu einer Zielposition gedreht, indem Stromzufuhrphasen durch eine zeitsynchrone Verarbeitung mit einem Zyklus von beispielsweise 1 ms eingestellt werden, wenn die Kodiereinrichtung 46 eine Fehlfunktion aufweist oder eine Betriebsanomalie in dem SR-Motor 12 aufgetreten ist.
  • Wenn die Bestimmungsergebnisse sowohl in Schritt 551 als auch in Schritt 553 "nein" sind, d.h., wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 1 (Regelungsstartpositionsstopp- und Halteprozess und Regelung), 3 (Zielpositionsstopp- und Halteprozess) oder 4 (Umkehrpositionsstopp- und Halteprozess) ist, schreitet die Routine 555 voran, in dem eine Stromzufuhrphase entsprechend einem Wert Mpt%12 unter Verwendung einer Umwandlungstabelle gemäß 28 eingestellt wird.
  • Dann schreitet die Routine zu Schritt 556 voran, in dem bestimmt wird, ob eine Anstoßsteuerung ausgeführt wird (d.h., ob ein P-Positionsseiten-Anstoßsteuerungsflag Xexp oder ein Nicht-P-Positionsseiten-Anstoßsteuerungsflag Xexnp "ein" ist). Wenn keine Anstoßsteuerung ausgeführt wird, schreitet die Routine zu Schritt 557 voran, in dem ein Stromzufuhreinschaltdauerverhältnis des SR-Motors 12 auf 100 % eingestellt wird. Wenn eine Anstoßsteuerung ausgeführt wird, schreitet die Routine zu Schritt 558 voran, in dem das Stromzufuhreinschaltdauerverhältnis des SR-Motors 12 auf beispielsweise 10 % bis 30 entsprechend einer Batteriespannung als eine Energiequellenspannung für den SR-Motor 12 unter Verwendung einer Tabelle gemäß 29 eingestellt wird. Als Ergebnis wird während einer Anstoßsteuerung das Drehmoment des SR-Motors 12 viel kleiner als bei einer üblichen Ansteuerung gemacht.
  • In der Beispielstabelle gemäß 29 wird angesichts der Eigenschaft, dass das Drehmoment des SR-Motors 12 ansteigt, wenn die Energiequellenspannung für den SR-Motor 12 (d.h. die Batteriespannung) ansteigt, das Stromzufuhreinschaltdauerverhältnis kleiner eingestellt, wenn die Energiequellenspannung für den SR-Motor 12 (d.h. die Batteriespannung) ansteigt. Dies macht das Drehmoment des SR-Motors 12 annähernd konstant ungeachtet davon, ob die Energiequellenspannung (d.h. die Batteriespannung) hoch oder niedrig ist, wobei es dadurch dem SR-Motor 12 ermöglicht wird, immer ein minimales Drehmoment zu erzeugen, das für eine Anstoßsteuerung erforderlich ist.
  • Nachdem das Stromzufuhreinschaltdauerverhältnis in der vorstehend beschriebenen Weise eingestellt worden ist, schreitet die Routine zu Schritt 559 voran, in dem die ECU 41 Steuersignale zu den Motoransteuerungseinrichtungen 37 und 38 ausgibt, wodurch die Wicklungen der Stromzufuhrphase, die in Schritt 555 eingestellt worden ist, mit dem Stromzufuhreinschaltdauerverhältnis, das in Schritt 557 oder 558 eingestellt worden ist, mit Energie versorgt wird, wobei der SR-Motor 12 dadurch angesteuert wird.
  • [Regelung]
  • Als Nächstes sind die Einzelheiten der Regelungsroutine, die in 30 gezeigt ist, beschrieben. Diese Routine wird durch eine A-/B-Phasenunterbrechungsverarbeitung ausgeführt. Bei dieser Routine wird in einem Zustand, bei dem die Regelungsausführungsbedingungen nach dem Ende einer Anfangsansteuerung erfüllt sind, der Rotor 32 gedreht, bis eine zugehörige Drehposition (Ncnt – Gcnt) eine Position erreicht, die beispielsweise 0,5° dicht bei einer Zielposition (einem Zielzählwert Acnt) ist, indem die Stromzufuhrphase auf der Grundlage des Kodiereinrichtungszählwerts Ncnt und eines gelernten Anfangspositionsabweichungswerts Gcnt geschaltet wird.
  • Bei einer Aktivierung der Regelungsroutine gemäß 30 wird in Schritt 601 bestimmt, ob das Regelungserlaubnisflag Xfb "ein" ist (d.h., ob die Regelungsausführungsbedingungen erfüllt sind). Wenn das Regelungserlaubnisflag Xfb "aus" ist (d.h., die Regelungsausführungsbedingungen sind nicht erfüllt), wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber schreitet, wenn das Regelungserlaubnisflag Xfb "ein" ist, die Routine zu Schritt 602 voran, in dem eine (nachstehend beschriebene) Stromzufuhrphaseneinstellroutine, die in 31 gezeigt ist, ausgeführt wird, wodurch eine Stromzufuhrphase auf der Grundlage eines derzeitigen Kodiereinrichtungszählwerts Ncnt und eines gelernten Anfangspositionsabweichungswerts Gcnt eingestellt wird. In einem nächsten Schritt 603 wird die Stromzufuhrverarbeitungsroutine gemäß 27 ausgeführt.
  • [Stromzufuhrphaseneinstellung]
  • Die Stromzufuhrphaseneinstellroutine gemäß 31 ist eine Unterroutine, die in Schritt 602 der Regelungsroutine gemäß 30 aktiviert wird. Bei einer Aktivierung dieser Routine wird in Schritt 611 bestimmt, ob der Drehrichtungsanweisungswert D, der eine Drehrichtung zu einer Zielposition angibt, gleich "1" ist, was die übliche Drehrichtung (d.h. die Drehrichtung von der P-Position zu der Nicht-P-Position) bezeichnet. Wenn bestimmt wird, dass der Drehrichtungsanweisungswert D gleich "1" ist (übliche Drehung), schreitet die Routine zu Schritt 612 voran, in dem bestimmt wird, ob die Drehrichtung des Rotors 32, im Gegensatz zu der Drehrichtungsanweisung, umgekehrt worden ist (d.h., ob der Kodiereinrichtungszählwert Ncnt verkleinert worden ist). Wenn sich die Drehrichtung nicht umgekehrt hat, schreitet die Routine zu Schritt 613 voran, in dem der Stromzufuhrphasenbestimmungswert Mptn entsprechend der nachstehenden Gleichung unter Verwendung eines derzeitigen Kodiereinrichtungszählwerts Ncnt, eines gelernten Anfangspositionsabweichungswerts Gcnt, einer Übliche-Drehrichtung-Phasenvoreilung K1 und einer Geschwindigkeitsphasenvoreilungskorrekturgröße Ks aktualisiert wird: Mptn = Ncnt – Gcnt + K1 + Ks.
  • Die Übliche-Drehrichtung-Phasenvoreilung K1 ist eine A-Phasenvoreilung der Stromzufuhrphase, die erforderlich ist, um den Rotor 32 in die übliche Richtung zu drehen (d.h. eine A-Phasenvoreilung der Stromzufuhrphase in Bezug auf die derzeitige Drehphase des Rotors 32), wobei sie beispielsweise auf "4" eingestellt ist.
  • Die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks ist eine A-Phasenvoreilungskorrekturgröße, die entsprechend einer Drehgeschwindigkeit des Rotors 32 eingestellt wird, und wird durch eine (nachstehend beschriebene) Geschwindigkeitsphasenvoreilungskorrekturgrößeneinstellroutine eingestellt, die in 34 gezeigt ist. Die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks wird beispielsweise auf "0" bei einem Niedrig-Geschwindigkeitsbereich eingestellt und wird beispielsweise auf "1" oder "2" vergrößert, wenn sich die Drehgeschwindigkeit vergrößert. Als Ergebnis wird der Stromzufuhrphasenbestimmungswert Mptn so korrigiert, dass er eine Stromzufuhrphase angibt, die für eine Drehgeschwindigkeit des Rotors 32 geeignet ist.
  • Demgegenüber wird, wenn in Schritt 612 bestimmt wird, dass sich die Drehrichtung des Rotors 32 entgegen der Drehrichtungsanweisung umgekehrt hat, der Stromzufuhrphasenbestimmungswert Mptn nicht aktualisiert, um ein Fortschreiten der Umkehrdrehung zu verhindern. In diesem Fall wird eine Stromzufuhr für die Phase bewirkt, für die eine Stromzufuhr unmittelbar vor der Umkehrung bewirkt worden ist (d.h. für die vorangegangene Stromzufuhrphase), wodurch ein Bremsdrehmoment in einer derartigen Richtung erzeugt wird, dass die Umkehrdrehung unterdrückt wird.
  • Wenn in Schritt 611 bestimmt wird, dass der Drehrichtungsanweisungswert D gleich "–1" ist (die Umkehrdrehrichtung, d.h. die Drehrichtung von der Nicht-P-Position zu der P-Position), schreitet die Routine zu Schritt 614 voran, in dem bestimmt wird, ob die Drehrichtung des Rotors 32 sich entgegen der Drehrichtungsanweisung umgekehrt hat (d.h., ob der Kodiereinrichtungszählwert Ncnt sich vergrößert hat). Wenn sich die Drehrichtung nicht umgekehrt hat, schreitet die Routine zu Schritt 615 voran, in dem der Stromzufuhrphasenbestimmungswert Mptn entsprechend der nachstehenden Gleichung unter Verwendung eines derzeitigen Kodiereinrichtungszählwerts Ncnt, eines gelernten Anfangspositionsabweichungswerts Gcnt, einer Umkehrdrehrichtung-Phasenvoreilung K2 und einer Geschwindigkeitsphasenvoreilungskorrekturgröße Ks aktualisiert wird: Mptn = Ncnt – Gcnt – K2 – Ks.
  • Die Umkehrdrehrichtung-Phasenvoreilung K2 ist eine A-Phasenvoreilung der Stromzufuhrphase, die erforderlich ist, um den Rotor 32 in die Umkehrrichtung zu drehen (d.h. eine A-Phasenvoreilung der Stromzufuhrphase in Bezug auf die derzeitige Drehphase des Rotors 32), wobei sie beispielsweise auf "3" eingestellt wird. Wie in dem Fall der üblichen Drehung wird die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks durch die (nachstehend beschriebene) Geschwindigkeitsphasenvoreilungskorrekturgrößeneinstellroutine eingestellt, die in 34 gezeigt ist.
  • Demgegenüber wird, wenn in Schritt 614 bestimmt wird, dass die Drehrichtung des Rotors 32 sich entgegen der Drehrichtungsanweisung umgekehrt hat, der Stromzufuhrphasenbestimmungswert Mptn nicht aktualisiert, um ein Fortschreiten der umgekehrten Drehung (d.h. der üblichen Drehung) zu verhindern. In diesem Fall wird eine Stromzufuhr für die Phase, für die eine Stromzufuhr unmittelbar vor der Umkehrung bewirkt worden ist (d.h. die vorangegangene Stromzufuhrphase) bewirkt, wodurch ein Bremsdrehmoment in einer derartigen Richtung erzeugt wird, dass die umgekehrte Drehung (d.h. die übliche Drehung) unterdrückt wird.
  • Nachdem der Stromphasenbestimmungswert Mptn in der vorstehend beschriebenen Weise bestimmt worden ist, wird die Stromzufuhrverarbeitungsroutine gemäß 27 ausgeführt. Während die Regelung ausgeführt wird, wird eine Stromzufuhrphase, die einem Wert Mptn%12 entspricht, in Schritt 555 ausgewählt, indem die Umwandlungstabelle gemäß 28 abgesucht wird, und eine Stromzufuhr wird für die ausgewählte Stromzufuhrphase bewirkt.
  • [Rotordrehgeschwindigkeitsberechnung]
  • Eine in 33 gezeigte Rotordrehgeschwindigkeitsberechnungsroutine, die durch eine A-/B-Phasenunterbrechungsverarbeitung ausgeführt wird, berechnet eine Drehgeschwindigkeit SP des Rotors 32 in der nachstehend beschriebenen Weise. Bei einer Aktivierung dieser Routine wird in Schritt 621 bestimmt, ob das Regelungserlaubnisflag Xfb "ein" ist (eine Regelung wird ausgeführt). Wenn das Regelungserlaubnisflag Xfb "aus" (Regelung ist verhindert) ist, wird keine Korrektur bei einer A-Phasenvoreilung der Stromzufuhrphase entsprechend einer Drehgeschwindigkeit SP des Rotors 32 ausgeführt, wobei die Routine folglich zu Schritt 624 voranschreitet, in dem gespeicherte Drehgeschwindigkeiten SP und SPa des Rotors 32 zurückgesetzt werden. Dann wird diese Routine beendet.
  • Demgegenüber wird, wenn das Regelungserlaubnisflag Xfb "ein" ist (eine Regelung wird ausgeführt), eine Drehgeschwindigkeit SP des Rotors 32 auf die nachstehend beschriebene Weise berechnet. Zuerst werden in Schritt 622 Zeitintervalle ΔT(n) zwischen ansteigenden/nacheilenden Flanken eines A-Phasensignals und eines B-Phasensignals der Kodiereinrichtung 46 (d.h., ein Zeitintervall, bei dem der Kodiereinrichtungszählwert ansteigt oder abfällt) gemessen und ein Durchschnittswert von vergangenen n Zeitintervallen ΔT(n) wird berechnet. Dabei wird ein Drehgeschwindigkeitsberechnungswert SPa entsprechend der nachstehenden Gleichung berechnet: SPa = 60/(ΔTav × Kp) [Upm].
  • In der vorstehend beschriebenen Gleichung bezeichnet Kp die Anzahl von Zeitintervallen ΔT(n) pro Umdrehung des Rotors 32 (d.h. eine Variation des Kodiereinrichtungszählwerts pro Umdrehung des Rotors 32). In dem Fall des Rotors 32 mit dem Aufbau gemäß 5 ist Kp = 96. Dabei ist ΔTav × Kp eine Zeit [sek], die für den Rotor 32 erforderlich ist, eine Umdrehung auszuführen.
  • Dann schreitet die Routine zu Schritt 623 voran, in dem eine Drehgeschwindigkeit SP des Rotors 32 durch eine Glättung entsprechend der nachstehenden Gleichung unter Verwendung des Drehgeschwindigkeitsberechnungswerts SPa berechnet wird: SP(i) = SP(i – 1) + {SPa – SP(i – 1)}/R,wobei SP(i) eine derzeitige Drehgeschwindigkeit ist, SP(i – 1) eine vorangegangene Drehgeschwindigkeit ist und R ein Glättungskoeffizient ist.
  • [Einstellen der Geschwindigkeitsphasenvoreilungskorrekturgröße]
  • Die in 34 gezeigte Geschwindigkeitsphasenvoreilungskorrekturgrößeneinstellroutine, die in einem vorgeschriebenen Zyklus (beispielsweise jede 1 ms) aktiviert wird, stellt eine Geschwindigkeitsphasenvoreilungskorrekturgröße Ks entsprechend einer Drehgeschwindigkeit SP des Rotors 32 ein. Bei einer Aktivierung dieser Routine wird in Schritt 631 bestimmt, ob das Regelungserlaubnisflag Xfb "ein" ist (eine Regelung wird ausgeführt). Wenn das Regelungserlaubnisflag Xfb aus ist (die Regelung ist verhindert), ist keine Korrektur einer A-Phasenvoreilung der Stromzufuhrphase erforderlich und somit wird diese Routine ohne Ausführung der verbleibenden Schritte beendet.
  • Demgegenüber werden, wenn das Regelungserlaubnisflag Xfb "ein" ist (eine Regelung wird ausgeführt), Schritte 632636 ausgeführt, wodurch eine Geschwindigkeitsphasenvoreilungskorrekturgröße Ks in der nachstehend beschriebenen Weise entsprechend der Drehgeschwindigkeit SP des Rotors 32, die durch die Rotordrehgeschwindigkeitsberechnungsroutine gemäß 33 berechnet worden ist, eingestellt.
  • Wenn in Schritt 632 bestimmt wird, dass die Drehgeschwindigkeit SP des Rotors 32 kleiner als ein vorgeschriebener Wert Klow (beispielsweise 300 Upm) ist, schreitet die Routine zu 634 voran, in dem die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks auf einen Minimumwert Ka (beispielsweise 0) eingestellt wird. Wenn in Schritt 633 bestimmt wird, dass die Drehgeschwindigkeit SP des Rotors 32 größer als ein vorgeschriebener Wert Khigh (beispielsweise 600 Upm) ist, schreitet die Routine zu Schritt 636 voran, in dem die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks auf einen Maximumwert Kc (beispielsweise 2) eingestellt wird. Wenn die Drehgeschwindigkeit SP des Rotors 32 zwischen Klow und Khigh ist, schreitet die Routine zu Schritt 635 voran, in dem die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks auf einen Zwischenwert Kb (beispielsweise 1) eingestellt wird. Auf diese Weise wird die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks größer eingestellt, wenn sich die Drehgeschwindigkeit SP des Rotors 32 vergrößert.
  • Dann schreitet die Routine zu Schritt 637 voran, in dem auf der Grundlage davon, ob der Absolutwert der Differenz zwischen einem Sollzählwert Acnt und einem Kodiereinrichtungszählwert Ncnt |Acnt – Ncnt| kleiner als ein vorgeschriebener Wert ist, bestimmt wird, ob die Drehposition des Rotors 32 nahe an eine Zielposition gekommen ist (d.h., sie ist in einen Abbremsbereich für einen Stopp gekommen).
  • Wenn |Acnt – Ncnt| größer oder gleich dem vorgeschriebenen Wert ist, schreitet die Routine zu Schritt 639 voran, in dem bestimmt wird, ob eine Anstoßsteuerung ausgeführt wird (d.h., ob das P-Positionsseitenanstoßsteuerungsflag Xexp oder das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp "ein" ist). Wenn keine Anstoßsteuerung ausgeführt wird, wird die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks, die in einem der Schritte 634636 eingestellt worden ist, verwendet, wie sie ist. Wenn eine Anstoßsteuerung ausgeführt wird, schreitet die Routine zu Schritt 640 voran, in dem die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks auf einen kleinen Wert Ke (beispielsweise 0 oder –1) eingestellt wird, um die Drehgeschwindigkeit des Rotors 32 zu verkleinern.
  • Demgegenüber wird, wenn |Acnt – Ncnt| kleiner als der vorgeschriebene Wert ist, bestimmt, dass die Drehposition des Rotors 32 in einem Abbremsbereich ist, und die Routine geht von Schritt 637 zu Schritt 638, in dem die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks auf einen kleinen Wert Kd (beispielsweise 0 oder –1) eingestellt wird.
  • Obwohl in dieser Routine die Geschwindigkeitsphasenvoreilungskorrekturgröße Ks zwischen drei Pegeln entsprechend der Drehgeschwindigkeit SP des Rotors 32 geschaltet wird, kann sie zwischen zwei Pegeln oder vier oder mehr Pegeln geschaltet werden.
  • [Lernen der Spielgröße]
  • Eine in 36 gezeigte Spielgrößelernroutine wird in einem vorgeschriebenen Zyklus (beispielsweise alle 8 ms) nach dem Ende einer Anfangsansteuerung ausgeführt. Bei einer Aktivierung dieser Routine wird in Schritt 700 bestimmt, ob ein Spielgrößelernabschlussflag Xg "ein" ist (d.h. ein Spielgrößenlernen ist abgeschlossen). Wenn das Spielgrößenlernabschlussflag Xg "ein" ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Als Ergebnis wird ein Spielgrößenlernen lediglich einmal während einer Zündschalter-Ein-Periode ausgeführt. Das Spielgrößelernabschlussflag Xg wird durch eine (nicht gezeigte) Initialisierungsverarbeitungsroutine auf "aus" gesetzt, die unmittelbar ausgeführt wird, nachdem der Zündschalter eingeschaltet ist.
  • Demgegenüber schreitet, wenn in Schritt 700 bestimmt wird, dass das Spielgrößelernabschlussflag Xg "aus" ist (d.h. das Spielgrößenlernen ist nicht abgeschlossen worden), die Routine zu Schritt 701 voran, in dem bestimmt wird, ob die angewiesene Schaltposition die P- Position ist. Wenn sie die P-Position ist, schreitet die Routine zu Schritt 702 voran, in dem eine P-Positionsseitenanstoßsteuerungsroutine gemäß 39 und 40 ausgeführt wird und ein Kodiereinrichtungszählwert Np zu der Zeit eines P-Positionsseitenanstoßens in dem RAM der ECU 41 gespeichert wird. Demgegenüber schreitet, wenn die angewiesene Schaltposition die Nicht-P-Position ist, die Routine zu Schritt 703 voran, in dem eine Nicht-P-Positionsseitenanstoßsteuerungsroutine gemäß 42 und 43 ausgeführt wird und ein Kodiereinrichtungszählwert Np zu der Zeit eines Nicht-P-Positionsseitenanstoßens in dem RAM der ECU 41 gespeichert wird.
  • Dann schreitet die Routine zu Schritt 704 voran, in dem bestimmt wird, ob sowohl die P-Positionsseiten- als auch die Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., sowohl ein P-Positionsseitenanstoßsteuerungsabschlussflag Xp als auch ein Nicht-P-Positionsseitenanstoßsteuerungsabschlussflag Xnp sind "ein"). Wenn zumindest eine der P-Positionsseiten- als auch der Nicht-Positionsseitenanstoßsteuerungen noch nicht abgeschlossen worden ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber schreitet, wenn sowohl die P-Positionsseiten- als auch die Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden sind, die Routine zu Schritt 705 voran, in dem ein tatsächlicher Messwert ΔNact des bewegbaren Bereichs des Rotors 32 (d.h. des bewegbaren Bereichs des Arretierhebels 15) von der P-Positionsseitenbegrenzungsposition (d.h. der Seitenwand der P-Positionshaltevertiefung 24) zu der Nicht-P-Positionsseitenbegrenzungsposition (d.h. die Seitenwand der Nicht-P-Positionshaltevertiefung 25) entsprechend der nachstehenden Gleichung berechnet wird: ΔNact = Nnp – Np.
  • In der vorstehend angegebenen Gleichung ist Nnp ein Kodiereinrichtungszählwert zu der Zeit eines Nicht-P-Positionsseitenanstoßens, wobei er auf einen Wert GNnp eingestellt wird, der durch die (nachstehend beschriebene) Nicht-P-Positionsseitenanstoßsteuerungsroutine gemäß 42 und 43 gelernt wird. Dabei ist Np ein Kodiereinrichtungszählwert zu der Zeit eines P-Positionsseitenanstoßens, wobei er auf einen Wert GNp eingestellt wird, der durch die (nachstehend beschriebene) P-Positionsseitenanstoßsteuerungsroutine gemäß 39 und 40 gelernt wird.
  • Nach der Berechnung des tatsächlichen Messwerts ΔNact des bewegbaren Bereichs schreitet die Routine zu Schritt 706 voran, in dem eine P-Positionsseitenspielgröße ΔGp und eine Nicht-P-Positionsseitenspielgröße ΔGnp entsprechend der nachstehenden Gleichung unter Verwendung des tatsächlichen Messwerts ΔNact und eines Entwurfswerts ΔNd des bewegbaren Bereichs unter Berücksichtigung einer Beziehung gemäß 38 berechnet werden: ΔGp = ΔGnp = (ΔNact – ΔNd)/2.
  • Der Entwurfwert ΔNd des bewegbaren Bereichs kann im Vorfeld auf der Grundlage von Entwurfsdaten berechnet werden oder auf einen Mittelwert von variierten bewegbaren Bereichen bei einer Herstellung von Massenproduktvorrichtungen (d.h. einen tatsächlichen Messwert des bewegbaren Bereichs einer Standardvorrichtung) eingestellt werden.
  • Wie es in 38 gezeigt ist, entspricht die Differenz ΔNact – ΔNd zwischen dem tatsächlichen Messwert ΔNact und dem Entwurfswert ΔNd der Summe ΔGp + ΔGnp der P-Positionsseitenspielgröße ΔGp und der Nicht-P-Positionsseitenspielgröße ΔGnp. Da die P-Positionsseitenspielgröße ΔGp und die Nicht-P-Positionsseitenspielgröße ΔGnp im Allgemeinen miteinander übereinstimmen, kann jede hiervon entsprechend der vorstehend angegebenen Gleichung berechnet werden.
  • Nach der Berechnung der Spielgrößen ΔGp und ΔGnp schreitet die Routine zu Schritt 707 voran, in dem das Spielgrößenlernabschlussflag Xg auf "ein" gesetzt wird, was einen Abschluss des Spielgrößenlernens bedeutet. Dann wird die Routine beendet.
  • Der tatsächliche Messwert ΔNact und die Spielgrößen ΔGp und ΔGnp, die in den Schritten 705 und 706 berechnet worden sind, werden mit einer Aktualisierung in einem (nicht gezeigten) nichtflüchtigen Speicher, wie beispielsweise einem SRAM der ECU 41, gespeichert, wobei die gespeicherten Werte auch nach einem Ausschalten des Zündschalters gehalten werden. Nachdem der Zündschalter das nächste Mal eingeschaltet wird, wird ein Sollzählwert Acnt durch eine (nachstehend beschriebene) Sollzählwerteinstellroutine, die in 45 und 46 gezeigt ist, unter Verwendung des tatsächlichen Messwerts ΔNact des bewegbaren Bereichs und der Spielgrößen ΔGp und ΔGnp, die in dem nichtflüchtigen Speicher der ECU 41 gespeichert sind, eingestellt.
  • [P-Positionsseitenanstoßsteuerung]
  • Die in 39 und 40 gezeigte P-Positionsseitenanstoßsteuerungsroutine ist eine Unterroutine, die in Schritt 702 der Spielgrößelernroutine gemäß 36 ausgeführt wird, wenn die angewiesene Schaltposition die P-Position ist. Bei einer Aktivierung dieser Routine in Schritt 711 wird bestimmt, ob das P-Positionsseitenanstoßabschlussflag Xp "ein" ist (d.h., eine P-Positionsseitenanstoßsteuerung ist beendet worden). Wenn eine P-Positionsseitenanstoßsteuerung bereits beendet worden ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Als Ergebnis wird eine P-Positionsseitenanstoßsteuerung lediglich einmal während einer Zündschalter-Ein-Periode ausgeführt.
  • Demgegenüber schreitet, wenn in Schritt 711 bestimmt wird, dass das P-Positionsseitenanstoßabschlussflag Xp "aus" ist (eine P-Positionsseitenanstoßsteuerung ist nicht beendet worden), die Routine zu Schritt 712 voran, in dem bestimmt wird, ob der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 0 oder 3 ist. Der "0" betragende Steuerungsbetriebsartbestimmungswert "Betriebsart" bedeutet "Stromzufuhr aus" (Bereitschaft) und der "3" betragende Steuerungsbetriebsartbestimmungswert "Betriebsart" bedeutet "Zielpositionsstopp- und Halteprozess".
  • In dieser Routine wird eine P-Positionsseitenanstoßsteuerung ausgeführt, wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 0 oder 3 ist, so dass sie in einem Zustand ausgeführt wird, bei dem der Rotor 32 bei der P-Position gestoppt ist.
  • Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "0" ist (Stromzufuhr aus), schreitet die Routine zu Schritt 713 voran, in dem der Zählwert CT0p eines Betriebsart-0-Zeitzählers, der die Zeit zählt, während der der Wert "Betriebsart" auf "0" mit der P-Position gehalten wird, inkrementiert wird. Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "3" ist (Zielpositionsstopp- und Halteprozess), schreitet die Routine zu Schritt 714 voran, in dem der Zählwert CT3p eines Betriebsart-3-Zeitzählers, der die Zeit zählt, während der der Wert "Betriebsart" auf "3" mit der P-Position gehalten wird, inkrementiert wird. Die vorstehend genannten zwei Zeitzähler werden für ein Abwarten verwendet, bis sich eine Vibration des Rotors 32 beruhigt und der Rotor 32 bei der P-Position gestoppt ist.
  • Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "1" (übliche Ansteuerung), "4" (Umkehrpositionsstopp- und Halteprozess) oder "5" (offene Regelkreissteuerung) ist, wird der Rotor 32 nicht bei der P-Position gestoppt, wobei somit die Routine zu Schritt 731 voranschreitet, in dem die Zählwerte CT0p und CT3p der jeweiligen Zeitzähler gelöscht werden.
  • Dann wird in Schritt 715 bestimmt, ob der Zählwert CT0p des Betriebsart-0-Zeitzählers einen Stoppbestimmungswert K0p überschritten hat oder der Zeitzähler CT3p des Betriebsart-3-Zeitzählers einen Stoppbestimmungswert K3p überschritten hat. Der Stoppbestimmungswert K0p entspricht einer Zeit, die für eine Beruhigung einer Schwingung des Rotors 32 in einem Zustand erforderlich ist, bei dem die Schaltposition die P-Position ist und der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "0" ist (Stromzufuhr aus). Der Stoppbestimmungswert K3p entspricht einer Zeit, die für eine Beruhigung einer Schwingung des Rotors 32 in einem Zustand erforderlich ist, bei dem die Schaltposition die P-Position ist und der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "3" ist (Zielpositionsstopp- und Halteprozess).
  • Wenn das Bestimmungsergebnis in Schritt 715 "nein" ist, wird bestimmt, dass eine Vibration des Rotors 32 sich noch nicht beruhigt hat. Die Routine schreitet zu Schritt 716 voran, in dem das P-Positionsseitenanstoßsteuerungsflag Xexp auf "aus" eingestellt wird. In diesem Fall wird eine P-Positionsseitenanstoßsteuerung nicht gestartet.
  • Demgegenüber wird, wenn das Bestimmungsergebnis in Schritt 715 "ja" ist, bestimmt, dass eine Vibration des Rotors 32 sich bei der P-Position beruhigt hat. Die Routine schreitet zu Schritt 717 voran, in dem das P- Positionsseitenanstoßsteuerungsflag Xexp auf "ein" eingestellt wird.
  • Dann schreitet die Routine zu Schritt 718 voran, in dem bestimmt wird, ob das P-Positionsseitenanstoßsteuerungsflag Xexp "ein" ist. Wenn das Flag Xexp "aus" ist, schreitet die Routine zu Schritt 719 voran, in dem alle von einem Anstoßsollzählwerte Ag, dem Zählwert CTstop eines Stoppzeitzählers und dem Zählwert CTg eines Anstoßsteuerungszeitzählers auf "0" gesetzt werden. Dann wird diese Routine beendet.
  • Demgegenüber schreitet, wenn das P-Positionsseitenanstoßsteuerungsflag Xexp "ein" ist, die Routine zu Schritt 720 voran, in dem der Anstoßsollzählwert Ag auf einen vorgeschriebenen Wert Kgp eingestellt wird. Der Anstoßsollzählwert Ag (Kpg) wird auf einen derartigen Wert eingestellt, dass eine P-Positionsseitenanstoßsteuerung den Eingriffsabschnitt 23a der Arretierfeder 23 veranlassen kann, zuverlässig gegen die Seitenwand der P-Positionshaltevertiefung 24 des Arretierhebels 15 zu stoßen.
  • Wenn das P-Positionsseitenanstoßsteuerungsflag Xexp "ein" ist, wird der Sollzählwert Acnt auf den Sollzählwert Ag (d.h. Kgp) durch eine (nachstehend beschriebene) Sollzählwerteinstellroutine eingestellt, die in 45 gezeigt ist. Folglich wird eine P-Positionsseitenanstoßsteuerung, wie sie in 41 gezeigt ist, ausgeführt, wodurch der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 stößt.
  • Während der P-Positionsseitenanstoßsteuerung wird der Zählwert CTg des Anstoßsteuerungszeitzählers in Schritt 721 gemäß 40 inkrementiert, um die Ausführungszeit der P-Positionsseitenanstoßsteuerung zu messen. In einem nächsten Schritt 722 wird bestimmt, ob die Ausführungszeit CTg der P-Positionsseitenanstoßsteuerung eine maximale erlaubbare Lernzeit Kg (beispielsweise 500 ms) überschritten hat. Wenn die P-Positionsseitenanstoßsteuerung normal ausgeführt wird, sollte der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 in einer Zeit stoßen, die kürzer ist als die maximale erlaubbare Lernzeit Kg, woraufhin ein Lernen eines Kodiereinrichtungszählwerts Np zu der Zeit eines P-Positionsseitenanstoßens (d.h. die P-Positionsseitenanstoßsteuerung) beendet wird.
  • Folglich sollte, wenn die P-Positionsseitenanstoßsteuerung auch nach Ablauf der maximalen erlaubbaren Lernzeit Kg nicht beendet ist, eine Systemanomalie, wie beispielsweise eine Fehlfunktion in dem SR-Motor 12 oder der Kodiereinrichtung 46, aufgetreten sein. Folglich schreitet in einem derartigen Fall die Routine, um die P-Positionsseitenanstoßsteuerung erzwungen zu beenden, zu Schritt 723 voran, in dem die nachstehenden Einstellungen ausgeführt werden: das P-Positionsseitenanstoßsteuerungsflag Xexp = aus, das P-Positionsseitenanstoßabschlussflag Xp = aus, der Stoppzeitzählwert CTstop = 0, der Betriebsart-3-Zeitzählwert CT3p = 0, der Betriebsart-0-Zeitzählwert CT0p = 0 und der Anstoßsteuerungszeitzählwert CTg = 0. Dann wird diese Routine beendet.
  • Demgegenüber schreitet, wenn die Ausführungszeit CTg der P-Positionsseitenanstoßsteuerung die maximale erlaubbare Lernzeit Kg nicht überschritten hat, die Routine zu Schritt 724 voran, in dem ein gelernter Wert Vp der P-Positionsausgabe des Ausgangswellensensors 14 entsprechend der nachstehenden Gleichung aktualisiert wird: Vp(i) = Vp(i – 1) + {Vnsw – Vp(i – 1)}/Rnsw,wobei Vp(i) ein derzeitiger gelernter P-Positionsausgabewert ist, Vp(i – 1) ein vorangegangener gelernter P-Positionsausgabewert ist, Vnsw eine derzeitige Ausgabe des Ausgangswellensensors 14 ist und Rnsw ein Glättungskoeffizient ist.
  • Bei einem nächsten Schritt 725 wird ein gelernter Wert. des Kodiereinrichtungszählwerts zu der Zeit eines P-Positionsseitenanstoßens (nachstehend als "gelernter P-Positionsseitenanstoßwert" bezeichnet) GNp entsprechend der nachstehenden Gleichung aktualisiert: GNp(i) = min{GNp(i – 1), Ncnt}.
  • In der vorstehend angegebenen Gleichung ist GNp(i) ein derzeitiger gelernter P-Positionsseitenanstoßwert, GNp(i – 1) ist ein vorangegangener gelernter P-Positionsseitenanstoßwert und Ncnt ist ein derzeitiger Kodiereinrichtungszählwert. Die Funktion "min" ist eine Funktion zum Auswählen des kleineren vom GNp(i – 1) und Ncnt. Der Kodiereinrichtungszählwert Ncnt wird auf einen Wert eingestellt, der unter Verwendung eines gelernten Anfangspositionsabweichungswerts Gcnt, der durch die Anfangsansteuerungsroutine gemäß 8 und 9 gelernt worden ist, korrigiert worden ist.
  • Dann schreitet die Routine zu Schritt 726 voran, in dem auf der Grundlage davon, ob der derzeitige gelernte P-Positionsseitenanstoßwert GNp(i) der gleiche ist wie der vorangegangene gelernte P-Positionsseitenanstoßwert GNp(i – 1), bestimmt wird, ob ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 ist, entstanden ist.
  • Wie es in 41 gezeigt ist, dreht sich, bis ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der P-Positionshaltevertiefung 24 des Arretierhebels 15 ist, entstanden ist, der Rotor 32 und der Kodiereinrichtungszählwert Ncnt nimmt allmählich ab, wobei somit der derzeitige gelernte P-Positionsseitenanstoßwert GNp(i) kleiner als der vorangegangene gelernte P-Positionsseitenanstoßwert GNp(i – 1) sein sollte. Sobald ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 ist, danach entstanden ist, stoppt der Rotor 32 die Drehung und der Kodiereinrichtungszählwert Ncnt schwingt oder variiert nicht länger. Da der gelernte Wert GNp(i) nicht länger aktualisiert wird, sollte der derzeitige gelernte P-Positionsseitenanstoßwert GNp(i) größer oder gleich dem vorangegangenen gelernten P-Positionsseitenanstoßwert GNp(i – 1) sein.
  • Wenn das Bestimmungsergebnis in Schritt 726 gemäß 40 "nein" ist, ist ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 ist, nicht entstanden, wobei somit die Routine zu Schritt 727 voranschreitet, in dem der Zählwert CTstop des Stoppzeitzählers zurückgesetzt wird.
  • Demgegenüber wird, wenn das Bestimmungsergebnis in Schritt 726 gemäß 40 "ja" ist, bestimmt, dass der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 gestoßen sein kann, und die Routine schreitet zu Schritt 728 voran, in dem der Zählwert CTstop des Stoppzeitzählers, der die Zeit eines Kontaktzustands zählt, inkrementiert wird.
  • Dann schreitet die Routine zu Schritt 729 voran. Die P-Positionsseitenanstoßsteuerung wird fortgesetzt, bis der Zählwert CTstop des Stoppzeitzählers eine vorgeschriebene Zeit Kstop (beispielsweise 60 ms) bei Schritt 729 überschreitet. Bei einem Zeitpunkt, wenn der Zustand, bei dem das Bestimmungsergebnis in Schritt 726 "ja" ist, für die vorgeschriebene Zeit Kstop oder länger fortgesetzt worden ist, wird bestimmt, dass ein Auftreten eines Kontaktzustands bestätigt worden ist, und die Routine schreitet zu Schritt 730 voran. In Schritt 730 werden die nachstehenden Einstellungen ausgeführt, um die P-Positionsseitenanstoßsteuerung zu beenden: das P-Positionsseitenanstoßsteuerungsflag Xexp = aus, das P-Positionsseitenanstoßabschlussflag Xp = ein, der P-Positionsseitenanstoßkodiereinrichtungszählwert Np = GNp + ΔNover (ΔNover ist ein Hinweglaufkorrekturwert), der Stoppzeitzählwert CTstop = 0, der Betriebsart-3-Zeitzählwert CT3p = 0 und der Betriebsart-0-Zeitzählwert CT0p = 0. Dann wird diese Routine beendet.
  • Der Hinweglaufkorrekturwert ΔNover ist ein Winkel, um den der Eingriffsabschnitt 23a der Arretierfeder 23 leicht über die Seitenwand der Haltevertiefung 24 oder 25 des Arretierhebels 15 in einem Zustand, bei dem der Eingriffsabschnitt 23a in Kontakt mit der Seitenwand ist, während einer Anstoßsteuerung hinwegläuft. Der Hinweglaufkorrekturwert ΔNover wird entsprechend einer Batteriespannung als eine Energiequellenspannung für den SR-Motor 12 unter Verwendung der Tabelle gemäß 37 eingestellt.
  • Der Winkel (d.h. der Hinweglaufkorrekturwert ΔNover), um den der Eingriffsabschnitt 23a der Arretierfeder 23 über die Seitenwand der Haltevertiefung 24 oder 25 des Arretierhebels 15 während einer Anstoßsteuerung hinwegläuft, vergrößert sich, wenn das Drehmoment des SR-Motors 12 sich vergrößert. Im Allgemeinen variiert das Drehmoment des SR-Motors 12 mit der zugehörigen Energiequellenspannung (d.h. der Batteriespannung), wobei somit eine Wechselbeziehung zwischen der Energiequellenspannung und dem Drehmoment des SR-Motors 12 vorhanden ist. Die Energiequellenspannung kann als eine Ersatzinformation für das Drehmoment des SR-Motors 12 verwendet werden. Folglich kann ein tatsächlicher Messwert des bewegbaren Bereichs des Rotors 32 genau bestimmt werden, indem ein Winkel (d.h. ein Hinweglaufkorrekturwert ΔNover), um den der Eingriffsabschnitt 23a der Arretierfeder 23 über die Seitenwand der Haltevertiefung 24 oder 25 des Arretierhebels 15 während einer Anstoßsteuerung hinwegläuft, auf der Grundlage der Energiequellenspannung (d.h. der Batteriespannung) als Ersatzinformation für das Drehmoment des SR-Motors 12 berechnet wird und ein tatsächlicher Messwert des bewegbaren Bereichs des Rotors 32 durch den Hinweglaufkorrekturwert ΔNover korrigiert wird.
  • Wenn die Seitenwand jeder der Haltevertiefungen 24 und 25 des Arretierhebels 15 so gebildet ist, dass kein Hinweglaufen durch den Eingriffsabschnitt 23a der Arretierfeder 23 stattfindet, ist es nicht erforderlich, den Hinweglaufkorrekturwert ΔNover zu verwenden, wobei somit eine Beziehung ΔNact = Nnp – Np gültig ist.
  • [Nicht-P-Positionsseitenanstoßsteuerung]
  • Die in 42 und 43 gezeigte Nicht-P-Positionsseitenanstoßsteuerungsroutine ist eine Unterroutine, die in Schritt 703 der Spielgrößelernroutine gemäß 36 ausgeführt wird, wenn die angewiesene Schaltposition die Nicht-P-Position ist. Bei einer Aktivierung dieser Routine in Schritt 741 wird bestimmt, ob das Nicht-P-Positionsseitenanstoßabschlussflag Xnp "ein" ist (d.h., eine Nicht-P-Positionsseitenanstoßsteuerung ist beendet worden). Wenn eine P-Positionsseitenanstoßsteuerung bereits beendet worden ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Als Ergebnis wird eine Nicht-P-Positionsseitenanstoßsteuerung lediglich einmal während einer Zündschalter-Ein-Periode ausgeführt.
  • Demgegenüber schreitet, wenn in Schritt 741 bestimmt wird, dass das Nicht-P-Positionsseitenanstoßabschlussflag Xnp "aus" ist (eine Nicht-P-Positionsseitenanstoßsteuerung ist nicht beendet worden), die Routine zu Schritt 742 voran, in dem bestimmt wird, ob der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 0 (Stromzufuhr aus) oder 3 (Zielpositionsstopp- und Halteprozess) ist. In dieser Routine wird eine Nicht-P-Positionsseitenanstoßsteuerung ausgeführt, wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich 0 oder 3 ist, so dass sie in einem Zustand ausgeführt wird, bei dem der Rotor 32 bei der Nicht-P-Position gestoppt ist.
  • Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "0" ist (Stromzufuhr aus), schreitet die Routine zu Schritt 743 voran, in dem der Zählwert CT0np eines Betriebsart-0-Zeitzählers, der die Zeit zählt, während der der Wert "Betriebsart" auf "0" mit der Nicht-P-Position gehalten wird, inkrementiert wird. Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "3" ist (Zielpositionsstopp- und Halteprozess), schreitet die Routine zu Schritt 744 voran, in dem der Zählwert CT3np eines Betriebsart-3-Zeitzählers, der die Zeit zählt, während der der Wert "Betriebsart" auf "3" mit der Nicht-P-Position gehalten wird, inkrementiert wird. Die vorstehend genannten zwei Zeitzähler werden für ein Abwarten verwendet, bis sich eine Vibration des Rotors 32 beruhigt und der Rotor 32 bei der P-Position gestoppt ist.
  • Wenn der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "1" (übliche Ansteuerung), "4" (Umkehrpositionsstopp- und Halteprozess) oder "5" (offene Regelkreissteuerung) ist, wird der Rotor 32 nicht bei der Nicht-P-Position gestoppt, wobei somit die Routine zu Schritt 761 voranschreitet, in dem die Zählwerte CT0np und CT3np der jeweiligen Zeitzähler gelöscht werden.
  • Dann wird in Schritt 745 bestimmt, ob der Zählwert CT0np des Betriebsart-0-Zeitzählers einen Stoppbestimmungswert K0np überschritten hat oder der Zeitzähler CT3np des Betriebsart-3-Zeitzählers einen Stoppbestimmungswert K3np überschritten hat. Der Stoppbestimmungswert K0np entspricht einer Zeit, die für eine Beruhigung einer Schwingung des Rotors 32 in einem Zustand erforderlich ist, bei dem die Schaltposition die Nicht-P-Position ist und der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "0" ist (Stromzufuhr aus). Der Stoppbestimmungswert K3np entspricht einer Zeit, die für eine Beruhigung einer Schwingung des Rotors 32 in einem Zustand erforderlich ist, bei dem die Schaltposition die Nicht-P-Position ist und der Steuerungsbetriebsartbestimmungswert "Betriebsart" gleich "3" ist (Zielpositionsstopp- und Halteprozess).
  • Wenn das Bestimmungsergebnis in Schritt 745 "nein" ist, wird bestimmt, dass eine Vibration des Rotors 32 sich noch nicht beruhigt hat. Die Routine schreitet zu Schritt 746 voran, in dem das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp auf "aus" eingestellt wird. In diesem Fall wird eine Nicht-P-Positionsseitenanstoßsteuerung nicht gestartet.
  • Demgegenüber wird, wenn das Bestimmungsergebnis in Schritt 745 "ja" ist, bestimmt, dass eine Vibration des Rotors 32 sich bei der Nicht-P-Position beruhigt hat. Die Routine schreitet zu Schritt 747 voran, in dem das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp auf "ein" eingestellt wird.
  • Dann schreitet die Routine zu Schritt 748 voran, in dem bestimmt wird, ob das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp "ein" ist. Wenn das Flag Xexnp "aus" ist, schreitet die Routine zu Schritt 749 voran, in dem alle von einem Anstoßsollzählwert Ag, dem Zählwert CTstop eines Stoppzeitzählers und dem Zählwert CTg eines Anstoßsteuerungszeitzählers auf "0" gesetzt werden. Dann wird diese Routine beendet.
  • Demgegenüber schreitet, wenn das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp "ein" ist, die Routine zu Schritt 750 voran, in dem der Anstoßsollzählwert Ag auf einen vorgeschriebenen Wert Kgnp eingestellt wird. Der Anstoßsollzählwert Ag (Kpng) wird auf einen derartigen Wert eingestellt, dass eine Nicht-P-Positionsseitenanstoßsteuerung den Eingriffsabschnitt 23a der Arretierfeder 23 veranlassen kann, zuverlässig gegen die Seitenwand der Nicht-P-Positionshaltevertiefung 25 des Arretierhebels 15 zu stoßen.
  • Wenn das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp "ein" ist, wird der Sollzählwert Acnt auf den Sollzählwert Ag (d.h. Kgnp) durch eine (nachstehend beschriebene) Sollzählwerteinstellroutine eingestellt, die in 45 gezeigt ist. Folglich wird eine Nicht-P-Positionsseitenanstoßsteuerung, wie sie in 45 gezeigt ist, ausgeführt, wodurch der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der Nicht-P-Position-Haltevertiefung 25 des Arretierhebels 15 stößt.
  • Während der Nicht-P-Positionsseitenanstoßsteuerung wird der Zählwert CTg des Anstoßsteuerungszeitzählers in Schritt 751 gemäß 43 inkrementiert, um die Ausführungszeit der Nicht-P-Positionsseitenanstoßsteuerung zu messen. In einem nächsten Schritt 752 wird bestimmt, ob die Ausführungszeit CTg der Nicht-P-Positionsseitenanstoßsteuerung eine maximale erlaubbare Lernzeit Kg (beispielsweise 500 ms) überschritten hat. Wenn die Nicht-P-Positionsseitenanstoßsteuerung normal ausgeführt wird, sollte der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 in einer Zeit stoßen, die kürzer ist als die maximale erlaubbare Lernzeit Kg, woraufhin ein Lernen eines Kodiereinrichtungszählwerts Nnp zu der Zeit eines Nicht-P-Positionsseitenanstoßens (d.h. die Nicht-P-Positionsseitenanstoßsteuerung) beendet wird.
  • Folglich sollte, wenn die Nicht-P-Positionsseitenanstoßsteuerung auch nach Ablauf der maximalen erlaubbaren Lernzeit Kg nicht beendet ist, eine Systemanomalie, wie beispielsweise eine Fehlfunktion in dem SR-Motor 12 oder der Kodiereinrichtung 46, aufgetreten sein. Folglich schreitet in einem derartigen Fall die Routine, um die Nicht-P-Positionsseitenanstoßsteuerung erzwungen zu beenden, zu Schritt 753 voran, in dem die nachstehenden Einstellungen ausgeführt werden: das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp = aus, das Nicht-P-Positionsseitenanstoßabschlussflag Xnp = aus, der Stoppzeitzählwert CTstop = 0, der Betriebsart-3-Zeitzählwert CT3np = 0, der Betriebsart-0-Zeitzählwert CT0np = 0 und der Anstoßsteuerungszeitzählwert CTg = 0. Dann wird diese Routine beendet.
  • Demgegenüber schreitet, wenn die Ausführungszeit CTg der Nicht-P-Positionsseitenanstoßsteuerung die maximale erlaubbare Lernzeit Kg nicht überschritten hat, die Routine zu Schritt 754 voran, in dem ein gelernter Wert Vnp der Nicht-P-Positionsausgabe des Ausgangswellensensors 14 entsprechend der nachstehenden Gleichung aktualisiert wird: Vnp (i) = Vnp(i – 1) + {Vnsw – Vnp(i – 1)}/Rnsw,wobei Vnp(i) ein derzeitiger gelernter Nicht-P-Positionsausgabewert ist, Vnp(i – 1) ein vorangegangener gelernter Nicht-P-Positionsausgabewert ist, Vnsw eine derzeitige Ausgabe des Ausgangswellensensors 14 ist und Rnsw ein Glättungskoeffizient ist.
  • Bei einem nächsten Schritt 755 wird ein gelernter Wert des Kodiereinrichtungszählwerts zu der Zeit eines Nicht-P-Positionsseitenanstoßens (nachstehend als "gelernter Nicht-P-Positionsseitenanstoßwert" bezeichnet) GNnp entsprechend der nachstehenden Gleichung aktualisiert: GNnp(i) = max{GNnp(i – 1), Ncnt}
  • In der vorstehend angegebenen Gleichung ist GNnp(i) ein derzeitiger gelernter Nicht-P-Positionsseitenanstoßwert, GNnp(i – 1) ist ein vorangegangener gelernter Nicht-P-Positionsseitenanstoßwert und Ncnt ist ein derzeitiger Kodiereinrichtungszählwert. Die Funktion "max" ist eine Funktion zum Auswählen eines größeren von GNnp(i – 1) und Ncnt. Der Kodiereinrichtungszählwert Ncnt wird auf einen Wert eingestellt, der unter Verwendung eines gelernten Anfangspositionsabweichungswerts Gcnt, der durch die Anfangsansteuerungsroutine gemäß 8 und 9 gelernt worden ist, korrigiert worden ist.
  • Dann schreitet die Routine zu Schritt 756 voran, in dem auf der Grundlage davon, ob der derzeitige gelernte Nicht-P-Positionsseitenanstoßwert GNnp(i) der gleiche ist wie der vorangegangene gelernte Nicht-P-Positionsseitenanstoßwert GNnp(i – 1), bestimmt wird, ob ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der Nicht-P-Position-Haltevertiefung 25 des Arretierhebels 15 ist, entstanden ist.
  • Bis ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der Nicht-P-Positionshaltevertiefung 25 des Arretierhebels 15 ist, entstanden ist, dreht sich der Rotor 32 und der Kodiereinrichtungszählwert Ncnt nimmt allmählich zu, wobei somit der derzeitige gelernte Nicht-P-Positionsseitenanstoßwert GNnp(i) größer als der vorangegangene gelernte Nicht-P-Positionsseitenanstoßwert GNnp(i – 1) sein sollte. Sobald ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der Nicht-P-Position-Haltevertiefung 25 des Arretierhebels 15 ist, danach entstanden ist, stoppt der Rotor 32 die Drehung und der Kodiereinrichtungszählwert Ncnt schwingt oder variiert nicht länger. Da der gelernte Wert GNnp(i) nicht länger aktualisiert wird, sollte der derzeitige gelernte Nicht-P-Positionsseitenanstoßwert GNnp(i) größer oder gleich dem vorangegangenen gelernten Nicht-P-Positionsseitenanstoßwert GNnp(i – 1) sein.
  • Wenn das Bestimmungsergebnis in Schritt 756 gemäß 43 "nein" ist, ist ein Zustand, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 in Kontakt mit der Seitenwand der Nicht-P-Position-Haltevertiefung 25 des Arretierhebels 15 ist, nicht entstanden, wobei somit die Routine zu Schritt 757 voranschreitet, in dem der Zählwert CTstop des Stoppzeitzählers zurückgesetzt wird.
  • Demgegenüber wird, wenn das Bestimmungsergebnis in Schritt 756 "ja" ist, bestimmt, dass der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der Nicht-P-Position-Haltevertiefung 25 des Arretierhebels 15 gestoßen sein kann, und die Routine schreitet zu Schritt 758 voran, in dem der Zählwert CTstop des Stoppzeitzählers, der die Zeit eines Kontaktzustands zählt, inkrementiert wird.
  • Dann schreitet die Routine zu Schritt 759 voran. Die Nicht-P-Positionsseitenanstoßsteuerung wird fortgesetzt, bis der Zählwert CTstop des Stoppzeitzählers eine vorgeschriebene Zeit Kstop (beispielsweise 60 ms) bei Schritt 759 überschreitet. Bei einem Zeitpunkt, wenn der Zustand, bei dem das Bestimmungsergebnis in Schritt 756 "ja" ist, für die vorgeschriebene Zeit Kstop oder länger fortgesetzt worden ist, wird bestimmt, dass ein Auftreten eines Kontaktzustands bestätigt worden ist, und die Routine schreitet zu Schritt 760 voran. In Schritt 760 werden die nachstehenden Einstellungen ausgeführt, um die Nicht-P-Positionsseitenanstoßsteuerung zu beenden: das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp = aus, das Nicht-P-Positionsseitenanstoßabschlussflag Xnp = ein, der Nicht-P-Positionsseitenanstoßkodiereinrichtungszählwert Nnp = GNnp – ΔNover (ΔNover ist ein Hinweglaufkorrekturwert), der Stoppzeitzählwert CTstop = 0, der Betriebsart-3-Zeitzählwert CT3np = 0 und der Betriebsart-0-Zeitzählwert CT0np = 0. Dann wird diese Routine beendet.
  • In 44 ist ein Zeitablaufdiagramm gezeigt, das eine beispielhafte Ausführungszeitsteuerung einer P-Positionsseitenanstoßsteuerung und einer Nicht-P-Positionsseitenanstoßsteuerung zeigt. In dem Beispiel gemäß 44 wird, wenn die angewiesene Schaltposition von der P-Position zu der Nicht-P-Position einige Zeit nach einer Ein-Manipulation des Zündschalters (d.h. einer Energiezufuhr) geschaltet wird, der Sollzählwert Acnt auf einen zeitweiligen Sollzählwert (beispielsweise 18°) für die Nicht-P-Position eingestellt. Der zeitweilige Sollzählwert (beispielsweise 18°) entspricht einem Drehwinkel, bei dem der Eingriffsabschnitt 23a der Arretierfeder 23 zuverlässig über den Vorsprung zwischen den Haltevertiefungen 24 und 25 des Arretierhebels 15 gegangen ist.
  • Folglich wird, nachdem er zu einer Position, die dem zeitweiligen Sollzählwert (beispielsweise 18°) entspricht, durch eine Regelung gedreht worden ist, der Rotor 32 zu der Nicht-P-Positionzielposition (d.h. dem Boden der Nicht-P-Positionshaltevertiefung 25) durch Verwenden einer Triebkraft des Eingriffsabschnitts 23a der Arretierfeder 23, die zu dem Boden entlang der schrägen Seitenwand der Nicht-P-Positionshaltevertiefung 25 des Arretierhebels 15 durch eine elastische Kraft der Arretierfeder 23 herabgelassen wird, gedreht.
  • Dann wird, wenn das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp auf "ein" gesetzt wird, der Sollzählwert Acnt auf einen Nicht-P-Positionsseitenanstoßsollzählwert Ag (d.h. Kgnp) eingestellt und eine Nicht-P-Positionsseitenanstoßsteuerung wird gestartet. Ein Kodiereinrichtungszählwert Nnp (d.h. GNnp) wird gelernt, wenn der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der Nicht-P-Positionshaltevertiefung 25 des Arretierhebels 15 stößt. Nach dem Lernen des Kodiereinrichtungszählwerts Nnp wird das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp auf "aus" gesetzt und die Nicht-P-Positionsseitenanstoßsteuerung ist beendet.
  • Dann wird, wenn die angewiesene Schaltposition von der Nicht-P-Position zu der P-Position geschaltet wird, der Sollzählwert Acnt auf einen zeitweiligen Sollzählwert (beispielsweise 0°) für die P-Position eingestellt.
  • Nachdem er zu einer Position, die dem zeitweiligen Sollzählwert (beispielsweise 0°) entspricht, durch eine Regelung gedreht worden ist, wird der Rotor 32 zu der P-Positionszielposition (d.h. dem Boden der P- Positionshaltevertiefung 24) durch Verwenden einer Triebkraft des Eingriffsabschnitts 23a der Arretierfeder 23 gedreht, die zu dem Boden entlang der geneigten Seitenwand der P-Positionshaltevertiefung 24 des Arretierhebels 15 durch eine elastische Kraft der Arretierfeder 23 herabgesenkt wird.
  • Dann wird, wenn das P-Positionsseitenanstoßsteuerungsflag Xexp auf "ein" gesetzt wird, der Sollzählwert Acnt auf einen Nicht-P-Positionsseitenanstoßzählwert Ag (d.h. Kgp) eingestellt und eine P-Positionsseitenanstoßsteuerung wird gestartet. Ein Kodiereinrichtungszählwert Np (d.h. GNp) wird gelernt, wenn der Eingriffsabschnitt 23a der Arretierfeder 23 gegen die Seitenwand der P-Positionshaltevertiefung 24 des Arretierhebels 15 stößt. Nach dem Lernen des Kodiereinrichtungszählwerts Np wird das P-Positionsseitenanstoßsteuerungsflag Xexp auf "aus" gesetzt und die P-Positionsseitenanstoßsteuerung wird beendet.
  • [Sollzählwerteinstellung]
  • Die in 45 und 46 gezeigte Sollzählwerteinstellroutine wird in einem vorgeschriebenen Zyklus (beispielsweise alle 8 ms) nach dem Ende einer Anfangsansteuerung ausgeführt. Bei einer Aktivierung dieser Routine wird in Schritt 771 bestimmt, ob eine Anstoßsteuerung ausgeführt wird (d.h., ob das P-Positionsseitenanstoßsteuerungsflag Xexp oder das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp "ein" ist). Wenn eine Anstoßsteuerung ausgeführt wird, schreitet die Routine zu Schritt 772 voran, in dem der Sollzählwert Acnt auf einen Anstoßzählwert Ag eingestellt wird. Der Anstoßzählwert Ag wird in Schritt 720 gemäß 39 oder in Schritt 750 gemäß 42 eingestellt.
  • Demgegenüber schreitet, wenn keine Anstoßsteuerung ausgeführt wird, die Routine zu Schritt 773 voran, in dem bestimmt wird, ob eine angewiesene Schaltposition sft, die in dem RAM der ECU 41 gespeichert ist, die P-Position ist. Wenn sie die P-Position ist, schreitet die Routine zu Schritt 774 voran, in dem bestimmt wird, ob eine P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., ob das P-Positionsseitenanstoßabschlussflag Xp "ein" ist). Wenn eine P-Positionsseitenanstoßsteuerung abgeschlossen worden ist, schreitet die Routine zu Schritt 775 voran, wobei ein P-Positionssollzählwert Acnt entsprechend der nachstehenden Gleichung berechnet wird: Acnt = Np + ΔGp.
  • In der vorstehend angegebenen Gleichung ist Np ein Kodiereinrichtungszählwert zu der Zeit eines P-Positionsseitenanstoßens und ist ein Wert GNp, der durch die P-Positionsseitenanstoßsteuerungsroutine gemäß 39 und 40 gelernt worden ist. Dabei ist ΔGp ein gelernter Wert der P-Positionsseitenspielgröße und ist ein vorangegangener Wert, der in dem nichtflüchtigen Speicher der ECU 41 gespeichert ist, bis dieser durch einen derzeitigen (d.h. neu berechneten) gelernten Wert ΔGp der Spielgröße in Schritt 706 der Spielgrößelernroutine gemäß 36 aktualisiert wird.
  • Demgegenüber ist, wenn eine P-Positionsseitenanstoßsteuerung nicht abgeschlossen worden ist, das Bestimmungsergebnis in Schritt 774 "nein", wobei somit die Routine zu Schritt 776 voranschreitet, in dem bestimmt wird, ob eine Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., ob das Nicht-P-Positionsseitenanstoßabschlussflag Xnp "ein" ist). Wenn eine Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist, schreitet die Routine zu Schritt 777 voran, in dem ein P-Positionssollzählwert Acnt entsprechend der nachstehenden Gleichung berechnet wird: Acnt = Nnp – ΔNact + ΔGp.
  • In der vorstehend angegebenen Gleichung ist Nnp ein Kodiereinrichtungszählwert zu der Zeit eines Nicht-P-Positionsseitenanstoßens und ist ein Wert GNnp, der durch die Nicht-P-Positionsseitenanstoßsteuerungsroutine gemäß 42 und 43 gelernt worden ist. Dabei ist ΔNact ein tatsächlicher Messwert des bewegbaren Bereichs des Rotors 32 und ist ein vorangegangener Wert, der in dem nichtflüchtigen Speicher der ECU 41 gespeichert ist, bis dieser durch einen derzeitigen (d.h. neu berechneten) tatsächlichen Messwert ΔNact des bewegbaren Bereichs in Schritt 705 der Spielgrößelernroutine gemäß 36 aktualisiert wird.
  • Wenn weder eine P-Positionsseitenanstoßsteuerung noch eine Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., sowohl das P-Positionsseiten- als auch das Nicht-Positionsseitenanstoßabschlussflag Xp und Xnp sind "aus"), kann der Sollzählwert Acnt nicht unter Verwendung einer Spielgröße ΔGp oder ΔGnp korrigiert werden, da weder ein Kodiereinrichtungszählwert Np zu der Zeit eines P-Positionsseitenanstoßens noch ein Kodiereinrichtungszählwert Nnp zu der Zeit eines Nicht-P-Positionsseitenanstoßens gelernt worden sind. Folglich schreitet in diesem Fall die Routine zu Schritt 778 voran, in dem der P-Positionssollzählwert Acnt auf einen zeitweiligen P-Positionssollzählwert "0" eingestellt wird.
  • Demgegenüber schreitet, wenn in Schritt 773 bestimmt wird, dass die angewiesene Schaltposition sft die Nicht-P-Position ist, die Routine zu Schritt 779 gemäß 46 voran, in dem bestimmt wird, ob eine Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., ob das Nicht-P-Positionsseitenanstoßabschlussflag Xnp "ein" ist). Wenn eine Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist, schreitet die Routine zu Schritt 780 voran, in dem ein Nicht-P-Positionssollzählwert Acnt entsprechend der nachstehenden Gleichung berechnet wird: Acnt = Nnp – ΔGnp.
  • In der vorstehend angegebenen Gleichung ist ΔGnp ein gelernter Wert der Nicht-P-Positionsseitenspielgröße und ist ein vorangegangener Wert, der in dem nichtflüchtigen Speicher der ECU 41 gespeichert ist, bis dieser durch einen derzeitigen (d.h. neu berechneten) gelernten Wert ΔGnp der Spielgröße in Schritt 706 der Spielgrößelernroutine gemäß 36 aktualisiert wird.
  • Demgegenüber ist, wenn eine Nicht-P-Positionsseitenanstoßsteuerung nicht abgeschlossen worden ist, das Bestimmungsergebnis in Schritt 779 "nein", wobei somit die Routine zu Schritt 781 voranschreitet, in dem bestimmt wird, ob eine P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., ob das P-Positionsseitenanstoßabschlussflag Xp "ein" ist). Wenn eine P-Positionsseitenanstoßsteuerung abgeschlossen worden ist, schreitet die Routine zu Schritt 782 voran, in dem ein Nicht-P-Positionssollzählwert Acnt entsprechend der nachstehenden Gleichung berechnet wird: Acnt = Np + ΔNact – ΔGnp.
  • Wenn weder eine P-Positionsseitenanstoßsteuerung noch eine Nicht-P-Positionsseitenanstoßsteuerung abgeschlossen worden ist (d.h., sowohl das P-Positionsseiten- als auch das Nicht-P-Positionsseitenanstoßabschlussflag Xp und Xnp sind "aus"), schreitet die Routine zu Schritt 783 voran, in dem der Nicht-P-Positionssollzählwert Acnt auf einen zeitweiligen Nicht-P-Positionssollzählwert Knotp (beispielsweise 18,5°) eingestellt wird.
  • Bei einem Einstellen eines Sollzählwerts Acnt gemäß dieser Routine werden vorangegangene Werte, die in dem nichtflüchtigen Speicher der ECU 41 gespeichert sind, als gelernte Spielgrößenwerte ΔGp und ΔGnp sowie ein tatsächlicher Bewegbarer-Bereich-Messwert ΔNact verwendet, bis die früheren aktualisiert werden. Alternativ hierzu kann der Sollzählwert Acnt auf einen zeitweiligen Sollzählwert (0 oder Knotp) eingestellt werden, bis in dem nichtflüchtigen Speicher gespeicherte Werte aktualisiert sind.
  • [Wiederherstellungsprozess]
  • Eine in 51 gezeigte Wiederherstellungsverarbeitungsroutine, die bei jeder vorbestimmten Zeit (beispielsweise jede 1 ms) aktiviert wird, führt einen Wiederherstellungsprozess auf die nachstehend beschriebene Weise aus, wenn der Regelungszustand anormal geworden ist. Bei einer Aktivierung dieser Routine wird in Schritt 801 bestimmt, ob das Wiederherstellungsprozessausführungsflag Xrcv "aus" ist. Wenn das Wiederherstellungsprozessausführungsflag Xrcv "aus" ist (das heißt, ein Wiederherstellungsprozess wird nicht ausgeführt), schreitet die Routine zu Schritt 802 voran, in dem bestimmt wird, ob die nachstehend genannten Wiederherstellungsprozessausführungskriterien (1)–(4) erfüllt sind:
    • (1) Alle eines A-Phasensignals und eines B-Phasensignals der Kodiereinrichtung 46 sowie eines Ausgabesignals des Ausgangswellensensors 14 sind normal.
    • (2) Alle von Anomalieerfassungsflags Xfnsw, Xfcnt und Xfrcv, die in einer Systemanomaliediagnoseroutine, die in 56 und 57 gezeigt ist, gesetzt werden, sind "aus" (keine Anomalie).
    • (3) Das Regelungserlaubnisflag Xfb ist ein (eine Regelung wird ausgeführt).
    • (4) Eines von drei Anomalieerfassungsflags Xfab, Xfta und Xftb, die das A-Phasensignal und das B-Phasensignal betreffen und in einer A/B-Phasensignal-Anomalieerfassungsroutine, die in 53 gezeigt ist, gesetzt werden, ist "ein" (anormal) oder ein Umkehrungserfassungsflag Xr, das in einer in 55 gezeigten Umkehrbestimmungsroutine gesetzt wird, ist "ein" (Umkehrung ist angewiesen).
  • Die Wiederherstellungsprozessausführungsbedingung ist nicht erfüllt. Dann wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen, wenn auch nur eines der vier Kriterien (1)–(4) nicht erfüllt ist.
  • Demgegenüber ist, wenn alle der vorstehend genannten Kriterien (1)–(4) erfüllt sind, die Wiederherstellungsprozessausführungsbedingung erfüllt und die Routine schreitet von Schritt 802 zu Schritt 803 voran, in dem das Wiederherstellungsprozessausführungsflag Xrcv auf "ein" gesetzt wird. In einem nächsten Schritt 804 wird ein derzeitiger Positionszählwert Ncntop entsprechend den nachstehenden Gleichungen auf der Grundlage einer in 52 gezeigten Beziehung unter Verwendung eines derzeitigen Ausgabesignalwerts Vnsw des Ausgangswellensensors 14 berechnet: Ncntop = INT[{{(Vnsw – Vp)/ΔV} × Kop × 61/3,75 – Kofp} × 1/2] × 2 ΔV = Vnp – Vpwobei INT eine Funktion zum Extrahieren des ganzzahligen Teils eines numerischen Werts innerhalb der Klammern [] ist, Vp ein gelernter P-Positionsausgabewert des Ausgangswellensensors 14 ist, Vnp ein gelernter Nicht-P-Positionsausgabewert des Ausgangswellensensors 14 ist, Kop ein maximaler Drehwinkel des Arretierhebels 15 ist und Kofp ein P-Positionsseiten-Versatzwert ist. Die erste Gleichung ist so formuliert, dass der Positionszählwert Ncntop ein Vielfaches von 2 wird.
  • Der maximale Drehwinkel Kop des Arretierhebels 15 ist ein Drehwinkel, um den sich der Arretierhebel 15 von der Seitenwand der P-Position-Haltevertiefung 24 des Arretierhebels 15 zu der Seitenwand der zugehörigen Nicht-P-Position-Haltevertiefung 25 dreht, und wird berechnet, indem eine P-Positionsseiten-Spielgröße ΔGp zu einem Entwurfswert ΔNd des bewegbaren Bereichs des Arretierhebels 15 auf der Grundlage der in 38 gezeigten Beziehung addiert wird. Gemäß diesem Ausführungsbeispiel werden ΔNd und ΔGp auf 20,5° bzw. 3° eingestellt. Kop = ΔNd + ΔGp = 20,5° + 3° = 23,5°
  • In den Gleichungen zur Berechnung des Positionszählwerts Ncntop ist Kop × 61/3,75 ein Wert des maximalen Drehwinkels Kop des Arretierhebels 15, wenn er in die Anzahl von Motoransteuerungsschritte (das heißt den Stromzufuhrzähler) umgewandelt wird, wobei die Zahl "61" ein Verringerungsverhältnis des Geschwindigkeitsverringerungsmechanismus 26 ist und die Zahl "3,75" ein Drehwinkel des Rotors 32 pro Schritt (pro Stromzufuhr) ist. Der Positionszählwert Ncntop wird als ein Anfangspositionszählwert Ncntop bei dem Start einer offenen Regelkreissteuerung verwendet.
  • Nach der Berechnung des Positionszählwerts Ncntop schreitet die Routine zu Schritt 805 voran, in dem der Zählwert Crcv eines Anzahl-von-Malen-einer-Ausführung-eines-Wiederherstellungsprozesses-Zählers, der die Anzahl von Malen einer Ausführung von Wiederherstellungsprozessen zählt, inkrementiert bzw. erhöht wird. Bei einem nächsten Schritt 806 wird das Offene-Regelkreissteuerungsausführungsflag Xopen auf "ein" gesetzt, wodurch eine offene Regelkreissteuerung entsprechend einer in 60 gezeigten Offene-Regelkreissteuerungsroutine ausgeführt wird.
  • Während einer Ausführung eines Wiederherstellungsprozesses (das heißt einer offenen Regelkreissteuerung) wird ein Bestimmungsergebnis "nein" in Schritt 801 jedes Mal erzeugt, wenn diese Routine aktiviert wird. Die Routine schreitet zu Schritt 807 voran, in dem bestimmt wird, ob ein Offene-Regelkreissteuerungsabschlussflag Xopcmp "ein" ist, was einen Abschluss einer offenen Regelkreissteuerung bedeutet. Wenn das Offene-Regelkreissteuerungsabschlussflag Xopcmp "aus" ist, wird diese Routine beendet, ohne irgendwelche anderen Schritte auszuführen, um die offene Regelkreissteuerung fortzusetzen.
  • Wenn die offene Regelkreissteuerung danach abgeschlossen worden ist, schreitet die Routine zu Schritt 808 voran, in dem die nachstehend beschriebenen Einstellungen zur Ausführung einer Anfangsansteuerung wiederum ausgeführt werden: das Anfangsansteuerungsendflag Xend = aus (eine Anfangsansteuerung ist nicht beendet), das Positionsschaltmanipulationsflag Xchg = aus (keine Positionsschaltmanipulation), der Stromzufuhrzeitzählwert CT = 0, der Stromzufuhrzählerzählwert CASE = 0, der Kodiereinrichtungszählwert Ncnt = 0 und der gelernte Anfangspositionsabweichungswert Gcnt = 0. Dann wird in Schritt 809 zur nochmaligen Ausführung von Anstoßsteuerungen das P-Positionsseiten-Anstoßabschlussflag Xp auf "aus" gesetzt (eine P-Positionsseiten-Anstoßsteuerung ist nicht beendet worden) und das Nicht-P-Positionsseiten-Anstoßabschlussflag Xnp wird auf "aus" gesetzt (eine Nicht-P-Positionsseitenanstoßsteuerung ist nicht beendet worden).
  • In einem nächsten Schritt 810 wird der Steuerungsbetriebsartbestimmungswert "Betriebsart" auf einen Anfangswert "$FF" eingestellt. Die Routine schreitet zu Schritt 811 voran, in dem ein Offene-Regelkreissteuerungsausführungsflag Xopen auf "aus" gesetzt wird, was bedeutet, dass die offene Regelkreissteuerung (das heißt der Wiederherstellungsprozess) beendet worden ist. In einem nächsten Schritt 812 werden alle von dem Wiederherstellungsprozessausführungsflag Xrcv, den A-/B-Phasensignalanomalieerfassungsflags Xfab, Xfta und Xftb und ein (nachstehend beschriebenes) drittes Anomalieerfassungsflag Xfrcv auf "aus" gesetzt.
  • [A/B-Phasensignalanomalieerfassung].
  • Die in 53 gezeigte A-/B-Phasensignalanomalieerfassungsroutine, die jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert wird, bestimmt in der nachstehend beschriebenen Weise, ob eine Anomalie in einem A-Phasensignal oder einem B-Phasensignal der Kodiereinrichtung 46 vorhanden ist. Bei einer Aktivierung dieser Routine wird in Schritt 821 bestimmt, ob das Regelungserlaubnisflag Xfb "ein" ist, das P-Positionsseitenanstoßsteuerungsflag Xexp = "aus" ist und das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp = "aus" ist, das heißt, ob der vorliegende Status derart ist, dass eine Regelung ausgeführt wird und keine Anstoßsteuerung ausgeführt wird.
  • Wenn das Bestimmungsergebnis in Schritt 821 "nein" ist, das heißt, das Regelungserlaubnisflag Xfb ist "aus", das P-Positionsseitenanstoßsteuerungsflag Xexp = "ein" und das Nicht-P-Positionsseitenanstoßsteuerungsflag Xexnp = "ein", schreitet die Routine zu Schritt 822 voran, in dem alle von dem A-Phasensignalzählwert Na, dem B-Phasensignalzählwert Nb, einem A-Phasensignalflankenintervallzählwert ΔTa und einem B-Phasensignalflankenintervallzählwert ΔTb auf "0" eingestellt werden (das heißt, sie werden zurückgesetzt). Dann wird diese Routine beendet.
  • Demgegenüber ist, wenn das Bestimmungsergebnis in Schritt 821"ja" ist, die A-/B-Phasensignalanomaliebestimmungsausführungsbedingung erfüllt. Die Routine schreitet zu Schritt 823 voran, in dem die Differenz ΔNab zwischen dem A-Phasensignalzählwert Na und dem B-Phasensignalzählwert Nb berechnet wird: ΔNab = |Na – Nb|,wobei der A-Phasensignal Zählwert Na und der B-Phasensignalzählwert Nb Werte sind, die durch Zählen von Flanken des A-Phasensignals und von Flanken des B-Phasensignals separat erhalten werden.
  • In einem nächsten Schritt 824 wird die A-/B-Phasensignalzählwertdifferenz ΔNab mit einem Anomaliebestimmungswert Kab (beispielsweise 3) verglichen. Wenn die A-/B-Phasensignalzählwertdifferenz ΔNab größer oder gleich dem Anomaliebestimmungswert Kab ist, wird bestimmt, dass entweder der A-Phasensignalzählwert Na oder der B-Phasensignalzählwert Nb anormal ist. Die Routine schreitet zu Schritt 825 voran, in dem das A-/B-Phasensignalanomalieerfassungsflag Xfab auf "ein" (anormal) gesetzt wird. Die Routine schreitet zu einem nächsten Schritt 826 voran.
  • Demgegenüber wird, wenn die A-/B-Phasensignalzählwertdifferenz ΔNab kleiner als der Anomaliebestimmungswert Kab ist, das A-/B-Phasensignalanomalieerfassungsflag Xfab auf "aus" (keine Anomalie) eingestellt, und die Routine schreitet zu einem nächsten Schritt 826 voran.
  • Wenn das A-Phasensignal und das B-Phasensignal in der Regelung normal ausgegeben werden, wird die Differenz ΔNab zwischen dem A-Phasensignalzählwert Na und dem B-Phasensignalzählwert Nb 0 oder 1. Folglich gibt die A-/B-Phasensignalzählwertdifferenz ΔNab, die größer oder gleich "2" ist, an, dass ein Impuls des A-Phasensignals oder des B-Phasensignals verloren worden ist oder ein Rauschimpuls vermischt worden ist (48). Folglich kann auf der Grundlage davon, ob die A-/B-Phasensignalzählwertdifferenz ΔNab größer oder gleich dem Anomaliebestimmungswert Kab ist, bestimmt werden, ob eine Anomalie in dem A-Phasensignal oder dem B-Phasensignal vorhanden ist. Obwohl gemäß diesem Ausführungsbeispiel der Anomaliebestimmungswert Kab auf "3" eingestellt ist, kann er auf "2", "4" oder einen Wert größer als "4" eingestellt sein.
  • Nachdem der Anomaliebestimmungsprozess unter Verwendung der A-/B-Phasensignalzielwertdifferenz ΔNab in der vorstehend beschriebenen Weise ausgeführt worden ist, schreitet die Routine zu Schritt 826 voran, in dem der A-Phasensignalflankenintervallzählwert ΔTa und der B-Phasensignalflankenintervallzählwert ΔTb inkrementiert werden. Dann schreitet die Routine zu Schritt 827 voran, in dem das A-Phasensignalflankenintervall ΔTa mit einem Anomaliebestimmungswert Kta (beispielsweise 10 mal ein Durchschnittswert von ΔTa) verglichen wird. Wenn das A-Phasensignalflankenintervall ΔTa größer oder gleich dem Anomaliebestimmungswert Kta ist, wird bestimmt, dass das A-Phasensignal anormal ist. Die Routine schreitet zu Schritt 828 voran, in dem das A-Phasensignalanomalieerfassungsflag Xfta auf "ein" (anormal) gesetzt wird. Die Routine schreitet zu einem nächsten Schritt 829 voran.
  • Demgegenüber schreitet, wenn das A-Phasensignalflankenintervall ΔTa kleiner als Kta ist, die Routine zu einem nächsten Schritt 829 voran, wobei das A-Phasensignalanomalieerfassungsflag Xfta "aus" gehalten wird (keine Anomalie). In Schritt 829 wird das B-Phasensignalflankenintervall ΔTb mit einem Anomaliebestimmungswert Ktb (beispielsweise 10 mal ein Durchschnittswert von ΔTb) verglichen. Wenn das B-Phasensignalflankenintervall ΔTb größer oder gleich dem Anomaliebestimmungswert Ktb ist, wird bestimmt, dass das B-Phasensignal anormal ist. Die Routine schreitet zu Schritt 830 voran, in dem das B-Phasensignalanomalieerfassungsflag Xftb auf "ein" (anormal) gesetzt wird. Dann wird diese Routine beendet.
  • Demgegenüber wird, wenn das B-Phasensignalflankenintervall ΔTb kleiner als Ktb ist, die Routine beendet, wobei das B-Phasensignalanomalieerfassungsflag Xftb "aus" (keine Anomalie) gehalten wird und die Routine beendet wird.
  • Das A-Phasensignalflankenintervall ΔTa und das B-Phasensignalflankenintervall ΔTb variieren mit der Rotordrehgeschwindigkeit. Folglich gibt das Flankenintervall ΔTa oder ΔTb, das während der Regelung zu lange ist, an, dass der Rotor 32 einen anormalen Stop ausgeführt hat, eine zugehörige Drehgeschwindigkeit in anormaler Weise verkleinert worden ist oder ein Impulsverlust stattgefunden hat (siehe 48). Ob eine Anomalie in dem A-Phasensignal oder dem B-Phasensignal vorhanden ist, kann auf der Grundlage davon bestimmt werden, ob das Flankenintervall ΔTa oder ΔTb größer oder gleich Kta oder Ktb (beispielsweise 10 mal ein Durchschnittswert von ΔTa und ΔTb) ist.
  • Wenn das Flankenintervall ΔTa oder ΔTb zu kurz ist, kann ein Rauschimpuls irrtümlicherweise als ein reguläres Impulssignal erkannt worden sein. Angesichts dessen kann auf der Grundlage davon, ob das Flankenintervall ΔTa oder ΔTb kürzer oder gleich einem vorgeschriebenen Anomaliebestimmungswert ist, bestimmt werden, ob eine Anomalie in dem A-Phasensignal oder dem B-Phasensignal vorhanden ist.
  • Alternativ hierzu kann lediglich einer des Anomaliebestimmungsprozesses (das heißt Schritte 823825), der die A-/B-Phasensignalzählwertdifferenz ΔNab verwendet, und des Anomaliebestimmungsprozesses (das heißt Schritte 826830), der die Flankenintervalle ΔTa und ΔTb verwendet, ausgeführt werden (der andere Prozess wird weggelassen).
  • [Umkehrungszähler]
  • Eine in 54 gezeigte Umkehrungszählerroutine, die durch eine A-/B-Phasenunterbrechungsverarbeitung ausgeführt wird, zählt auf die nachstehend beschriebene Weise die Anzahl von Malen, die die Drehrichtung des Rotors 32 hintereinander entgegen einer Drehrichtungsanweisung umgekehrt wird. Bei einer Aktivierung dieser Routine wird in Schritt 831 bestimmt, ob der Drehrichtungsanweisungswert D = "1" (die Drehrichtung von der P-Positionsrichtung zu der Nicht-P-Positionsrichtung), "0" (Stop) oder "–1" (die Drehrichtung von der Nicht-P-Positionsrichtung zu der P-Positionsrichtung) ist. Wenn der Drehrichtungsanweisungswert D = "0" (Stop) ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Wenn der Drehrichtungsanweisungswert D = "1" (die Drehrichtung von der P-Positionsrichtung zu der Nicht-P-Positionsrichtung) ist, schreitet die Routine zu Schritt 832 voran, in dem auf der Grundlage davon, ob ein vorangegangener Kodiereinrichtungszählwert Ncnt(i – 1) minus einem derzeitigen Kodiereinrichtungszählwert Ncnt(i) größer oder gleich "1" ist, bestimmt wird, ob sich die Drehrichtung des Rotors 32 entgegen der Drehrichtungsanweisung umgekehrt hat (das heißt, der Kodiereinrichtungszählwert Ncnt hat sich verkleinert). Wenn sich die Drehrichtung des Rotors 32 umgekehrt hat, schreitet die Routine zu Schritt 834 voran, in dem der Zählwert Cr eines Umkehrungszählers, der die Anzahl von Malen einer Umkehrung zählt, inkrementiert wird. Wenn sich die Drehrichtung des Rotors 32 nicht umgekehrt hat, schreitet die Routine zu Schritt 835 voran, in dem der Zählwert Cr auf "0" zurückgesetzt wird.
  • Wenn der Drehrichtungsanweisungswert D = "–1" (die Drehrichtung von der Nicht-P-Positionsrichtung zu der P-Positionsrichtung) ist, schreitet die Routine zu Schritt 833 voran, in dem auf der Grundlage davon, ob ein vorangegangener Kodiereinrichtungszählwert Ncnt(i – 1) minus einem derzeitigen Kodiereinrichtungszählwert Ncnt(i) kleiner oder gleich "–1" ist, bestimmt wird, ob sich die Drehrichtung des Rotors 32 entgegen der Drehrichtungsanweisung umgekehrt hat (das heißt, der Kodiereinrichtungszählwert Ncnt hat sich vergrößert). Wenn sich die Drehrichtung des Rotors 32 umgekehrt hat, schreitet die Routine zu Schritt 836 voran, in dem der Zählwert Cr inkrementiert wird. Wenn sich die Drehrichtung des Rotors 32 nicht umgekehrt hat, schreitet die Routine zu Schritt 835 voran, in dem der Zählwert Cr auf "0" zurückgesetzt wird.
  • [Umkehrungsbestimmung]
  • Eine in 55 gezeigte Umkehrungsbestimmungsroutine wird jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert. Bei einer Aktivierung dieser Routine wird in Schritt 841 bestimmt, ob das Regelungsflag Xb "ein" ist, das P-Positionsseiten-Anstoßsteuerungsflag Xexp "aus" ist und das Nicht-P-Positionsseiten-Anstoßsteuerungsflag Xexnp "aus" ist, das heißt, ob der derzeitige Status derart ist, dass ein Regelung ausgeführt wird und keine Anstoßsteuerungen ausgeführt werden. Wenn das Bestimmungsergebnis in Schritt 841 "nein" ist, das heißt, das Regelungsflag Xfb ist "aus", das P-Positionsseiten-Anstoßsteuerungsflag Xepx ist "ein" oder das Nicht-P-Positionsseiten-Anstoßsteuerungsflag Xexnp ist "ein", schreitet die Routine zu Schritt 844 voran, in dem das Umkehrungserfassungsflag Xr auf "aus" gesetzt wird. Dann wird diese Routine beendet.
  • Demgegenüber ist, wenn das Bestimmungsergebnis in Schritt 841 "ja" ist, die Umkehrungsbestimmungsausführungsbedingung erfüllt. Die Routine schreitet zu Schritt 842 voran, in dem auf der Grundlage davon, ob ein Umkehrungszählwert Cr, der in der Umkehrungszählerroutine gemäß 54 bestimmt worden ist, größer oder gleich einem Anomaliebestimmungswert Kr (beispielsweise 4) ist, bestimmt wird, ob der Rotor 32 damit fortfährt, sich in eine Richtung entgegen einer Drehrichtungsanweisung zu drehen.
  • Wenn der Umkehrungszählwert Cr größer oder gleich dem Anomaliebestimmungswert Kr ist, schreitet die Routine zu Schritt 843 voran, in dem das Umkehrungserfassungsflag Xr auf "ein" gesetzt wird, um über die Umkehrungsbestimmung zu entscheiden. Wenn der Umkehrungszählwert Cr kleiner als der Anomaliebestimmungswert Kr ist, schreitet die Routine zu Schritt 844 voran, in dem das Umkehrungsbestimmungsflag Xr "aus" gehalten wird.
  • [Systemanomaliediagnose]
  • Eine in 56 und 57 gezeigte Systemanomaliediagnoseroutine, die jede vorbestimmte Zeit (beispielsweise alle 8 ms) aktiviert wird, dient als die Fehlfunktionsüberwachungseinrichtung gemäß den Patentansprüchen. Bei einer Aktivierung dieser Routine wird in Schritt 851 bestimmt, ob die nachstehend genannten Anomaliediagnoseausführungskriterien (1)–(3) erfüllt sind:
    • (1) Eine vorgeschriebene Zeit (beispielsweise 1s) ist seit einer Zuführung einer Energie zu der ECU 41 in Reaktion auf eine Manipulation des (nicht gezeigten) Zündschalters vergangen.
    • (2) Keine Anstoßsteuerungen werden ausgeführt (das heißt, das P-Positionsseiten-Anstoßsteuerungsflag Xexp ist "aus" und das Nicht-P-Positionsseiten-Anstoßflag Xexnp ist "aus").
    • (3) Kein Wiederherstellungsprozess wird ausgeführt (das heißt, das Wiederherstellungsprozessausführungsflag Xrcv ist "aus").
  • Wenn nur eines der drei Kriterien (1)–(3) nicht erfüllt ist, ist die Anomaliediagnoseausführungsbedingung nicht erfüllt. Die Routine schreitet zu Schritt 852 voran, in dem die Zählwerte Cfnsw und Cfcnt von (nachstehend beschriebenen) Provisorische-Anomaliezustand-Fortsetzungszeitzählern auf "0" zurückgesetzt werden. Dann wird diese Routine beendet.
  • Demgegenüber ist, wenn alle Kriterien (1)–(3) erfüllt sind, die Anomaliediagnoseausführungsbedingung erfüllt und die Routine schreitet von Schritt 851 zu Schritt 853 voran, in dem bestimmt wird, ob Anstoßsteuerungen abgeschlossen worden sind (das heißt, das P-Positionsseiten-Anstoßabstoßflag Xp ist "ein" und das Nicht-P-Positionsseiten-Anstoßabschlussflag Xnp ist "ein"). Wenn bestimmt wird, dass Anstoßsteuerungen abgeschlossen worden sind, schreitet die Routine zu Schritt 854 voran, in dem bestimmt wird, ob der Ausgangswellensensor 14 normal ist und eine angewiesene Schaltposition mit einer von einem Ausgabesignal Vnsw des Ausgangswellensensors 14 erfassten Position übereinstimmt. Wenn das Bestimmungsergebnis "ja" ist, schreitet die Routine zu Schritt 856 voran, in dem der Zählwert Cfnsw eines ersten Provisorische-Anomaliezustand-Fortsetzungszeitzählers auf "0" zurückgesetzt wird.
  • Demgegenüber schreitet, wenn das Bestimmungsergebnis in Schritt 854 "nein" ist, die Routine zu Schritt 855 voran, in dem der Zählwert Cfnsw des ersten Provisorische-Anomaliezustand-Fortsetzungszeitzählers inkrementiert wird, um die Zeit einer Fortsetzung des Zustands zu messen, bei dem der Bereich des Ausgabesignals Vnsw des Ausgangswellensensors 14 nicht mit der angewiesenen Schaltposition übereinstimmt. Bei einem nächsten Schritt 857 wird bestimmt, ob der Zählwert Cfnsw größer als ein Anomaliebestimmungswert Kfnsw ist, der auf eine Zeit (beispielsweise 10 s) eingestellt ist, die in ausreichendem Maße länger als eine längste Zeit ist, die eine normale Positionsschaltoperation erfordert.
  • Folglich wird, wenn der Zählwert Cfnsw größer als der Anomaliebestimmungswert Kfnsw ist, was einen Zustand bezeichnet, bei dem eine Positionsschaltoperation nicht normal ausgeführt wird, bestimmt, dass eine Anomalie in dem System vorhanden ist. Die Routine schreitet zu Schritt 858 voran, in dem das erste Anomalieerfassungsflag Xfnsw auf "ein" gesetzt wird. Wenn das Bestimmungsergebnis in Schritt 857 "nein" ist, wird das erste Anomalieerfassungsflag Xfnsw "aus" gehalten (keine Anomalie).
  • Nachdem die erste Anomaliediagnose unter Verwendung des Ausgabesignals Vnsw des Ausgangswellensensors 14 in der vorstehend beschriebenen Weise ausgeführt worden ist, schreitet die Routine zu Schritt 859 gemäß 57 voran, in dem bestimmt wird, ob die Differenz |Ncnt – Acnt| zwischen einem Kodiereinrichtungszählwert Ncnt und einem Sollzählwert Acnt größer als ein vorgeschriebener Wert Kcnt (beispielsweise ein Wert, der 5° entspricht) ist. Wenn die Zählwertdifferenz |Ncnt – Acnt| kleiner oder gleich dem vorgeschriebenen Wert Kcnt ist, schreitet die Routine zu Schritt 861 voran, in dem der Zählwert Cfcnt eines zweiten Provisorische-Anomaliezustand-Fortsetzungszeitzählers auf "0" zurückgesetzt wird.
  • Demgegenüber schreitet, wenn das Bestimmungsergebnis in Schritt 859 "ja" ist, die Routine zu Schritt 860 voran, in dem der Zählwert Cfcnt des zweiten Provisorische-Anomaliezustand-Fortsetzungszeitzählers inkrementiert wird, um die Zeit einer Fortsetzung des Zustands zu messen, bei dem die Zählwertdifferenz |Ncnt – Acnt| größer als der vorgeschriebene Wert Kcnt ist. Bei einem nächsten Schritt 862 wird bestimmt, ob der Zählwert Cfcnt größer als ein Anomaliebestimmungswert Kfcnt ist, der auf eine Zeit (beispielsweise 10 s) eingestellt ist, die in ausreichendem Maße länger als die längste Zeit ist, die eine normale Positionsschaltoperation erfordert.
  • Folglich wird, wenn der Zählwert Cfcnt größer als der Anomaliebestimmungswert Kfcnt ist, was einen Zustand bezeichnet, bei dem eine Positionsschaltoperation nicht normal ausgeführt wird, bestimmt, dass eine Anomalie in dem System vorhanden ist. Die Routine schreitet zu Schritt 863 voran, in dem das zweite Anomalieerfassungsflag Xfcnt auf "ein" gesetzt wird. Wenn das Bestimmungsergebnis in Schritt 862 "nein" ist, wird das zweite Anomalieerfassungsflag Xfcnt "aus" gehalten (keine Anomalie).
  • Nachdem die zweite Anomaliediagnose unter Verwendung der Zählwertdifferenz |Ncnt – Acnt| in der vorstehend beschriebenen Weise ausgeführt worden ist, schreitet die Routine zu Schritt 864 voran, in dem bestimmt wird, ob ein Anzahl-von-Malen-einer-Ausführung-von-Wiederherstellungsprozessen-Zählwert Crcv, der in Schritt 805 der Wiederherstellungsverarbeitungsroutine gemäß 51 erhalten worden ist, größer oder gleich einem Anomaliebestimmungswert Kcrv (beispielsweise 3) ist. Wenn der Wiederherstellungsprozesszählwert Crcv größer oder gleich dem Anomaliebestimmungswert Kcrv ist, wird bestimmt, dass eine Anomalie in dem System vorhanden ist. Die Routine schreitet zu Schritt 865 voran, in dem ein drittes Anomalieerfassungsflag Xfrcv auf "ein" gesetzt wird. Dann wird diese Routine beendet. Das heißt, es wird bestimmt, dass das System eine Anomalie aufweist, wenn Wiederherstellungsprozesse eine einem Anomaliebestimmungswert Kcrv entsprechende Anzahl von Malen (beispielsweise 3 mal) oder mehr hintereinander ausgeführt werden, was einen Zustand bezeichnet, bei dem das Regelungssystem nicht normal arbeitet.
  • Demgegenüber wird, wenn der Wiederherstellungsprozesszählwert Crcv kleiner als der Anomaliebestimmungswert Kcrv ist, diese Routine beendet, wobei das dritte Anomalieerfassungsflag Xfrcv "aus" gehalten wird (keine Anomalie).
  • [Ausfallsicherungsprozess]
  • Eine in 58 und 59 gezeigte Ausfallsicherungsverarbeitungsroutine, die jede vorbestimmte Zeit (beispielsweise alle 8 ms) aktiviert wird, dient als die Ausfallsicherungseinrichtung gemäß den Patentansprüchen. Bei einer Aktivierung dieser Routine wird in Schritt 901 bestimmt, ob die nachstehend genannten Ausfallsicherungsprozessausführungskriterien (1) und (2) erfüllt sind:
    • (1) Der derzeitige Zustand ist derart, dass ein Positionsschalten durch eine offene Regelkreissteuerung ausgeführt werden kann (das heißt, das Systemfehlfunktionsflag Xfailoff ist "aus").
    • (2) Zumindest eines der drei Anomalieerfassungsflags Xfnsw, Xfcnt und Xfrcv, die in der Anomaliediagnoseroutine gemäß 56 gesetzt werden, ist "ein" (anormal).
  • Wenn nur eines der zwei Kriterien (1) und (2) nicht erfüllt ist, ist die Ausfallsicherungsprozessausführungsbedingung nicht erfüllt. Dann wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber ist, wenn beide Kriterien (1) und (2) erfüllt sind, die Ausfallsicherungsprozessausführungsbedingung erfüllt und die Routine schreitet von Schritt 901 zu Schritt 902 voran, in dem ein Ausfallsicherungsprozessausführungsflag Xfsop auf "ein" gesetzt wird. Bei einem nächsten Schritt 903 wird der Fahrer alarmiert, indem eine Alarmlampe eingeschaltet wird oder eine Alarmanzeige auf einem Informationsanzeigeabschnitt oder dergleichen eines eingebauten Messinstruments ausgeführt wird.
  • Dann schreitet die Routine zu Schritt 904 voran, in dem bestimmt wird, ob der Zählwert Cfsop eines Ausfallsicherungsprozessintervallzählers, der die vergangene Zeit seit dem Ende eines vorangegangenen Ausfallsicherungsprozesses misst, kleiner als ein vorgeschriebener Wert Kfsop ist. Der vorgeschriebene Wert Kfsop wird auf eine Zeit (beispielsweise 500 ms) eingestellt, die etwas länger als eine Zeit ist, die durch den Eingriffsabschnitt 23a der Arretierfeder erforderlich ist, zu dem Boden der Haltevertiefung 24 oder 25 des Arretierhebels 15 entlang der zugehörigen geneigten Seitenwand aufgrund einer elastischen Kraft der Arretierfeder 23 nach dem Ende eines vorangegangenen Ausfallsicherungsprozesses herabzugleiten.
  • Wenn der Zählwert Cfsop des Ausfallsicherungsprozessintervallzählers (das heißt die vergangene Zeit seit dem Ende des vorangegangenen Ausfallsicherungsprozesses) kleiner als ein vorgeschriebener Wert Kfsop ist, schreitet die Routine zu Schritt 905 voran, in dem der Zählwert Cfsop inkrementiert wird, um die vergangene Zeit seit dem Ende des vorangegangenen Ausfallsicherungsprozesses zu zählen. Dann schreitet die Routine zu Schritt 906 voran, in dem der Zustand, das eine Stromzufuhr für keine Phase bewirkt wird, aufrechterhalten wird. Bei einem nächsten Schritt 907 wird das Stromzufuhrflag Xon auf "aus" gesetzt (Stromzufuhr aus). Dann wird diese Routine beendet. Als Ergebnis wird der Zustand, dass eine Stromzufuhr für keine Phase bewirkt wird, aufrechterhalten, bis die vergangene Zeit seit dem Ende des vorangegangenen Ausfallsicherungsprozesses die Zeit, die dem vorgeschriebenen Wert Kfsop entspricht, überschreitet.
  • Wenn der Ausfallsicherungsprozessintervallzählwert Cfsop danach größer oder gleich dem vorgeschriebenen Wert Kfsop (das heißt dem Wert, der der vergangenen Zeit seit dem Ende des vorangegangenen Ausfallsicherungsprozesses entspricht) wird, schreitet die Routine von Schritt 904 zu Schritt 908 voran, in dem bestimmt wird, ob das Offene-Regelkreissteuerungsausführungsflag Xopen "aus" ist. Wenn das Flag Xopen "aus" ist, schreitet die Routine zu Schritt 909 voran, in dem bestimmt wird, ob die angewiesene Schaltposition sft geschaltet worden ist. Wenn bestimmt wird, dass die angewiesene Schaltposition Sft nicht geschaltet worden ist, schreitet die Routine zu Schritt 910 voran, in dem der Zustand, dass eine Stromzufuhr für keine Phase bewirkt wird, aufrecht erhalten wird.
  • Demgegenüber schreitet, wenn in Schritt 909 bestimmt wird, dass die angewiesene Schaltposition sft geschaltet worden ist, die Routine zu Schritt 911 voran, in dem ein derzeitiger Positionszählwert Ncntop unter Verwendung eines derzeitigen Ausgabesignalwerts Vnsw des Ausgangswellensensors 14 auf die gleiche Weise wie in Schritt 804 der Wiederherstellungsverarbeitungsroutine gemäß 51 berechnet wird. Der berechnete Positionszählwert Ncntop wird als ein Anfangswert des Positionszählwerts Ncntop bei dem Start einer offenen Regelkreissteuerung verwendet.
  • Dann schreitet die Routine zu Schritt 912 voran, in dem das Offene-Regelkreissteuerungsausführungsflag Xopen auf "ein" gesetzt wird und eine offene Regelkreissteuerung gemäß der in 60-62 gezeigten Offene-Regelkreissteuerungsroutine ausgeführt wird. In einem nächsten Schritt 913 wird der Zählwert Cfs eines Anzahl-von-Malen-einer-Ausführung-von-Ausfallsicherungsprozessen-Zählers, der die Anzahl von Malen einer Ausführung von Ausfallsicherungsprozessen zählt, inkrementiert. Dann wird diese Routine beendet.
  • Wenn in Schritt 908 bestimmt wird, dass das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist, schreitet die Routine zu Schritt 914 gemäß 59 voran, in dem bestimmt wird, ob ein Offene-Regelkreissteuerungsabschlussflag Xopcmp "ein" ist (eine offene Regelkreissteuerung ist abgeschlossen). Wenn das Flag Xopcmp "aus" ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber schreitet, wenn in Schritt 914 bestimmt wird, dass das Offene-Regelkreissteuerungsabschlussflag Xopcmp "ein" ist, die Routine zu Schritt 915 voran, in dem bestimmt wird, ob eine angewiesene Schaltposition mit einer Position, die von einem Ausgabesignalwert Vnsw des Ausgangswellensensors 14 erfasst ist, nicht übereinstimmt. Wenn das Bestimmungsergebnis "ja" ist, schreitet die Routine zu Schritt 916 voran, in dem der Ausfallsicherungsprozesszählwert Cfs auf "0" zurückgesetzt wird. Das Offene-Regelkreissteuerungsabschlussflag Xopcmp wird in Schritt 918 auf "aus" gesetzt und das Offene-Regelkreissteuerungsausführungsflag Xopen wird in Schritt 919 auf "aus" gesetzt. Dann wird diese Routine beendet.
  • Wenn in Schritt 915 bestimmt wird, dass die angewiesene Schaltposition mit der Position, die von dem Ausgabesignalwert Vnsw des Ausgangswellensensors 14 erfasst ist, übereinstimmt, schreitet die Routine zu Schritt 917 voran, in dem bestimmt wird, ob der Ausfallsicherungsprozesszählwert Cfs größer oder gleich einem Fehlfunktionsbestimmungswert (beispielsweise 3) ist. Wenn der Zählwert Cfs kleiner als der Fehlfunktionsbestimmungswert ist, wird hier noch kein Bestimmungsergebnis "Fehlfunktion" erzeugt. Stattdessen wird das Offene-Regelkreissteuerungsabschlussflag Xopcmp in Schritt 918 auf "aus" gesetzt und das Offene-Regelkreissteuerungsausführungsflag Xopen wird in Schritt 919 auf "aus" gesetzt. Dann wird diese Routine beendet.
  • Wenn der Ausfallsicherungsprozesszählwert Cfs danach größer oder gleich dem Fehlfunktionsbestimmungswert (beispielsweise 3) wird, wird nun bestimmt, dass das System eine Fehlfunktion aufweist (das heißt, das System ist in einem Zustand, bei dem ein Positionsschalten auch nicht durch eine offene Regelkreissteuerung ausgeführt werden kann), und die Routine schreitet von Schritt 917 zu Schritt 920 voran, in dem das Systemfehlfunktionsflag Xfailoff auf "1" gesetzt wird. In einem nächsten Schritt 921 wird die Stromzufuhr für alle Phasen ausgeschaltet. Dann wird diese Routine beendet.
  • [Offene Regelkreissteuerung]
  • Eine offene Regelkreissteuerung wird auf die nachstehend beschriebene Weise entsprechend der in 60-62 gezeigten Offene-Regelkreissteuerungsroutine ausgeführt, die jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert wird. Bei einer Aktivierung dieser Routine wird in Schritt 931 bestimmt, ob das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist. Wenn das Flag Xopen "aus" ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber schreitet, wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist, die Routine von Schritt 931 zu Schritt 932 voran, in dem der Zählwert Top eines Zeitzählers, der eine Zeit zählt, inkrementiert wird. In einem nächsten Schritt 933 wird bestimmt, ob der Zählwert Top des Zeitzählers größer oder gleich einer Stromzufuhrzeit Tm einer Stromzufuhrphase geworden ist. Wenn der Zeitzählwert Top kleiner als die Stromzufuhrzeit Tm ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Mit dieser Maßnahme werden Schritt 934 und die nachfolgenden Schritte bei jeder Stromzufuhrzeit Tm ausgeführt.
  • Wenn der Zeitzählwert Top danach größer oder gleich der Stromzufuhrzeit Tm der Stromzufuhrphase geworden ist, schreitet die Routine von Schritt 933 zu Schritt 934 voran, in dem eine Ansteuerungsrichtung bzw.
  • Antriebsrichtung des Rotors 32 durch Vergleichen eines derzeitigen Positionszählwerts Ncntop mit einem Sollzählwert Acnt bestimmt wird. Wenn der derzeitige Positionszählwert Ncntop kleiner als der Sollzählwert Acnt ist, wird bestimmt, dass die Ansteuerungsrichtung des Rotors 32 die Drehrichtung von der P-Positionsseite zu der Nicht-P-Positionsseite (das heißt die übliche oder normale Drehrichtung) ist. Die Routine schreitet zu Schritt 935 voran, in dem ein Stromzufuhrphasenbestimmungswert Mptnop um 1 erhöht wird. Bei einem nächsten Schritt 936 wird der Positionszählwert Ncntop um 2 erhöht, da der Rotor 32 um einen Winkel (3,75°) entsprechend zwei Zählwerten durch einen einzelnen Stromzufuhrversuch gedreht wird.
  • Demgegenüber wird, wenn der derzeitige Positionszählwert Ncntop größer als der Sollzählwert Rcnt ist, bestimmt, dass die Ansteuerungsrichtung des Rotors 32 die Drehrichtung von der Nicht-P-Positionsseite zu der P-Positionsseite (das heißt die Umkehrdrehrichtung) ist. Die Routine schreitet zu Schritt 937 voran, in dem der Stromzufuhrphasenbestimmungswert Mptnop um 1 erniedrigt (dekrementiert) wird. Bei einem nächsten Schritt 938 wird der Positionszählwert Ncntop um 2 erniedrigt.
  • Dann schreitet die Routine zu Schritt 939 voran, in dem ein Restwert Mptnop%6 durch Teilen des Stromzufuhrphasenbestimmungswerts Mptnop durch "6" berechnet wird. Die Zahl "6" entspricht einer Vergrößerung oder Verkleinerung des Stromzufuhrphasenbestimmungswerts Mptnop, die auftritt, wenn eine Stromzufuhr für alle Phasen ringsum bei einer offenen Regelkreissteuerung bewirkt wird.
  • Nach der Berechnung des Werts Mptnop%6 schreitet die Routine zu Schritt 940 voran, in dem eine Stromzufuhrphase entsprechend dem Wert Mptnop%6 unter Verwendung einer in 63 gezeigten Tabelle ausgewählt wird und eine Stromzufuhr für diese Phase bewirkt wird. Gemäß diesem Ausführungsbeispiel werden Stromzufuhrphasen so ausgewählt, dass der Rotor 32 durch das Ein-/Zwei-Phasen-Stromzufuhrverfahren während einer offenen Regelkreissteuerung angesteuert wird, wobei der Anfangswert des Stromzufuhrphasenbestimmungswerts Mptnop so eingestellt wird, dass die offene Regelkreissteuerung mit einer Zwei-Phasen-Stromzufuhr (W- und U-Phasen, U- und V-Phasen oder V- und W-Phasen) gestartet wird, das heißt, dass der Wert Mptnop%6 1, 3 oder 5 wird.
  • Dann schreitet die Routine zu Schritt 941 in 61 voran, in dem eine Positionsabweichung dev entsprechend der nachstehenden Gleichung berechnet wird: dev = |Acnt – Ncntop|/2.
  • Wie es aus dieser Gleichung ersichtlich ist, ist die Positionsabweichung dev 1/2 des Absolutwerts der Differenz zwischen dem Sollzählwert Acnt und dem derzeitigen Positionszählwert Ncntop.
  • Bei einem nächsten Schritt 942 wird die Positionsabweichung dev mit einem Drehgeschwindigkeitsparameter mspd verglichen, der entsprechend der Positionsabweichung dev vergrößert oder verkleinert wird. Die Drehgeschwindigkeit und die Beschleunigung/Abbremsung des Rotors 32 werden durch Einstellen der Stromzufuhrzeit Tm entsprechend dem Drehgeschwindigkeitsparameter mspd unter Verwendung einer in 65 gezeigten Tabelle gesteuert. Wenn sich in diesem Fall die Solldrehgeschwindigkeit vergrößert, vergrößert sich der Drehgeschwindigkeitsparameter mspd und die Stromzufuhrzeit tm wird kürzer eingestellt. Der Anfangswert des Drehgeschwindigkeitsparameters mspd ist "0".
  • Wenn in Schritt 942 bestimmt wird, dass die Positionsabweichung dev größer als der Drehgeschwindigkeitsparameter mspd ist, schreitet die Routine zu Schritt 943 voran, in dem der Drehgeschwindigkeitsparameter mspd um 1 erhöht wird. In einem nächsten Schritt 944 wird ein minimaler Drehgeschwindigkeitsparameter mspdmin auf "0" eingestellt. Der minimale Drehgeschwindigkeitsparameter mspdmin ist ein Parameter (unterer Grenzschutzwert) zur Begrenzung des minimalen Werts des Drehgeschwindigkeitsparameters mspd. Auf diese Weise wird der minimale Drehgeschwindigkeitsparameter mspdmin auf "0" eingestellt, wenn die Positionsabweichung dev größer als der Drehgeschwindigkeitsparameter mspd ist, wodurch die Stromzufuhrzeit tm auf eine längste Zeit (beispielsweise 50 ms) in einer Periode von dem Start einer offenen Regelkreissteuerung zu einem Start einer Drehung des Rotors 32 eingestellt werden kann.
  • Demgegenüber schreitet, wenn in Schritt 942 bestimmt wird, dass die Positionsabweichung dev kleiner als der Drehgeschwindigkeitsparameter mspd ist, die Routine zu Schritt 945 voran, in dem der Drehgeschwindigkeitsparameter mspd um 1 erniedrigt bzw. dekrementiert wird. Bei einem nächsten Schritt 946 wird der minimale Drehgeschwindigkeitsparameter mspdmin auf "4" eingestellt. Dies ermöglicht es, die Stromzufuhrzeit tm auf beispielsweise 5 ms oder weniger nach einem Start einer Drehung des Rotors 32 zu begrenzen.
  • Wenn in Schritt 942 bestimmt wird, dass die Positionsabweichung dev gleich dem Drehgeschwindigkeitsparameter mspd ist, schreitet die Routine zu Schritt 947 ohne eine Änderung des Drehgeschwindigkeitsparameter mspd voran. In Schritt 947 wird der minimale Drehgeschwindigkeitsparameter mspdmin auf "0" eingestellt.
  • Nachdem der Drehgeschwindigkeitsparameter mspd und der minimale Drehgeschwindigkeitsparameter mspdmin in der vorstehend beschriebenen Weise eingestellt worden sind, schreitet die Routine zu Schritt 948 voran, in dem ein maximaler Drehgeschwindigkeitsparameter mspdmax entsprechend einer Batteriespannung (Energiequellenspannung) unter Verwendung einer Tabelle gemäß 64 eingestellt wird. Der maximale Drehgeschwindigkeitsparameter mspdmax ist ein Parameter (oberer Grenzschutzwert) zur Begrenzung des maximalen Werts des Drehgeschwindigkeitsparameters mspd. Wenn sich die Batteriespannung vergrößert, wird der maximale Drehgeschwindigkeitsparameter mspdmax vergrößert, wodurch die Drehgeschwindigkeit des Rotors 32 vergrößert werden kann.
  • In einem nächsten Schritt 949 wird eine Schutzverarbeitung ausgeführt, so dass der Drehgeschwindigkeitsparameter mspd in den Bereich von dem minimalen Drehgeschwindigkeitsparameter mspdmin zu dem maximalen Drehgeschwindigkeitsparameter mspdmax fällt. Wenn beispielsweise der Drehgeschwindigkeitsparameter mspd, wie er in Schritten 943 oder 945 aktualisiert ist, kleiner als der minimale Drehgeschwindigkeitsparameter mspdmin ist, wird der Drehgeschwindigkeitsparameter mspd gleich dem minimalen Drehgeschwindigkeitsparameter mspdmin eingestellt. Wenn der Drehgeschwindigkeitsparameter mspd, wie er aktualisiert ist, größer als der maximale Drehgeschwindigkeitsparameter mspdmax ist, wird der Drehgeschwindigkeitsparameter mspd gleich dem maximalen Drehgeschwindigkeitsparameter mspdmax eingestellt. Wenn mspdmin ≤ mspd ≤ mspdmax gilt, wird der Drehgeschwindigkeitsparameter mspd, wie er aktualisiert ist, verwendet, wie er ist.
  • Dann schreitet die Routine zum Schritt 950 voran, in dem eine Stromzufuhrzeit tm entsprechend dem Drehgeschwindigkeitsparameter mspd unter Verwendung der Tabelle gemäß 65 eingestellt wird. In dem Beispiel gemäß 65 wird, wenn der Drehgeschwindigkeitsparameter mspd in einem Bereich von 0 bis 3 liegt, die Stromzufuhrzeit tm auf die längste Zeit (beispielsweise 50 ms) eingestellt, so dass die Drehphase des Rotors 32 und die Stromzufuhrphase bei einem Starten zuverlässig miteinander synchronisiert werden können. Wenn sich der Drehgeschwindigkeitsparameter mspd von 4 auf 9 vergrößert, wird die Stromzufuhrzeit tm in drei Schritten beispielsweise von 5 ms auf 3 ms verkleinert, so dass die Drehgeschwindigkeit des Rotors 32 in drei Schritten eingestellt werden kann. Die Stromzufuhrzeit tm kann in einem Schritt, in zwei Schritten oder in vier oder mehr Schritten geschaltet werden.
  • Nach der Einstellung der Stromzufuhrzeit tm schreitet die Routine zu Schritt 951 voran, in dem das Stromzufuhrflag Xon auf "ein" gesetzt wird. In einem nächsten Schritt 952 wird der Zeitzählwert Top gelöscht. Dann wird diese Routine beendet.
  • Wenn in Schritt 934 gemäß 60 bestimmt wird, dass der derzeitige Positionszählwert Ncntop gleich dem Sollzählwert Acnt ist, schreitet die Routine zu Schritt 955 gemäß 62 voran, in dem bestimmt wird, ob die Messzeit des Zeitzählers größer oder gleich einer vorgeschriebenen Zeit Khld (beispielsweise 500 ms) geworden ist. Wenn bestimmt wird, dass die Messzeit des Zeitzählers kürzer als die vorgeschriebene Zeit Khld ist, schreitet die Routine zu Schritt 956 voran, in dem die Stromzufuhr für alle Schritte ausgeschaltet wird. In einem nächsten Schritt 957 wird die Stromzufuhrzeit tm auf die vorgeschriebene Zeit Khld (beispielsweise 500 ms) eingestellt. Dann schreitet die Routine zu Schritt 952 gemäß 61 voran, in dem der Zeitzählwert Top gelöscht wird. Dann wird diese Routine beendet.
  • Mit dieser Maßnahme werden Schritt 934 gemäß 60 und die nachfolgenden Schritte nicht ausgeführt und somit wird die nächste offene Regelkreissteuerung nicht gestartet, bis die vorgeschriebene Zeit Khld (beispielsweise 500 ms) seit dem Ende der offenen Regelkreissteuerung abgelaufen ist. Das heißt, es wird nach dem Ende der offenen Regelkreissteuerung gewartet, bis der Eingriffsabschnitt 23A der Arretierfeder 23 zu dem Boden der Haltevertiefung 24 oder 25 des Arretierhebels 15 entlang der zugehörigen geneigten Seitenwand aufgrund einer elastischen Kraft der Arretierfeder 23 nach dem Ende eines vorangegangenen Ausfallsicherungsprozesses herabgleitet.
  • Wenn in Schritt 955 gemäß 2 bestimmt wird, dass der Zeitzählwert Top größer oder gleich dem vorgeschriebenen Wert Khld geworden ist, schreitet die Routine zu Schritt 985 voran, in dem der Stromzufuhrphasenbestimmungswert Mptnop auf "0" eingestellt wird und der Drehgeschwindigkeitsparameter mspd auf "0" eingestellt wird. In einem nächsten Schritt 959 wird das Offene-Regelkreissteuerungsabschlussflag Xopcmp auf "ein" gesetzt. Dann schreitet die Routine zu Schritt 960 voran, in dem die Stromzufuhrzeit tm auf "0" eingestellt wird. Nachdem das Stromzufuhrflag Xon auf "aus" in einem nächsten Schritt 961 gesetzt ist, schreitet die Routine zu Schritt 952 gemäß 61 voran, in dem der Zeitzählwert Top gelöscht wird. Dann wird diese Routine beendet.
  • In der vorstehend beschriebenen Routine wird das Ein-/Zwei-Phasen-Stromzufuhrverfahren bei einer offenen Regelkreissteuerung eingesetzt und die offene Regelkreissteuerung wird mit einer Zwei-Phasen-Stromzufuhr gestartet. Ferner wird, wie es in 50 gezeigt ist, die Stromzufuhrzeit tm der Stromzufuhrphase jedes von drei Schritten beispielsweise nach dem Start der offenen Regelkreissteuerung auf die längste Zeit (beispielsweise 50 ms) eingestellt, um dadurch einen sicheren Zugriff des Rotors 32 zu erhalten und die Drehphase des Rotors 32 und die Stromzufuhrphase zuverlässig miteinander zu synchronisieren. Die Stromzufuhrzeit wird danach steil verkürzt, wobei sie dann allmählich verkürzt wird, wenn sich die Drehgeschwindigkeit des Rotors 32 vergrößert. Als Ergebnis wird die Drehgeschwindigkeit des Rotors 32 behutsam vergrößert.
  • Um eine Drehgeschwindigkeit des Rotors 32 während der offenen Regelkreissteuerung zu folgern, wird eine Anfangsposition des Rotors 32 (das heißt ein Anfangswert des Positionszählwerts Ncntop) bei dem Start der offenen Regelkreissteuerung auf der Grundlage eines Ausgabesignalwerts des Ausgangswellensensors 14 berechnet. Dann wird der Positionszählwert Ncntop jedesmal um 2 erhöht (oder erniedrigt), wenn die Stromzufuhrphase geschaltet wird, wobei eine Drehposition des Rotors 32 auf der Grundlage eines sich ergebenden Positionszählwerts Ncntop gefolgert wird. Wenn die Differenz zwischen dem Positionszählwert Ncntop und einem Sollzählwert Acnt bis zu einem gewissen Umfang klein geworden ist, wird bestimmt, dass die Drehposition in einem Abbremsbereich gekommen ist. Die Stromzufuhrzeit tm wird allmählich verlängert, um die Drehgeschwindigkeit des Rotors 32 behutsam abzubremsen. Wenn der Positionszählwert Ncntop den Sollzählwert Acnt erreicht hat, wird bestimmt, dass der Rotor 32 die Zielposition erreicht hat, und die offene Regelkreissteuerung wird beendet.
  • Obwohl in der vorstehend beschriebenen Routine die Stromzufuhrzeit tm entsprechend dem Drehgeschwindigkeitsparameter mspd eingestellt wird, kann sie auf der Grundlage von zumindest einer/einem der Drehgröße nach einem Start einer Ansteuerung, der vergangenen Zeit nach dem Start einer Ansteuerung, der Drehgröße zu einer Zielposition und dem Lastdrehmoment eingestellt werden.
  • Obwohl in der vorstehend beschriebenen Routine die erste Stromzufuhr eine Zwei-Phasen-Stromzufuhr bei dem Start der offenen Regelkreissteuerung ist, kann sie eine Ein-Phasen-Stromzufuhr sein. Ferner ist das bei einer offenen Regelkreissteuerung einzusetzende Stromzufuhrverfahren nicht auf die Ein-/Zwei-Phasen-Stromzufuhr begrenzt. Es kann das Ein-Phasen-Stromzufuhrverfahren oder das Zwei-Phasen-Stromzufuhrverfahren sein.
  • [Motordrehmomentbegrenzung während einer offenen Regelkreissteuerung]
  • Eine in 66 gezeigte Motordrehmomentbegrenzungsroutine, die während einer offenen Regelkreissteuerung auszuführen ist, wird jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert. Bei einer Aktivierung dieser Routine wird in Schritt 971 bestimmt, ob das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist (eine offene Regelkreissteuerung wird ausgeführt). Wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist, schreitet die Routine zu Schritt 972 voran, in dem ein Motordrehmomentbegrenzungsflag Xtrq auf "ein" gesetzt wird. Wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "aus" ist, schreitet die Routine zu Schritt 973 voran, in dem das Motordrehmomentbegrenzungsflag Xtrq auf "aus" gesetzt wird. Diese Information des Motordrehmomentbegrenzungsflags Xtrq wird von der ECU 41 für eine Positionsschaltsteuerung zu einer (nicht gezeigten) ECU für eine Motorsteuerung gesendet.
  • Wenn sie die Information des Motordrehmomentbegrenzungsflags Xtrq, das "ein" ist, empfängt, steuert die Motorsteuerungs-ECU Motorsteuerungsparameter in derartige Richtungen, um das Motordrehmoment zu verringern, so dass die Positionsschaltoperation durch die offene Regelkreissteuerung in einem Zustand ausgeführt wird, bei dem das Motordrehmoment verringert ist.
  • Die Motorsteuerungsparameter, die in derartige Richtungen zu steuern sind, dass das Motordrehmoment verringert wird, können zumindest einer von Steuerungsparametern des Luftsystems, des Kraftstoffsystems und des Zündsystems sein. Im Falle des Luftsystems kann eine derzeitige Drosselventilposition beibehalten werden, indem verhindert wird, dass das Drosselventil in der Öffnungsrichtung angesteuert wird, oder indem das Drosselventil in der Schließrichtung in einem Ausmaß angesteuert wird, so dass ein Fahrzeugantrieb nicht behindert wird. Im Falle des Kraftstoffsystems kann eine Kraftstoffeinspritzgröße in einem derartigen Umfang begrenzt werden, dass ein Fahrzeugantrieb nicht behindert wird. Im Falle des Zündsystems kann eine verzögerte Zündzeitsteuerung auf eine derartige Weise eingestellt werden, dass ein Fahrzeugantrieb nicht behindert wird.
  • [Einstellen einer angewiesenen Schaltposition]
  • Eine Angewiesene-Schaltpositionseinstellroutine, die in 67 gezeigt ist, wird jede vorbestimmte Zeit (beispielsweise alle 8 ms) aktiviert. Bei einer Aktivierung dieser Routine wird in Schritt 981 bestimmt, ob das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist (eine offene Regelkreissteuerung wird ausgeführt). Wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist, wird ein Schalten der angewiesenen Schaltposition sft verhindert, indem ein Manipulationssignal außer acht gelassen wird, auch wenn der P-Positionsschalter 43 oder der Nicht-P-Positionsschalter 44 manipuliert wird.
  • Demgegenüber schreitet, wenn bestimmt wird, dass das Offene-Regelkreissteuerungsausführungsflag Xopen "aus" ist, die Routine zu Schritt 982 voran, in dem bestimmt wird, ob der P-Positionsschalter 433 manipuliert worden ist. Wenn der P-Positionsschalter 433 manipuliert worden ist, schreitet die Routine zu Schritt 983 voran, in dem die angewiesene Schaltposition sft auf die P-Position eingestellt wird.
  • Wenn der P-Positionsschalter 43 nicht manipuliert worden ist, schreitet die Routine zur Schritt 984 voran, in dem bestimmt wird, ob der Nicht-P-Positionsschalter 44 manipuliert worden ist. Wenn der Nicht-P-Positionsschalter 44 manipuliert worden ist, schreitet die Routine zu Schritt 985 voran, in dem die angewiesene Schaltposition sft auf die Nicht-P-Position eingestellt wird.
  • Kurz gesagt wird, wie es in 68 gezeigt ist, wenn keine offene Regelkreissteuerung ausgeführt wird (das heißt, Xopen = aus), die angewiesene Schaltposition sft unmittelbar zu dem Bereich, der einem Manipulationssignal entspricht, in Reaktion auf eine Manipulation bei dem P-Positionsschalter 43 oder dem Nicht-P-Positionsschalter 44 geschaltet. Wenn jedoch eine offene Regelkreissteuerung ausgeführt wird (das heißt, Xopen = ein), wird die angewiesene Schaltposition sft nicht geschaltet, indem ein Manipulationssignal außer acht gelassen wird, auch wenn der P-Positionsschalter 43 oder der Nicht-P-Positionsschalter 44 manipuliert wird.
  • In Schritt 986, der der letzte Schritt dieser Routine ist, wird die derzeitige angewiesene Schaltposition sft in einem nichtflüchtigen Speicher, wie beispielsweise einem SRAM der ECU 41, gespeichert. Die angewiesene Schaltposition sft, die in dem nichtflüchtigen Speicher gespeichert wird, wird als eine Information der Schaltposition sft verwendet, wenn die CPU der ECU 41 aus einem bestimmten Grund während eines Fahrzeugantriebs zurückgesetzt wird und dadurch die Speicherdaten des RAM initialisiert werden. Mit dieser Maßnahme kann, auch wenn die CPU der ECU 41 aus einem bestimmten Grund während eines Fahrzeugantriebs zurückgesetzt wird und die Speicherdaten des RAM dadurch initialisiert werden, bei dem Rücksetzen die Schaltposition so gesteuert werden, dass sie ein Bereich wird, der unmittelbar vor dem Rücksetzen ausgewählt war, was ein Ereignis verhindert, dass nach dem Rücksetzen die Schaltposition entgegen der Absicht des Fahrers geschaltet wird.
  • Nachstehend ist ein Wiederherstellungsprozessausführungsbeispiel, bei dem der Zustand einer Regelung zeitweise anormal wird, unter Bezugnahme auf ein Zeitablaufdiagramm gemäß 47 beschrieben. In 47 ist eine beispielhafte Steuerung gezeigt, die in einem Fall ausgeführt wird, bei dem der Zustand einer Regelung während eines Schaltens der Schaltposition von der P-Position zu der Nicht-P-Position anormal wird und der Rotor 32 einen anormalen Stop ausführt oder eine Operation zum Zählen des Kodiereinrichtungszählwerts Ncnt einen anormalen Stop ausführt.
  • Bei einer Regelung zum Schalten der Schaltposition von der P-Position zu der Nicht-P-Position wird überwacht, ob der Zustand der Regelung normal oder anormal ist. Wenn eine Anomalie erfasst worden ist, wird das Wiederherstellungsprozessausführungsflag Xrcv von "aus" auf "ein" geschaltet, woraufhin ein Schalten von der Regelung zu einer offenen Regelkreissteuerung ausgeführt wird und ein Wiederherstellungsprozess gestartet wird.
  • Bei dem Start der offenen Regelkreissteuerung (Wiederherstellungsprozess) wird ein Anfangswert des Positionszählwerts Ncntop unter Verwendung eines Ausgabesignalwerts Vnsw des Ausgangswellensensors 14 berechnet. Während der offenen Regelkreissteuerung (Wiederherstellungsprozess) wird der Rotor 32 durch sequentielles Schalten der Stromzufuhrphase gedreht, ohne die Information des Kodiereinrichtungszählwerts Ncnt zurückzuführen. Jedesmal, wenn die Stromzufuhrphase während der offenen Regelkreissteuerung geschaltet wird, wird der Positionszählwert Ncntop um zwei erhöht (oder erniedrigt). Wenn der Positionszählwert Ncntop einen Sollzählwert Acnt erreicht hat, wird bestimmt, dass der Rotor 32 eine Zielposition erreicht hat und das Wiederherstellungsprozessausführungsflag Xrcv wird von "ein" zu "aus" geschaltet, woraufhin die offene Regelkreissteuerung (Wiederherstellungsprozess) beendet wird und eine Rückkehr zu der Regelung ausgeführt wird.
  • Mit dem vorstehend beschriebenen Prozess kann, auch wenn während einer Regelung eine Anomalie in dem Kodiereinrichtungszählwert Ncnt, ein Synchronisationsverlust oder dergleichen den Regelungszustand (den Drehzustand des Rotors 32) zeitweise anormal macht, der Rotor 32 zu einer Zielposition durch Schalten von der Regelung zu einer offenen Regelkreissteuerung gedreht werden. Die Zuverlässigkeit der Motorsteuerung (das heißt der Positionsschaltsteuerung) kann somit vergrößert werden.
  • Wenn eine Rückkehr zu einer Regelung ausgeführt wird, werden wieder eine Anfangsansteuerung und Erste-Richtungs- und Zweite-Richtungs-Anstoßsteuerungen ausgeführt. Mit dieser Maßnahme kann, auch wenn eine Abweichung in der Beziehung zwischen dem Kodiereinrichtungszählwert Ncnt und der Drehposition des Rotors 32 (das heißt der manipulierten Variable für den Positionsschaltmechanismus 11) in der offenen Regelkreissteuerung auftritt, die Abweichung durch die Anfangsansteuerung und die Erste-Richtungs- und die Zweite-Richtungs-Anstoßsteuerung genau korrigiert werden.
  • Nachstehend ist ein Ausfallsicherungsprozessausführungsbeispiel, bei dem eine Fehlfunktion in dem Regelungssystem auftritt, unter Bezugnahme auf Zeitablaufdiagramme gemäß 69 und 70 beschrieben. In 69 ist ein Steuerungsbeispiel gezeigt, bei dem ein Ausfallsicherungsprozess (das heißt eine offene Regelkreissteuerung) ausgeführt wird und ein Positionsschalten erfolgreich ist, wenn eine Fehlfunktion in dem Regelungssystem (das heißt eine Systemanomalie) bei einem Schalten der Schaltposition von der P-Position zu der Nicht-P-Position auftritt. Demgegenüber ist in 70 ein Steuerungsbeispiel gezeigt, bei dem ein Positionsschalten durch einen Ausfallsicherungsprozess (das heißt eine offene Regelkreissteuerung) fehl schlägt.
  • Während der vorstehend beschriebene Wiederherstellungsprozess und die Ausfallsicherungsprozesse dahingehend gleich sind, dass sie als eine offene Regelkreissteuerung ausgeführt werden, unterscheiden sie sich voneinander in dem nachstehend genannten Punkt. Da der Wiederherstellungsprozess ausgeführt wird, wenn eine Regelung zeitweise anormal wird, wird eine Rückkehr zu einer Regelung ausgeführt, wenn der Rotor 32 zu einem Zielpunkt durch den Wiederherstellungsprozess (offene Regelkreissteuerung) gedreht worden ist. Im Gegensatz dazu wird, da der Ausfallsicherungsprozess ausgeführt wird, wenn eine Fehlfunktion in dem Regelungssystem die Regelung unausführbar macht, eine Rückkehr zu einer Regelung nicht ausgeführt, auch wenn der Rotor 32 zu einem Zielpunkt durch den Ausfallsicherungsprozess (offene Regelkreissteuerung) erfolgreich gedreht wird, wobei ein nachfolgendes Positionsschalten ebenso durch den Ausfallsicherungsprozess (offene Regelkreissteuerung) ausgeführt wird.
  • Wie es in 69 gezeigt ist, wird, sobald eine Fehlfunktion in dem Regelungssystem (das heißt eine Systemanomalie) bei einem Schalten der Schaltposition von der P-Position zu der Nicht-P-Position erfasst wird, das Ausfallsicherungsprozessausführungsflag Xfsop von "aus" zu "ein" geschaltet und ein Ausfallsicherungsprozess (offene Regelkreissteuerung) wird gestartet.
  • Dieser Teil des Ausfallsicherungsprozesses (offene Regelkreissteuerung), der den Rotor 32 zu einem Zielpunkt dreht, ist der gleiche wie der des Wiederherstellungsprozesses (offene Regelkreissteuerung). Wenn der Positionszählwert Ncntop einen Sollzählwert Acnt erreicht hat, wird bestimmt, dass der Rotor 32 den Zielpunkt erreicht hat. Es wird nicht nur das Offene-Regelkreissteuerungsausführungsflag Xopen auf "aus" geschaltet, sondern auch das offene-Regelkreissteuerungsabschlussflag Xopcmp auf "ein" geschaltet. Die Motoransteuerung durch die offene Regelkreissteuerung wird beendet.
  • Sobald die angewiesene Schaltposition sft danach von der Nicht-P-Position zu der P-Position geschaltet wird, wird das Offene-Regelkreissteuerungsausführungsflag Xopen auf "ein" geschaltet und das Offene-Regelkreissteuerungsabschlussflag Xopcmp wird auf "aus" geschaltet. Ferner wird ein Sollzählwert Acnt auf einen Wert eingestellt, der der P-Position entspricht, und ein Positionsschalten durch eine offene Regelkreissteuerung wird gestartet.
  • Wie es vorstehend beschrieben ist, wird, sobald ein Ausfallsicherungsprozess ausgeführt wird, ein nachfolgendes Positionsschalten ebenso durch einen neuen Ausfallsicherungsprozess ausgeführt. In diesem Fall wird, wenn der Positionszählwert Ncntop des neuen Ausfallsicherungsprozesses einen Sollzählwert Acnt erreicht hat, auf der Grundlage eines Ausgabesignalwerts des Ausgangswellensensors 14 überprüft, ob das Positionsschalten durch den Ausfallsicherungsprozess erfolgreich gewesen ist. Wenn das Positionsschalten fehlgeschlagen ist, wird ein Positionsschalten wieder durch einen anderen Ausfallsicherungsprozess ausgeführt.
  • In 70 ist ein Steuerungsbeispiel gezeigt, bei dem trotz des Versuchs eines Schaltens von der P-Position zu der Nicht-P-Position durch einen Ausfallsicherungsprozess der Ausgabesignalwert des Ausgangswellensensors 14 ein Wert bleibt, der der P-Position entspricht (das heißt, der Wellenbereich bleibt die P-Position). In diesem Fall wird, da der Ausgabesignalwert des Ausgangswellensensors 14 nicht zu einem Wert wird, der einem Sollzählwert Acnt entspricht, auch wenn der Ausfallsicherungsprozess den Positionszählwert Ncntop veranlasst, den Sollzählwert Acnt zu erreichen, bestimmt, dass das Positionsschalten fehlgeschlagen ist, wobei ein Positionsschalten wieder durch einen anderen Ausfallsicherungsprozess ausgeführt wird.
  • Die Anzahl von Malen einer wiederholten Ausführung von Ausfallsicherungsprozessen (das heißt die Anzahl von Fehlfunktionen; der Zählwert Cfs) wird durch den Anzahl-von-Malen-einer-Ausführung-von-Ausfallsicherungsprozessen-Zähler gezählt. Wenn das Positionsschalten nicht erfolgreich ist, auch wenn beispielsweise drei Ausfallsicherungsprozesse wiederholt ausgeführt werden, wird bestimmt, dass auch eine offene Regelkreissteuerung ein Positionsschalten nicht erreichen kann. Das Systemfehlfunktionsflag Xfailoff wird auf "ein" gesetzt und das Stromzufuhrflag Xon wird auf "aus" gesetzt, wobei die Stromzufuhr des SR-Motors 12 ausgeschaltet wird.
  • Hierbei wird während einer offenen Regelkreissteuerung der Rotor 32 auf eine derartige Weise angesteuert, dass die Stromzufuhrphase unabhängig von dem Kodiereinrichtungszählwert Ncnt ausgewählt wird. Folglich ist es wahrscheinlich, dass während einer offenen Regelkreissteuerung der Kodiereinrichtungszählwert Ncnt von der Drehposition des Rotors 32 (das heißt der manipulierten Variablen für den Positionsschaltmechanismus 11) abweicht.
  • Als eine Gegenmaßnahme werden gemäß diesem Ausführungsbeispiel wieder eine Anfangsansteuerung und Erste-Richtungs- und Zweite-Richtungs-Anstoßsteuerungen bei einer Rückführung von einer offenen Regelkreissteuerung zu einer Regelung ausgeführt. Folglich kann, auch wenn eine Abweichung in der Beziehung zwischen dem Kodiereinrichtungszählwert Ncnt und der Drehposition des Rotors 32 (das heißt der manipulierten Variablen für den Positionsschaltmechanismus 11) während der offenen Regelkreissteuerung aufgetreten ist, die Abweichung durch die Anfangsansteuerung und die Erste-Richtungs- und die Zweite-Richtungs-Anstoßsteuerung genau korrigiert werden.
  • In dem vorstehend beschriebenen Ausführungsbeispiel wird, wenn eine Fehlfunktion in dem Regelungssystem (das heißt eine Systemanomalie) erfasst wird, der SR-Motor 12 durch Ausführen eines Schaltens zu einem Ausfallsicherungsprozess (offene Regelkreissteuerung) angesteuert. Folglich kann, auch wenn das Regelungssystem aus einem bestimmten Grund eine Fehlfunktion aufweist, der Rotor 32 gedreht werden, um so nahe wie möglich zu einer Zielposition zu kommen. Die Zuverlässigkeit der Motorsteuerung kann somit vergrößert werden.
  • (Zweites Ausführungsbeispiel)
  • Ein zweites Ausführungsbeispiel der Erfindung ist nachstehend unter Bezugnahme auf 7175 beschrieben.
  • Wie es in 72 gezeigt ist, werden, während sich der SR-Motor 12 dreht, A-Phasensignalimpulse und B-Phasensignalimpulse wechselweise von der Kodiereinrichtung 46 synchron mit der Drehung des Rotors 32 ausgegeben und ein Z-Phasensignalimpuls wird von der Kodiereinrichtung 46 jedesmal ausgegeben, wenn eine Stromzufuhr für alle Phasen ringsum bewirkt wird und sich der Rotor 32 um 45° dreht. Die Referenzdrehpositionen des Rotors 32 können unter Verwendung von Z-Phasensignalimpulsen korrekt erfasst werden. Folglich kann durch Bestimmen, ob eine Stromzufuhrphase (das heißt ein Kodiereinrichtungszählwert), der ausgewählt wird, wenn ein Z-Phasensignalimpuls ausgegeben wird, mit einer Stromzufuhrphase (das heißt einem Kodiereinrichtungszählwert) übereinstimmt, die einer Referenzdrehposition des Rotors 32 entspricht, überprüft werden, ob die Drehposition des Rotors 32 und die Stromzufuhrphase (das heißt der Kodiereinrichtungszählwert) in einer korrekten Beziehung zueinander sind. Wenn eine Abweichung gefunden wird, wird eine Z-Phasenkorrektur ausgeführt, um die Abweichung zu korrigieren. Eine in hohem Maße zuverlässige Motorsteuerung kann dadurch ausgeführt werden.
  • Eine derartige Z-Phasenkorrektur wird entsprechend einer in 71 gezeigten Z-Phasenkorrekturroutine ausgeführt. Diese Routine wird synchron mit sowohl ansteigenden Flanken als auch nacheilenden Flanken eines A- Phasensignals durch eine A-Phasenunterbrechungsverarbeitung aktiviert. Bei einer Aktivierung dieser Routine wird in Schritt 2401 bestimmt, ob die nachstehend genannten Z-Phasenkorrekturausführungskriterien (1)–(3) erfüllt sind:
    • (1) Der Z-Phasensignalwert Z ist "1" (hoher Pegel).
    • (2) Ein Kodiereinrichtungsfehlfunktionsflag Xfailenc ist "aus" (die Kodiereinrichtung 46 weist keine Fehlfunktion auf).
    • (3) Ein Z-Phasenkorrekturverhinderungsflag Xzng ist "aus" (eine Z-Phasenkorrektur ist erlaubt).
  • In Bezug auf das Kodiereinrichtungsfehlfunktionsflag Xfailenc wird, wenn die Anzahl von Malen von Z-Phasenkorrekturen einen vorbestimmten Wert überschreitet, für die Kodiereinrichtung 46 bestimmt, dass sie eine Fehlfunktion aufweist, und das Flag Xfailenc wird auf "ein" in einem (nachstehend beschriebenen) Schritt 2410 gesetzt. Das Z-Phasenkorrekturverhinderungsflag Xzng wird auf "ein" gesetzt, wenn eine Anomalie in einem Z-Phasensignal der Kodiereinrichtung 46 in einer in 74 oder 75 gezeigten Routine erfasst wird.
  • Wenn nur eines der Kriterien (1)–(3) nicht erfüllt ist, ist die Z-Phasenkorrekturausführungsbedingung nicht erfüllt. Dann wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber ist, wenn alle Kriterien (1)–(3) erfüllt sind, die Z-Phasenkorrekturausführungsbedingung erfüllt. Die Routine schreitet zu Schritt 2402 voran, in dem ein Positionserfassungszählwert Nzon, der erhalten wird, wenn ein Z-Phasensignalimpuls ausgegeben wird (das heißt, der Z-Phasensignalwert Z wird auf "1" vertauscht), gespeichert wird. Der Positionserfassungszählwert Nzon wird durch Korrigieren eines Kodiereinrichtungszählwerts Ncnt, der erhalten wird, wenn der Z-Phasensignalimpuls ausgegeben wird, durch einen gelernten Anfangspositionsabweichungswert Gznt erhalten: Nzon = Ncnt – Gcnt.
  • Eine Referenzdrehposition (das heißt eine Position, bei der ein Z-Phasensignalimpuls auszugeben ist) des Rotors 32 wird von dem Positionserfassungszählwert Nzon erfasst.
  • Dann schreitet die Routine zu Schritt 2403 voran, in dem auf der Grundlage davon, ob die Routine dieses Mal bei einem Anstieg des A-Phasensignals aktiviert worden ist, bestimmt wird, ob die Drehrichtung des Rotors 32 die übliche bzw. normale Drehrichtung (das heißt die Drehrichtung von der P-Position zu der Nicht-P-Position) ist.
  • Wie es in 72 gezeigt ist, werden ein A-Phasensignalimpuls und ein Z-Phasensignalimpuls, die miteinander verbunden sind, mit einer Phasendifferenz von 90° (elektrischer Winkel) ausgegeben. Folglich steigt in dem Fall der üblichen Drehrichtung (das heißt der Drehrichtung von der P-Position zu der Nicht-P-Position) das A-Phasensignal während einer Ausgabeperiode eines Z-Phasensignalimpulses an. In dem Fall der Umkehrdrehrichtung (das heißt der Drehrichtung von der Nicht-P-Position zu der P-Position) fällt das A-Phasensignal während einer Ausgabeperiode eines Z-Phasensignalimpulses ab. Folglich kann auf der Grundlage davon, ob das A-Phasensignal während einer Ausgabeperiode eines Z-Phasensignals ansteigt oder abfällt, bestimmt werden, ob die derzeitige Drehrichtung die übliche Drehrichtung oder die Umkehrdrehrichtung ist.
  • Wenn in Schritt 2403 bestimmt wird, dass die Routine dieses Mal bei einem Anstieg des A-Phasensignals aktiviert worden ist, das heißt, dass die Drehrichtung des Rotors 32 die übliche Drehrichtung (das heißt die Drehrichtung von der P-Position zu der Nicht-P-Position) ist, schreitet die Routine zu Schritt 2404 voran, in dem eine Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert einer Stromzufuhrphase, die auszuwählen ist, wenn der Z-Phasensignalimpuls ausgegeben wird, berechnet wird: gz = K1 – Nzon%12.
  • In dieser Gleichung ist K1 eine Phasenvoreilung in der üblichen Drehrichtung der Stromzufuhrphase, die erforderlich ist, um den Rotor 32 in die übliche Richtung zu drehen, wobei K1 beispielsweise auf "4" eingestellt ist. Dabei ist Nzon%12 ein Restwert, der durch Teilen des Positionserfassungszählwerts Nzon, der zu der Zeit einer Ausgabe des Z-Phasensignalimpulses erhalten worden ist, durch "12" erhalten wird.
  • Gemäß diesem Ausführungsbeispiel ist, wie es in 72 gezeigt ist, das System auf eine derartige Weise ausgelegt, dass Nzon%12 "4" in dem Fall der üblichen Drehrichtung (das heißt der Drehrichtung von der P-Position zu der Nicht-P-Position) wird. Folglich wird gz = K1 – Nzon%12 "0", solange das Steuerungssystem normal arbeitet.
  • Demgegenüber schreitet, wenn in Schritt 2403 bestimmt wird, dass die Routine dieses Mal bei einem Abfallen des A-Phasensignals aktiviert worden ist, das heißt, die Drehrichtung des Rotors 32 ist die Umkehrdrehrichtung (das heißt die Drehrichtung von der Nicht-P-Position zu der P-Position), die Routine zu Schritt 2405 voran, in dem eine Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert einer Stromzufuhrphase, die auszuwählen ist, wenn der Z-Phasensignalimpuls ausgegeben wird, berechnet wird: gz = K2 – Nzon%12,wobei K2 eine Phasenvoreilung in der Umkehrdrehrichtung einer Stromzufuhrphase ist, die erforderlich ist, um den Rotor 32 in die Umkehrrichtung zu drehen, wobei K2 beispielsweise auf "3" eingestellt ist.
  • Gemäß diesem Ausführungsbeispiel ist, wie es in 72 gezeigt ist, das System auf eine derartige Weise ausgelegt, dass Nzon%12 "3" in dem Fall der Umkehrdrehrichtung (das heißt der Drehrichtung von der Nicht-P-Position zu der P-Position) wird. Folglich wird gz = K2 – Nzon%12 "0", solange das System normal arbeitet.
  • Nach der Berechnung der Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert schreitet die Routine zu einem Schritt 2406 voran, in dem bestimmt wird, ob die Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert der Stromzufuhrphase bei der Ausgabe des Z-Phasensignalimpulses ungleich "0" ist. Wenn die Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert gleich "0" ist, was bedeutet, dass das Steuerungssystem normal arbeitet, wird diese Routine beendet, ohne die verbleibenden Schritte, wie beispielsweise einen Z-Phasenkorrekturschritt, auszuführen.
  • Demgegenüber wird, wenn die Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert der Stromzufuhrphase bei der Ausgabe des Z-Phasensignalimpulses gleich "0" ist, bestimmt, dass eine Z-Phasenkorrektur erforderlich ist. Die Routine schreitet zu Schritt 2407 voran. In Schritt 2407 wird der Zählwert Cgz eines Anzahl-von-Malen-einer-Z-Phasenkorrektur-Zählers, der die Anzahl von Malen von Z-Phasenkorrekturen zählt, inkrementiert. Bei einem nächsten Schritt 2408 wird die Abweichung des gelernten Anfangspositionsabweichungswerts Gcnt durch die Abweichung gz zwischen einem Entwurfwert und einem tatsächlichen Messwert korrigiert: Gcnt = Gcnt – gz.
  • Dann wird bestimmt, ob der Z-Phasenkorrekturzählwert Cgz (das heißt die Anzahl von Malen. von Z-Phasenkorrekturen) einen Bestimmungswert Cgzd überschritten hat. Wenn der Zählwert Cgz kleiner oder gleich dem Bestimmungswert ist, wird nicht bestimmt, dass die Kodiereinrichtung 46 eine Fehlfunktion aufweist. Wenn der Zählwert Cgz größer als der Bestimmungswert ist, wird bestimmt, dass die Kodiereinrichtung 46 eine Fehlfunktion aufweist. Die Routine schreitet zu Schritt 2410 voran, in dem das Kodiereinrichtungsfehlfunktionsflag Xfailenc auf "ein" gesetzt wird (die Kodiereinrichtung 46 weist ein Fehlfunktion auf). Diese Routine wird dann beendet.
  • Sobald das Kodiereinrichtungsfehlfunktionsflag Xfailenc auf "ein" gesetzt ist, ist das Bestimmungsergebnis in Schritt 2401 notwendigerweise "nein", auch wenn diese Routine danach durch eine A-Phasenunterbrechungsverarbeitung aktiviert wird. Die Routine wird erzwungen beendet und somit wird keine Z-Phasenkorrektur ausgeführt.
  • [Erfassung einer A-/B-Phasentrennung]
  • Eine in 73 gezeigte A-/B-Phasen-Trennungserfassungsroutine wird durch eine A-/B-Phasenunterbrechungsroutine aktiviert. Bei einer Aktivierung dieser Routine wird in Schritt 2501 bestimmt, ob das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist (eine offene Regelkreissteuerung wird ausgeführt). Wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist, schreitet die Routine zu Schritt 2504 voran, in dem bestimmt wird, ob der vorliegende Zeitpunkt bei einem Start der offenen Regelkreissteuerung (das. heißt unmittelbar nach einem Schalten des Offene-Regelkreissteuerungsausführungsflags Xopen von "aus" zu "ein") liegt. Wenn bestimmt wird, dass der vorliegende Zeitpunkt bei dem Start der offenen Regelkreissteuerung liegt, schreitet die Routine zu Schritt 2503 voran, in dem die Differenz zwischen einem Kodiereinrichtungszählwert Ncnt und einem Positionszählwert Ncntop bei dem Start der offenen Regelkreissteuerung als eine Zählwertabweichung ΔNinit bei dem Start der offenen Regelkreissteuerung berechnet wird: ΔNinit = Ncnt – Ncntop.
  • Demgegenüber sollte, wenn der vorliegende Zeitpunkt nach einem Start der offenen Regelkreissteuerung (das heißt während der offenen Regelkreissteuerung) liegt, das Bestimmungsergebnis in Schritt 2502 "nein" sein. Die Routine schreitet zu Schritt 2502 voran, in dem eine Abweichung ΔNerr zwischen einem Kodiereinrichtungszählwert Ncnt und einem Positionszählwert Ncntop bei der offenen Regelkreissteuerung berechnet wird: ΔNerr = Ncnt – Ncntop.
  • Dann schreitet die Routine zu Schritt 2505 voran, in dem bestimmt wird, ob der vorliegende Zeitpunkt bei einem Ende der offenen Regelkreissteuerung (das heißt unmittelbar nach einem Schalten des Offene-Regelkreissteuerungsausführungsflags Xopen von "ein" zu "aus") liegt. Wenn der vorliegende Zeitpunkt nicht bei einem Ende der offenen Regelkreissteuerung liegt, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Wenn der vorliegende Zeitpunkt bei einem Ende der offenen Regelkreissteuerung liegt, schreitet die Routine zu Schritt 2506 voran und der Absolutwert |ΔNerr – ΔNinit| der Differenz zwischen der Zählwertabweichung ΔNerr bei dem Ende der offenen Regelkreissteuerung und der Zählwertabweichung ΔNinit bei dem Start der offenen Regelkreissteuerung wird mit einem Bestimmungswert ΔNd verglichen, wodurch bestimmt wird, ob eine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist.
  • Beispielsweise sollte in einem Zustand, bei dem der Rotor 32 durch die offene Regelkreissteuerung normal angesteuert wird, die Differenz |ΔNerr – ΔNinit| zwischen der Zählwertabweichung ΔNerr bei dem Ende der offenen Regelkreissteuerung und der Zählwertabweichung ΔNinit bei dem Start der offenen Regelkreissteuerung "0" sein, solange keine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Wenn eine oder beide einer A-Phasen- und einer B-Phasentrennung vorhanden ist, wird |ΔNerr – ΔNinit| nicht "0". Folglich wird, wenn |ΔNerr – ΔNinit| größer oder gleich dem Bestimmungswert ist, bestimmt, dass eine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Die Routine schreitet zu Schritt 2507 voran, in dem ein A-/B-Phasentrennungserfassungsflag Xfailab auf "ein" gesetzt wird (A-/B-Phasentrennung). Dann wird diese Routine beendet.
  • Demgegenüber wird, wenn |ΔNerr – ΔNinit| kleiner als der Bestimmungswert ist, bestimmt, dass keine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Die Routine schreitet zu Schritt 2508 voran, in dem das A-/B-Phasentrennungserfassungsflag Xfailab auf "aus" gesetzt wird (keine A-/B-Phasentrennung). Bei einem nächsten Schritt 2509 wird ein A-/B-Phasen-Normal-Bestimmungsflag Xnormab auf "ein" gesetzt (normal.). Dann wird diese Routine beendet.
  • In dieser Routine wird der Absolutwert |ΔNerr – ΔNinit| der Differenz zwischen einer Zählwertabweichung ΔNerr bei dem Ende einer offenen Regelkreissteuerung und einer Zählwertabweichung ΔNinit bei dem Start der offenen Regelkreissteuerung berechnet. Alternativ hierzu kann durch Berechnen von Variationen des Kodiereinrichtungszählwerts Ncnt und des Positionszählwerts Ncntop von einem Start einer offenen Regelkreissteuerung zu einem zugehörigen Ende und durch Bestimmen, ob der Absolutwert der zugehörigen Differenz größer oder gleich einem Bestimmungswert ist, bestimmt werden, ob eine A-/B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Dies liegt daran, dass der Absolutwert |(Variation von Ncnt) – (Variation von Ncntop)| der Differenz zwischen einer Variation des Kodiereinrichtungszählwerts Ncnt und einer Variation des Positionszählwerts Ncntop von einem Start einer offenen Regelkreissteuerung zu einem zugehörigen Ende gleich |ΔNerr – ΔNinit| ist.
  • Eine A-/B-Phasentrennung in der Kodiereinrichtung 46 kann lediglich während einer offenen Regelkreissteuerung erfasst werden. Wenn ein A-Phasensignal oder ein B-Phasensignal dem Positionsschaltsteuerungsgerät 42 aufgrund einer Trennung während einer Regelung nicht zugeführt wird, wird die Stromzufuhr ausgesetzt (da Ansteuerungsimpulse synchron mit Flanken des A-Phasensignals und des B-Phasensignals ausgegeben werden) und somit kann bestimmt werden, ob der Motor 12 gestoppt hat. Es kann jedoch nicht bestimmt werden, ob der Stop des Motors 12 aufgrund einer Fehlfunktion in der Kodiereinrichtung 46 vorliegt.
  • [Erfassung einer Z-Phasentrennung]
  • Eine in 74 gezeigte Z-Phasentrennungserfassungsroutine, die durch eine A-/B-Phasenunterbrechungsroutine aktiviert wird, bestimmt auf die nachstehend beschriebene Weise, ob eine Z-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Bei einer Aktivierung dieser Routine wird in Schritt 2511 bestimmt, ob ein Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist (eine offene Regelkreissteuerung wird ausgeführt). Wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "aus" ist, schreitet die Routine zu Schritt 2512 voran, in dem der Zählwert Czng eines Z-Phasentrennung-Provisorische-Erfassung-Zählers gelöscht wird. Bei einem nächsten Schritt 2518 wird der Zählwert Czon eines Z-Phasensignalausgabeintervallzählers gelöscht.
  • Wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist (eine offene Regelkreissteuerung wird ausgeführt), schreitet die Routine zu Schritt 2513 voran, in dem bestimmt wird, ob der Z-Phasensignalwert "1" (hoher Pegel) ist. Wenn der Z-Phasensignalwert "1" ist, schreitet die Routine zu Schritt 2514 voran, in dem ein Z-Phasen-Normal-Bestimmungsflag Xnormz auf "ein" gesetzt wird (normal). Bei einem nächsten Schritt 2518 wird der Z-Phasensignalausgabeintervallzählwert Czon gelöscht. Die Routine schreitet zu Schritt 2519 voran.
  • Demgegenüber schreitet, wenn der Z-Phasensignalwert "0" (niedriger Pegel) ist, die Routine zu Schritt 2515 voran, in dem der Zählwert Czon des Z-Phasensignalausgabeintervallzählers zum Messen eines Ausgabeintervalls von Z-Phasensignalimpulsen inkrementiert wird. Da diese Routine durch eine A-/B-Phasenunterbrechungsverarbeitung aktiviert wird, wird der Z-Phasensignalausgabeintervallzählwert Czon wie der Kodiereinrichtungszählwert Ncnt synchron sowohl mit ansteigenden Flanken als auch nacheilenden Flanken eines A-Phasensignals und eines B-Phasensignals inkrementiert.
  • Gemäß diesem Ausführungsbeispiel ist das Ausgabeintervall von Z-Phasensignalimpulsen (das heißt das Intervall zwischen den Referenzdrehpositionen des Rotors 32) 45° in Bezug auf den Rotordrehwinkel und das Flankenintervall des A-Phasensignals und des B-Phasensignals ist 3,75°. Das Ausgabeintervall von Z-Phasensignalimpulsen ist, wenn es in einen Z-Phasensignalausgabeintervallzählwert Czon (den Kodiereinrichtungszählwert Ncnt) umgewandelt ist, 45°/3,75° = 12. Wenn kein Z-Phasensignalimpuls ausgegeben wird, auch wenn der Z-Phasensignalausgabeintervallzählwert Czon "12" überschritten hat, bedeutet dies folglich einen Verlust eines Z-Phasensignalimpulses,.
  • Angesichts des vorstehend Beschriebenen wird in dieser Routine bestimmt, ob zwei oder mehr Z-Phasensignalimpulse hintereinander nicht ausgegeben worden sind, indem in Schritt 2516 bestimmt wird, ob der Z-Phasensignalausgabeintervallzählwert Czon "24" überschritten hat. Wenn bestimmt wird, dass zwei oder mehr Z-Phasensignalimpulse hintereinander nicht ausgegeben worden sind, schreitet die Routine zu Schritt 2517 voran, in dem der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czng inkrementiert wird. In einem nächsten Schritt 2518 wird der Z-Phasensignalausgabeintervallzählwert Czon gelöscht. Die Routine schreitet zu Schritt 2519 voran.
  • In Schritt 2519 wird auf der Grundlage davon, ob der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czng größer oder gleich einem Bestimmungswert (beispielsweise 3) ist, bestimmt, ob es wahrscheinlich ist, dass eine Z-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Wenn der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czng kleiner als der Bestimmungswert ist, wird bestimmt, dass eine Z-Phasentrennungsdiagnose durchgeführt wird. Dann wird diese Routine beendet.
  • Demgegenüber wird, wenn der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czng größer oder gleich dem Bestimmungswert ist, bestimmt, dass eine Z-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist oder das A-Phasensignal oder das B-Phasensignal anormal ist. Die Routine schreitet zu Schritt 2520 voran, in dem auf der Grundlage davon, ob das A-/B-Phasen-Normal-Bestimmungsflag Xnormab "ein" ist, bestimmt wird, ob die Kodiereinrichtung 46 in Verbindung mit der A-Phase und der B-Phase normal arbeitet. Wenn bestimmt wird, dass das A-/B-Phasen-Normal-Bestimmungsflag Xnormab "ein" ist (das heißt, die Kodiereinrichtung 46 arbeitet normal in Verbindung mit der A-Phase und der B-Phase), wird bestimmt, dass eine Z-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Die Routine schreitet zu Schritt 2521 voran, in dem ein Z-Phasen-Anomalie-Erfassungsflag Xfailz auf "ein" gesetzt wird (Z-Phasentrennung (anormal)). Die Routine schreitet zu Schritt 2522 voran, in dem das Z-Phasenkorrekturverhinderungsflag Xzng auf "ein" gesetzt wird. Dann wird diese Routine beendet.
  • Wenn das Z-Phasenkorrekturverhinderungsflag Xzng auf "ein" gesetzt ist, ist eine Z-Phasenkorrektur gemäß der Z-Phasenkorrekturroutine gemäß 71 verhindert.
  • [Erfassung einer Z-Phasensignalanomalie]
  • Eine in 75 gezeigte Z-Phasensignalanomalieerfassungsroutine, die durch eine Z-Phasenunterbrechungsverarbeitung aktiviert wird, bestimmt auf die nachstehend beschriebene Weise, ob ein Z-Phasensignal der Kodiereinrichtung 46 anormal ist. Bei einer Aktivierung dieser Routine wird in Schritt 2531 ein Z-Phasensignalausgabeintervall ΔNz von einem vorhergehenden Z-Phasensignalimpuls zu einem derzeitigen gemäß der nachstehenden Gleichung berechnet: ΔNz = |Ncnt – Ncntold|,wobei Ncnt ein Kodiereinrichtungszählwert zu der Zeit einer Ausgabe des derzeitigen Z-Phasensignalimpulses ist und Ncntold ein Kodiereinrichtungszählwert zu der Zeit einer Ausgabe des vorangegangenen Z-Phasensignalimpulses ist.
  • In einem nächsten Schritt 2532 wird bestimmt, ob das Z-Phasensignalausgabeintervall ΔNz 0 oder 12 ist. Das Z-Phasensignalausgabeintervall ΔNz, das "0" ist, bedeutet eine A-Phasen- oder B-Phasentrennung und das Z-Phasensignalausgabeintervall ΔNz, das "12" ist, bedeutet, dass das Z-Phasensignalausgabeintervall ΔNz normal ist.
  • Folglich schreitet, wenn in Schritt 2532 bestimmt wird, dass das Z-Phasensignalausgabeintervall ΔNz 0 oder 12 ist, die Routine zu Schritt 2533 voran, in dem das Z-Phasen-Normal-Bestimmungsflag Xnormz auf "ein" gesetzt wird (normal). Die Routine schreitet zu Schritt 2538 voran, in dem der Kodiereinrichtungszählwert Ncnt zu der Zeit einer Ausgabe des derzeitigen Z-Phasensignalimpulses als ein vorangegangener Kodiereinrichtungszählwert Ncntold gespeichert wird, um eine Berechnung des nächsten Z-Phasensignalausgabeintervalls ΔNz zu ermöglichen. Dann wird diese Routine beendet.
  • Demgegenüber schreitet, wenn das Z-Phasensignalausgabeintervall ΔNz ungleich 0 oder 12 ist, wobei es in diesem Fall wahrscheinlich ist, dass das Z-Phasensignal anormal ist, die Routine von Schritt 2532 zu Schritt 2534 voran, in dem der Zählwert Czonng eines Z-Phasen-Anomalie-Provisorische-Erfassung-Zählers inkrementiert wird. In einem nächsten Schritt 2535 wird auf der Grundlage davon, ob der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czonng größer oder gleich einem Bestimmungswert (beispielsweise 3) ist, bestimmt, ob es wahrscheinlich ist, dass das Z-Phasensignal der Kodiereinrichtung 46 anormal ist. Wenn der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czonng kleiner als der Bestimmungswert ist, wird bestimmt, dass die Z-Phasensignalanomaliediagnose durchgeführt wird. Die Routine schreitet zu Schritt 2538 voran, in dem der Kodiereinrichtungszählwert Ncnt zu der Zeit einer Ausgabe des derzeitigen Z-Phasensignalimpulses als ein vorangegangener Kodiereinrichtungszählwert Ncntold gespeichert wird. Dann wird diese Routine beendet.
  • Demgegenüber wird, wenn der Z-Phasen-Anomalie-Provisorische-Erfassung-Zählwert Czonng größer oder gleich dem Bestimmungswert ist, bestimmt, dass das Z-Phasensignal der Kodiereinrichtung 46 anormal ist. Die Routine schreitet zu Schritt 2536 voran, in dem das Z-Phasenanomalieerfassungsflag Xfailz auf "ein" gesetzt wird (anormal). Die Routine schreitet zu Schritt 2537 voran, in dem das Z-Phasenkorrekturverhinderungsflag Xzng auf "ein" gesetzt wird, um eine Z-Phasenkorrektur gemäß der Z-Phasenkorrekturroutine gemäß 71 zu verhindern. Die Routine schreitet zu Schritt 2538 voran, in dem der Kodiereinrichtungszählwert Ncnt zu der Zeit einer Ausgabe des derzeitigen Z-Phasensignalimpulses als ein vorangegangener Kodiereinrichtungszählwert Ncntold gespeichert wird. Dann wird diese Routine beendet.
  • Die Routinen gemäß 73-75 dienen als eine Anomaliediagnoseeinrichtung.
  • In dem vorstehend beschriebenen Ausführungsbeispiel wird während einer offenen Regelkreissteuerung (Ausfallsicherungsprozess oder Wiederherstellungsprozess) durch Vergleichen des Kodiereinrichtungszählwerts Ncnt (das heißt des Zählwerts eines A-Phasensignals und eines B-Phasensignals der Kodiereinrichtung 46) und des Positionszählwerts Ncntop (das heißt des Zählwerts eines Motoransteuerungssignals) miteinander bestimmt, ob eine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 vorhanden ist. Folglich kann, wenn eine A-Phasen- oder B-Phasentrennung in der Kodiereinrichtung 46 während einer offenen Regelkreissteuerung erfasst wird, eine Rückkehr von der offenen Regelkreissteuerung zu einer Regelung verhindert werden. Dies ermöglicht es, eine nutzlose Regelung zu vermeiden und den Rotor 32 zu einer Zielposition durch die offene Regelkreissteuerung zu drehen.
  • Ferner wird gemäß diesem Ausführungsbeispiel während einer offenen Regelkreissteuerung auf der Grundlage des Z-Phasensignalausgabeintervalls bestimmt, ob eine Z-Phasensignalanomalie in der Kodiereinrichtung 46 vorhanden ist. Folglich kann eine Z-Phasenkorrektur verhindert werden, wenn eine Z-Phasensignalanomalie erfasst ist. Dies ermöglicht es, eine irrtümliche Z-Phasenkorrektur zu vermeiden.
  • (Drittes Ausführungsbeispiel)
  • Ein drittes Ausführungsbeispiel der Erfindung ist nachstehend unter Bezugnahme auf 76-81 beschrieben.
  • [Offene Regelkreissteuerung]
  • Eine in 76-78 gezeigte offene Regelkreissteuerungsroutine wird jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert. Bei einer Aktivierung dieser Routine wird in Schritten 3931 bestimmt, ob das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist. Wenn das Flag Xopen "aus" ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen.
  • Demgegenüber schreitet, wenn das Offene-Regelkreissteuerungsausführungsflag Xopen "ein" ist, die Routine von Schritt 3931 zu Schritt 3932 voran, in dem der Zählwert Top eines Zeitzählers, der eine Zeit zählt, inkrementiert wird. In einem nächsten Schritt 3933 wird bestimmt, ob der Zählwert Top des Zeitzählers größer oder gleich einer Stromzufuhrzeit Tm einer Stromzufuhrphase geworden ist. Wenn der Zeitzählwert Top kleiner als die Stromzufuhrzeit Tm ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Mit dieser Maßnahme werden Schritt 3934 und die nachfolgenden Schritte bei jeder Stromzufuhrzeit Tm ausgeführt.
  • Wenn der Zeitzählwert Top danach größer oder gleich der Stromzufuhrzeit Tm der Stromzufuhrphase geworden ist, schreitet die Routine von Schritt 3933 zu Schritt 3934 voran, in dem eine Ansteuerungsrichtung des Rotors 32 durch Vergleichen eines derzeitigen Positionszählwerts Ncntop mit einem Sollzählwert Acnt bestimmt wird. Wenn der derzeitige Positionszählwert Ncntop kleiner als der Sollzählwert Acnt ist, wird bestimmt, dass die Ansteuerungsrichtung des Rotors 32 die Drehrichtung, von der P-Positionsseite zu der Nicht-P-Positionsseite (das heißt die übliche Drehrichtung) ist. Die Routine schreitet zu Schritt 3935 voran, in dem ein Stromzufuhrphasenbestimmungswert Mptnop um 1 erhöht wird. Bei einem nächsten Schritt 3936 wird der Positionszählwert Ncntop um 2 erhöht, da der Rotor 32 um einen Winkel (3,75°) entsprechend zwei Zählwerten durch einen einzelnen Stromzufuhrversuch gedreht wird.
  • Demgegenüber wird, wenn der derzeitige Positionszählwert Ncntop größer als der Sollzählwert Acnt ist, bestimmt, dass die Ansteuerungsrichtung des Rotors 32 die Drehrichtung von der Nicht-P-Positionsseite zu der P-Positionsseite (das heißt die Umkehrdrehrichtung) ist. Die Routine schreitet zu Schritt 3937 voran, in dem der Stromzufuhrphasenbestimmungswert Mptnop um 1 erniedrigt bzw. dekrementiert wird. Bei einem nächsten Schritt 3938 wird der Positionszählwert Ncntop um 2 erniedrigt.
  • Dann schreitet die Routine zu Schritt 3939 voran, in dem ein Restwert Mptnop%6 durch Teilen des Stromzufuhrphasenbestimmungswerts Mptnop durch "6" berechnet wird. Die Zahl "6" entspricht einer Vergrößerung oder Verkleinerung des Stromzufuhrphasenbestimmungswerts Mptnop, die auftritt, wenn eine Stromzufuhr für alle Phasen ringsum bei einer offenen Regelkreissteuerung bewirkt wird.
  • Nach der Berechnung des Werts Mptnop%6 schreitet die Routine zu Schritt 3940 voran, in dem eine Stromzufuhrphase entsprechend dem Wert Mptnop%6 unter Verwendung einer in 63 gezeigten Tabelle ausgewählt wird. Gemäß diesem Ausführungsbeispiel werden Stromzufuhrphasen so ausgewählt, dass der Rotor 32 durch das Ein-/Zwei-Phasen-Stromzufuhrverfahren während einer offenen Regelkreissteuerung angesteuert wird, wobei der Anfangswert des Stromzufuhrphasenbestimmungswerts Mptnop so eingestellt wird, dass die offene Regelkreissteuerung mit einer Zwei-Phasen-Stromzufuhr (W- und U-Phasen, U- und V-Phasen oder V- und W-Phasen) gestartet wird, das heißt, dass der Wert Mptnop%6 1, 3 oder 5 wird.
  • Dann schreitet die Routine zu Schritt 3980 voran, in dem eine in 81 gezeigte Stromzufuhrverarbeitungsroutine ausgeführt wird, wodurch eine Stromzufuhr für die Phase bewirkt wird, die in Schritt 3940 ausgewählt worden ist. Bei dieser Operation wird, wenn eine Trennung in einem der zwei Systeme von Ansteuerungsspulen 35 und 36 des SR-Motors 12 durch eine Ansteuerungsspulentrennungserfassungsroutine gemäß 80 herausgefunden worden ist, die Ansteuerungsspule 35 oder 36 des anderen Systems, das frei von einer Trennung ist, mit Energie versorgt. Wenn eine Trennung in beiden Systemen von Ansteuerungsspulen 35 und 36 herausgefunden worden ist, wird die Stromzufuhr des SR-Motors 12 ausgeschaltet.
  • Dann schreitet die Routine zu Schritt 3941 in 77 voran, in dem eine Positionsabweichung dev entsprechend der nachstehenden Gleichung berechnet wird: dev = |Acnt – Ncntop|/2.
  • Wie es aus dieser Gleichung ersichtlich ist, ist die Positionsabweichung dev 1/2 des Absolutwerts der Differenz zwischen dem Sollzählwert Acnt und dem derzeitigen Positionszählwert Ncntop.
  • Bei einem nächsten Schritt 3942 wird die Positionsabweichung dev mit einem Drehgeschwindigkeitsparameter mspd verglichen, der entsprechend der Positionsabweichung dev vergrößert oder verkleinert wird. Die Drehgeschwindigkeit und die Beschleunigung/Abbremsung des Rotors 32 werden durch Einstellen der Stromzufuhrzeit Tm entsprechend dem Drehgeschwindigkeitsparameter mspd unter Verwendung einer in 65 gezeigten Tabelle gesteuert. In diesem Fall, wenn sich die Solldrehgeschwindigkeit vergrößert, vergrößert sich der Drehgeschwindigkeitsparameter mspd und die Stromzufuhrzeit tm wird kürzer eingestellt. Der Anfangswert des Drehgeschwindigkeitsparameters mspd ist "0".
  • Wenn in Schritt 3942 bestimmt wird, dass die Positionsabweichung dev größer als der Drehgeschwindigkeitsparameter mspd ist, schreitet die Routine zu Schritt 3943 voran, in dem der Drehgeschwindigkeitsparameter mspd um 1 erhöht wird. In einem nächsten Schritt 3944 wird ein minimaler Drehgeschwindigkeitsparameter mspdmin auf "0" eingestellt. Der minimale Drehgeschwindigkeitsparameter mspdmin ist ein Parameter (unterer Grenzschutzwert) zur Begrenzung des minimalen Werts des Drehgeschwindigkeitsparameters mspd. Auf diese Weise wird der minimale Drehgeschwindigkeitsparameter mspdmin auf "0" eingestellt, wenn die Positionsabweichung dev größer als der Drehgeschwindigkeitsparameter mspd ist, wodurch die Stromzufuhrzeit tm auf eine längste Zeit (beispielsweise 50 ms) in einer Periode von dem Start einer offenen Regelkreissteuerung zu einem Start einer Drehung des Rotors 32 eingestellt werden kann.
  • Demgegenüber schreitet, wenn in Schritt 3942 bestimmt wird, dass die Positionsabweichung dev kleiner als der Drehgeschwindigkeitsparameter mspd ist, die Routine zu Schritt 3945 voran, in dem der Drehgeschwindigkeitsparameter mspd um 1 erniedrigt wird. Bei einem nächsten Schritt 3946 wird der minimale Drehgeschwindigkeitsparameter mspdmin auf "4" eingestellt. Dies ermöglicht es, die Stromzufuhrzeit tm auf beispielsweise 5 ms oder weniger nach einem Start einer Drehung des Rotors 32 zu begrenzen.
  • Wenn in Schritt 3942 bestimmt wird, dass die Positionsabweichung dev gleich dem Drehgeschwindigkeitsparameter mspd ist, schreitet die Routine zu Schritt 3947 ohne eine Änderung des Drehgeschwindigkeitsparameter mspd voran. In Schritt 3947 wird der minimale Drehgeschwindigkeitsparameter mspdmin auf "0" eingestellt.
  • Nachdem der Drehgeschwindigkeitsparameter mspd und der minimale Drehgeschwindigkeitsparameter mspdmin in der vorstehend beschriebenen Weise eingestellt worden sind, schreitet die Routine zu Schritt 3948 voran, in dem ein maximaler Drehgeschwindigkeitsparameter mspdmax entsprechend einer Batteriespannung (Energiequellenspannung) und dem Vorhandensein/Fehlen einer Trennung in den Ansteuerungsspulen 35 und 36 unter Verwendung von Tabellendaten gemäß 79 eingestellt wird. Der maximale Drehgeschwindigkeitsparameter mspdmax ist ein Parameter (oberer Grenzschutzwert) zur Begrenzung des maximalen Werts des Drehgeschwindigkeitsparameters mspd. Wenn. sich die Batteriespannung vergrößert, wird der maximale Drehgeschwindigkeitsparameter mspdmax vergrößert, wodurch die Drehgeschwindigkeit des Rotors 32 vergrößert werden kann. Wenn eine Trennung in einem der zwei Systeme von Ansteuerungsspulen 35 und 36 auftritt, wird folglich ein Antriebsdrehmoment eine Hälfte von diesen, der maximale Drehgeschwindigkeitsparameter mspdmax wird auf einen kleinen Wert eingestellt (etwa 1/2 des Normalzustandswerts des Parameters mspdmax), um die Drehgeschwindigkeit des Rotors 32 auf eine niedrige Geschwindigkeit zu begrenzen.
  • In einem nächsten Schritt 3949 wird eine Schutzverarbeitung ausgeführt, so dass der Drehgeschwindigkeitsparameter mspd in den Bereich von dem minimalen Drehgeschwindigkeitsparameter mspdmin zu dem maximalen Drehgeschwindigkeitsparameter mspdmax fällt. Wenn beispielsweise der Drehgeschwindigkeitsparameter mspd, wie er in Schritten 3943 oder 3945 aktualisiert ist, kleiner als der minimale Drehgeschwindigkeitsparameter mspdmin ist, wird der Drehgeschwindigkeitsparameter mspd gleich dem minimalen Drehgeschwindigkeitsparameter mspdmin eingestellt. Wenn der Drehgeschwindigkeitsparameter mspd, wie er aktualisiert ist, größer als der maximale Drehgeschwindigkeitsparameter mspdmax ist, wird der Drehgeschwindigkeitsparameter mspd gleich dem maximalen Drehgeschwindigkeitsparameter mspdmax eingestellt. Wenn mspdmin ≤ mspd ≤ mspdmax gilt, wird der Drehgeschwindigkeitsparameter mspd, wie er aktualisiert ist, verwendet, wie er ist.
  • Dann schreitet die Routine zum Schritt 3950 voran, in dem eine Stromzufuhrzeit tm entsprechend dem Drehgeschwindigkeitsparameter mspd unter Verwendung der Tabellendaten gemäß 65 eingestellt wird. In dem Beispiel gemäß 65 wird, wenn der Drehgeschwindigkeitsparameter mspd in einem Bereich von 0 bis 3 liegt, die Stromzufuhrzeit tm auf die längste Zeit (beispielsweise 50 ms) eingestellt, so dass die Drehphase des Rotors 32 und die Stromzufuhrphase bei einem Starten zuverlässig miteinander synchronisiert werden können. Wenn sich der Drehgeschwindigkeitsparameter mspd von 4 auf 9 vergrößert, wird die Stromzufuhrzeit tm beispielsweise in drei Schritten von 5 ms auf 3 ms verkleinert, so dass die Drehgeschwindigkeit des Rotors 32 in drei Schritten eingestellt werden kann. Die Stromzufuhrzeit tm kann in einem Schritt, in zwei Schritten oder in vier oder mehr Schritten geschaltet werden.
  • Nach der Einstellung der Stromzufuhrzeit tm schreitet die Routine zu Schritt 3951 voran, in dem das Stromzufuhrflag Xon auf "ein" gesetzt wird. In einem nächsten Schritt 3952 wird der Zeitzählwert Top gelöscht. Dann wird diese Routine beendet.
  • Wenn in Schritt 3934 gemäß 76 bestimmt wird, dass der derzeitige Positionszählwert Ncntop gleich dem Sollzählwert Acnt ist, schreitet die Routine zu Schritt 3955 gemäß 78 voran, in dem bestimmt wird, ob die Messzeit des Zeitzählers größer oder gleich einer vorgeschriebenen Zeit Khld (beispielsweise 500 ms) geworden ist. Wenn bestimmt wird, dass die Messzeit des Zeitzählers kürzer als die vorgeschriebene Zeit Khld ist, schreitet die Routine zu Schritt 3956 voran, in dem die Stromzufuhr für alle Schritte ausgeschaltet wird. In einem nächsten Schritt 3957 wird die Stromzufuhrzeit tm auf die vorgeschriebene Zeit Khld (beispielsweise 500 ms) eingestellt.
  • Darin schreitet die Routine zu Schritt 3952 gemäß 77 voran, in dem der Zeitzählwert Top gelöscht wird. Dann wird diese Routine beendet. Mit dieser Maßnahme werden Schritt 3934 gemäß 76 und die nachfolgenden Schritte nicht ausgeführt und somit wird die nächste offene Regelkreissteuerung nicht gestartet, bis die vorgeschriebene Zeit Khld (beispielsweise 500 ms) seit dem Ende der offenen Regelkreissteuerung abgelaufen ist. Das heißt, es wird nach dem Ende der offenen Regelkreissteuerung gewartet, bis der Eingriffsabschnitt 23A der Arretierfeder 23 zu dem Boden der Haltevertiefung 24 oder 25 des Arretierhebels 15 entlang der zugehörigen geneigten Seitenwand aufgrund einer elastischen Kraft der Arretierfeder 23 nach dem Ende eines vorangegangenen Ausfallsicherungsprozesses herabgleitet.
  • Wenn in Schritt 3955 gemäß 78 bestimmt wird, dass der Zeitzählwert Top größer oder gleich dem vorgeschriebenen Wert Khld geworden ist, schreitet die Routine zu Schritt 3985 voran, in dem der Stromzufuhrphasenbestimmungswert Mptnop auf "0" eingestellt wird und der Drehgeschwindigkeitsparameter mspd auf "0" eingestellt wird. In einem nächsten Schritt 3959 wird das Offene-Regelkreissteuerungsabschlussflag Xopcmp auf "ein" gesetzt. Dann schreitet die Routine zu Schritt 3960 voran, in dem die Stromzufuhrzeit tm auf "0" eingestellt wird. Nachdem das Stromzufuhrflag Xon auf "aus" in einem nächsten Schritt 3961 gesetzt ist, schreitet die Routine zu Schritt 3952 gemäß 77 voran, in dem der Zeitzählwert Top gelöscht wird. Dann wird diese Routine beendet.
  • In der vorstehend beschriebenen Routine wird das Ein-/Zwei-Phasen-Stromzufuhrverfahren bei einer offenen Regelkreissteuerung eingesetzt und die offene Regelkreissteuerung wird mit einer Zwei-Phasen-Stromzufuhr gestartet. Ferner wird, wie es in 50 gezeigt ist, die Stromzufuhrzeit tm der Stromzufuhrphase jedes von drei Schritten beispielsweise nach dem Start der offenen Regelkreissteuerung auf die längste Zeit (beispielsweise 50 ms) eingestellt, um dadurch einen sicheren Zugriff des Rotors 32 zu erhalten und die Drehphase des Rotors 32 und die Stromzufuhrphase zuverlässig miteinander zu synchronisieren. Die Stromzufuhrzeit wird danach steil verkürzt, wobei sie dann allmählich verkürzt wird, wenn sich die Drehgeschwindigkeit des Rotors 32 vergrößert. Als Ergebnis wird die Drehgeschwindigkeit des Rotors 32 behutsam vergrößert.
  • Um eine Drehgeschwindigkeit des Rotors 32 während der offenen Regelkreissteuerung zu folgern, wird eine Anfangsposition des Rotors 32 (das heißt ein Anfangswert des Positionszählwerts Ncntop) bei dem Start der offenen Regelkreissteuerung auf der Grundlage eines Ausgabesignalwerts des Ausgangswellensensors 14 berechnet. Dann wird der Positionszählwert Ncntop jedes Mal um 2 erhöht (oder erniedrigt), wenn die Stromzufuhrphase geschaltet wird, wobei eine Drehposition des Rotors 32 auf der Grundlage eines sich ergebenden Positionszählwerts Ncntop gefolgert wird. Wenn die Differenz zwischen dem Positionszählwert Ncntop und einem Sollzählwert Acnt um ein gewisses Ausmaß klein geworden ist, wird bestimmt, dass die Drehposition in einen Abbremsbereich gekommen ist. Die Stromzufuhrzeit tm wird allmählich verlängert, um die Drehgeschwindigkeit des Rotors 32 behutsam abzubremsen. Wenn der Positionszählwert Ncntop den Sollzählwert Acnt erreicht hat, wird bestimmt, dass der Rotor 32 die Zielposition erreicht hat, und die offene Regelkreissteuerung wird beendet.
  • Obwohl in der vorstehend beschriebenen Routine die Stromzufuhrzeit tm entsprechend dem Drehgeschwindigkeitsparameter mspd eingestellt wird, kann sie auf der Grundlage von zumindest einer/einem der Drehgröße nach einem Start einer Ansteuerung, der vergangenen Zeit nach dem Start einer Ansteuerung, der Drehgröße zu einer Zielposition und dem Lastdrehmoment eingestellt werden.
  • Obwohl in der vorstehend beschriebenen Routine die erste Stromzufuhr eine Zwei-Phasen-Stromzufuhr bei dem Start der offenen Regelkreissteuerung ist, kann sie eine Ein-Phasen-Stromzufuhr sein. Ferner ist das bei einer offenen Regelkreissteuerung einzusetzende Stromzufuhrverfahren nicht auf die Ein-/Zwei-Phasen-Stromzufuhr begrenzt. Es kann das Ein-Phasen-Stromzufuhrverfahren oder das Zwei-Phasen-Stromzufuhrverfahren sein.
  • [Erfassung einer Ansteuerungsspulentrennung]
  • Eine in 80 gezeigte Ansteuerungsspulentrennungserfassungsroutine, die jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert wird, dient als eine Anomaliediagnoseeinrichtung. In dieser Routine wird eine Trennung in den Wicklungen 33 und 34 der Ansteuerungsspulen 35 und 36 auf die nachstehend beschriebene Weise erfasst.
  • Wie es in 82 gezeigt ist, ist eine Trennungserfassungsschaltung 60 bei der Stromzufuhrleitung jedes Paares von Wicklungen 33 oder 34 jeder Phase bereitgestellt. Ein Spannungspegel (ein Spannungspegel der Stromzufuhrleitung jeder Phase) bei dem Verbindungspunkt von zwei Widerständen 61 und 62 der Trennungserfassungsschaltung 60 jeder Phase wird in die ECU 41 über einen zugehörigen entsprechenden Eingangsanschluss eingelesen. Wo die Wicklungen 33 und 34 der Ansteuerungsspulen 35 und 36 normal sind (das heißt frei von einer Trennung), wird, wenn ein Schaltelement 39 der Motoransteuerungseinrichtung 37 oder 38 ausgeschaltet wird, der Spannungspegel des Verbindungspunkts der zwei entsprechenden Widerstände 61 und 62 durch eine Batteriespannung Vb vergrößert, die daran über die entsprechenden Wicklungen 33 oder 34 angelegt wird, wodurch der Spannungspegel (nachstehend als "Anschlusspegel" bezeichnet) des entsprechenden Eingangsanschlusses der ECU 41 ein hoher Pegel wird. Wenn das Schaltelement 39 danach eingeschaltet wird, ist der Verbindungspunkt der zwei Widerstände 61 und 62 mit Erde bzw. Masse über das Schaltelement 39 verbunden, wodurch der Anschlusspegel der ECU 41 ein niedriger Pegel wird.
  • Demgegenüber wird, wo eine Trennung in den Wicklungen 33 oder 34 der Ansteuerungsspule 35 oder 36 vorhanden ist, die Batteriespannung Vb an dem Verbindungspunkt der Widerstände 61 und 62 über Wicklungen 33 oder 34 nicht angelegt, auch wenn das Schaltelement 39 ausgeschaltet wird. Folglich wird der Anschlusspegel der ECU 41 bei einem niedrigen Pegel gehalten, das heißt, er wird nicht auf einen hohen Pegel vertauscht.
  • Auf der Grundlage der vorstehend beschriebenen Beziehung bestimmt die CPU 41a der ECU 41, ob eine Trennung in den Wicklungen 33 und 34 der jeweiligen Phasen vorhanden ist, indem bestimmt wird, ob die Anschlusspegel der jeweiligen Phasen auf einem niedrigen Pegel sind, wenn die Schaltelemente 39 aller Phasen aus sind, das heißt, die Ansteuerungsspulen 35 und 36 nicht mit Energie versorgt werden.
  • Bei einer Aktivierung der Ansteuerungsspulentrennungserfassungsroutine gemäß 80 wird in Schritt 3501 bestimmt, ob eine Stromzufuhr für alle Phasen ausgeschaltet ist. Wenn eine Stromzufuhr nicht für alle Phasen ausgeschaltet ist, wird diese Routine beendet, ohne die verbleibenden Schritte auszuführen. Wenn eine Stromzufuhr danach für alle Phasen ausgeschaltet wird, wird in Schritt 35023504 auf der Grundlage davon, ob die Anschlusspegel einer U-Phase, V- Phase und W-Phase auf einem hohen Pegel sind, bestimmt, ob die Wicklungen 33 der U-Phase, V-Phase und W-Phase der Erstsystem-Ansteuerungsspule 36 normal (das heißt, frei von einer Trennung) sind. Wenn der Anschlusspegel zumindest einer der U-Phase, V-Phase und W-Phase auf einem niedrigen Pegel ist, wird bestimmt, dass eine Trennung in den Wicklungen 33 der Niedrigpegelphase vorhanden ist. Die Routine schreitet zu Schritt 3506 voran, in dem bestimmt wird, dass eine Trennung in der Erstsystem-Ansteuerungsspule 35 vorhanden ist. Die Routine schreitet zu Schritt 3507 und den nachfolgenden Schritten, das heißt den Schritten zur Erfassung einer Trennung in der Zweitsystem-Ansteuerungsspule 36 voran.
  • Demgegenüber schreitet, wenn die Anschlusspegel von allen der U-Phase, V-Phase und W-Phase auf einem hohen Pegel sind (das heißt, die Bestimmungsergebnisses aller Schritte 35023504 sind "ja"), die Routine zu Schritt 3505 voran, in dem bestimmt wird, dass die Erstsystem-Ansteuerungsspule 35 normal (das heißt frei von einer Trennung.) ist. Die Routine schreitet zu Schritt 3507 und den nachfolgenden Schritten, das heißt den Schritten zur Erfassung einer Trennung in der Zweitsystem-Ansteuerungsspule 36 voran.
  • Die Schritte zur Erfassung einer Trennung in der Zweitsystem-Ansteuerungsspule 36 sind ähnlich zu den vorstehend beschriebenen Schritten. In Schritten 35073509 wird auf der Grundlage davon, ob die Anschlusspegel einer U-Phase, V-Phase und W-Phase auf einem hohen Pegel sind, bestimmt, ob die Wicklungen 34 der U-Phase, V-Phase und W-Phase der Zweitsystem-Ansteuerungsspule 36 normal (das heißt frei von einer Trennung) sind. Wenn der Anschlusspegel zumindest einer der U-Phase, V-Phase und W-Phase auf einem niedrigen Pegel ist, wird bestimmt, dass eine Trennung in der Wicklung 34 der Niedrigpegelphase vorhanden ist. Die Routine schreitet zu Schritt 3511 voran, in dem bestimmt wird, dass eine Trennung in der Zweitsystem-Ansteuerungsspule 36 vorhanden ist. Dann wird diese Routine beendet.
  • Demgegenüber schreitet, wenn die Anschlusspegel von allen der U-Phase, V-Phase und W-Phase auf einem hohen Pegel sind (das heißt, die Bestimmungsergebnisse aller Schritte 35073509 sind "ja"), die Routine zu Schritt 3510 voran, in dem bestimmt wird, dass die Zweitsystem-Ansteuerungsspule 36 normal (das heißt frei von einer Trennung) ist. Dann wird diese Routine beendet.
  • Wenn eine Trennung in der Ansteuerungsspule 35 oder 36 eines Systems in der vorstehend beschriebenen Routine erfasst wird, ist die Ausfallsicherungsprozessausführungsbedingung in Schritt 901 der Ausfallsicherungsverarbeitungsroutine gemäß 58 und 59 erfüllt, wodurch eine Alarmanzeige ausgeführt wird und das Offene-Regelkreissteuerungsausführungsflag Xopen auf "ein" gesetzt wird. Dabei wird eine offene Regelkreissteuerung ausgeführt.
  • [Stromzufuhrprozess]
  • Eine in 81 gezeigte Stromzufuhrverarbeitungsroutine ist eine Unterroutine, die bei der Offene-Regelkreissteuerungsroutine gemäß 76-78 ausgeführt wird. Bei einer Aktivierung dieser Routine wird in Schritten 39813983 eine Trennung in einem oder beiden der Erstsystem-Ansteuerungsspule 35 (U-Phase, V-Phase und W-Phase) und der Zweitsystem-Ansteuerungsspule 36 (U-Phase, V-Phase und W-Phase) erfasst. Wenn beide Systeme von Ansteuerungspulen 35 und 36 normal sind (keine Trennung), schreitet die Routine zu Schritt 3987 voran, in dem beide Systeme von Ansteuerungsspulen 35 und 36 mit Energie versorgt werden.
  • Demgegenüber schreitet, wenn bestimmt wird, dass lediglich die Erstsystem-Ansteuerungsspule 35 (U-Phase, V-Phase und W-Phase) eine Trennung aufweist, die Routine zu Schritt 3984 voran, in dem lediglich die Zweitsystem-Ansteuerungsspule 36 (U-Phase, V-Phase und W-Phase) mit Energie versorgt wird. Umgekehrt schreitet, wenn bestimmt wird, dass lediglich die Zweitsystem-Ansteuerungsspule 36 (U-Phase, V-Phase und W-Phase) eine Trennung aufweist, die Routine zu Schritt 3986 voran, in dem lediglich die Erstsystem-Ansteuerungsspule 35 (U-Phase, V-Phase und W-Phase) mit Energie versorgt wird.
  • Wenn bestimmt wird, dass beide Systeme von Ansteuerungsspulen 35 und 36 eine Trennung aufweisen, schreitet die Routine zu Schritt 3985 voran, in dem keines der zwei Systeme von Ansteuerungsspulen 35 und 36 mit Energie versorgt wird.
  • In dem vorstehend beschriebenen dritten Ausführungsbeispiel wird, wenn eine Trennung in einem der zwei Systeme von Ansteuerungsspulen 35 und 36 (Wicklungen 33 und 34) des SR-Motors 12 auftritt, eine offene Regelkreissteuerung unter Verwendung lediglich der Ansteuerungsspule 35 oder 36 des anderen Systems, das frei von einer Trennung ist, ausgeführt, wodurch der Rotor 32 mit einer niedrigen Geschwindigkeit angesteuert werden kann. Folglich kann, auch wenn eine Trennung in der Ansteuerungsspule 35 oder 36 eines beliebigen Systems auftritt und das Antriebsdrehmoment abnimmt, der Rotor 32 zu einer Zielposition durch eine offene Regelkreissteuerung gedreht werden. Es kann nicht nur die Zuverlässigkeit der Motorsteuerung vergrößert werden, sondern die Ansteuerungsspulen 35 und 36 der jeweiligen Systeme müssen auch nicht in der Größe vergrößert werden, das heißt, eine Vergrößerung der Größe des SR-Motors 12 kann vermieden werden.
  • Zusätzlich wird gemäß dem dritten Ausführungsbeispiel der maximale Drehgeschwindigkeitsparameter mspdmax entsprechend der Batteriespannung und dem Vorhandensein/Fehlen einer Trennung in den Ansteuerungsspulen 35 und 36 unter Verwendung der Tabelle gemäß 79 eingestellt, wodurch die Drehgeschwindigkeit des Rotors 32 entsprechend der Batteriespannung und dem Vorhandensein/Fehlen einer Trennung in den Ansteuerungsspulen 35 und 36 begrenzt wird. Auch wenn eine Trennung in der Ansteuerungsspule 35 oder 36 eines beliebigen Systems in einem Zustand auftritt, bei dem die Batteriespannung niedrig ist, kann der Rotor 32 zu einer Zielposition mit einer niedrigen Geschwindigkeit durch eine offene Regelkreissteuerung gedreht werden.
  • (Viertes Ausführungsbeispiel)
  • In dem vorstehend beschriebenen dritten Ausführungsbeispiel wird bestimmt, ob eine Trennung in den Wicklungen 33 oder 34 der Ansteuerungsspule 35 oder 36 vorhanden ist, indem Spannungspegel der Stromzufuhrleitungen der jeweiligen Phasen (das heißt ein Spannungspegel des Verbindungspunkts der zwei Widerstände 61 und 62 der Trennungserfassungsschaltung 60 jeder Phase) erfasst werden. In einem vierten Ausführungsbeispiel der Erfindung, das in 83 gezeigt ist, wird bestimmt, ob eine Trennung in den Wicklungen 33 oder 34 der Ansteuerungsspule 35 oder 36 vorhanden ist, indem mit Stromsensoren 63 Stromzufuhrströme oder derzeitige Zufuhrströme, die durch die Stromzufuhrleitungen der jeweiligen Phasen fließen, erfasst werden.
  • In dem vierten Ausführungsbeispiel sind, wie es in 83 gezeigt ist, die neutralen Punkte der jeweiligen Ansteuerungsspulen 35 und 36 mit dem negativen Pol der Batterie 40 verbunden und ein Ende der Wicklungen 33 und 34 jeder Phase jeder Ansteuerungsspule 35 oder 36 ist mit dem positiven Pol der Batterie 40 über ein entsprechendes Schaltelement der Motoransteuerungseinrichtung 37 oder 38 verbunden. Eine Stromzufuhr für jede Phase der Ansteuerungsspule 35 oder 36 jedes Systems wird ein- oder ausgeschaltet, indem das entsprechende Schaltelement 39 der Motoransteuerungseinrichtung 37 oder 38 durch die ECU 41 ein- oder ausgeschaltet wird.
  • Die Stromzufuhrleitung jeder Phase der Ansteuerungsspule 35 oder 36 jedes Systems ist mit einem Stromsensor 63 versehen, wobei ein Ausgabesignal des Stromsensors 63 jeder Phase einem entsprechenden Eingangsanschluss der ECU 41 zugeführt wird.
  • Wenn die Wicklungen 33 und 34 der Ansteuerungsspulen 35 und 36 der jeweiligen Systeme normal (das heißt frei von einer Trennung) sind, wird durch einen Stromsensor 63 einer Stromzufuhrphase, für die ein Schaltelement 39 eingeschaltet ist, ein Stromzufuhrstrom erfasst. Es fließt jedoch, auch wenn ein entsprechendes Schaltelement 39 eingeschaltet ist, kein Stromzufuhrstrom durch Wicklungen 33 oder 34 derjenigen Phase, die eine Trennung aufweist. Folglich erfasst der Stromsensor 63 dieser Phase keinen Stromzufuhrstrom.
  • Auf der Grundlage der vorstehend genannten Beziehung bestimmt die ECU 41, dass die Wicklungen 33 und 34 der jeweiligen Phasen frei von einer Trennung sind, wenn die Stromsensoren 63 der jeweiligen Phasen Stromzufuhrströme erfassen, wenn die Schaltelemente 39 der jeweiligen Phasen eingeschaltet sind. Die ECU 41 bestimmt, dass eine Trennung in Wicklungen 33 oder 34 einer bestimmten Phase vorhanden ist, wenn der Stromsensor 63 dieser Phase keinen Stromzufuhrstrom erfasst, auch wenn das Schaltelement 39 dieser Phase eingeschaltet ist.
  • Gemäß dem vierten Ausführungsbeispiel wird eine Trennung in den Ansteuerungsspulen 35 und 36 entsprechend einer in 84 gezeigten Ansteuerungsspulentrennungserfassungsroutine erfasst. Diese Routine wird jede vorbestimmte Zeit (beispielsweise jede 1 ms) aktiviert. Bei einer Aktivierung dieser Routine wird in Schritt 4521 bestimmt, ob eine Stromzufuhr für die U- und U'-Phasen bewirkt wird (das heißt, ob die Schaltelemente 39 der U- und U'-Phasen eingeschaltet sind). Wenn eine Stromzufuhr für die U- und U'-Phasen bewirkt wird, wird in Schritten 4523 und 4524 bestimmt, ob die Stromsensoren 63 der U- und U'-Phasen Stromzufuhrströme erfasst haben. Wenn kein Stromzufuhrstrom der U-Phase erfasst worden ist, wird in Schritt 4524 bestimmt, dass eine U-Phasentrennung in der Erstsystem-Ansteuerungsspule 35 vorhanden ist. Wenn kein Stromzufuhrstrom in der U'-Phase erfasst worden ist, wird in Schritt 4526 bestimmt, dass eine U'-Phasentrennung in der Zweitsystem-Ansteuerungsspule 36 vorhanden ist.
  • Dann schreitet die Routine zu Schritt 4527 voran, in dem bestimmt wird, ob eine Stromzufuhr für die V- und die V'-Phasen bewirkt wird (das heißt, ob die Schaltelemente 39 der V- und V'-Phasen eingeschaltet sind). Wenn eine Stromzufuhr für die V- und V'-Phasen bewirkt wird, wird in Schritten 4528 und 4530 bestimmt, ob die Stromsensoren 63 der V- und V'-Phasen Stromzufuhrströme erfasst haben. Wenn kein Stromzufuhrstrom der V-Phase erfasst worden ist, wird in Schritt 4529 bestimmt, dass eine V-Phasentrennung in der Erstsystem-Ansteuerungsspule 35 vorhanden ist. Wenn kein Stromzufuhrstrom in der V'-Phase erfasst worden ist, wird in Schritt 4531 bestimmt, dass eine V'-Phasentrennung in der Zweitsystem-Ansteuerungsspule 36 vorhanden ist.
  • Dann schreitet die Routine zu Schritt 4532 voran, in dem bestimmt wird, ob eine Stromzufuhr für die W- und die W'-Phasen bewirkt wird (das heißt, ob die Schaltelemente 39 der W- und W'-Phasen eingeschaltet sind). Wenn eine Stromzufuhr für die W- und W'-Phasen bewirkt wird, wird in Schritten 4533 und 4535 bestimmt, ob die Stromsensoren 63 der W- und W'-Phasen Stromzufuhrströme erfasst haben. Wenn kein Stromzufuhrstrom der W-Phase erfasst worden ist, wird in Schritt 4534 bestimmt, dass eine W-Phasentrennung in der Erstsystem-Ansteuerungsspule 35 vorhanden ist. Wenn kein Stromzufuhrstrom in der W'-Phase erfasst worden ist, wird in Schritt 4536 bestimmt, dass eine W'-Phasentrennung in der Zweitsystem-Ansteuerungsspule 36 vorhanden ist.
  • Gemäß dem vierten Ausführungsbeispiel sind die Stromzufuhrleitungen der jeweiligen Phasen der Ansteuerungsspulen 35 und 36 mit jeweiligen Stromsensoren 63 versehen. Alternativ hierzu können Stromzufuhrströme, die durch die neutralen Punkte der Ansteuerungsspulen 35 bzw. 36 fließen, erfasst werden. Dies kann erreicht werden, indem ein einzelner Stromsensor in jeder der Ansteuerungsspulen 35 und 36 bereitgestellt wird, was eine Kostenverringerung ermöglicht.
  • In den dritten und vierten Ausführungsbeispielen wird eine Trennung in den Ansteuerungsspulen 35 und 36 erfasst. Demgegenüber kann eine Fehlfunktion in den Motoransteuerungseinrichtungen 37 und 38 erfasst werden. Wenn die Motoransteuerungseinrichtung 37 und 38 eines Systems eine Fehlfunktion aufweist, kann die alleinige Ansteuerungsspule 36 oder 35 des anderen Systems durch eine offene Regelkreissteuerung unter Verwendung der Motoransteuerungseinrichtung 38 oder 37 des anderen Systems angesteuert werden.
  • Beispielsweise kann gemäß dem dritten Ausführungsbeispiel eine Fehlfunktion in den Motoransteuerungseinrichtungen 37 und 38 auf die nachstehend beschriebene Weise erfasst werden. Wenn die Anschlusspegel der jeweiligen Phasen zu einem niedrigen Pegel vertauscht werden, wenn die jeweiligen Schaltelemente 39 eingeschaltet werden, sind die Motoransteuerungseinrichtungen 37 und 38 normal. Demgegenüber kann, wenn der Anschlusspegel einer bestimmten Phase auf einem hohen Pegel gehalten wird (das heißt nicht zu einem niedrigen Pegel vertauscht wird), wenn das entsprechende Schaltelement 39 eingeschaltet wird, bestimmt werden, dass dieses Schaltelement 39 eine Fehlfunktion aufweist.
  • Wenn ein Schaltelement 39 der Motoransteuerungseinrichtung 37 oder 38 eine Fehlfunktion aufweist und somit nicht in der Lage ist, eingeschaltet zu werden, auch wenn ein Ansteuerungssignal zu dem Schaltelement 39 von der ECU 41 zugeführt wird, wird das Schaltelement 39 nicht eingeschaltet und somit fließt kein Stromzufuhrstrom durch die entsprechenden Wicklungen 33 oder 34. Folglich kann das Verfahren gemäß dem vierten Ausführungsbeispiel, bei dem das Vorhandensein/Fehlen einer Trennung in den Ansteuerungsspulen 35 und 36 bestimmt wird, indem Stromzufuhrströme der jeweiligen Phasen mit Stromsensoren 63 erfasst werden, nicht zwischen einer Fehlfunktion in den Schaltelementen 39 und einer Trennung in den Ansteuerungsspulen 35 und 36 unterscheiden.
  • Jedoch kann die Ansteuerungsspule 35 oder 36 eines Systems, dessen Schaltelement 39 eine Fehlfunktion aufweist, wie in einem Fall nicht mit Energie versorgt werden, bei dem eine Trennung in der Ansteuerungsspule 35 oder 36 selbst auftritt. Folglich werden, auch wenn die zwei Fälle nicht voneinander unterschieden werden, keine Schwierigkeiten bei einer Ausführung einer offenen Regelkreissteuerung unter Verwendung der Ansteuerungsspule und der Motoransteuerungseinrichtung eines normalen Systems verursacht.
  • Wenn eine Trennung in der Ansteuerungsspule 35 oder 36 aufgetreten ist, verkleinert sich das Antriebsdrehmoment in einem größeren Umfang als bei anderen Anomaliearten. Angesichts dessen kann, wenn eine Trennung in der Ansteuerungsspule 35 oder 36 erfasst worden ist, eine offene Regelkreissteuerung unter Verwendung der Ansteuerungsschaltung und der Ansteuerungsspule des anderen, normalen Systems ausgeführt werden, so dass die Rotordrehgeschwindigkeit kleiner gemacht wird als wenn andere Anomaliearten erfasst werden. Dies ermöglicht es, die Motorsteuerung zuverlässig zu halten, auch wenn eine Anomalie, die das Antriebsdrehmoment verkleinert, aufgetreten ist.
  • Obwohl in dem dritten und dem vierten Ausführungsbeispiel die zwei Systeme von Ansteuerungsspulen und die zwei Systeme von Motoransteuerungseinrichtungen bereitgestellt sind, können drei oder mehr Systeme bereitgestellt sein.
  • Die Kodiereinrichtung, die in der Erfindung verwendet wird, ist nicht auf die magnetische Kodiereinrichtung, wie die Kodiereinrichtung 46, begrenzt. Beispielsweise kann eine optische Kodiereinrichtung oder eine Kodiereinrichtung des Bürstentyps verwendet werden.
  • Der Motor, der in der Erfindung verwendet wird, ist nicht auf den SR-Motor begrenzt. Ein bürstenloser Motor, der zu dem SR-Motor unterschiedlich ist, kann verwendet werden, solange er zu einem derartigen Typ gehört, bei dem die Motorstromzufuhrphase sequentiell geschaltet wird, indem die Drehposition des Rotors auf der Grundlage des Zählwerts eines Ausgabesignals einer Kodiereinrichtung erfasst wird.
  • Die Positionsschaltvorrichtung gemäß dem vorstehend beschriebenen Ausführungsbeispielen gehört einem derartigen Typ an, bei dem ein Schalten zwischen den zwei Bereichen, das heißt der P-Position und der Nicht-P-Position, ausgeführt wird. Die Erfindung kann jedoch auch beispielsweise bei einer Positionsschaltvorrichtung angewendet werden, die zwischen Bereichen von P, R, N, D usw. eines Automatikgetriebes durch Schalten eines Positionsschaltventils und eines manuellen Ventils des Automatikgetriebes in Verbindung mit einem Drehbetrieb des Arretierhebels 15 schaltet.
  • Ferner kann die Erfindung nicht nur bei Positionsschaltvorrichtungen, sondern auch bei verschiedenen Vorrichtungen mit einem bürstenlosen Motor, wie beispielsweise einem SR-Motor, als eine Antriebsquelle angewendet werden.
  • Wie es vorstehend beschrieben ist, wird ein Vorhandensein/Fehlen einer Fehlfunktion in einem Regelungssystem eines Motors (12) überwacht. Wenn eine Fehlfunktion in dem Regelungssystem erfasst wird, wird der Motor (12) durch Schalten zu einer offenen Regelkreissteuerung angesteuert. Während der offenen Regelkreissteuerung wird der Motor (12) durch sequentielles Schalten der Motorstromzufuhrphase gedreht, ohne Kodiereinrichtungszählwertinformationen zurückzuführen. Der Positionszählwert (Ncntop) wird jedes Mal, wenn die Stromzufuhrphase geschaltet wird, inkrementiert oder dekrementiert. Wenn der Positionszählwert (Ncntop) einen Sollzählwert (Acnt) erreicht hat, wird bestimmt, dass der Rotor eine Zielposition erreicht hat, woraufhin die offene Regelkreissteuerung beendet wird.

Claims (39)

  1. Motorsteuerungsgerät mit: einer Kodiereinrichtung (46) zur Erzeugung eines Impulssignals synchron mit einer Drehung eines Rotors (32) eines Motors (12), der einen Steuerungsgegenstand (11) dreht; einer Steuerungseinrichtung (41) zur Drehung des Rotors zu einer Zielposition durch Erfassen einer Drehposition des Rotors auf der Grundlage eines Zählwerts des Impulssignals der Kodiereinrichtung und durch sequentielles Schalten einer Stromzufuhrphase des Motors; und einer Anomalieüberwachungseinrichtung (41) zur Überwachung eines Vorhandenseins/Fehlens einer Anomalie in einem Zustand einer Regelung bei dem Motor, dadurch gekennzeichnet, dass die Steuerungseinrichtung von der Regelung zu einer offenen Regelkreissteuerung schaltet und den Rotor durch sequentielles Schalten der Stromzufuhrphase des Motors dreht, ohne Informationen über den Zählwert des Impulssignals der Kodiereinrichtung zurückzuführen, wenn die Anomalieüberwachungseinrichtung eine Anomalie in dem Zustand der Regelung erfasst.
  2. Motorsteuerungsgerät nach Anspruch 1, dadurch gekennzeichnet, dass die Anomalieüberwachungseinrichtung (41) ein Vorhandensein/Fehlen einer Anomalie in dem Zustand der Regelung überwacht, indem ein Ausgabeintervall des Impulssignals der Kodiereinrichtung oder eine Drehgeschwindigkeit des Rotors während der Regelung überwacht wird.
  3. Motorsteuerungsgerät nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Kodiereinrichtung (46) ein A-Phasensignal und ein B-Phasensignal, die eine vorgeschriebene Phasendifferenz aufweisen, synchron mit einer Drehung des Rotors erzeugt; die Steuerungseinrichtung (41) den Zählwert des Impulssignals der Kodiereinrichtung durch Zählen eines Impulses des A-Phasensignals und eines Impulses des B-Phasensignals während der Regelung aktualisiert, um eine Drehrichtung des Rotors auf der Grundlage einer Auftrittsreihenfolge des Impulses des A-Phasensignals und des Impulses des B-Phasensignals zu bestimmen und den Zählwert entsprechend der Drehrichtung zu inkrementieren oder zu dekrementieren, wobei die Steuerungseinrichtung eine Stromzufuhrphase auf der Grundlage des aktualisierten Zählwerts und der Drehrichtung des Rotors auswählt; und die Anomalieüberwachungseinrichtung (41) ein Vorhandensein/Fehlen einer Anomalie in dem Zustand der Regelung durch separates Zählen von Impulsen des A-Phasensignals und von Impulsen des B-Phasensignals während der Regelung und durch Vergleichen von Zählwerten des A-Phasensignals und des B-Phasensignals überwacht.
  4. Motorsteuerungsgerät nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Anomalieüberwachungseinrichtung (41) eine Drehrichtung des Rotors während der Regelung überwacht und ein Vorhandensein/Fehlen einer Anomalie in dem Zustand der Regelung auf der Grundlage davon überwacht, ob sich die Drehrichtung des Rotors zu einer Drehrichtung zu der Zielposition umgekehrt hat.
  5. Motorsteuerungsgerät nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Steuerungseinrichtung (41) umfasst: eine Einrichtung zum Lernen einer entsprechenden Beziehung zwischen einer Drehposition des Rotors und einer Stromzufuhrphase durch Bewirken einer Stromzufuhr für alle Phasen des Motors ringsum entsprechend einem vorgeschriebenen Zeitplan bei einer Anfangsansteuerung, die nach einer Energiezufuhr ausgeführt wird; und eine Einrichtung zum Lernen zumindest einer von Grenzpositionen eines bewegbaren Bereichs des Steuerungsgegenstands durch Ausführen einer Anstoßsteuerung, bei der der Rotor gedreht wird, bis ein Anstoßen bei der zumindest einen Grenzposition auftritt; wobei die Steuerungseinrichtung eine Anfangsansteuerung und eine Anstoßsteuerung auch ausführt, wenn eine Rückführung von der offenen Regelkreissteuerung zu einer Regelung ausgeführt wird.
  6. Motorsteuerungsgerät nach Anspruch 5, dadurch gekennzeichnet, dass die Anomalieüberwachungseinrichtung (41) ein Überwachen eines Vorhandenseins/Fehlens einer Anomalie in dem Zustand der Regelung während der Anstoßsteuerung aussetzt.
  7. Motorsteuerungsgerät nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Steuerungseinrichtung (41) die Anzahl von Malen eines Schaltens der Stromzufuhrphase während der offenen Regelkreissteuerung zählt und eine Rückführung zu einer Regelung veranlasst, wenn auf der Grundlage eines sich ergebenden Zählwerts bestimmt wird, dass der Rotor die Zielposition erreicht hat, wenn eine Anomalie in dem Zustand der Regelung erfasst wird.
  8. Motorsteuerungsgerät nach Anspruch 7, dadurch gekennzeichnet, dass, wenn ein Ereignis, dass, auch wenn eine Rückführung von einer offenen Regelkreissteuerung zu einer Regelung ausgeführt ist, eine Anomalie wieder in dem Zustand der Regelung erfasst wird und ein Schalten zu einer offenen Regelkreissteuerung ausgeführt ist, eine vorgeschriebene Anzahl von Malen hintereinander aufgetreten ist, die Anomalieüberwachungseinrichtung (41) abschließend entscheidet, dass eine Anomalie vorhanden ist, und eine Rückführung zu einer Regelung nicht mehr veranlasst.
  9. Motorsteuerungsgerät nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass der Motor (12) ein geschalteter Reluktanzmotor ist.
  10. Motorsteuerungsgerät nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass der Steuerungsgegenstand (11) eine Positionsschaltvorrichtung zum Schalten zwischen einer Parkposition und einer anderen Position eines Fahrzeugs ist.
  11. Motorsteuerungsgerät mit: einer Kodiereinrichtung (46) zur Erzeugung eines Impulssignals synchron mit einer Drehung eines Rotors (32) eines Motors (12), der einen Steuerungsgegenstand (11) dreht; und einer Steuerungseinrichtung (41) zum Drehen des Rotors zu einer Zielposition durch Erfassen einer Drehposition des Rotors auf der Grundlage eines Zählwerts des Impulssignals der Kodiereinrichtung und durch sequentielles Schalten einer Stromzufuhrphase des Motors, gekennzeichnet durch eine Fehlfunktionsüberwachungseinrichtung (41) zur Überwachung eines Vorhandenseins/Fehlens einer Fehlfunktion in einem Regelungssystem des Motors und einer Ausfallsicherungseinrichtung (41) zum Schalten von der Regelung zu einer offenen Regelkreissteuerung, wenn die Fehlfunktionsüberwachungseinrichtung eine Fehlfunktion in dem Regelungssystem erfasst hat, zum sequentiellen Schalten der Stromzufuhrphase des Motors, ohne Informationen über den Zählwert des Impulssignals der Kodiereinrichtung zurückzuführen, zum Zählen der Anzahl von Malen eines Schaltens der Stromzufuhrphase und zum Drehen des Rotors zu der Zielposition auf der Grundlage eines sich ergebenden Zählwerts.
  12. Motorsteuerungsgerät nach Anspruch 11, dadurch gekennzeichnet, dass bei einer Ansteuerung des Motors von einem Stopzustand durch die offene Regelkreissteuerung die Ausfallsicherungseinrichtung (41) eine Zwei-Phasen-Stromzufuhr als erste Stromzufuhr ausführt und danach eine Ein-Phasen-Stromzufuhr und eine Zwei-Phasen-Stromzufuhr wechselweise ausführt.
  13. Motorsteuerungsgerät nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass bei einer Ansteuerung des Motors von einem Stopzustand durch die offene Regelkreissteuerung die Ausfallsicherungseinrichtung (41) eine Stromzufuhrzeit einer vorgeschriebenen Anzahl von ersten Stromzufuhrversuchen länger als eine Stromzufuhrzeit von nachfolgenden Stromzufuhrversuchen einstellt.
  14. Motorsteuerungsgerät nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass während der offenen Regelkreissteuerung die Ausfallsicherungseinrichtung (41) eine Stromzufuhrzeit auf der Grundlage zumindest einer von einer/einem Drehgeschwindigkeit des Rotors, einer Drehgröße des Rotors nach einem Start einer Ansteuerung, einer vergangen Zeit seit dem Start der Ansteuerung, einer Drehgröße zu einer Zielposition und einem Lastdrehmoment einstellt.
  15. Motorsteuerungsgerät nach einem der Ansprüche 11 bis 14, dadurch gekennzeichnet, dass die Ausfallsicherungseinrichtung (41) ein empfangenes Zielpositionsschaltmanipulationssignal in einer Periode, wenn der Rotor zu der Zielposition durch die offene Regelkreissteuerung gedreht wird, außer acht lässt.
  16. Motorsteuerungsgerät nach einem der Ansprüche 11 bis 15, gekennzeichnet durch einen Ausgangswellensensor (14) zur Erfassung einer Drehposition einer Ausgangswelle des Motors oder von Positionsinformationen, die damit korreliert sind, wobei die Ausfallsicherungseinrichtung (41) die offene Regelkreissteuerung beendet, wenn eine Drehposition des Rotors, die auf der Grundlage eines Zählwerts der Anzahl von Malen eines Schaltens der Stromzufuhrphase während der offenen Regelkreissteuerung gefolgert wird, die Zielposition erreicht hat, auf der Grundlage eines Ausgabesignals des Ausgangswellensensors bestimmt, ob eine Ansteuerung des Motors durch die offene Regelkreissteuerung erfolgreich war oder fehlgeschlagen ist, und den Motor wieder durch eine offene Regelkreissteuerung ansteuert, wenn die Ansteuerung des Motors fehlgeschlagen ist.
  17. Motorsteuerungsgerät nach Anspruch 16, dadurch gekennzeichnet, dass die Ausfallsicherungseinrichtung (41) bestimmt, dass der Motor durch eine offene Regelkreissteuerung nicht gesteuert werden kann, und eine Stromzufuhr des Motors ausschaltet, wenn die Ansteuerung des Motors durch die offene Regelkreissteuerung eine vorgeschriebene Anzahl von Malen hintereinander fehlgeschlagen ist.
  18. Motorsteuerungsgerät nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass die Ausfallsicherungseinrichtung (41) eine Anfangsposition des Rotors bei einem Start der offenen Regelkreissteuerung auf der Grundlage des Ausgangssignals des Ausgangswellensensors folgert und eine Drehposition des Rotors während der offenen Regelkreissteuerung auf der Grundlage der gefolgerten Anfangsposition des Rotors und des Zählwerts der Anzahl von Malen eines Schaltens der Stromzufuhrphase folgert.
  19. Motorsteuerungsgerät nach einem der Ansprüche 11 bis 18, dadurch gekennzeichnet, dass der Motor (12) ein geschalteter Reluktanzmotor ist.
  20. Motorsteuerungsgerät nach einem der Ansprüche 11 bis 19, dadurch gekennzeichnet, dass der Steuerungsgegenstand (11) eine Positionsschaltvorrichtung zum Schalten zwischen einer Parkposition und einer anderen Position eines Fahrzeugs ist.
  21. Motorsteuerungsgerät nach Anspruch 20, dadurch gekennzeichnet, dass die Auswahlsicherungseinrichtung (41) eine Drehmomentbegrenzungssteuerung zur Begrenzung eines Motordrehmoments während einer Positionsschaltoperation durch die offene Regelkreissteuerung ausführt.
  22. Motorsteuerungsgerät mit: einer Kodiereinrichtung (46) zur Erzeugung eines Impulssignals synchron mit einer Drehung eines Rotors (32) eines Motors (12), der einen Steuerungsgegenstand (11) dreht, und einer Regelungseinrichtung (41) zur Ausführung einer Regelung zum Drehen des Rotors zu einer Zielposition durch Erfassen einer Drehposition des Rotors auf der Grundlage eines Zählwerts des Impulssignals der Kodiereinrichtung und durch sequentielles Schalten einer Stromzufuhrphase des Motors, gekennzeichnet durch einer Offene-Regelkreissteuerungseinrichtung (41) zum Schalten von der Regelung zu einer offenen Regelkreissteuerung, wenn eine Regelungsausführungsbedingung nicht erfüllt ist, zum sequentiellen Schalten der Stromzufuhrphase durch Zuführen eines Ansteuerungssignals zu einer Ansteuerungsschaltung des Motors, ohne Informationen über den Zählwert des Impulssignals der Kodiereinrichtung zurückzuführen, zum Zählen von Impulsen des Ansteuerungssignals und zum Drehen des Rotors zu einer Zielposition auf der Grundlage eines sich ergebenden Zählwerts und einer Anomaliediagnoseeinrichtung (41) zum Bestimmen eines Vorhandenseins/Fehlens einer Anomalie in der Kodiereinrichtung durch Vergleichen eines Zählwerts des Impulssignals der Kodiereinrichtung und des Zählwerts des Ansteuerungssignals, die während der offenen Regelkreissteuerung erhalten werden.
  23. Motorsteuerungsgerät nach Anspruch 22, dadurch gekennzeichnet, dass die Anomaliediagnoseeinrichtung (41) eine Rückführung von der offenen Regelkreissteuerung zu einer Regelung verhindert, wenn eine Anomalie in der Kodiereinrichtung erfasst wird.
  24. Motorsteuerungsgerät nach Anspruch 22 oder 23, dadurch gekennzeichnet, dass die Kodiereinrichtung (46) ein A-Phasensignal und ein B-Phasensignal, die eine vorgeschriebene Phasendifferenz aufweisen, synchron mit einer Drehung des Rotors erzeugt und ebenso Impulse eines Z-Phasensignals bei Referenzdrehpositionen des Rotors erzeugt, die Regelungseinrichtung (41) Flanken des A-Phasensignals und des B-Phasensignals während der Regelung zählt, die Stromzufuhrphase auf der Grundlage eines Flankenzählwerts sequentiell schaltet, auf der Grundlage des Z-Phasensignals bestimmt, ob eine Abweichung zwischen der Drehposition des Rotors und der Stromzufuhrphase vorhanden ist, und eine Z-Phasenkorrektur zum Korrigieren der Abweichung, wenn vorhanden, ausführt und die Anomaliediagnoseeinrichtung (41) ein Vorhandensein/Fehlen einer Anomalie in dem A-Phasensignal und dem B-Phasensignal der Kodiereinrichtung durch Vergleichen des Flankenzählwerts, der während der offenen Regelkreissteuerung erhalten wird, und dem Zählwert des Ansteuerungssignals bestimmt.
  25. Motorsteuerungsgerät nach Anspruch 24, dadurch gekennzeichnet, dass die Anomaliediagnoseeinrichtung (41) ein Vorhandensein/Fehlen einer Anomalie in dem Z-Phasensignal durch Bestimmen eines Ausgabeintervalls des Z-Phasensignals auf der Grundlage des Flankenzählwerts bestimmt, wenn bestimmt wird, dass das A-Phasensignal und das B-Phasensignal der Kodiereinrichtung normal sind.
  26. Motorsteuerungsgerät nach Anspruch 25, dadurch gekennzeichnet, dass die Anomaliediagnoseeinrichtung (41) die Z-Phasenkorrektur verhindert, wenn eine Anomalie in dem Z-Phasensignal erfasst wird.
  27. Motorsteuerungsgerät nach einem der Ansprüche 22 bis 26, dadurch gekennzeichnet, dass der Motor (12) ein geschalteter Reluktanzmotor ist.
  28. Motorsteuerungsgerät nach einem der Ansprüche 22 bis 27, dadurch gekennzeichnet, dass der Steuerungsgegenstand (11) eine Positionsschaltvorrichtung zum Schalten zwischen einer Parkposition und einer anderen Position eines Fahrzeugs ist.
  29. Motorsteuerungsgerät mit: einer Kodiereinrichtung (46) zum Erzeugen eines Impulssignals synchron mit einer Drehung eines Rotors (32) eines Motors (12), der einen Steuerungsgegenstand (11) dreht, wobei der Motor zumindest zwei unabhängige Systeme von Ansteuerungsspulen aufweist, und einer Regelungseinrichtung (41) zur Ausführung einer Regelung zum Drehen des Rotors zu einer Zielposition durch Erfassen einer Drehposition des Rotors auf der Grundlage eines Zählwerts des Impulssignals der Kodiereinrichtung und durch sequentielles Schalten einer Stromzufuhrphase des Motors, gekennzeichnet durch zumindest zwei Systeme von Ansteuerungsschaltungen (37, 38) zum separaten Ansteuern der zumindest zwei Systeme von Ansteuerungsspulen (35, 36) des Motors, wobei die Ansteuerungsspule und die Ansteuerungsschaltung jedes Systems so bereitgestellt sind, dass sie in der Lage sind, den Rotor von sich aus zu drehen, eine Anomaliediagnoseeinrichtung (41) zur Bestimmung eines Vorhandenseins/Fehlens einer Anomalie in der Ansteuerungsspule und der Ansteuerungsschaltung jedes Systems und eine Offene-Regelkreissteuerungseinrichtung (41) zum sequentiellen Schalten, wenn die Anomaliediagnoseeinrichtung eine Anomalie in einem der zumindest zwei Systeme von Ansteuerungsspulen und Ansteuerungsschaltungen erfasst hat, der Stromzufuhrphase durch Zuführen eines Ansteuerungssignals zu der Ansteuerungsschaltung des verbleibenden Systems durch eine offene Regelkreissteuerung, zum Zählen von Impulsen des Ansteuerungssignals und zum Drehen des Rotors zu der Zielposition auf der Grundlage eines sich ergebenden Zählwerts.
  30. Motorsteuerungsgerät nach Anspruch 29, dadurch gekennzeichnet, dass während der offenen Regelkreissteuerung die Offene-Regelkreissteuerungseinrichtung (41) eine Drehgeschwindigkeit des Rotors entsprechend einer Energiequellenspannung begrenzt, die an den Motor angelegt ist.
  31. Motorsteuerungsgerät nach Anspruch 29 oder 30, dadurch gekennzeichnet, dass die Anomaliediagnoseeinrichtung (41) eine Einrichtung zur Erfassung einer Trennung in den zumindest zwei Systemen von Ansteuerungsspulen umfasst, wobei, wenn eine Trennung in der Ansteuerungsspule eines Systems erfasst wird, die Offene-Regelkreissteuerungseinrichtung ein Ansteuerungssignal zu der Ansteuerungsschaltung des verbleibenden Systems zuführt, so dass eine Drehgeschwindigkeit des Rotors kleiner wird als wenn eine Anomalie, die zu einer Trennung unterschiedlich ist, erfasst wird.
  32. Motorsteuerungsgerät nach einem der Ansprüche 29 bis 31, dadurch gekennzeichnet, dass bei einer Ansteuerung des Motors von einem Stopzustand durch die offene Regelkreissteuerung die Offene-Regelkreissteuerungseinrichtung (41) eine Zwei-Phasen-Stromzufuhr als erste Stromzufuhr ausführt und danach eine Ein-Phasen-Stromzufuhr und eine Zwei-Phasen-Stromzufuhr wechselweise ausführt.
  33. Motorsteuerungsgerät nach einem der Ansprüche 29 bis 32, dadurch gekennzeichnet, dass bei einer Ansteuerung des Motors von einem Stopzustand durch die offene Regelkreissteuerung die Offene-Regelkreissteuerungseinrichtung (41) eine Stromzufuhrzeit einer vorgeschriebenen Anzahl von ersten Stromzufuhrversuchen länger als eine Stromzufuhrzeit von nachfolgenden Stromzufuhrversuchen einstellt.
  34. Motorsteuerungsgerät nach einem der Ansprüche 29 bis 33, dadurch gekennzeichnet, dass während einer offenen Regelkreissteuerung die Offene-Regelkreissteuerungseinrichtung eine Stromzufuhrzeit auf der Grundlage zumindest einer/einem von einer Drehgeschwindigkeit des Rotors, einer Drehgröße des Rotors nach einem Start einer Ansteuerung, einer vergangenen Zeit seit dem Start der Ansteuerung, einer Drehgröße zu der Zielposition und einem Lastdrehmoment einstellt.
  35. Motorsteuerungsgerät nach einem der Ansprüche 29 bis 34, gekennzeichnet durch einen Ausgangswellensensor (14) zur Erfassung einer Drehposition einer Ausgangswelle des Motors oder von Positionsinformationen, die damit korreliert sind, wobei die Offene-Regelkreissteuerungseinrichtung die offene Regelkreissteuerung beendet, wenn eine Drehposition des Rotors, die auf der Grundlage des Zählwerts des Ansteuerungssignals während der offenen Regelkreissteuerung gefolgert wird, die Zielposition erreicht hat, auf der Grundlage eines Ausgabesignals des Ausgangswellensensors bestimmt, ob eine Ansteuerung des Motors durch die offene Regelkreissteuerung erfolgreich war oder fehlgeschlagen ist, und, wenn die Ansteuerung des Motors fehlgeschlagen ist, den Motor wieder durch eine offene Regelkreissteuerung ansteuert.
  36. Motorsteuerungsgerät nach Anspruch 35, dadurch gekennzeichnet, dass die Offene-Regelkreissteuerungseinrichtung (41) bestimmt, dass der Motor nicht durch eine offene Regelkreissteuerung gesteuert werden kann, und eine Stromzufuhr des Motors ausschaltet, wenn die Ansteuerung des Motors durch die offene Regelkreissteuerung eine vorgeschriebene Anzahl von Malen hintereinander fehlgeschlagen ist.
  37. Motorsteuerungsgerät nach Anspruch 35 oder 36, dadurch gekennzeichnet, dass die Offene-Regelkreissteuerungseinrichtung (41) eine Anfangsposition des Rotors bei einem Start der offenen Regelkreissteuerung auf der Grundlage des Ausgabesignals des Ausgangswellensensors folgert und eine Drehposition des Rotors während der offenen Regelkreissteuerung auf der Grundlage der gefolgerten Anfangsposition des Rotors und des Zählwerts des Ansteuerungssignals folgert.
  38. Motorsteuerungsgerät nach einem der Ansprüche 29 bis 37, dadurch gekennzeichnet, dass der Motor (12) ein geschalteter Reluktanzmotor ist.
  39. Motorsteuerungsgerät nach einem der Ansprüche 29 bis 38, wobei der Steuerungsgegenstand (11) eine Positionsschaltvorrichtung zum Schalten zwischen einer Parkposition und einer anderen Position eines Fahrzeugs ist.
DE10330809.1A 2002-07-09 2003-07-08 Motorsteuerungsgerät Expired - Fee Related DE10330809B8 (de)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2002199469A JP3886042B2 (ja) 2002-07-09 2002-07-09 モータ制御装置
JP2002-199469 2002-07-09
JP2002207559A JP3947922B2 (ja) 2002-07-16 2002-07-16 モータ制御装置
JP2002207558A JP3849931B2 (ja) 2002-07-16 2002-07-16 モータ制御装置
JP2002-207558 2002-07-16
JP2002-207559 2002-07-16
JP2002-207557 2002-07-16
JP2002207557A JP3849930B2 (ja) 2002-07-16 2002-07-16 モータ制御装置

Publications (3)

Publication Number Publication Date
DE10330809A1 true DE10330809A1 (de) 2004-10-14
DE10330809B4 DE10330809B4 (de) 2018-02-22
DE10330809B8 DE10330809B8 (de) 2018-06-14

Family

ID=30119236

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10362132.6A Expired - Lifetime DE10362132B4 (de) 2002-07-09 2003-07-08 Motorsteuerungsgerät
DE10330809.1A Expired - Fee Related DE10330809B8 (de) 2002-07-09 2003-07-08 Motorsteuerungsgerät

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE10362132.6A Expired - Lifetime DE10362132B4 (de) 2002-07-09 2003-07-08 Motorsteuerungsgerät

Country Status (2)

Country Link
US (2) US7312595B2 (de)
DE (2) DE10362132B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008043296B4 (de) 2007-10-31 2023-11-16 Denso Corporation Motorsteuerungsgerät

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7312595B2 (en) * 2002-07-09 2007-12-25 Denso Corporation Motor control apparatus
JP4367620B2 (ja) * 2003-12-22 2009-11-18 株式会社デンソー モータ駆動システムの異常診断装置
US7178412B2 (en) * 2004-07-30 2007-02-20 Ballard Power Systems Corporation Encoder failure detection
JP2007045271A (ja) * 2005-08-09 2007-02-22 Hitachi Ltd 電動ブレーキおよびその制御装置
US7983822B2 (en) * 2006-09-05 2011-07-19 GM Global Technology Operations LLC Dual wire internal mode switch assembly
JP4367471B2 (ja) * 2006-09-14 2009-11-18 トヨタ自動車株式会社 車両およびその制御方法
DE102006052434B4 (de) * 2006-11-07 2009-04-02 Siemens Ag Antriebssystem zum synchronisierten Betrieb mehrerer Synchronmotoren
US7460030B2 (en) * 2006-12-05 2008-12-02 Continental Automotive Systems Us, Inc. System and method for encoder failure detection
JP2008184985A (ja) * 2007-01-30 2008-08-14 Denso Corp レンジ切換機構の制御装置
US20080296521A1 (en) * 2007-05-30 2008-12-04 General Electric Company Method and system for reducing or eliminating uncontrolled motion in a motion control system
US7898207B2 (en) * 2007-12-04 2011-03-01 Pitney Bowes Inc. Method for controlling a DC motor
JP4968178B2 (ja) * 2008-05-21 2012-07-04 株式会社デンソー レンジ切換機構の制御装置
JP4535174B2 (ja) * 2008-07-11 2010-09-01 トヨタ自動車株式会社 車両の制御装置および制御方法
DE102010001241A1 (de) * 2009-04-01 2010-10-07 Robert Bosch Gmbh Elektronisch kommutierter Elektromotor mit einer Notlaufeigenschaft
GB0908113D0 (en) * 2009-05-12 2009-06-24 Goodrich Control Sys Ltd Metering valve control
DE112009004849B4 (de) * 2009-06-03 2021-06-17 Toyota Jidosha Kabushiki Kaisha Steuerungsvorrichtung und Steuerungsverfahren für ein Fahrzeug
DE112009005334T5 (de) * 2009-10-30 2012-12-13 Toyota Jidosha Kabushiki Kaisha Schalt-umschaltungssteuerungsvorrichtung eines fahrzeugs
US8579763B2 (en) * 2009-11-25 2013-11-12 Toyota Jidosha Kabushiki Kaisha Shift-by-wire gearshift control apparatus
JP5436191B2 (ja) * 2009-12-21 2014-03-05 Ntn株式会社 インホイール型モータ内蔵センサ付き車輪用軸受装置
JP5093624B2 (ja) * 2010-01-20 2012-12-12 株式会社デンソー モータ制御装置
JP5454962B2 (ja) 2011-12-05 2014-03-26 株式会社デンソー モータ制御装置
JP2014050136A (ja) * 2012-08-29 2014-03-17 Toshiba Schneider Inverter Corp インバータ装置
US10040447B2 (en) * 2012-10-05 2018-08-07 Ford Global Technologies, Llc Control strategy for an electric machine in a vehicle
JP6097056B2 (ja) * 2012-11-16 2017-03-15 株式会社デンソー モータ制御装置
JP5874979B2 (ja) * 2012-11-19 2016-03-02 株式会社デンソー レンジ切換装置
JP6044591B2 (ja) * 2014-05-28 2016-12-14 株式会社デンソー レンジ切換制御装置
CN104457647B (zh) * 2014-12-08 2017-04-19 中国矿业大学 四相开关磁阻电机四只位置传感器故障诊断与定位方法
JP6492778B2 (ja) * 2015-03-05 2019-04-03 株式会社デンソー レンジ切換制御装置
JP2017028919A (ja) * 2015-07-25 2017-02-02 株式会社デンソー レンジ切換制御装置
JP6458689B2 (ja) * 2015-09-10 2019-01-30 株式会社デンソー モータ制御装置
JP6436048B2 (ja) 2015-10-12 2018-12-12 株式会社デンソー モータ制御装置
JP6558291B2 (ja) 2016-04-01 2019-08-14 株式会社デンソー モータ制御装置
JP6569584B2 (ja) 2016-04-15 2019-09-04 株式会社デンソー シフトレンジ制御装置
FR3051263B1 (fr) * 2016-05-10 2018-04-20 Safran Aircraft Engines Procede de commande d'un actionneur et dispositif de commande associe
JP6565841B2 (ja) 2016-09-09 2019-08-28 株式会社デンソー シフトレンジ制御装置
JP6623987B2 (ja) * 2016-09-09 2019-12-25 株式会社デンソー シフトレンジ制御装置
JP6769247B2 (ja) * 2016-11-04 2020-10-14 株式会社デンソー 回転電機システム
EP3340454B1 (de) * 2016-12-20 2020-02-05 Melexis Bulgaria Ltd. Verfahren und schaltung zur ansteuerung eines bürstenlosen gleichstrommotors mit einer einzigen spule
JP6690579B2 (ja) 2017-03-07 2020-04-28 株式会社デンソー シフトレンジ制御装置
JP7009936B2 (ja) 2017-11-06 2022-01-26 株式会社デンソー シフトレンジ制御装置
JP6985108B2 (ja) 2017-11-06 2021-12-22 株式会社デンソー シフトレンジ制御装置
JP6939462B2 (ja) * 2017-11-20 2021-09-22 株式会社デンソー シフトレンジ切替システム
JP2019168030A (ja) * 2018-03-23 2019-10-03 株式会社デンソー シフトレンジ制御装置
JP7056362B2 (ja) * 2018-05-10 2022-04-19 オムロン株式会社 モータ制御装置及びプログラミング装置
CN109150037B (zh) * 2018-08-25 2022-04-19 南京理工大学 一种微型两相步进电机驱动装置
JP7158970B2 (ja) * 2018-09-25 2022-10-24 ミネベアミツミ株式会社 異常検知装置、モータ装置、異常検知方法、及びモータの駆動制御方法
JP7021045B2 (ja) 2018-10-10 2022-02-16 株式会社デンソー シフトレンジ制御装置
JP7182993B2 (ja) * 2018-10-23 2022-12-05 株式会社東芝 エンコーダシステム
JP7135757B2 (ja) 2018-11-15 2022-09-13 株式会社デンソー シフトレンジ制御装置
DE102018222500A1 (de) * 2018-12-20 2020-06-25 Robert Bosch Gmbh Verfahren zum Betreiben eines elektrischen Synchronmotors
DE112020001917T5 (de) * 2019-05-17 2022-01-13 Hitachi Astemo, Ltd. Steuervorrichtung und steuerverfahren für rotierende elektrische maschine
JP7324060B2 (ja) * 2019-06-11 2023-08-09 ファナック株式会社 位置検出装置
CN110943669B (zh) * 2019-10-25 2023-10-20 海尔(深圳)研发有限责任公司 永磁同步电机启动的方法及装置、智能设备
JP2021125942A (ja) * 2020-02-04 2021-08-30 日本電産サンキョー株式会社 モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット
US11916507B2 (en) * 2020-03-03 2024-02-27 Schlumberger Technology Corporation Motor angular position control

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664390B2 (ja) 1984-12-26 1994-08-22 キヤノン株式会社 画像形成装置
US4789874A (en) * 1987-07-23 1988-12-06 Hewlett-Packard Company Single channel encoder system
JPH07111357B2 (ja) 1988-03-18 1995-11-29 三菱電機株式会社 エンコーダの異常検出装置
US4980793A (en) * 1988-04-29 1990-12-25 Chrysler Corporation Open loop control of solenoid coil driver
US5077507A (en) * 1989-06-29 1991-12-31 Mitsubishi Denki K.K. Servo control apparatus
JP2685962B2 (ja) * 1990-05-22 1997-12-08 株式会社日立製作所 エンコーダ異常検出装置
JPH06101551A (ja) 1991-01-17 1994-04-12 Honda Motor Co Ltd ステッパモータ駆動式制御弁のイニシャライズ方式
JPH05103497A (ja) 1991-10-03 1993-04-23 Honda Motor Co Ltd 電気走行車
JPH05163988A (ja) 1991-12-10 1993-06-29 Nippondenso Co Ltd スロットル弁の制御装置
DE4241849C2 (de) * 1992-12-11 1996-04-25 Danfoss As Lenksystem für Fahrzeuge oder Schiffe
JPH06288791A (ja) * 1993-04-05 1994-10-18 Sankyo Seiki Mfg Co Ltd エンコーダ装置
GB9311694D0 (en) * 1993-06-07 1993-07-21 Switched Reluctance Drives Ltd Electric machine rotor prosition encoder
JP3351131B2 (ja) * 1994-10-17 2002-11-25 ソニー株式会社 センサレスモータ駆動回路
US5821970A (en) * 1995-07-28 1998-10-13 Ricoh Company, Ltd. Color image forming apparatus
US5694014A (en) * 1995-08-22 1997-12-02 Honeywell Inc. Active hand controller redundancy and architecture
JPH0970199A (ja) 1995-08-31 1997-03-11 Casio Comput Co Ltd 印字装置
JP3047809B2 (ja) * 1996-04-09 2000-06-05 松下電器産業株式会社 ロータリーエンコーダ
JP3243517B2 (ja) * 1996-11-11 2002-01-07 ミネベア株式会社 情報記録装置の記録円盤駆動装置及び駆動方法
US5757596A (en) * 1997-01-21 1998-05-26 Ford Global Technologies, Inc. Motor control assembly and method of controlling same
DE69737445T2 (de) * 1997-01-23 2007-11-29 Mitsubishi Denki K.K. Regler für motorisch-angetriebene servolenkung
JP3563227B2 (ja) 1997-03-14 2004-09-08 大日本スクリーン製造株式会社 駆動装置およびそれを用いた基板処理装置
US5925957A (en) * 1997-05-30 1999-07-20 Electric Boat Corporation Fault-tolerant magnetic bearing control system architecture
JPH1164040A (ja) * 1997-08-26 1999-03-05 Brother Ind Ltd エンコーダの異常検出装置
JP3844167B2 (ja) 1998-02-27 2006-11-08 新キャタピラー三菱株式会社 サーボ弁
JP3726683B2 (ja) * 1998-07-16 2005-12-14 セイコーエプソン株式会社 位置センサレスモータの制御方法及びその制御装置
JP3589039B2 (ja) 1998-08-26 2004-11-17 日産自動車株式会社 スイッチトリラクタンスモータの角度センサ整合方法
JP2000170905A (ja) * 1998-09-28 2000-06-23 Denso Corp 自動変速機のシフトレンジ切換装置
US6555985B1 (en) * 1998-11-12 2003-04-29 Matsushita Electric Industrial Co., Ltd. Stepping motor control device
JP2000184791A (ja) 1998-12-14 2000-06-30 Taiho Kogyo Co Ltd ステッピングモータ駆動回路
EP1063753B1 (de) * 1999-06-22 2009-07-22 Levitronix LLC Elektrischer Drehantrieb mit einem magnetisch gelagerten Rotor
US6392418B1 (en) * 1999-09-16 2002-05-21 Delphi Technologies, Inc. Torque current comparison for current reasonableness diagnostics in a permanent magnet electric machine
JP4319324B2 (ja) 2000-03-28 2009-08-26 株式会社デンソー 自動変速機のシフトレンジ切換装置
DE10053818B4 (de) * 2000-10-30 2006-03-30 Sauer-Danfoss Holding Aps Elektrisches Lenksystem
JP4703846B2 (ja) 2000-12-28 2011-06-15 株式会社エスジー 連鋳機用モータドライバ
US6900607B2 (en) * 2001-08-17 2005-05-31 Delphi Technologies, Inc. Combined feedforward and feedback parameter estimation for electric machines
US7312595B2 (en) 2002-07-09 2007-12-25 Denso Corporation Motor control apparatus
US6750626B2 (en) * 2002-09-11 2004-06-15 Ford Global Technologies, Llc Diagnostic strategy for an electric motor using sensorless control and a position sensor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008043296B4 (de) 2007-10-31 2023-11-16 Denso Corporation Motorsteuerungsgerät

Also Published As

Publication number Publication date
DE10330809B4 (de) 2018-02-22
US20040008002A1 (en) 2004-01-15
US7667427B2 (en) 2010-02-23
US20060108966A1 (en) 2006-05-25
DE10362132B4 (de) 2018-02-22
US7312595B2 (en) 2007-12-25
DE10330809B8 (de) 2018-06-14

Similar Documents

Publication Publication Date Title
DE10330809A1 (de) Motorsteuerungsgerät
DE10362105B4 (de) Motorsteuerungsgerät
DE102008043296B4 (de) Motorsteuerungsgerät
DE102012222080B4 (de) Motorsteuervorrichtung
WO2012163585A2 (de) Verfahren und vorrichtung zur winkelschätzung in einer synchronmaschine
DE102015121717A1 (de) Elektrisches Servolenksystem für ein Fahrzeug
EP1479157B1 (de) Verfahren zur fehlererkennung für elektromotoren
DE102011001278A1 (de) Verfahren und Vorrichtung zum Steuern eines Anhaltens der Drehung eines Elektromotors zur Verwendung in Maschinen für die Herstellung
DE112018001221T5 (de) Schaltbereichssteuerungsvorrichtung
DE112017002009B4 (de) Schaltbereichssteuerungsvorrichtung
DE102017123187B4 (de) Schaltbereich-Controller
DE10065488B4 (de) Luftansaugmengensteuereinrichtung für Brennkraftmaschinen
DE19811844A1 (de) Stellglied-Steuereinrichtung
DE19829808A1 (de) Verfahren und Einrichtung zum Steuern der Luftansaugmenge für eine Maschine
DE102004037584A1 (de) Antriebseinheit
EP2532087A2 (de) Sensoreinheit zur befestigung an einer elektrischen maschine sowie motorsystem
WO2005069479A1 (de) Verfahren und vorrichtung zur kommutierung elektromechanischer aktuatoren
DE102016224178A1 (de) Steuerung einer sechsphasigen PSM
DE19824240B4 (de) Steuereinrichtung für einen geschalteten Reluktanzmotor
EP3864746B1 (de) Verfahren zum bestimmen einer rotorstellung eines bldc-motors
DE102020104384A1 (de) Verfahren zum Starten eines Elektromotors
DE112021006863T5 (de) Fahrzeuglenk-Steuervorrichtung, Steer-By-Wire-System, und Verfahren zum Steuern eines Steer-By-Wire-Systems
DE102021212310A1 (de) Verfahren zum Betreiben eines einsträngigen Elektromotors
DE102009018390B4 (de) Kupplungssteuervorrichtung
DE102016123741A1 (de) Verfahren zum Erkennen einer mechanischen Blockierung im Betrieb eines Elektromotors

Legal Events

Date Code Title Description
8172 Supplementary division/partition in:

Ref document number: 10362132

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 10362132

Country of ref document: DE

Kind code of ref document: P

8181 Inventor (new situation)

Inventor name: KOBIKI, YASUSHI, TOYOTA, AICHI, JP

Inventor name: FUJIKI, KENICHI, KARIYA, AICHI, JP

Inventor name: AMAMIYA, SUMIKO, TOYOTA, AICHI, JP

Inventor name: INOUE, YUJI, TOYOTA, AICHI, JP

Inventor name: KAMIO, SHIGERU, KARIYA, AICHI, JP

8110 Request for examination paragraph 44
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee