(57)【要約】      （修正有）【課題】被搬送物の搬送位置を基準に近づけることで位置決め精度が高い最適化された制御パラメーターを容易に定義することができる印刷装置を提供する。【解決手段】被搬送物を搬送するモーター１，４を備える印刷装置１００であって、被搬送物の速度、被搬送物の加速度、被搬送物の移動量、被搬送物の移動開始位置、印刷装置の周囲環境、モーターに流れる電流値、印刷装置で印刷される印刷媒体の種類、被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、被搬送物の搬送位置を基準に近づけるモーターの制御パラメーターを出力する学習済モデルを記憶する記憶部３０と、学習済モデルに基づいて取得された制御パラメーターによってモーターを制御して印刷を行う制御部２０と、を備える印刷装置が構成される。【選択図】図１
2020116869.tif 000002
【特許請求の範囲】
【請求項１】
被搬送物を搬送するモーターを備える印刷装置であって、
前記被搬送物の速度、前記被搬送物の加速度、前記被搬送物の移動量、前記被搬送物の移動開始位置、前記印刷装置の周囲環境、前記モーターに流れる電流値、前記印刷装置で印刷される印刷媒体の種類、前記被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、前記被搬送物の搬送位置を基準に近づける前記モーターの制御パラメーターを出力する学習済モデルを記憶する記憶部と、
前記学習済モデルに基づいて取得された前記制御パラメーターによって前記モーターを制御して印刷を行う制御部と、
を備える印刷装置。
【請求項２】
前記学習済モデルの学習は、
少なくとも一つの前記状態変数を観測し、観測された前記状態変数に基づいて前記制御パラメーターを変化させる行動を決定し、前記被搬送物の搬送位置の基準からのずれに基づいて前記制御パラメーターを最適化することによって実行される、
請求項１に記載の印刷装置。
【請求項３】
前記基準からのずれは、
前記印刷装置が備えるカメラによって撮影された前記被搬送物の搬送位置を示す画像に基づいて特定される、
請求項２に記載の印刷装置。
【請求項４】
前記被搬送物の搬送位置を示す画像は、
前記印刷装置で印刷媒体に対して印刷した調整パターンが撮影された画像である、
請求項３に記載の印刷装置。
【請求項５】
前記印刷媒体に印刷されたオブジェクトが既定の大きさより大きい場合に前記基準からのずれが生じていると見なされ、
前記印刷媒体に印刷されたオブジェクトが前記既定の大きさ以下である場合に前記基準からのずれが生じていないと見なされる、
請求項２〜請求項４のいずれかに記載の印刷装置。
【請求項６】
前記学習済モデルの学習は、
前記基準からのずれが小さいほど大きくなる報酬に基づいて、
前記状態変数の観測と、当該状態変数に応じた前記行動の決定と、当該行動によって得られる前記報酬の評価とを繰り返すことによって、前記制御パラメーターが最適化されることによって実行される、
請求項２〜請求項５のいずれかに記載の印刷装置。
【請求項７】
前記学習済モデルは、前記印刷装置における印刷速度毎に学習される、
請求項１〜請求項６のいずれかに記載の印刷装置。
【請求項８】
被搬送物を搬送するモーターを備える印刷装置で参照される学習済モデルの学習装置であって、
前記被搬送物の速度、前記被搬送物の加速度、前記被搬送物の移動量、前記被搬送物の移動開始位置、前記印刷装置の周囲環境、前記モーターに流れる電流値、前記印刷装置で印刷される印刷媒体の種類、前記被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、前記被搬送物の搬送位置を基準に近づける前記モーターの制御パラメーターを出力するモデルを前記学習済モデルとして取得する学習部、
を備える学習装置。
【請求項９】
被搬送物を搬送するモーターを備える印刷装置で参照される学習済モデルの学習方法であって、
前記被搬送物の速度、前記被搬送物の加速度、前記被搬送物の移動量、前記被搬送物の移動開始位置、前記印刷装置の周囲環境、前記モーターに流れる電流値、前記印刷装置で印刷される印刷媒体の種類、前記被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、前記被搬送物の搬送位置を基準に近づける前記モーターの制御パラメーターを出力するモデルを前記学習済モデルとして取得する、
学習方法。
【請求項１０】
被搬送物を搬送するモーターを備える印刷装置で参照される学習済モデルの学習をコンピューターに実行させる学習プログラムであって、
前記被搬送物の速度、前記被搬送物の加速度、前記被搬送物の移動量、前記被搬送物の移動開始位置、前記印刷装置の周囲環境、前記モーターに流れる電流値、前記印刷装置で印刷される印刷媒体の種類、前記被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、前記被搬送物の搬送位置を基準に近づける前記モーターの制御パラメーターを出力するモデルを前記学習済モデルとして取得する、
機能をコンピューターに実行させる学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、学習装置、学習方法および学習プログラムに関する。
【背景技術】
【０００２】
印刷装置においては、印刷媒体やキャリッジ等の被搬送物を搬送するためにモーターが利用される場合がある。モーターによって被搬送物を搬送する場合、ＰＩＤ制御等の各種の手法でモーターが制御され、当該モーターの動作によって被搬送物が搬送される。モーターを制御する際には、各種の制御パラメーター（例えば、ＰＩＤ制御における比例ゲイン、積分ゲイン、微分ゲイン等）を決定する必要がある。従来は、試行錯誤等によって制御パラメーターを決定し、当該制御パラメーターで動作する印刷装置が出荷されていた。この場合、モーターの停止特性が外部環境等によって変化すると、被搬送物の位置決め精度が低下するため、従来、各種の補正技術が開発されていた。例えば、特許文献１においては、モーターの実際の停止特性と基準となる停止特性とを比較し、基準の停止特性になるように制御パラメーターを補正する技術が開示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３０２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、モーターの経年劣化や被搬送物の特性、使用環境に応じて制御パラメーターを精度良く補正することは従来技術を利用しても困難である場合があった。
【課題を解決するための手段】
【０００５】
上記課題の少なくとも一つを解決するために、被搬送物を搬送するモーターを備える印刷装置は、被搬送物の速度、被搬送物の加速度、被搬送物の移動量、被搬送物の移動開始位置、印刷装置の周囲環境、モーターに流れる電流値、印刷装置で印刷される印刷媒体の種類、被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、被搬送物の搬送位置を基準に近づけるモーターの制御パラメーターを出力する学習済モデルを記憶する記憶部と、学習済モデルに基づいて取得された制御パラメーターによってモーターを制御して印刷を行う制御部と、を備える。この構成によれば、印刷装置の状態に応じて最適化された制御パラメーターによってモーターを制御することが可能になり、長期間にわたって被搬送物の搬送位置が基準に近い（位置決め精度が高い）状態を維持することができる。
【０００６】
さらに、学習済モデルの学習は、少なくとも一つの状態変数を観測し、観測された状態変数に基づいて制御パラメーターを変化させる行動を決定し、被搬送物の搬送位置の基準からのずれに基づいて制御パラメーターを最適化することによって実行される構成であっても良い。すなわち、強化学習によって学習済モデルを学習することにより、被搬送物の搬送位置を基準に近づけることで位置決め精度を高める最適化された制御パラメーターを容易に定義することができる。
【０００７】
さらに、基準からのずれは、印刷装置が備えるカメラによって撮影された被搬送物の搬送位置を示す画像に基づいて特定される構成であっても良い。この構成によれば、学習済モデルの学習に利用される基準からのずれを印刷装置が備えるカメラによって特定可能であり、印刷後の印刷媒体を他の装置等で測定する必要がない。従って、学習に関わる作業が簡単になる。
【０００８】
さらに、被搬送物の搬送位置を示す画像は、印刷装置で印刷媒体に対して印刷した調整パターンが撮影された画像である構成であっても良い。この構成であれば、定型的な調整パターンの印刷結果を評価することによって基準からのずれを特定することができる。
【０００９】
さらに、印刷媒体に印刷されたオブジェクトが既定の大きさより大きい場合に基準からのずれが生じていると見なされ、印刷媒体に印刷されたオブジェクトが既定の大きさ以下である場合に基準からのずれが生じていないと見なされる構成であっても良い。この構成によれば、被搬送物の搬送位置の基準からのずれを簡単に評価することが可能である。
【００１０】
さらに、学習済モデルの学習は、基準からのずれが小さいほど大きくなる報酬に基づいて、状態変数の観測と、当該状態変数に応じた行動の決定と、当該行動によって得られる報酬の評価とを繰り返すことによって、制御パラメーターが最適化されることによって実行される構成であっても良い。この構成によれば、強化学習によって学習済モデルを学習することにより、被搬送物の搬送位置を基準に近づけることで位置決め精度を高める最適化された制御パラメーターを容易に定義することができる。
【００１１】
さらに、学習済モデルは、印刷装置における印刷速度毎に学習される構成であっても良い。この構成によれば、印刷装置で採用される印刷速度毎に適した制御パラメーターを取得することが可能になる。
【００１２】
さらに、被搬送物を搬送するモーターを備える印刷装置で参照される学習済モデルの学習装置であって、被搬送物の速度、被搬送物の加速度、被搬送物の移動量、被搬送物の移動開始位置、印刷装置の周囲環境、モーターに流れる電流値、印刷装置で印刷される印刷媒体の種類、被搬送物の累積移動量、の少なくとも一つを含む状態変数に基づいて、被搬送物の搬送位置を基準に近づけるモーターの制御パラメーターを出力するモデルを学習済モデルとして取得する学習部、を備える学習装置が構成されても良い。すなわち、制御パラメーターを出力する学習済モデルの学習装置としても発明は成立する。
【図面の簡単な説明】
【００１３】
【図１】印刷装置の構成を示す図である。
【図２】モーター制御部の構成を示す図である。
【図３】強化学習による学習例を示す図である。
【図４】調整パターンを示す図である。
【図５】基準からのずれの説明図である。
【図６】基準からのずれの説明図である。
【図７】多層ニューラルネットワークの例を示す図である。
【図８】学習処理のフローチャートである。
【図９】印刷処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について添付図面を参照しながら以下の順に説明する。なお、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
（１）印刷装置および学習装置の構成：
（２）制御パラメーターの決定：
（２−１）学習済モデルの学習：
（２−２）制御パラメーターの学習例：
（３）印刷処理：
（４）他の実施形態：
【００１５】
（１）印刷装置および学習装置の構成：
図１は、本発明の一実施形態である印刷装置および学習装置の概略構成を示したブロック図である。図１に示した印刷装置１００は、紙送りを行う紙送りモーター（以下、ＰＦモーターともいう。）１と、ＰＦモータードライバー２と、キャリッジ３と、キャリッジモーター（以下、ＣＲモーターともいう。）４と、ＣＲモータードライバー５と、モーター制御部６と、ヘッドドライバー７とを備えている。
【００１６】
また、印刷装置１００は、カメラ８と、（リニア式）エンコーダー９と、（リニア式）エンコーダー用符号板１０と、（ロータリー式）エンコーダー１１と、（ロータリー式）エンコーダー用符号板１２と、プーリ１３と、タイミングベルト１４と、プロセッサー２０と、記憶部３０と、温度湿度センサー４０と、印刷媒体５０を搬送するＰＦローラー５１とを備えている。むろん、図１において、印刷装置１００が備え得る他の構成は省略されており、例えば、ヘッドの目詰まり防止のためのインクの吸い出しを制御するポンプ等が備えられていても良い。
【００１７】
温度湿度センサー４０は、印刷装置１００の周囲の温度および湿度を示す情報を出力する。本実施形態においてＰＦモーター１は、ＰＦモータードライバー２によって回転駆動される。ＰＦモーター１が回転すると、ギア等を介してＰＦローラー５１を回転させ、印刷媒体５０を搬送する。
【００１８】
ＣＲモーター４は、ＣＲモータードライバー５によって回転駆動される。ＣＲモーター４が正転、逆転すると、タイミングベルト１４を介してキャリッジ３が直線方向に往復移動する。キャリッジ３には図示しないヘッドが備えられており、ヘッドドライバー７の制御により複数色のインクのインク滴が吐出され、印刷媒体５０に印刷が行われる。
【００１９】
このように、本実施形態においては、キャリッジ３の直線方向への往復移動とＰＦローラー５１による印刷媒体の搬送を利用して印刷媒体の２次元的な範囲に印刷を行うことができる。本実施形態においては、キャリッジ３の移動方向を主走査方向、ＰＦローラー５１による印刷媒体の移動方向を副走査方向と呼ぶ。本実施形態において、主走査方向と副走査方向とは互いに垂直である。
【００２０】
ヘッドドライバー７は、キャリッジ３が備える図示しないヘッドに対して印加する電圧を生成し、各ヘッドに対する電圧供給を制御する。各ヘッドに電圧が供給されると、電圧に応じたインク滴が吐出されて印刷媒体に対する印刷が行われる。
【００２１】
本実施形態においてキャリッジ３はカメラ８を備えている。カメラ８は図示しない光源とセンサーとを備えており、光源によって印刷媒体５０が照明された状態で印刷媒体５０の画像を取得することができる。カメラ８はキャリッジ３に搭載されているため、キャリッジ３を移動させることにより、主走査方向の任意の位置の画像を取得することができる。本実施形態においては、印刷が行われた印刷媒体５０や印刷が行われていない印刷媒体５０の画像を取得することができる。
【００２２】
モーター制御部６は、ＰＦモータードライバー２と、ＣＲモータードライバー５とに直流電流指令値を出力する回路を備えている。ＰＦモータードライバー２は、直流電流指令値に応じた電流値でＰＦモーター１を回転駆動させる。ＣＲモータードライバー５は、直流電流指令値に応じた電流値でＣＲモーター４を回転駆動させる。
【００２３】
エンコーダー用符号板１０は、所定の間隔にスリットが形成された細長い部材であり、主走査方向に平行になるように印刷装置１００内に固定されている。エンコーダー９は、キャリッジ３のエンコーダー用符号板１０に対応する位置に固定されている。エンコーダー９は、キャリッジ３の移動に伴ってエンコーダー９を横切ったスリットの数に対応するパルスを出力することによってキャリッジ３の位置を示す情報を出力する。
【００２４】
エンコーダー用符号板１２は、薄い板状の円形部材であり、放射状に所定の角度毎にスリットが形成され、ＰＦローラー５１の軸に対して固定されている。エンコーダー１１は、エンコーダー用符号板１２の外周部分においてエンコーダー用符号板１２の回転を妨げない位置に固定されている。エンコーダー１１は、ＰＦローラー５１の回転に伴ってエンコーダー１１を横切ったスリットの数に対応するパルスを出力することによってＰＦローラー５１の位置（回転角度）を示す情報を出力する。
【００２５】
プロセッサー２０は、図示しないＣＰＵ，ＲＡＭ，ＲＯＭ等を備えており、ＲＯＭ等に記憶されたプログラムを実行することができる。むろん、プロセッサー２０は、各種の構成であって良く、ＡＳＩＣやＧＰＵ等が利用されても良い。プロセッサー２０は、プログラムを実行することによって印刷装置１００の各部を制御する。
【００２６】
プロセッサー２０は、印刷装置１００における各種の制御対象を制御することができる。ここでは、印刷の制御と被搬送物（印刷媒体５０およびキャリッジ３）の位置精度を向上させるための制御とを主に説明する。これらの制御のためのプログラムが実行されると、プロセッサー２０は、制御部２１として機能する。印刷の制御において、制御部２１は、印刷対象を示す画像データに基づいて画像処理を行うことにより、画素毎に印刷媒体５０に対して吐出すべきインクの色やインク滴の大きさ等を特定する。そして、制御部２１は、処理結果に基づいて、印刷媒体５０にインク滴を印刷するために必要なＰＦモーター１、ＣＲモーター４の時系列の目標位置、ヘッドの駆動タイミングを取得する。
【００２７】
制御部２１は、ＰＦモーター１、ＣＲモーター４を目標位置に配置するために、モーター制御部６に対して制御目標を指示し、ＰＦローラー５１を駆動し、キャリッジ３を駆動する。
【００２８】
すなわち、制御部２１は、ＰＦローラー５１を回転させて印刷媒体５０を搬送する際に必要な時系列のＰＦモーター１の目標位置（目標回転角度）をモーター制御部６に対して出力する。モーター制御部６は当該目標位置にＰＦモーター１を移動させるための電流値を出力する。ＰＦモータードライバー２は当該電流値に基づいて、ＰＦモーター１が目標位置となるようにＰＦモーター１を駆動する。
【００２９】
また、制御部２１は、キャリッジ３を主走査させる際に必要な時系列のキャリッジ３の目標位置をモーター制御部６に対して出力する。モーター制御部６は当該目標位置にキャリッジ３を移動させるための電流値を出力する。ＣＲモータードライバー５は当該電流値に基づいて、キャリッジ３が目標位置となるようにＣＲモーター４を駆動する。
【００３０】
さらに、制御部２１は、画像処理によって得られたヘッドの駆動タイミングで印刷媒体５０にインク滴を記録させるための制御を行う。すなわち、制御部２１は、ヘッドの駆動タイミングおよび各駆動タイミングでのインク滴の量（インクドットの大きさ）をヘッドドライバー７に対して出力する。ヘッドドライバー７は、当該駆動タイミングにおいて、当該量のインク滴を吐出するための電圧を生成し、各ヘッドにして電圧を供給する。キャリッジ３のヘッドは、当該電圧によって駆動され、インク滴を吐出して印刷媒体５０に対して印刷を行う。
【００３１】
本実施形態においては、以上のように印刷媒体５０の搬送と、キャリッジ３の搬送と、ヘッドからのインク滴の吐出とを順次行うことにより印刷を行う。このような印刷において、印刷品質を維持するためには、被搬送物である印刷媒体５０やキャリッジ３が精度良く目標の位置に搬送される必要がある。そこで、本実施形態におけるモーター制御部６は、フィードバック制御によってＰＦモーター１およびＣＲモーター４を制御する。
【００３２】
図２は、モーター制御部６の構成を示したブロック図である。モーター制御部６においては、ＰＦモーター１およびＣＲモーター４のそれぞれを制御するために同様の回路を２組備えている（ただし、制御パラメーターは異なり得る）が、ここでは両者を区別することなく説明を行う。モーター制御部６は、位置演算部６ａと、減算器６ｂと、目標速度演算部６ｃと、速度演算部６ｄと、減算器６ｅと、比例要素６ｆと、積分要素６ｇと、微分要素６ｈと、加算器６ｉと、Ｄ／Ａコンバータ６ｊと、タイマ６ｋと、加速制御部６ｍとを備えている。
【００３３】
位置演算部６ａは、エンコーダー９，１１の出力パルスを検出し、検出された出力パルスの個数を計数し、この計数値に基づいて、キャリッジ３，ＰＦモーター１の位置を演算する。減算器６ｂは、制御部２１から送られる目標位置と、位置演算部６ａによって求められたキャリッジ３，ＰＦモーター１の実際の位置との位置偏差を演算する。
【００３４】
目標速度演算部６ｃは、減算器６ｂの出力である位置偏差に基づいてキャリッジ３，ＰＦモーター１の目標速度を演算する。この演算は位置偏差にゲインＫｐを乗算することにより行われる。このゲインＫｐは位置偏差に応じて決定される。尚、このゲインＫｐの値は、図示しないテーブルに格納されていてもよい。
【００３５】
速度演算部６ｄは、エンコーダー９，１１の出力パルスに基づいてキャリッジ３，ＰＦモーター１の速度を演算する。速度の演算は種々の手法で行われて良く、例えば、速度演算部６ｄが、出力パルスのエッジ間の時間間隔をタイマカウンタによってカウントし、エッジ間の距離をタイマカウンタのカウント値で除することによって演算する手法等を採用可能である。減算器６ｅは、目標速度と、速度演算部６ｄによって演算されたキャリッジ３，ＰＦモーター１の実際の速度との速度偏差を演算する。
【００３６】
比例要素６ｆは、上記速度偏差に定数Ｇｐを乗算し、乗算結果を出力する。積分要素６ｇは、速度偏差に定数Ｇｉを乗じたものを積算する。微分要素６ｈは、現在の速度偏差と、１つ前の速度偏差との差に定数Ｇｄを乗算し、乗算結果を出力する。比例要素６ｆ、積分要素６ｇ及び微分要素６ｈの演算は、エンコーダー９，１１の出力パルスの１周期ごとに、例えば出力パルスの立ち上がりエッジに同期して行う。
【００３７】
比例要素６ｆ、積分要素６ｇ及び微分要素６ｈの出力は、加算器６ｉにおいて加算される。そして加算結果、即ちＰＦモーター１，ＣＲモーター４の駆動電流が、Ｄ／Ａコンバータ６ｊに送られてアナログ電流に変換される。このアナログ電圧に基づいて、ＰＦモータードライバー２，ＣＲモータードライバー５によりＰＦモーター１，ＣＲモーター４が駆動される。
【００３８】
また、タイマ６ｋ及び加速制御部６ｍは、加速制御に用いられ、比例要素６ｆ、積分要素６ｇ及び微分要素６ｈを使用するＰＩＤ制御は、加速途中の定速及び減速制御に用いられる。
【００３９】
タイマ６ｋは、制御部２１から送られてくるクロック信号に基づいて所定時間ごとにタイマ割込み信号を発生する。加速制御部６ｍは、タイマ割込信号を受けるたびに所定の電流値（例えば２０ｍＡ）を目標電流値に積算し、積算結果、即ち加速時におけるＰＦモーター１、ＣＲモーター４の目標電流値が、Ｄ／Ａコンバータ６ｊに送られる。ＰＩＤ制御の場合と同様に、上記目標電流値はＤ／Ａコンバータ６ｊによってアナログ電流に変換され、このアナログ電流に基づいて、ＰＦモータードライバー２，ＣＲモータードライバー５によりＰＦモーター１，ＣＲモーター４が駆動される。
【００４０】
（２）制御パラメーターの決定：
以上のような構成において、ゲインＫｐおよび定数Ｇｐ，Ｇｉ，Ｇｄを変化させることにより、ＰＦモーター１およびＣＲモーター４の動作を変化させることができる。従って、これらの値はモーターの制御パラメーターである。本実施形態においては、印刷装置１００において複数の印刷速度を選択可能（例えば、画質を優先し低速で印刷するモードと相対的に画質は低下するが高速に印刷するモード）であり、印刷速度毎に予め制御パラメーターが決められた状態で印刷装置１００が出荷される。
【００４１】
しかし、制御パラメーターが固定の値である場合、印刷装置１００の環境変化やＰＦモーター１やＣＲモーター４、タイミングベルト１４等の経時変化に応じた適切な値にならない場合がある。この場合、印刷媒体５０およびキャリッジ３の搬送位置が基準からずれる（制御目標からずれる）場合がある。そこで、本実施形態においては、印刷媒体５０およびキャリッジ３の搬送位置を基準に近づけるように制御パラメーターを変化させ得る構成が採用されている。
【００４２】
（２−１）学習済モデルの学習：
本実施形態においては、機械学習によって取得された学習済モデルをプロセッサー２０が参照することによって、制御パラメーターを決定する。本実施形態において、学習済モデルは強化学習によって取得される。すなわち、印刷装置１００が学習装置としても機能し、学習によって得られた学習済モデルが参照されながら印刷が行われる。以下、当該強化学習について説明する。
【００４３】
なお、本実施形態によれば、強化学習の結果、制御パラメーターの変更によって被搬送物の搬送位置の精度が現在の設定値以上は向上しないと推定される、つまり搬送位置の精度が極大であると推定される状態を実現することができる。本実施形態においては、これらの状態を最適化された状態と呼び、最適化された状態を実現する制御パラメーターを最適化された制御パラメーターと呼ぶ。
【００４４】
本実施形態において印刷装置１００は、学習プログラムを実行することにより、学習部２２として機能する。学習部２２は、印刷装置１００の状態を示す状態変数を観測することができる。本実施形態において、状態変数は、被搬送物の速度、被搬送物の加速度、被搬送物の移動量、被搬送物の移動開始位置、印刷装置の周囲環境、モーターに流れる電流値、印刷装置で印刷される印刷媒体の種類、被搬送物の累積移動量である。
【００４５】
具体的には、学習部２２は、モーター制御部６の速度演算部６ｄからＰＦモーター１の実際の速度、キャリッジ３の実際の速度を取得し、被搬送物の速度と見なす。また、学習部２２は、ＰＦモーター１の実際の速度およびキャリッジ３の実際の速度の既定期間での変化を取得し、被搬送物の加速度と見なす。さらに、学習部２２は、予め決められた期間（例えば、印刷媒体５０への印刷の開始から現在までの期間）内で、ＰＦモーター１の実際の速度およびキャリッジ３の実際の速度を積分し、被搬送物の移動量と見なす。当該移動量は記憶部３０に記憶される。
【００４６】
さらに、学習部２２は、モーター制御部６の位置演算部６ａから、印刷媒体５０に印刷を開始する際におけるＰＦモーター１の実際の位置およびキャリッジ３の実際の位置を取得し、被搬送物の移動開始位置と見なす。さらに、学習部２２は、温度湿度センサー４０の出力信号に基づいて印刷装置１００の周囲の温度および湿度を取得し、印刷装置の周囲環境と見なす。さらに、学習部２２は、ＰＦモーター１およびＣＲモーター４に接続された電流センサーに基づいて、各モーターに流れる電流値を取得する。
【００４７】
さらに、学習部２２は、カメラ８を制御して印刷媒体５０の余白を撮影し、予め決められた画像処理（例えば、テンプレートマッチングやフーリエ変換等）に基づいて、ＰＦローラー５１で搬送されている印刷媒体５０の種類を予め決められた種類から選択し、印刷装置で印刷される印刷媒体５０の種類とみなす。さらに、学習部２２は、記憶部３０に記憶された上述の移動量の累積値を取得し、被搬送物の累積移動量と見なす。本実施形態において、学習部２２は、任意のタイミングにおける状態変数を観測することができ、初期の状態変数と、制御パラメーターを変化させた後の状態変数とを観測する。
【００４８】
本実施形態においては強化学習が採用されているため、学習部２２は、状態変数に基づいて制御パラメーターを変化させる行動を決定し、当該行動を実行する。当該行動後の状態に応じて報酬を評価すれば、当該行動の行動価値が判明する。そこで、学習部２２は、状態変数の観測と、当該状態変数に応じた行動の決定と、当該行動によって得られる報酬の評価とを繰り返すことによって、制御パラメーターを最適化する。
【００４９】
図３はエージェントと環境とからなる強化学習のモデルに沿って制御パラメーターの学習例を説明する図である。図３に示すエージェントは、予め決められた方策に応じて行動ａを選択する機能に相当する。環境は、エージェントが選択した行動ａと現在の状態ｓとに基づいて次の状態ｓ'を決定し、行動ａと状態ｓと状態ｓ'とに基づいて即時報酬ｒを決定する機能に相当する。
【００５０】
本実施形態においては、予め決められた方策によって学習部２２が行動ａを選択し、状態の更新を行う処理を繰り返すことにより、ある状態ｓにおけるある行動ａの行動価値関数Ｑ（ｓ，ａ）を算出するＱ学習が採用される。すなわち、本例においては、下記の式（１）によって行動価値関数を更新する。そして、行動価値関数Ｑ（ｓ，ａ）が適正に収束した場合には、当該行動価値関数Ｑ（ｓ，ａ）を最大化する行動ａが最適な行動であると見なされ、当該行動ａを示す制御パラメーターが最適化されたパラメーターであると見なされる。
【数１】
2020116869.tif 000003
【００５１】
ここで、行動価値関数Ｑ（ｓ，ａ）は、状態ｓにおいて行動ａを取った場合において将来にわたって得られる収益（本例では割引報酬総和）の期待値である。報酬はｒであり、状態ｓ、行動ａ、報酬ｒの添え字ｔは、時系列で繰り返す試行過程における１回分のステップを示す番号（試行番号と呼ぶ）であり、行動決定後に状態が変化すると試行番号がインクリメントされる。従って、式（１）内の報酬ｒt+1は状態ｓtで行動ａtが選択され、状態がｓt+1になった場合に得られる報酬である。αは学習率、γは割引率である。また、ａ'は、状態ｓt+1で取り得る行動ａt+1の中で行動価値関数Ｑ（ｓt+1，ａt+1）を最大化する行動であり、ｍａｘａ'Ｑ（ｓt+1，ａ'）は、行動ａ'が選択されたことによって最大化された行動価値関数である。なお、試行の間隔は、種々の手法で決められて良く、例えば、一定時間間隔毎に試行が行われる構成等を採用可能である。
【００５２】
制御パラメーターの学習においては、制御パラメーターを変化させることが行動の決定に相当しており、学習対象の制御パラメーターと取り得る行動とを示す情報が記憶部３０に予め記録される。図３においては、制御パラメーターの中のＰＩＤ制御に関係した制御パラメーターが学習対象となっている例を示している。
【００５３】
具体的には、制御パラメーターの中で、ＰＦモーター１の制御に利用される定数Ｇｐ，Ｇｉ，Ｇｄと、ＣＲモーター４の制御に利用される定数Ｇｐ，Ｇｉ，Ｇｄと、が学習対象となっている。従って、この例においてＰＦモーター１およびＣＲモーター４のゲインＫｐ等は学習対象となっていないが、むろん、図３に示す制御パラメーター以外の制御パラメーターが学習対象であっても良い。
【００５４】
図３に示す例において行動には値を一定値増加させる行動と、値を一定値減少させる行動とが存在する。従って、図３に示す全６個のパラメーターにおいて取り得る行動は全１２個である（行動ａ１〜行動ａ１２）。本実施形態においては、各行動を特定するための情報（行動のＩＤ、各行動での増減量等）が記憶部３０に記録される。
【００５５】
図３に示す例において報酬は、被搬送物の搬送位置の、基準からのずれに基づいて特定される。本実施形態において、基準からのずれは、カメラ８によって撮影された被搬送物の搬送位置を示す画像に基づいて特定される。本実施形態において、被搬送物の搬送位置を示す画像は、印刷装置１００で印刷媒体５０に対して印刷した調整パターンが撮影された画像である。
【００５６】
すなわち、学習部２２は、行動ａとして制御パラメーターを変化させた後、モーター制御部６やヘッドドライバー７等を制御して、既定の調整パターンを印刷媒体５０に印刷させる。なお、調整パターンは、印刷媒体５０の搬送位置やキャリッジ３の搬送位置を明らかにするためのパターンであれば良く、種々のパターンが利用されて良い。
【００５７】
本実施形態において調整パターンは直線で構成されたパターンであり、印刷媒体５０に印刷されたブジェクト（直線）が既定の大きさより大きい場合に基準からのずれが生じていると見なされる。また、印刷媒体５０に印刷されたオブジェクトが既定の大きさ以下である場合に基準からのずれが生じていないと見なされる。
【００５８】
図４は、調整パターンの例を示す図であり、この例においては、共通の中心を有する異なる大きさの２個の長方形と、大きい方の長方形の対角線とによって調整パターンが構成されている。このように、線で構成された図形を印刷する際に、被搬送物の搬送位置が基準からずれておらず高精度に制御されていると、線は既定の幅以内の線として表現される。しかし、被搬送物の搬送位置が基準からずれると、線が既定の幅より太くなり、ずれが大きいと線が分離する。
【００５９】
そこで、本実施形態において学習部２２はカメラ８を制御し、カメラ８によって当該調整パターンを撮影させる。図５および図６は、撮影結果を説明するための図である。図５および図６において、横軸は画素単位の位置を示し、縦軸は輝度のレベルを示している。本例においては、白色の印刷媒体５０に黒い線で構成された調整パターンが印刷される例が想定されているため、線が撮影された部分は、図５および図６に示すように輝度が低下する。本実施形態においては、閾値Ｔｈより輝度が小さい部分を調整パターンの像であるとみなす。
【００６０】
これらの例において、線の理想的な幅は範囲Ｚによって示されている。図５においては、カメラ８で測定された調整パターンの線が範囲Ｚよりも太く、被搬送物の搬送位置が基準からずれていることがわかる。図６においては、カメラ８で測定された調整パターンの線が範囲Ｚと同等であるが、閾値Ｔｈより輝度が小さい部分が範囲Ｚの近く（既定距離以内）に存在する。従って、図６に示す例においては、被搬送物の搬送位置が基準から大きくずれていることがわかる。
【００６１】
本実施形態においては、これらの基準からのずれを、輝度が閾値Ｔｈよりも小さい範囲によって評価する。具体的には、学習部２２は、輝度が閾値Ｔｈよりも小さい範囲から線の幅を示す範囲Ｚを減じた残りであるΔＺを基準からのずれとして取得する。むろん、基準からのずれは調整パターン上の複数箇所で評価されても良いし、統計されても良い。また、印刷媒体５０の複数の位置に印刷された調整パターンに基づいて基準からのずれが取得されても良い。
【００６２】
いずれにしても、学習部２２は、基準からのずれΔＺが小さいほど、報酬が大きくなるように（例えば、１／ΔＺ等）報酬を設定する。むろん、報酬は種々の手法で定義されて良く、例えば、ずれΔＺが閾値より小さい場合に＋１、閾値より大きい場合に−１となるような報酬でも良いし、他にも種々の定義が採用可能である。
【００６３】
現在の状態ｓにおいて行動ａが採用された場合における次の状態ｓ'は、行動ａとしてのパラメーターの変化が行われた後に印刷装置１００を動作させ、学習部２２が状態変数を観測することによって特定可能である。すなわち、学習部２２が印刷媒体５０の速度や印刷装置１００の周囲の温度等を観測することにより、これらを示す値を状態変数として取得する。
【００６４】
（２−２）制御パラメーターの学習例：
次に、制御パラメーターの学習例を説明する。学習の過程で参照される変数や関数を示す情報は、記憶部３０に記憶される。すなわち、学習部２２は、状態変数の観測と、当該状態変数に応じた行動の決定と、当該行動によって得られる報酬の評価とを繰り返すことによって行動価値関数Ｑ（ｓ，ａ）を収束させる構成が採用されている。そこで、本例において、学習の過程で状態変数と行動と報酬との時系列の値が、順次、記憶部３０に記録されていく。
【００６５】
行動価値関数Ｑ（ｓ，ａ）は、種々の手法で算出されて良く、多数回の試行に基づいて算出されても良いが、本実施形態においては、行動価値関数Ｑ（ｓ，ａ）を近似的に算出する一手法であるＤＱＮ（Ｄｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋ）が採用されている。ＤＱＮにおいては、多層ニューラルネットワークを用いて行動価値関数Ｑ（ｓ，ａ）を推定する。本例においては、状態ｓを入力とし、選択し得る行動の数Ｎ個の行動価値関数Ｑ（ｓ，ａ）の値を出力とする多層ニューラルネットワークが採用されている。
【００６６】
図７は、本例において採用されている多層ニューラルネットワークを模式的に示す図である。図７において、多層ニューラルネットワークは、Ｍ個（Ｍは２以上の整数）の状態変数を入力とし、Ｎ個（Ｎは２以上の整数）の行動価値関数Ｑの値を出力としている。例えば、図３に示す例であれば、印刷媒体の速度や温度等の状態変数が合計１３個存在するためＭ＝１３であり、Ｍ個の状態変数の値が多層ニューラルネットワークに入力される。図７においては、試行番号ｔにおけるＭ個の状態をｓ1t〜ｓMtとして示している。
【００６７】
Ｎ個は選択し得る行動ａの数であり、多層ニューラルネットワークの出力は、入力された状態ｓにおいて特定の行動ａが選択された場合の行動価値関数Ｑの値である。図７においては、試行番号ｔにおいて選択し得る行動ａ1t〜ａNtのそれぞれにおける行動価値関数ＱをＱ（ｓt，ａ1t）〜Ｑ（ｓt，ａNt）として示している。当該Ｑに含まれるｓtは入力された状態ｓ1t〜ｓMtを代表して示す文字である。図３に示す例であれば、１２個の行動が選択可能であるためＮ＝１２である。むろん、行動ａの内容や数（Ｎの値）、状態ｓの内容や数（Ｍの値）は試行番号ｔに応じて変化しても良い。
【００６８】
図７に示す多層ニューラルネットワークは、各層の各ノードにおいて直前の層の入力（１層目においては状態ｓ）に対する重みｗの乗算とバイアスｂの加算とを実行し、必要に応じて活性化関数を経た出力を得る（次の層の入力になる）演算を実行するモデルである。本例においては、層ＤＬがＰ個（Ｐは１以上の整数）存在し、各層において複数のノードが存在する。
【００６９】
図７に示す多層ニューラルネットワークは各層における重みｗとバイアスｂ、活性化関数、層の順序等によって特定される。そこで、本実施形態においては、当該多層ニューラルネットワークを特定するためのパラメーター（入力から出力を得るために必要な情報）が記憶部３０に記録される。なお、学習の際には、多層ニューラルネットワークを特定するためのパラメーターの中で可変の値（例えば，重みｗとバイアスｂ）を更新していくことになる。ここでは、学習の過程で変化し得る多層ニューラルネットワークのパラメーターをθと表記する。当該θを使用すると、上述の行動価値関数Ｑ（ｓt，ａ1t）〜Ｑ（ｓt，ａNt）は、Ｑ（ｓt，ａ1t；θt）〜Ｑ（ｓt，ａNt；θt）とも表記できる。
【００７０】
次に、図８に示すフローチャートに沿って学習処理の手順を説明する。制御パラメーターの学習処理は、印刷装置１００における印刷速度（印刷モード）毎に実行される。学習処理が開始されると、学習部２２は、学習情報を初期化する（ステップＳ１００）。すなわち、学習部２２は、学習を開始する際に参照されるθの初期値を特定する。初期値は、種々の手法によって決められて良く、例えば、過去に学習が行われていない場合においては、任意の値やランダム値等がθの初期値となって良い。
【００７１】
過去に学習が行われた場合は、当該学習済のθが初期値として採用される。また、過去に類似の条件（印刷媒体の種類等）についての学習が行われた場合は、当該学習におけるθが初期値とされても良い。過去の学習は、印刷装置１００を用いてユーザーが行ってもよいし、印刷装置１００の製造者が印刷装置１００の販売前に行ってもよい。この場合、製造者は、対象物や作業の種類に応じて複数の初期値のセットを用意しておき、ユーザーが学習する際に初期値を選択する構成であっても良い。θの初期値が決定されると、当該初期値が現在のθの値として学習情報として記憶部３０に記憶される。
【００７２】
次に、学習部２２は、制御パラメーターを初期化する（ステップＳ１０５）。ここでは、ＰＩＤ制御に関する制御パラメーターが学習対象であるため、学習部２２は、ＰＩＤ制御に関する制御パラメーターを初期化する。すなわち、学習部２２は、最後に印刷装置１００が駆動された際に利用されたＰＩＤ制御に関する制御パラメーター（出荷後の初期駆動の際には出荷の際に設定された制御パラメーター）を初期値として設定する。初期化された制御パラメーターは記憶部３０に現在の制御パラメーターとして記憶される。
【００７３】
次に、学習部２２は、状態変数を観測する（ステップＳ１１０）。すなわち、学習部２２は、モーター制御部６に現在の制御パラメーターを指示し、当該現在の制御パラメーターによってＰＦモーター１およびＣＲモーター４を駆動して印刷装置１００を制御する。学習部２２は、制御後の状態において図３に示すような印刷媒体５０の速度や温度等を取得する。
【００７４】
次に、学習部２２は、行動価値を算出する（ステップＳ１１５）。すなわち、学習部２２は、記憶部３０に記憶された学習情報を参照してθを取得し、記憶部３０に記憶された学習情報が示す多層ニューラルネットワークに最新の状態変数を入力し、Ｎ個の行動価値関数Ｑ（ｓt，ａ1t；θt）〜Ｑ（ｓt，ａNt；θt）を算出する。
【００７５】
なお、最新の状態変数は、初回の実行時においてステップＳ１１０、２回目以降の実行時においてステップＳ１２５の観測結果である。また、試行番号ｔは初回の実行時において０、２回目以降の実行時において１以上の値となる。学習処理が過去に実施されていない場合、記憶部３０に記憶された学習情報が示すθは最適化されていないため、行動価値関数Ｑの値としては不正確な値となり得るが、ステップＳ１１５以後の処理の繰り返しにより、行動価値関数Ｑは徐々に最適化していく。また、ステップＳ１１５以後の処理の繰り返しにおいて、状態ｓ、行動ａ、報酬ｒは、各試行番号ｔに対応づけられて記憶部３０に記憶され、任意のタイミングで参照可能である。
【００７６】
次に、学習部２２は、行動を選択し、実行する（ステップＳ１２０）。本実施形態においては、行動価値関数Ｑ（ｓ，ａ）を最大化する行動ａが最適な行動であると見なされる処理が行われる。そこで、学習部２２は、ステップＳ１１５において算出されたＮ個の行動価値関数Ｑ（ｓt，ａ1t；θt）〜Ｑ（ｓt，ａNt；θt）の値の中で最大の値を特定する。そして、学習部２２は、最大の値を与えた行動を選択する。例えば、Ｎ個の行動価値関数Ｑ（ｓt，ａ1t；θt）〜Ｑ（ｓt，ａNt；θt）の中でＱ（ｓt，ａNt；θt）が最大値であれば、学習部２２は、行動ａNtを選択する。
【００７７】
行動が選択されると、学習部２２は、当該行動に対応する制御パラメーターを変化させる。例えば、図３に示す例において、ＰＦモーター１の比例要素における定数Ｇｐを一定値増加させる行動ａ１が選択された場合、学習部２２は、定数Ｇｐを一定値増加させる。制御パラメーターの変化が行われると、学習部２２は、当該制御パラメーターを参照して印刷装置１００を制御して調整パターンを印刷させる。
【００７８】
次に、学習部２２は、状態変数を観測する（ステップＳ１２５）。すなわち、学習部２２は、ステップＳ１１０における状態変数の観測と同様の処理を行って、状態変数として、図３に示すような印刷媒体５０の速度や温度等を取得する。なお、現在の試行番号がｔである場合（選択された行動がａtである場合）、ステップＳ１２５で取得される状態ｓはｓt+1である。
【００７９】
次に、学習部２２は、報酬を評価する（ステップＳ１３０）。すなわち、学習部２２は、カメラ８を制御して（必要に応じてキャリッジ３や印刷媒体５０を搬送しても良い）、調整パターンを撮影させる。そして、学習部２２は、調整パターンの像に基づいて基準からのずれΔＺを取得し、ΔＺに対応して報酬を取得する。なお、現在の試行番号がｔである場合、ステップＳ１３０で取得される報酬ｒはｒt+1である。
【００８０】
本実施形態においては式（１）に示す行動価値関数Ｑの更新を目指しているが、行動価値関数Ｑを適切に更新していくためには、行動価値関数Ｑを示す多層ニューラルネットワークを最適化（θを最適化）していかなくてはならない。図７に示す多層ニューラルネットワークによって行動価値関数Ｑを適正に出力させるためには、当該出力のターゲットとなる教師データが必要になる。すなわち、多層ニューラルネットワークの出力と、ターゲットとの誤差を最小化するようにθを改善することによって、多層ニューラルネットワークが最適化されることが期待される。
【００８１】
しかし、本実施形態において、学習が完了していない段階では行動価値関数Ｑの知見がなく、ターゲットを特定することは困難である。そこで、本実施形態においては、式（１）の第２項、いわゆるＴＤ誤差（Ｔｅｍｐｏｒａｌ  Ｄｉｆｆｅｒｅｎｃｅ）を最小化する目的関数によって多層ニューラルネットワークを示すθの改善を実施する。すなわち、（ｒt+1＋γｍａｘａ'Ｑ（ｓt+1，ａ'；θt））をターゲットとし、ターゲットとＱ（ｓt，ａt；θt）との誤差が最小化するようにθを学習する。ただし、ターゲット（ｒt+1＋γｍａｘａ'Ｑ（ｓt+1，ａ'；θt））は、学習対象のθを含んでいるため、本実施形態においては、ある程度の試行回数にわたりターゲットを固定する（例えば、最後に学習したθ（初回学習時はθの初期値）で固定する）。本実施形態においては、ターゲットを固定する試行回数である既定回数が予め決められている。
【００８２】
このような前提で学習を行うため、ステップＳ１３０で報酬が評価されると、学習部２２は目的関数を算出する（ステップＳ１３５）。すなわち、学習部２２は、試行のそれぞれにおけるＴＤ誤差を評価するための目的関数（例えば、ＴＤ誤差の２乗の期待値に比例する関数やＴＤ誤差の２乗の総和等）を算出する。なお、ＴＤ誤差は、ターゲットが固定された状態で算出されるため、固定されたターゲットを（ｒt+1＋γｍａｘａ'Ｑ（ｓt+1，ａ'；θ-））と表記すると、ＴＤ誤差は（ｒt+1＋γｍａｘａ'Ｑ（ｓt+1，ａ'；θ-）−Ｑ（ｓt，ａt；θt））である。当該ＴＤ誤差の式において報酬ｒt+1は、行動ａtによってステップＳ１３０で得られた報酬である。
【００８３】
また、ｍａｘａ'Ｑ（ｓt+1，ａ'；θ-）は、行動ａtによってステップＳ１２５で算出される状態ｓt+1を、固定されたθ-で特定される多層ニューラルネットワークの入力とした場合に得られる出力の中の最大値である。Ｑ（ｓt，ａt；θt）は、行動ａtが選択される前の状態ｓtを、試行番号ｔの段階のθtで特定される多層ニューラルネットワークの入力とした場合に得られる出力の中で、行動ａtに対応した出力の値である。
【００８４】
目的関数が算出されると、学習部２２は、学習が終了したか否か判定する（ステップＳ１４０）。本実施形態においては、ＴＤ誤差が充分に小さいか否かを判定するための閾値が予め決められており、目的関数が閾値以下である場合、学習部２２は、学習が終了したと判定する。
【００８５】
ステップＳ１４０において学習が終了したと判定されない場合、学習部２２は、行動価値を更新する（ステップＳ１４５）。すなわち、学習部２２は、ＴＤ誤差のθによる偏微分に基づいて目的関数を小さくするためのθの変化を特定し、θを変化させる。むろん、ここでは、各種の手法でθを変化させることが可能であり、例えば、ＲＭＳＰｒｏｐ等の勾配降下法を採用可能である。また、学習率等による調整も適宜実施されて良い。以上の処理によれば、行動価値関数Ｑがターゲットに近づくようにθを変化させることができる。
【００８６】
ただし、本実施形態においては、上述のようにターゲットが固定されているため、学習部２２は、さらに、ターゲットを更新するか否かの判定を行う。具体的には学習部２２は、既定回数の試行が行われたか否かを判定し（ステップＳ１５０）、ステップＳ１５０において、既定回数の試行が行われたと判定された場合に、学習部２２は、ターゲットを更新する（ステップＳ１５５）。すなわち、学習部２２は、ターゲットを算出する際に参照されるθを最新のθに更新する。この後、学習部２２は、ステップＳ１１５以降の処理を繰り返す。一方、ステップＳ１５０において、既定回数の試行が行われたと判定されなければ、学習部２２は、ステップＳ１５５をスキップしてステップＳ１１５以降の処理を繰り返す。
【００８７】
ステップＳ１４０において学習が終了したと判定された場合、学習部２２は、記憶部３０に記憶された学習情報を更新する（ステップＳ１６０）。すなわち、学習部２２は、学習によって得られたθを、印刷装置１００による印刷の際に参照されるべき学習済モデル３１として記憶部３０に記憶させる。当該θを含む学習済モデル３１が記憶部３０に記憶されると、制御部２１は、印刷前に現在の印刷装置１００に最適化された制御パラメーターを取得することが可能になる。
【００８８】
（３）印刷処理：
学習済モデル３１が記憶部３０に記憶された状態において、制御部２１は、最適化された制御パラメーターを利用して印刷装置１００を制御することができる。図９は、印刷装置１００において印刷を行う際の印刷処理を示すフローチャートである。印刷処理は、利用者が図示しないコンピューターや外部記憶媒体等に記憶された画像データを印刷対象として指定し、印刷速度（印刷モード）を指定した状態で実行される。
【００８９】
印刷処理が開始されると、制御部２１は、画像データを取得する（ステップＳ２００）。すなわち、制御部２１は、利用者が指定した画像データを図示しないコンピューターや外部記憶媒体等から取得する。次に、制御部２１は、画像処理を実施する（ステップＳ２０５）。すなわち、制御部２１は、画像データが示す画像を画素毎のインク滴の記録の有無で表現した印刷データに変換するための画像処理を実行する。当該画像処理は、公知の手法が採用されてよく、例えば、色変換処理やガンマ変換処理等によって実現される。
【００９０】
次に、制御部２１は、状態変数を取得する（ステップＳ２１０）。すなわち、制御部２１は、モーター制御部６の速度演算部６ｄからＰＦモーター１の実際の速度、キャリッジ３の実際の速度を取得し、被搬送物の速度と見なす。また、学習部２２は、ＰＦモーター１の実際の速度およびキャリッジ３の実際の速度の既定期間での変化を取得し、被搬送物の加速度と見なす。さらに、学習部２２は、予め決められた期間（例えば、印刷媒体５０への印刷の開始から現在までの期間）内で、ＰＦモーター１の実際の速度およびキャリッジ３の実際の速度を積分し、被搬送物の移動量と見なす。当該移動量は記憶部３０に記憶される。
【００９１】
さらに、学習部２２は、モーター制御部６の位置演算部６ａから、印刷媒体５０に印刷を開始する際におけるＰＦモーター１の実際の位置およびキャリッジ３の実際の位置を取得し、被搬送物の移動開始位置と見なす。さらに、学習部２２は、温度湿度センサー４０の出力信号に基づいて印刷装置１００の周囲の温度および湿度を取得し、印刷装置の周囲環境と見なす。さらに、学習部２２は、ＰＦモーター１およびＣＲモーター４に接続された電流センサーに基づいて、各モーターに流れる電流値を取得する。
【００９２】
さらに、学習部２２は、カメラ８を制御して印刷媒体５０の余白を撮影し、予め決められた画像処理（例えば、テンプレートマッチングやフーリエ変換等）に基づいて、ＰＦローラー５１で搬送されている印刷媒体５０の種類を予め決められた種類から選択し、印刷装置で印刷される印刷媒体５０の種類とみなす。さらに、学習部２２は、記憶部３０に記憶された上述の移動量の累積値を取得し、被搬送物の累積移動量と見なす。
【００９３】
次に、制御部２１は、制御パラメーターを特定する（ステップＳ２１５）。すなわち、制御部２１は、学習済モデル３１を参照し、ステップＳ２１０で取得された状態変数を入力として出力Ｑ（ｓ，ａ）を計算する。また、制御部２１は、出力Ｑ（ｓ，ａ）の中で最大値を与える行動ａを選択する。そして、行動ａが選択された場合、制御部２１は、行動ａが行われた状態に相当する値となるように制御パラメーターを特定する。
【００９４】
次に、制御部２１は、印刷制御を実行する（ステップＳ２２０）。すなわち、制御部２１は、ステップＳ２０５で得られたデータに基づいて画像を印刷するために必要なＰＦモーター１、ＣＲモーター４の時系列の目標位置、ヘッドの駆動タイミングを取得する。そして、制御部２１は、ＰＦモーター１、ＣＲモーター４を目標位置に配置するために、モーター制御部６に対して制御目標を指示し、ＰＦローラー５１駆動し、キャリッジ３を駆動する。なお、本実施形態においては、既定範囲の印刷が行われるたびに制御パラメーターを最適化するため、ステップＳ２２０においては、既定範囲を印刷するための印刷制御が行われる。
【００９５】
次に、制御部２１は、印刷が終了したか否かを判定する（ステップＳ２２５）。すなわち、制御部２１は、ステップＳ２０５で得られたデータの全てに基づいて印刷が行われた場合、印刷が終了したと判定する。ステップＳ２２５において、印刷が終了したと判定されない場合、制御部２１は、ステップＳ２１０以降の処理を繰り返す。すなわち、本実施形態においては、既定範囲の印刷によって状態変数が変化した場合に、当該変化に追従させて制御パラメーターを最適化する。
【００９６】
一方、ステップＳ２２５において、印刷が終了したと判定された場合、制御部２１は、印刷処理を終了する。以上の構成によれば、行動価値関数Ｑが最大化される行動ａを選択しながら印刷を実行することができる。当該行動価値関数Ｑは、上述の処理により、多数の試行が繰り返された結果、最適化されている。そして、当該試行は、学習部２２によって自動で行われ、人為的に実施困難な程度の多数の試行を容易に実行することができる。従って、本実施形態によれば、人為的に決められた制御パラメーターよりも高い確率で制御パラメーターを最適化することができる。
【００９７】
そして、最適化された制御パラメーターによって印刷が行われることにより、被搬送物の搬送位置が基準に近くなる（位置決め精度が高くなる）ように制御することができる。また、長期間にわたって被搬送物の搬送位置が基準に近い（位置決め精度が高い）状態を維持することができる。なお、本実施形態においては、既定範囲の印刷が行われるたびに制御パラメーターを変更しているが、むろん、制御パラメーターの変更頻度は任意であり、例えば、１枚の印刷媒体５０の印刷過程において制御パラメーターが固定される構成等であっても良い。
【００９８】
（４）他の実施形態：
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、印刷装置および学習装置は、ファクシミリ通信機能等を備える複合機であっても良い。また、印刷装置および学習装置は、複数の装置によって構成されていても良い。例えば、学習済モデル３１が記憶される装置と、制御部２１によって印刷が行われる装置とが異なる装置によって構成されても良い。
【００９９】
むろん、印刷装置と学習装置とが異なる装置によって構成されても良い。印刷装置と学習装置とが異なる装置によって構成される場合、学習装置は、複数の印刷装置から状態変数を収集し、各印刷装置に行動を行わせることによって、複数の印刷装置に適用可能な学習済モデル３１を機械学習しても良い。さらに、上述の実施形態の一部の構成が省略されてもよいし、処理の順序が変動または省略されてもよい。
【０１００】
印刷装置は、被搬送物を搬送するモーターを備えている。すなわち、印刷装置は、印刷に伴って位置を変動する被搬送物がモーターの駆動力によって搬送される構成を備えている。被搬送物は、モーターの駆動量によって搬送される物体であれば良く、上述の実施形態のような印刷媒体、キャリッジに限定されない。例えば、ＡＤＦやカセットなどの部品がモーターの駆動力によって移動される場合、これらの部品も被搬送物となり得る。
【０１０１】
状態変数は、被搬送物の速度、被搬送物の加速度、被搬送物の移動量、被搬送物の移動開始位置、印刷装置の周囲環境、モーターに流れる電流値、印刷装置で印刷される印刷媒体の種類、被搬送物の累積移動量、の少なくとも一つを含んでいれば良く、任意の複数個の組み合わせであっても良い。むろん、他の要素が状態変数に含まれても良い。また、状態変数となり得る要素には、制御パラメーターとなり得る要素も含まれる。例えば、被搬送物の速度や被搬送物の加速度等が制御パラメーター（制御目標）となってもよい。
【０１０２】
被搬送物の速度や加速度、移動量は、被搬送物の時間毎の位置に基づいて特定される量であれば良く、エンコーダーの出力に基づいて特定される構成に限定されない。例えば、被搬送物の位置を特定する光学センサーの出力に基づいて速度や加速度、移動量が特定されても良い。移動量は、既定の期間で計測されれば良く、この意味で累積移動量とは異なる。既定の期間は、例えば、ある印刷媒体の印刷開始から印刷終了までの期間等が挙げられる。
【０１０３】
被搬送物の移動開始位置は、既定のトリガにおける被搬送物の位置であれば良く、例えば、印刷開始がトリガであっても良いし、双方向印刷においてキャリッジが往動を開始する直前や復動を開始する直前等であっても良い。印刷装置の周囲環境は、被搬送物やモーター、印刷装置の部品等の動作に影響を与え得る環境であれば良く、温度や湿度に限定されない。例えば、振動の有無や印刷装置の設置場所の硬さ等が周囲環境となってもよく、種々の要素が周囲環境となり得る。なお、温度や湿度等の周囲環境を測定する測定場所は種々の場所であって良い。
【０１０４】
印刷媒体の種類は、印刷媒体を構成する材質等であり、カメラによって特定される構成以外にも、種々の構成が採用されてよい。例えば、利用者によって指定されても良いし、印刷媒体の種類を検出するためのセンサーが設けられても良い。
【０１０５】
制御パラメーターは、パラメーターを変化させることによりモーターの制御内容が変動するパラメーターであれば良い。学習済モデルは、当該制御パラメーターの中から、状態変数で示される状態において、被搬送物の搬送位置を基準に近づけるパラメーターを出力することができればよい。むろん、学習済モデルが出力する制御パラメーターよりも、被搬送物の搬送位置を基準に近づける効果が高い制御パラメーターは存在し得る。しかし、学習済モデルによって出力された制御パラメーターでの制御が行われることによって、または制御パラメーターの更新が繰り返されることによって、現在よりも被搬送物の搬送位置が基準に近づくように学習が行われていればよい。
【０１０６】
状態変数は、制御パラメーターを変化させた結果に応じて得られる状態を示していれば良く、数値であっても良いし、フラグであっても良いし、各種の状態を意味する符号であっても良い。学習済モデルは、状態変数を入力することによって制御パラメーターを出力するような数式モデルであれば良く、強化学習によって学習される学習済モデル以外にも、種々のモデルを採用可能である。
【０１０７】
すなわち、機械学習は、サンプルデータを用いてよりよいパラメーターを学習する処理であれば良く、上述の強化学習以外にも、教師あり学習やクラスタリングなど種々の手法によって各パラメーターを学習する構成を採用可能である。学習モデルも上述の実施形態に限定されず、例えば、ＮＮ（Neural Network），ＣＮＮ（Convolutional Neural Network），ＲＮＮ（Recurrent Neural Network）等の各種ニューラルネットワークが学習済モデルとして学習される構成であっても良いし、これらのモデルが組み合わされたモデルが学習済モデルとして学習される構成であっても良い。
【０１０８】
制御部は、学習済モデルに基づいて取得された制御パラメーターによってモーターを制御して印刷を行うことができればよい。すなわち、制御部は、制御パラメーターを変化させ、変化させた後の制御パラメーターによってモーターを動作させて印刷装置に印刷を実行させればよい。むろん、印刷のための制御としては、種々の制御が行われてよく、例えば、各種の画像処理が行われても良いし、双方向印刷の有無や、インクドットの制御、印刷速度に応じたトナー量の調整など、印刷装置の構成等に応じて種々の制御が行われてよい。
【０１０９】
強化学習における行動は、制御パラメーターを変化させる行動であればよい。すなわち、モーターの制御内容を変化させ得るように制御パラメーターを変化させる処理を行動と見なす。取り得る行動の選択肢は、上述の実施形態以外にも、種々の態様があり得る。例えば、上述の実施形態においてはＰＩＤ制御における比例ゲイン、積分ゲイン、微分ゲインの中の一つを既定量変化させる処理が行動となっていたが、これらのゲインの２種類以上を変化させる行動が選択肢となっても良い。また、他の制御、例えば、加速度制御の制御目標を変化させる処理が行動の選択肢となっても良いし、目標位置や目標速度を変化させる処理が行動の選択肢となってもよい。
【０１１０】
さらに、上述の学習処理においては、試行のたびにθの更新によって行動価値を更新し、既定回数の試行が行われるまでターゲットを固定したが、複数回の試行が行われてからθの更新が行われてもよい。例えば、第１既定回数の試行が行われるまでターゲットが固定され、第２既定回数（＜第１既定回数）の試行が行われるまでθを固定する構成が挙げられる。この場合、第２既定回数の試行後に第２既定回数分のサンプルに基づいてθを更新し、さらに試行回数が第１既定回数を超えた場合に最新のθでターゲットを更新する構成となる。
【０１１１】
さらに、学習処理においては、公知の種々の手法が採用されてよく、例えば、体験再生や報酬のＣｌｉｐｐｉｎｇ等が行われてもよい。さらに、図７においては、層ＤＬがＰ個（Ｐは１以上の整数）存在し、各層において複数のノードが存在するが、各層の構造は、種々の構造を採用可能である。例えば、層の数やノードの数は種々の数を採用可能であるし、活性化関数としても種々の関数を採用可能であるし、ネットワーク構造が畳み込みニューラルネットワーク構造等になっていても良い。また、入力や出力の態様も図７に示す例に限定されず、例えば、状態ｓと行動ａとが入力される構成や、行動価値関数Ｑを最大化する行動ａがｏｎｅ−ｈｏｔベクトルとして出力される構成が少なくとも利用される例が採用されても良い。
【０１１２】
上述の実施形態においては、行動価値関数に基づいてｇｒｅｅｄｙ方策で行動を行って試行しながら、行動価値関数を最適化することにより、最適化された行動価値関数に対するｇｒｅｅｄｙ方策が最適方策であると見なしている。この処理は、いわゆる価値反復法であるが、他の手法、例えば、方策反復法によって学習が行われてもよい。さらに、状態ｓ、行動ａ、報酬ｒ等の各種変数においては、各種の正規化が行われてよい。
【０１１３】
機械学習の手法としては、種々の手法を採用であり、行動価値関数Ｑに基づいたε−ｇｒｅｅｄｙ方策によって試行が行われてもよい。また、強化学習の手法としても上述のようなＱ学習に限定されず、ＳＡＲＳＡ等の手法が用いられても良い。また、方策のモデルと行動価値関数のモデルを別々にモデル化した手法、例えば、Ａｃｔｏｒ−Ｃｒｉｔｉｃアルゴリズムが利用されても良い。Ａｃｔｏｒ−Ｃｒｉｔｉｃアルゴリズムを利用するのであれば、方策を示すａｃｔｏｒであるμ（ｓ；θ）と、行動価値関数を示すｃｒｉｔｉｃであるＱ（ｓ，ａ；θ）とを定義し、μ（ｓ；θ）にノイズを加えた方策に従って行動を生成して試行し、試行結果に基づいてａｃｔｏｒとｃｒｉｔｉｃを更新することで方策と行動価値関数とを学習する構成であっても良い。
【符号の説明】
【０１１４】
１…ＰＦモーター、２…ＰＦモータードライバー、３…キャリッジ、４…ＣＲモーター、５…ＣＲモータードライバー、６…モーター制御部、６ａ…位置演算部、６ｂ…減算器、６ｃ…目標速度演算部、６ｄ…速度演算部、６ｅ…減算器、６ｆ…比例要素、６ｇ…積分要素、６ｈ…微分要素、６ｉ…加算器、６ｊ…Ｄ／Ａコンバータ、６ｋ…タイマ、６ｍ…加速制御部、７…ヘッドドライバー、８…カメラ、９…エンコーダー、１０…エンコーダー用符号板、１１…エンコーダー、１２…エンコーダー用符号板、１３…プーリ、１４…タイミングベルト、２０…プロセッサー、２１…制御部、２２…学習部、３０…記憶部、３１…学習済モデル、４０…温度湿度センサー、５０…印刷媒体、５１…ＰＦローラー
【図１】
2020116869.tif 000004
【図２】
2020116869.tif 000005
【図３】
2020116869.tif 000006
【図４】
2020116869.tif 000007
【図５】
2020116869.tif 000008
【図６】
2020116869.tif 000009
【図７】
2020116869.tif 000010
【図８】
2020116869.tif 000011
【図９】
2020116869.tif 000012