以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
(画像形成装置)
図1は、本実施形態のモータ制御装置が実装される画像形成装置の構成説明図である。画像形成装置100は、自動原稿搬送装置(以下、「ADF(Auto Document Reader)」という。)201、読取装置(以下、「リーダ部」という。)202、及び画像形成装置本体(以下、「プリンタ部」という。)301を備えている。プリンタ部301の上にリーダ部202が設けられ、リーダ部202の上にADF201が設けられる。
ADF201は、原稿が載置される原稿載置部203、給紙ローラ204、搬送ガイド206、搬送ベルト208、及び排紙ローラ205を備える。原稿載置部203に載置された原稿は、給紙ローラ204によって1枚ずつ給紙され、搬送ガイド206を経由してリーダ部202による原稿の読取位置に搬送される。原稿は、読取位置を通過し、搬送ベルト208によって一定速度で搬送された後、排紙ローラ205によってADF201の外部へ排出される。
リーダ部202は、筐体のADF201側の面に原稿台ガラス214を備える。リーダ部202の筐体内には、照明系209、反射ミラー210、211、212、画像読取部101、及び画像処理部110を備える。ADF201により読取位置に搬送された原稿は、照明系209によって光が照射される。照射された光の原稿による反射光は、反射ミラー210、211、212から成る光学系によって画像読取部101に受光される。画像読取部101は、受光した反射光を画像信号に変換する。画像読取部101は、レンズ、光電変換素子であるCCD(Charge Coupled Device)センサ、及びCCDセンサの駆動回路等で構成される。画像読取部101から出力された画像信号は、ASIC(Application Specific Integrated Circuit)等のハードウェアデバイスで構成される画像処理部110によって、各種補正処理が行われる。補正後の画像信号は、プリンタ部301へ送信される。
リーダ部202は、流し読みモードと固定モードとの2つの読取モードにより原稿を読み取ることができる。流し読みモードは、照明系209及び光学系の移動を停止した状態で、ADF201により原稿を一定速度で搬送しながら当該原稿の画像を読み取る読取モードである。固定モードは、原稿台ガラス214上に原稿を載置し、照明系209及び光学系を一定速度で移動させながら、原稿台ガラス214上に載置された原稿の画像を読み取る読取モードである。例えば、シート状の原稿は流し読みモードにより読み取られ、本のように綴じられた原稿は固定モードで読み取られる。
画像形成装置100は、リーダ部202から出力される画像信号に基づいて、プリンタ部301によりページ単位で記録紙(記録材)に画像を形成するコピー機能を有する。なお、画像形成装置100は、ネットワークを介して外部装置から受信したデータに基づいて記録紙に画像を形成する印刷機能も有している。プリンタ部301は、感光ドラム309、帯電器310、レーザスキャナ311、現像器314、転写部315、定着器318等を備える。プリンタ部301は、画像が形成される記録紙の搬送用のローラとして、搬送ローラ306、307、排紙ローラ319、反転ローラ321、搬送ローラ320、322、323、及び排紙ローラ324を備えている。
感光ドラム309は、表面に感光層を備えたドラム形状の感光体である。画像形成時に感光ドラム309は、帯電器310により感光層が一様に帯電される。レーザスキャナ311は、リーダ部202から出力された画像信号を取得する。レーザスキャナ311は、半導体レーザ及びポリゴンミラーを有し、取得した画像信号で変調したレーザ光(光信号)を、半導体レーザから出力する。半導体レーザから出力されたレーザ光は、ポリゴンミラー、及びミラー312、313を経由して感光ドラム309の表面を照射する。これにより感光ドラム309が露光される。感光ドラム309は、一様に帯電した表面(感光層)がレーザ光によって露光されることで、画像信号に応じた静電潜像が形成される。感光ドラム309上に形成された静電潜像は、現像器314から供給されるトナーによって現像される。これにより感光ドラム309上にトナー像が形成される。感光ドラム309上のトナー像は、感光ドラム309の回転に伴って転写部315と対向する位置(転写位置)まで移動する。転写部315は、感光ドラム309に担持されるトナー像を記録紙に転写する。
記録紙は、給紙カセット302、304に収納される。給紙カセット302と給紙カセット304とは、それぞれ異なる種類の記録紙を収納可能である。例えば、給紙カセット302には標準の記録紙が収納され、給紙カセット304にはタブ紙が収納される。給紙カセット302に収納された記録紙は、給紙ローラ303によって搬送路上に給紙され、搬送ローラ306によってレジストローラ308まで搬送されて一時的に搬送停止される。給紙カセット304に収納された記録紙は、給紙ローラ305によって搬送路上に給紙され、搬送ローラ307、306によってレジストローラ308まで搬送されて一時的に搬送停止される。
レジストローラ308まで搬送された記録紙は、感光ドラム309上のトナー像が転写位置に到達するタイミングに合わせて、レジストローラ308によって転写位置へ搬送される。転写位置において感光ドラム309からトナー像が転写された記録紙は、搬送ベルト317によって定着器318へ搬送される。定着器318は、熱及び圧力により、記録紙上のトナー像を当該記録紙に定着させる。
片面印刷モードで画像形成が行われる場合、定着器318を通過した記録紙は、排紙ローラ319、324によって装置外部へ排出される。両面印刷モードで画像形成が行われる場合、表面(第1面)に画像が形成された記録紙は、定着器318を通過後に排紙ローラ319、搬送ローラ320、及び反転ローラ321によって、反転パス325へ搬送される。記録紙の後端が反転パス325と両面パス326との合流ポイントを通過した直後に反転ローラ321が回転を反転させることで、記録紙は、逆方向に搬送され始めて両面パス326へ搬送される。その後、記録紙は、搬送ローラ322、323によって両面パス326を搬送され、再び搬送ローラ306によってレジストローラ308まで搬送されて一時的に搬送停止される。その後、記録紙の表面(第1面)への画像形成時と同様に、転写位置において記録紙の裏面(第2面)へのトナー像の転写処理が行われ、定着器318によって定着処理が行われる。このように両面への画像形成が終了すると、記録紙は、装置外部へ排出される。
記録紙を表裏面を反転させて(第1面と第2面とを反転させて)装置外部へ排出する場合、定着器318を通過した記録紙は、搬送ローラ320の方向へ一時的に搬送される。その後、記録紙の後端が搬送ローラ320の位置を通過する直前に搬送ローラ320の回転が反転することで、記録紙が逆方向に搬送され始め、排紙ローラ324の方向へ搬送される。その結果、記録紙は、表裏が反転した状態で排紙ローラ324によって装置外部へ排出される。搬送ローラ320は、画像形成が行われた記録紙を、表裏を反転させて排紙する際に、搬送路上で記録紙の搬送方向を反転させるための反転ローラとして機能する。
記録紙の搬送用ローラである搬送ローラ306、307、排紙ローラ319、反転ローラ321、搬送ローラ320、322、323、及び排紙ローラ324は、後述のモータ制御部により駆動制御される。モータ制御部は、後述のシステムコントローラにより動作を制御されるモータ制御装置である。
(画像形成装置の制御構成)
図2は、画像形成装置100の制御構成の例示図である。プリンタ部301は、システムコントローラ151を備える。システムコントローラ151は、画像形成装置100全体の動作を制御する。システムコントローラ151は、CPU(Central Processing Unit)151a、ROM(Read Only Memory)151b、及びRAM(Random Access Memory)151cを備える。システムコントローラ151には、リーダ部202の画像処理部110、操作部152、アナログ・デジタル(A/D)変換器153、高圧制御部155、モータ制御部157、センサ類159、及びACドライバ160が接続される。システムコントローラ151は、接続された各ユニットとの間でデータの送受信が可能である。
CPU151aは、ROM151bに格納された各種プログラムを実行することで、所定の画像形成シーケンスに関連する各種シーケンスを実行する。RAM151cは、揮発性のメモリデバイスであり、CPU151aが各種プログラムを実行する際のワークエリアとして用いられる。また、RAM151cは、各種データが一時的に格納される一時記憶領域として用いられる。RAM151cには、例えば、高圧制御部155に対する設定値、モータ制御部157に対する指令値、操作部152から受信する情報等が格納される。
操作部152は、入力装置と出力装置とを組み合わせたユーザインタフェースである。入力装置には、入力キーやテンキー等のキーボタン、タッチパネル等がある。出力装置には、表示装置やスピーカ等がある。
システムコントローラ151は、ユーザが各種の設定を行うための操作画面を、操作部152の表示装置に表示する。システムコントローラ151は、操作画面に応じたユーザからの指示を操作部152の入力装置を介して受け付ける。例えばシステムコントローラ151は、操作部152を介して複写倍率の設定値、濃度設定値等の指示を示す情報を受け付ける。また、システムコントローラ151は、画像形成装置100の状態をユーザに知らせるためのデータを操作部152に送信する。操作部152は、システムコントローラ151から受信したデータに基づいて、画像形成装置100の状態を示す情報(例えば、画像形成枚数、画像形成中か否かを示す情報、ジャムの発生及び発生個所を示す情報)を表示装置に表示させる。
システムコントローラ151(CPU151a)は、画像処理部110に対して、画像処理に必要な画像形成装置100内の各デバイスの設定値を送信する。また、システムコントローラ151は、各デバイスからの信号(センサ類159の検知結果等)を受信して、受信した信号に基づいて高圧制御部155を制御する。高圧制御部155は、システムコントローラ151から出力される設定値に基づいて、高圧ユニット156を構成する帯電器310、現像器314、及び転写部315に対して、それぞれの動作に必要となる電圧を供給する。
A/D変換器153は、定着ヒータ161の温度を検出するためのサーミスタ154から検出信号を受信し、当該検出信号をデジタル信号に変換してシステムコントローラ151に送信する。定着ヒータ161は、定着器318に設けられ、定着処理の際に記録紙を加熱する熱源である。システムコントローラ151は、A/D変換器153から受信したデジタル信号に基づいてACドライバ160を制御することで、定着ヒータ161の温度を、定着処理のための所定の温度にフィードバック制御する。
システムコントローラ151は、モータ制御部157を介して、各モータの駆動シーケンスを制御する。モータ制御部157は、システムコントローラ151からの指示に応じて、記録紙の搬送用の各ローラを駆動する駆動源となるモータを駆動制御する。なお、画像形成装置100は、記録紙の搬送用の各ローラに対応するモータ毎にモータ制御部157を備えている。ここでは、記録紙搬送用のローラをモータが駆動する負荷の例として説明するが、モータが駆動する負荷は、画像形成時に動作する負荷であれば、ローラに限られない。
モータ制御部157の外部コントローラに相当するシステムコントローラ151(CPU151a)は、モータ制御部157の動作の開始を指示するイネーブル信号である制御開始信号を出力する。制御開始信号が「1」のときモータ制御部157は動作状態となり、制御開始信号が「0」のときモータ制御部157は停止状態となる。
(モータ制御部)
本実施形態のモータ制御部157を永久磁石モータ、例えば2相のステッピングモータの駆動制御に用いる場合について説明する。ただし、モータの相数やモータの種類は、これに限定されるものではなく、例えば3相のブラシレスモータ等であってもよい。
図3は、モータ制御部157の構成説明図である。このモータ制御部157は、システムコントローラ151の指示によりモータ1を駆動制御する。本実施形態のモータ1は、ステップ角が1.8度のステッピングモータである。モータ制御部157は、目標位置生成部2、オープン電流指令生成部3、ベクトル電流指令生成部4、スイッチ5、ベクトル制御部6、PWM信号生成部7、インバータ8、電流検出部9、位置推定部10、切替信号生成部11、及び切替初期値生成部12を備える。
本実施形態のモータ制御部157の基本的なモータ制御方法は、逆起電圧推定方式のセンサレス技術を用いた位置制御構成のベクトル制御(以下、「センサレスベクトル制御」という。)である。センサレスベクトル制御は、モータ1が所定の回転数以下では十分な逆起電圧が発生せずに、モータ1の磁極位置を推定することが困難である。そのためにモータ制御部157は、モータ1の停止から所定の回転数までは、ベクトル制御ではなくモータ1の磁極位置情報を用いない開ループ定電流制御(以下、「オープン制御」という。)を行う。つまりモータ制御部157は、停止から所定の回転数まではオープン制御、所定の回転数以上はセンサレスベクトル制御でモータ1を制御する。なお、センサレスベクトル制御は、位置制御に限るものではなく速度制御であってもよい。
最初に、モータ制御部157がオープン制御とセンサレスベクトル制御とを切り替えてモータ1を制御する基本的な機能について説明する。
目標位置生成部2は、システムコントローラ151から入力されるイネーブル信号(制御開始信号)が「1」のときに、モータ制御の目標値となる目標位置θ_tgtを出力する。モータ1は、オープン制御時、ベクトル制御時ともに、この目標位置θ_tgtを目標値として制御される。
オープン電流指令生成部3は、オープン制御時のdq軸電流値の指令値であるオープンdq軸電流指令id_ref_open、iq_ref_openを出力する。オープンdq軸電流指令id_ref_open、iq_ref_openは固定値であり、所定のメモリ(例えばRAM151c)に格納されている。オープンd軸電流指令id_ref_openは必要なトルクに応じた電流値に設定され、オープンq軸電流指令iq_ref_openは「0」に設定される。このように電流指令の値を設定することで、モータ1に一定の振幅の電流を流すことが可能となる。なお、オープンd軸電流指令id_ref_openが「0」に設定され、オープンq軸電流指令iq_ref_openが必要なトルクに応じた電流値に設定されてもよい。
ベクトル電流指令生成部4は、センサレスベクトル制御時のdq軸電流値の指令値であるベクトルdq軸電流指令id_ref_vec、iq_ref_vecを出力する。図4は、ベクトル電流指令生成部4の構成図である。ベクトル電流指令生成部4は、ベクトルd軸電流指令生成部41、位置偏差算出部42、及び位置制御部43を備える。
ベクトルd軸電流指令id_ref_vecは、モータ1に流したい電流位相に応じて決定された固定値である。磁極位置が0度~360度の範囲でインダクタンス値の変化の小さい、いわゆる突極比の小さいモータの場合、d軸電流idは「0」に設定されるのが一般的である。突極比の小さいモータは、リラクタンストルクがほとんど発生しないため、発生トルクのほとんどがマグネットトルクである。マグネットトルクが最大となる条件はd軸電流idが「0」である。そのために突極比の小さいモータは、d軸電流idを「0」とすることで効率良く制御することができる。d軸電流idは、d軸電流指令最終値id_ref_finとして設定されている。
ベクトルd軸電流指令id_ref_vecは「0」であるが、制御切替直前のオープン制御時のモータ1に実際に流れているd軸電流idは「0」ではない。そのため、オープン制御からセンサレスベクトル制御へ制御が切り替わると、後で説明するベクトル制御部6が両者を一致させるように電圧指令を急変させる。これによりモータ1の発生トルクが急変し、モータ1が急加速もしくは急減速して大きな速度変動が発生してしまう。そのため、制御切替直前のモータ1に流れるd軸電流idと制御切替直後のセンサレスベクトル制御におけるベクトルd軸電流指令id_ref_vecとを同じにする初期化処理が必要になる。
初期化信号sig_initは、ベクトルd軸電流指令生成部41及び位置制御部43の初期化を行うトリガ信号である。初期化信号sig_initは、オープン制御からセンサレスベクトル制御への制御切替タイミングで制御周期の1ステップ分だけ「1」となることで、ベクトルd軸電流指令生成部41及び位置制御部43を初期化する。
ベクトルd軸電流指令生成部41は、初期化信号sig_initをトリガ信号として、ベクトルd軸電流指令id_ref_vecの値を、入力信号のd軸電流指令初期値id_ref_initの値に設定する。d軸電流指令初期値id_ref_initは、センサレスベクトル制御へ切り替える直前のオープン制御時のモータ1に流れるd軸電流idの検出値(d軸検出電流)である。d軸電流指令初期値id_ref_initの値を制御切替直後のベクトルd軸電流指令id_ref_vecに設定することで、モータ1に流れているd軸電流idとベクトルd軸電流指令id_ref_vecとが同じ値になる。そのために、電圧指令の急変によるモータ1の速度変動が防止される。
d軸電流指令初期値id_ref_initと実際にセンサレスベクトル制御時に設定したいd軸電流指令最終値id_ref_finとの値には差がある。そのため、ベクトルd軸電流指令id_ref_vecの値は、d軸電流指令初期値id_ref_initからd軸電流指令最終値id_ref_finまで徐々に変化させなければならない。ベクトルd軸電流指令id_ref_vecの値は、d軸電流指令初期値id_ref_initから所定の傾きで変化させられて、所定時間経過後にd軸電流指令最終値id_ref_finとなるように設定される。
このようにベクトルd軸電流指令生成部41は、制御切替直前のモータ1に流れるd軸電流idを制御切替直後に出力し、一定時間経過後に所定の値になるように変化するベクトルd軸電流指令id_ref_vecを生成する。
位置偏差算出部42及び位置制御部43は、ベクトルq軸電流指令iq_ref_vecを生成する。位置偏差算出部42は、目標位置θ_tgtと推定位置θ_estとの差分から位置偏差を算出する。位置制御部43は、位置偏差算出部42から入力される位置偏差にPID(Proportional-Integral-Differential)制御の制御演算を行い、ベクトルq軸電流指令iq_ref_vecを生成して出力する。
センサレスベクトル制御への制御切替直後のベクトルq軸電流指令iq_ref_vecとモータ1に実際に流れるq軸電流iqとは一致していない。そのため、オープン制御からセンサレスベクトル制御へ制御が切り替わると、後で説明するベクトル制御部6が両者を一致させるように電流指令を急変させる。これによりモータ1の発生トルクが急変し、モータ1が急加減速して大きな速度変動が発生してしまう。そのため、制御切替直前のモータ1に流れるq軸電流iqと制御切替直後のベクトルq軸電流指令iq_ref_vecとを同じにする初期化処理が必要になる。
位置制御部43は、初期化信号sig_initをトリガ信号として、入力されるq軸電流初期値iq_ref_initによりベクトルq軸電流指令iq_ref_vecを初期化する機能を有している。ベクトルq軸電流指令iq_ref_vecは、具体的にはPID制御の積分器の値の設定により初期化される。q軸電流指令初期値iq_ref_initは、センサレスベクトル制御へ切り替える直前のオープン制御時のモータ1に流れるq軸電流iqの検出値(q軸検出電流)である。q軸電流指令初期値iq_ref_initの値を制御切替直後のベクトルq軸電流指令iq_ref_vecにすることで、モータ1に流れているq軸電流iqとベクトルq軸電流指令iq_ref_vecとが同じになる。そのために、電圧指令の急変によるモータ1の速度変動を防ぐことができる。
位置制御部43は、ベクトルq軸電流指令iq_ref_vecとして、オープン制御からセンサレスベクトル制御への制御切替直後にq軸電流指令初期値id_ref_initを出力する。その後、位置制御部43は、位置偏差算出部42と位置制御部43との演算結果を出力することで、目標位置θ_tgtに追従するように制御するために必要なベクトルq軸電流指令iq_ref_vecを出力する。
スイッチ5は、切替信号sig_swに応じて、2つのdq軸電流指令及びモータ1の位置情報を選択して出力する。出力された2つのdq軸電流指令及び位置情報は、ベクトル制御部6に入力される。切替信号sig_swがオープン制御を指示する「1」の場合、スイッチ5は、オープンdq軸電流指令id_ref_open、iq_ref_open及び目標位置θ_tgtを選択して出力する。切替信号sig_swがセンサレスベクトル制御を指示する「0」の場合、スイッチ5は、ベクトルdq軸電流指令id_ref_vec、iq_ref_vec及び推定位置θ_estを選択して出力する。
スイッチ5がベクトル制御部6に必要な信号をオープン制御とセンサレスベクトル制御との2つの制御モードで選択的に出力することで、オープン制御とセンサレスベクトル制御との切り替えが実現される。図5は、スイッチ5から出力されるdq軸電流指令id_ref、iq_refの波形の例示図である。
オープン制御時のdq軸電流指令id_ref、iq_refは、オープン電流指令生成部3から出力されるオープンdq軸電流指令id_ref_open、iq_ref_openとなる。オープン制御からセンサレスベクトル制御へ切り替わった直後のdq軸電流指令id_ref、iq_refは、d軸電流指令初期値id_ref_init、iq_ref_initとなる。d軸電流指令は、一定時間経過後にd軸電流指令最終値id_ref_finとなるように変化する。q軸電流指令は、制御切替後から位置制御の出力に切り替わるために、一定値ではなくモータ1の状態に応じた変動値となる。
ベクトル制御部6は、dq軸電流指令id_ref、iq_refとモータ1の位置情報とab相検出電流とから、モータ1の駆動電圧の指令値であるab相電圧指令va_order、vb_orderを生成して出力する。図6は、ベクトル制御部6の構成図である。ベクトル制御部6は、dq変換部61、d軸電流偏差計算部62、q軸電流偏差計算部63、電流制御部64、65、及びdq逆変換部66を備える。
dq変換部61は、電流検出部9から入力されるab相検出電流ia_det、ib_detを、dq軸検出電流id_det、iq_detに変換して出力する。変換には式(1)の固定座標変換式(dq変換式)が用いられる。
d軸電流偏差計算部62は、スイッチ5から入力されるd軸電流指令id_refとd軸検出電流id_detとの差分を算出することで、d軸電流偏差を生成する。q軸電流偏差計算部63は、スイッチ5から入力されるq軸電流指令iq_refとq軸検出電流iq_detとの差分を算出することで、q軸電流偏差を生成する。
電流制御部64は、d軸電流偏差に基づいてPI制御による演算を行い、d軸駆動電圧指令vd_orderを生成して出力する。電流制御部65は、q軸電流偏差に基づいてPI制御による演算を行い、q軸駆動電圧指令vq_orderを生成して出力する。dq逆変換部66は、スイッチ5から入力される位置情報である角度情報θ_vecに基づいて、d軸駆動電圧指令vd_order、q軸駆動電圧指令vq_orderをab座標系のab相電圧指令va_order、vb_orderに変換して出力する。変換には式(2)の回転座標変換式(dq逆変換式)が用いられる。
ただし、この構成では、オープン制御からセンサレスベクトル制御への制御切替の際に、ab相電圧指令va_order、vb_orderが急変するために、モータ1に速度変動が生じる。制御が切り替わると、dq逆変換部66で使うモータ1の位置情報(角度情報θ_vec)が目標位置θ_tgtから推定位置θ_estに切り替わる。その影響により、ab相電圧指令va_order、vb_orderが急変する。そこで、ab相電圧指令va_order、vb_orderの急変を防ぐ初期化処理が必要となる。
電流制御部64は、初期化信号sig_initに基づいてd軸駆動電圧指令vd_orderをd軸電圧指令初期値vd_ref_initに初期化する初期化機能を有している。電流制御部65は、初期化信号sig_initに基づいてq軸駆動電圧指令vq_orderをq軸電圧指令初期値vq_ref_initに初期化する初期化機能を有している。dq軸駆動電圧指令vd_order、vq_orderは、具体的にはPI制御の積分器の値が設定されて初期化される。
dq軸電圧指令初期値vd_ref_init、vq_ref_initは、センサレスベクトル制御へ切り替える直前のオープン制御時のab相電圧指令va_order、vb_orderを推定位置θ_estでdq変換した値である。つまり、dq軸電圧指令初期値vd_ref_init、vq_ref_initを推定位置θ_estでdq逆変換すると、制御切替直前のオープン制御時のab相電圧指令va_order、vb_orderと同じになる。したがって、制御が切り替わる直前と直後のベクトル制御部6が出力するab相電圧指令va_order、vb_orderは変化しないこととなる。そのため、制御が切り替わった際の速度変動が発生しない。
以上のように、ベクトル制御部6は、dq電流指令id_ref、iq_refに応じてモータ1に電流が流れるような制御を行う。またベクトル制御部6は、制御が切り替わる前後で同じ値のab相電圧指令va_order、vb_orderを出力することができる。
PWM信号生成部7は、ベクトル制御部6から入力されるab相電圧指令va_order、vb_orderに応じてパルス幅変調したPWM(Pulse Width Modulation)信号を出力する。インバータ8は、PWM信号生成部7から入力されるPWM信号によって駆動され、ab相電圧指令値va_order、vb_orderに対応した交流電圧(駆動電圧)をモータ1に印加する。PWM信号生成部7及びインバータ8により、ベクトル制御部6が出力する電圧指令値(ab相電圧指令va_order、vb_order)に対応した駆動電圧がモータ1に印加される。モータ1は駆動電圧の印加により駆動制御される。
電流検出部9は、電流検出抵抗91及び電流演算部92を備え、モータ1に流されるab相の電流の電流値を検出する。電流検出抵抗91は、例えば50[mΩ]等のモータ1の抵抗値に比べて非常に小さい抵抗値の抵抗である。図示を省略しているが、電流検出抵抗91は、モータ1とインバータ8との間のab相の2本のケーブルに対して、それぞれ直列に接続されている。電流演算部92は、電流検出抵抗91の両端電圧をADコンバータ等で測定し、測定した電圧値と電流検出抵抗81の抵抗値(例えば50[mΩ])とから、モータ1に流れる電流の電流値を算出する。電流検出部9で算出されたab相の電流値(ab相検出電流ia_det、ib_det)は、センサレスベクトル制御及び位置推定に用いられる。
位置推定部10は、ab相電圧指令va_order、vb_orderとab相検出電流ia_det、ib_detとにより、センサレスベクトル制御に必要なモータ1のロータの磁極位置を推定した推定位置θ_estを出力する。位置推定部10は、ab相電圧指令va_order、vb_orderとab相検出電流ia_det、ib_detとからモータ1に発生する逆起電圧を推定する。位置推定部10は、推定した逆起電圧からロータの磁極位置を推定する逆起電圧推定方式を行う。逆起電圧は式(3)から推定される。
式(3)において、Eaはa相の逆起電圧、Ebはb相の逆起電圧、Rはモータの抵抗、Lはモータの平均インダクタンス、pは微分演算子である。
位置推定部10は、推定したab相逆起電圧Ea、Ebから式(4)によりモータ1のロータの磁極位置を推定する。ab相逆起電圧Ea、Ebは、モータ1の磁極位置に対して正弦、余弦の関係となる。そのために位置推定部10は、式(4)を用いることでモータ1の磁極位置を推定した推定位置θ_estを算出することができる。
θ_est=arctan(-Ea/Eb) …(4)
位置推定部10は、このようにモータ1のロータの磁極位置を推定する。そのためにモータ制御部157は、エンコーダ等の位置検出器を用いることなく、センサレスベクトル制御を行うことができる。
モータ制御部157の基本機能の説明の最後に、オープン制御からセンサレスベクトル制御への制御切替の際の電圧指令、電流指令の初期値を生成する切替初期値生成部12について説明する。
切替初期値生成部12は、初期化信号sig_initが「1」となるタイミングで、dq軸電圧指令切替初期値vd_ref_init、vq_ref_initを出力する。dq軸電圧指令切替初期値vd_ref_init、vq_ref_initは、ab相電圧指令va_order、vb_orderと推定位置θ_estとから生成される。切替初期値生成部12は、初期化信号sig_initが「1」となるタイミングで、式(5)の演算結果をdq軸電圧指令切替初期値vd_ref_init、vq_ref_initとして出力する。
式(5)に示すように、dq軸電圧指令初期値vd_ref_init、vq_ref_initは、センサレスベクトル制御への切替直前のオープン制御時のab相電圧指令va_order、vb_orderを推定位置θ_estでdq変換した値である。
また、切替初期値生成部12は、初期化信号sig_initに基づいて、dq軸電流指令切替初期値id_ref_init、iq_ref_initを出力する。dq軸電流指令切替初期値id_ref_init、iq_ref_initは、ab相検出電流ia_det、ib_detと推定位置θ_estとから生成される。切替初期値生成部12は、初期化信号sig_initが「1」となるタイミングで、式(6)の演算結果をdq軸電流切替初期値id_ref_init、iq_ref_initとして出力する。
式(6)に示すように、dq軸電流指令初期値id_ref_init、iq_ref_initは、センサレスベクトル制御への切替直前のオープン制御時のモータ1に流れるdq軸検出電流である。
続いて、オープン制御からセンサレスベクトル制御への制御切替条件に基づいて切替信号sig_swを生成する方法について説明する。切替信号sig_swは、切替信号生成部11によって生成される。図7は、切替信号生成部11の構成図である。切替信号生成部11は、オープン制御とセンサレスベクトル制御とのどちらでモータ1を制御するかを指示する切替信号sig_swを生成する。また、切替信号生成部11は、オープン制御からセンサレスベクトル制御に切り替わる際のab相電圧指令の急変による速度変動を抑制するために、dq軸電圧指令、dq軸電流指令を初期化する上述の初期化信号sig_initを生成する。そのために切替信号生成部11は、速度演算部111、加速度演算部113、比較器112、114、115、論理積演算器116、117、第1エッジ検出部118、及び立ち下がりエッジ検出部119を備える。
速度演算部111は、入力される目標位置θ_tgtを微分することで、モータ1の目標速度vel_tgtを出力する。なお、速度演算部111は、目標位置θ_tgtに代えて推定位置θ_estから目標速度vel_tgtを算出してもよい。比較器112は、目標速度vel_tgtと事前に設定された速度閾値vel_thresとを比較する。比較器112は、比較結果として、目標速度vel_tgtが速度閾値vel_thresより大きい場合に「1」を出力し、目標速度vel_tgtが速度閾値vel_thresより小さい場合に「0」を出力する。速度閾値vel_thresは、センサレスベクトル制御が可能な最小回転速度である。比較器112による比較結果が「1」となることは、オープン制御からセンサレスベクトル制御への切替タイミングの2つの条件のうちの1つである目標速度>速度閾値が満たされたことを示す。
加速度演算部113は、入力される推定位置θ_estを二階微分した値の絶対値を、モータ1の推定加速度α_estとして出力する。比較器114は、推定加速度α_estと事前に設定された加速度閾値α_thres1とを比較する。比較器114は、比較結果として、推定加速度α_estが加速度閾値α_thres1より大きい場合に「1」を出力し、推定加速度α_estが加速度閾値より小さい場合に「0」を出力する。加速度閾値α_thres1は、目標位置を二回微分した目標加速度に基づいて設定される。例えば、加速度閾値α_thres1は、目標加速度の0.95倍に設定される。
比較器115は、推定加速度α_estと事前に設定された加速度閾値α_thres2とを比較する。比較器115は、比較結果として、推定加速度α_estが加速度閾値α_thres2より小さい場合に「1」を出力し、推定加速度α_estが加速度閾値より大きい場合に「0」を出力する。加速度閾値α_thres2は、目標位置を二回微分した目標加速度に基づいて設定される。例えば、加速度閾値α_thres2は、目標加速度の1.05倍に設定される。
論理積演算器116は、比較器114と比較器115とのそれぞれの比較結果である比較信号の論理積を出力する。論理積演算器116は、比較信号がいずれも「1」の場合に「1」を出力し、それ以外は「0」を出力する。論理積演算器116の出力が「1」となることは、オープン制御からセンサレスベクトル制御への切替タイミングの2つの条件のうちの1つである推定加速度が、加速度閾値α_thres1と加速度閾値α_thres2との範囲内であることを満たしたことを示す。加速度閾値α_thres1を目標加速度の0.95倍、加速度閾値α_thres2を目標加速度の1.05倍とすると、推定加速度α_estが目標加速度の±5%の範囲内で制御が切り替えられることになる。
論理積演算器117は、比較器112の比較結果(比較信号)と論理積演算器116の演算結果との論理積を出力する。論理積演算器117は、比較信号及び演算結果がともに「1」の場合に「1」を出力し、それ以外は「0」を出力する。論理積演算器117の出力が「1」となることは、オープン制御からセンサレスベクトル制御への切替タイミングの2つの条件がともに満たされていることを示す。そのため、論理積演算器117の出力が「1」となるタイミングは、制御切替が可能なタイミングとなる。
第1エッジ検出部118は、初期値が「1」の切替信号sig_swを出力する。第1エッジ検出部118は、論理積演算器117の演算結果(出力信号)の最初の立ち上がりエッジ(0→1)を検出すると切替信号sel_sigを「0」に切り替える。第1エッジ検出部118は、比較器112の比較結果(比較信号)が「0」となると、切替信号sel_sigを「1」に初期化する。
このように切替信号sig_swは、目標速度が速度閾値以下の場合に「1」となり、目標速度が速度閾値以上となった後に、推定加速度が所定の範囲内になったタイミング以降は「0」となる。切替信号sig_swは、再び目標速度が速度閾値以下になると「1」となる。切替信号sig_swが「1」の場合はオープン制御が行われ、切替信号sig_swが「0」の場合はセンサレスベクトル制御が行われる。
立ち下がりエッジ検出部119は、切替信号sig_swの立ち下がりエッジ(1→0)を検出すると、制御周期の1ステップ分だけ「1」となる初期化信号sig_initを出力する。つまり立ち下がりエッジ検出部119は、オープン制御からセンサレスベクトル制御への制御切替が指示されたときに、「1」となる初期化信号sig_initを出力する。初期化信号sig_initは、上述したようにオープン制御からセンサレスベクトル制御に切り替える際の電流指令及び電圧指令の初期化のトリガ信号に用いられる。
図8は、モータ1の回転速度の時間変化の説明図である。図8では、切替信号生成部11が生成する切替信号sig_swによる効果が説明される。図8(a)は、本実施形態とは異なり、オープン制御からセンサレスベクトル制御への切替条件を目標速度>速度閾値のみとしてモータ1を停止状態から目標速度まで立ち上げたときのモータ1の回転速度の時間変化を表す。図8(b)は、本実施形態のモータ制御部157を用いてモータ1を停止状態から目標速度まで立ち上げたときのモータ1の回転速度の時間変化を表す。
図8(a)では、切替信号sig_swが「1」から「0」に変化して、オープン制御からセンサレスベクトル制御に制御が切り替わった後に、モータ1の回転速度が大きく低下しており、大きな回転むらが発生しているのが分かる。その影響により、回転速度にオーバーシュートが発生し、整定時間が悪化している。図8(b)では、オープン制御からセンサレスベクトル制御に制御が切り替わった後の速度変動が抑制され、回転速度のオーバーシュートの低減、整定時間の短縮がなされている。
図8(a)では、オープン制御からセンサレスベクトル制御への制御切替のタイミングでモータ1の加速度がマイナスになっているために、回転速度にオーバーシュートが発生し、整定時間が悪化している。モータ1の加速度がマイナスであるということは、モータ1の発生トルクがモータ1を加速するために必要なトルクより小さい状態であるということである。この状態で上述した制御切替前後のab相電圧指令va_order、vb_orderを同じにする引継処理を行うと、制御切替直後にモータ1の発生トルクが足りずに、モータ1の回転速度が大きく低下して大きな回転むらが発生してしまう。この回転むらの発生を防止する方法として、オープン制御からセンサレスベクトル制御への制御切替タイミングをモータ1の加速度が「0」に近いタイミングとなるように速度閾値を変更する方法がある。しかし、この方法ではモータ軸にかかる負荷トルクが変化すると、モータ1の回転速度のプロファイルが変化するため、加速度が「0」のタイミングでの制御切替を保証することができない。
本実施形態のモータ制御部157を用いた場合(図8(b)参照)、制御切替タイミングの決定に加速度情報が用いられる。モータ1の加速度が所定範囲内になったタイミングでオープン制御からセンサレスベクトル制御への制御切替が行われる。図8(b)の場合、制御切替条件のモータ1の加速度の範囲を加速度閾値α_thres1以上且つ加速度閾値α_thres2以下としている。上述したように、加速度閾値α_thres1及び加速度閾値α_thres2は、目標加速度の0.95倍と目標加速度の1.05倍である。つまり、加速度が目標加速度に近いタイミングでオープン制御からセンサレスベクトル制御への制御切替が行われる。
加速度が目標加速度に近いタイミングで制御切替を行う理由について説明する。モータ1の加速中に必要なトルクは、モータ軸にかかる負荷トルクと加速トルクとの和である。オープン制御時のモータ1の加速度が目標加速度に近い状態とは、モータ1の発生トルクがモータ1を目標位置通りに加速するために必要なトルクと等しい状態である。この状態で、上述した制御切替前後のab相電圧指令va_order、vb_orderを同じにする引継処理を行って制御切替を行うと、制御切替直後のベクトル制御の発生トルクがモータ1を目標位置通りに加速するために必要なトルクと等しくなる。よって、モータ1の回転速度が低下することなく回転むらの発生を抑制することができる。仮にモータ軸にかかる負荷が変化し、モータ1の回転速度のプロファイルが変化したとしても、算出した加速度情報に基づいて制御切替タイミングが加速度0となるように自動で調整される。
なお、切替信号生成部11の加速度演算部113、比較器114、115、及び論理積演算器116による加速度に基づいた制御切替タイミングの判定は、上述した構成に限るものではない。制御切替後に回転速度が低下して脱調するという課題を解決するためであれば、推定加速度に関する条件を所定値以上とするという条件でも構わない。所定値を目標加速度以上とすれば、モータ1の発生トルクは加速に必要な値より大きくなっているため、制御切替直後に回転速度が低下することなく必ず増速する。よって、回転速度の低下により脱調するという課題を防ぐことができる。
以上のような構成のモータ制御部157によるモータ1の駆動制御処理を説明する。図9は、モータ1の駆動制御処理を表すフローチャートである。モータ制御部157は、システムコントローラ151の制御に基づいて、モータ1の駆動制御処理を行う。
モータ制御部157は、システムコントローラ151から取得する制御開始信号が「1」になると(S101:Y)、動作を開始する(S102)。動作を開始すると、モータ制御部157の目標位置生成部2は、目標位置θ_tgtを出力する。これによりモータ1は回転を開始する。
モータ制御部157は、切替信号生成部11が出力する切替信号sig_swに基づいて、オープン制御とセンサレスベクトル制御とのどちらでモータ1の制御を行うか選択する(S103)。切替信号sig_swが「1」の場合(S103:Y)、モータ制御部157は、オープン制御でモータ1を制御する(S104)。
切替信号sig_swが「0」の場合(S103:N)、モータ制御部157は、初期化信号sig_initが「1」であるか否かを判定する(S105)。初期化信号sig_initが「1」の場合(S105:Y)、モータ制御部157は、指令値初期化処理を行う(S106)。指令値初期化処理により、dq軸電流指令はdq軸電流指令初期値id_ref_init、iq_ref_initに初期化され、dq軸電圧指令はdq軸電圧指令初期値vd_ref_init、vq_ref_initに初期化される。指令値初期化処理後、モータ制御部157は、センサレスベクトル制御でモータ1を制御する(S107)。なお、初期化信号sig_initが「0」の場合(S105:N)、モータ制御部157は、指令値初期化処理を行うことなく、センサレスベクトル制御でモータ1を制御する(S107)。
モータ1をオープン制御あるいはセンサレスベクトル制御により駆動制御すると、モータ制御部157は、システムコントローラ151から取得する制御開始信号が「0」になるか否かを判定する(S101:Y)。制御開始信号が「0」ではない場合(S108:N)、モータ制御部157は、S103以降の処理を繰り返し行う。これによりモータ1の駆動制御が継続して行われる。制御開始信号が「0」である場合(S108:Y)、モータ制御部157は、動作を停止する(S109)。これによりモータ1の駆動制御が停止する。
以上のように本実施形態のモータ制御部157は、オープン制御からセンサレスベクトル制御への制御切替タイミングを決定するために、モータ1の回転速度情報とモータ1の加速度情報とを用いる。これにより制御切替時のモータ1の速度変動を抑制することができる。その結果、制御切替後のモータ1の脱調防止、回転速度のオーバーシュートの低減、整定時間の短縮が実現される。
(変形例)
モータ制御部157の変形例について説明する。変形例においてもモータ制御部は、モータ1として、ステップ角が1.8度のステッピングモータを駆動制御する例について説明する。図10は、モータ制御部の変形例の構成説明図である。図3のモータ制御部157と比較して、図10のモータ制御部1571は、切替信号生成部21の構成が異なり、他の部分は同じである。ここでは、切替信号生成部21の説明を行い、他の部分の説明は省略する。
切替信号生成部21は、目標位置θ_tgtとシステムコントローラ151から入力されるトルク情報torq_infoとに基づいて、切替信号sig_sw及び初期化信号sig_initを出力する。図11は、切替信号生成部21の構成図である。図7の切替信号生成部11と同じ構成要素については同じ符号を付してある。切替信号生成部21は、速度演算部111、立ち下がりエッジ検出部119、速度閾値決定部120、及び比較器121を備える。
速度閾値決定部120は、トルク情報torq_infoに応じて事前に設定された速度閾値を出力する。速度閾値決定部120は、例えばトルク情報torq_infoと速度閾値との関係が示されるテーブルを有する。速度閾値決定部120は、このテーブルを参照して速度閾値を出力する。
比較器121は、速度演算部111から出力される目標速度と、速度閾値決定部120から出力される速度閾値とを比較する。比較器121は、目標速度が速度閾値未満の場合に「1」を出力し、目標速度が速度閾値以上の場合に「0」を出力する。この出力信号が切替信号sig_swとなる。
モータ軸にかかる負荷が変化すると、モータ1の回転速度のプロファイルが変化するため、加速度が「0」となるタイミングが変化する。モータ軸にかかる負荷トルク情報に応じて加速度が「0」となるタイミングの目標速度を事前に測定し、その測定結果から速度閾値決定部120のテーブルを作成することで、加速度0における制御切替が実現される。その結果、オープン制御からベクトル制御への制御切替直後のモータ1の発生トルクが、モータ軸にかかる負荷トルクと等しくなるため、速度変動が抑制される。
なお、切替信号sig_swの生成に用いる信号は負荷情報に限らず、例えば紙種情報等でもよい。紙搬送用のモータに本実施形態のモータ制御部1571を適用した場合、紙種に応じてモータ軸にかかる負荷トルクの値が変わる。そのため、紙種情報から速度閾値を決定することも可能である。
以上のように、変形例のモータ制御部1571では、オープン制御からベクトル制御への制御切替タイミングを決定するために、モータ1の回転速度情報と負荷情報とを用いることで、制御切替時の速度変動を抑制することができる。その結果、制御切替後のモータ1の脱調防止、回転速度のオーバーシュートの低減、整定時間の短縮を実現がされる。