主軸を回転するモータと、前記モータの動力で駆動する駆動部を備え、前記モータの回転を制御して縫製を行うミシンにおいて、前記モータに対する回転速度の指令値を取得する指令値取得部と、前記モータの回転速度を検出する検出部から前記回転速度の検出値を取得する検出値取得部と、前記指令値取得部が取得した指令値と前記検出値取得部が取得した検出値の偏差を算出する偏差算出部と、前記偏差算出部が算出した偏差にゲイン値を乗じて、前記モータに出力するトルク指令値を算出するトルク算出部と、前記指令値取得部が取得した指令値、及び前記駆動部の駆動状態の少なくともいずれかに応じた増減割合で、前記偏差算出部が算出した偏差の増減に従って前記ゲイン値を増減するゲイン値決定部とを備えたミシン。前記ゲイン値決定部は、前記指令値取得部が取得した指令値が増加した場合に、指令値の増加前の増減割合以下の増減割合を用いて前記ゲイン値を増減する請求項1に記載のミシン。前記増減割合には、指令値が閾値未満である場合の増減割合である低速時割合と、指令値が閾値以上である場合の増減割合であり前記低速時割合よりも低い割合である高速時割合が少なくとも設けてあり、前記ゲイン値決定部は、前記指令値取得部が取得した指令値が前記閾値未満である場合には前記低速時割合で前記ゲイン値を増減し、前記指令値取得部が取得した指令値が前記閾値以上である場合には前記高速時割合で前記ゲイン値を増減する請求項2に記載のミシン。前記増減割合には、前記駆動部の駆動状態が糸切りを行っている状態である場合の増減割合であり、糸切りを行っていない場合の増減割合よりも高い割合である糸切り時割合が設けてあり、前記ゲイン値決定部は、前記駆動部の駆動状態が糸切りを行っている状態である場合に前記糸切り時割合で前記ゲイン値を増減する請求項1から3の何れかに記載のミシン。前記検出値取得部は、取得する検出値が増加した場合に、検出値の増加前のサンプリング時間以上のサンプリング時間内に前記検出部が検出した検出結果から、前記回転速度の検出値を取得する請求項1から4の何れかに記載のミシン。主軸を回転するモータと、前記モータの動力で駆動する駆動部を備え、前記モータの回転を制御して縫製を行うミシンで用いるミシン制御プログラムにおいて、前記モータに対する回転速度の指令値を取得する指令値取得工程と、前記モータの回転速度を検出する検出部から前記回転速度の検出値を取得する検出値取得工程と、前記指令値取得工程で取得した指令値と前記検出値取得工程で取得した検出値の偏差を算出する偏差算出工程と、前記偏差算出工程で算出した偏差にゲイン値を乗じて、前記モータに出力するトルク指令値を算出するトルク算出工程と、前記指令値取得工程で取得した指令値、及び前記駆動部の駆動状態の少なくともいずれかに応じた増減割合で、前記偏差算出工程で算出した偏差の増減に従って前記ゲイン値を増減するゲイン値決定工程とを実行する為の前記ミシンのコントローラへの指示を含むミシン制御プログラム。モータの実際の回転速度と該回転速度の検出値の誤差検出誤差は、実際の回転速度が大きい程増加する。ゲイン値の増減割合を高く設定した場合に検出誤差が増大すると、ゲイン値が大幅に変化してモータの電流波形が乱れる。一方、ゲイン値の増減割合を低く設定すると、ミシンはモータに掛かる負荷の影響が大きい場合にモータの負荷変動に十分に追従できない。従来のミシンは駆動状況に応じてゲイン値を増減することはできなかった。故に従来のミシンは上記の問題を解決できなかった。本発明の目的は、モータのトルク指令値を算出するためのゲイン値を駆動状況に応じて増減することができるミシン及びミシン制御プログラムを提供することである。本発明の第一の態様のミシンは、主軸を回転するモータと、前記モータの動力で駆動する駆動部を備え、前記モータの回転を制御して縫製を行うミシンにおいて、前記モータに対する回転速度の指令値を取得する指令値取得部と、前記モータの回転速度を検出する検出部から前記回転速度の検出値を取得する検出値取得部と、前記指令値取得部が取得した指令値と前記検出値取得部が取得した検出値の偏差を算出する偏差算出部と、前記偏差算出部が算出した偏差にゲイン値を乗じて、前記モータに出力するトルク指令値を算出するトルク算出部と、前記指令値取得部が取得した指令値、及び前記駆動部の駆動状態の少なくともいずれかに応じた増減割合で、前記偏差算出部が算出した偏差の増減に従って前記ゲイン値を増減するゲイン値決定部とを備える。本発明のミシンは駆動状況に応じてゲイン値の増減割合を変えることができる。故に、該ミシンは駆動状況に応じて適切にゲイン値を増減できる。前記ゲイン値決定部は、前記指令値取得部が取得した指令値が増加した場合に、指令値の増加前の増減割合以下の増減割合を用いて前記ゲイン値を増減してもよい。モータの回転速度の検出誤差は回転速度が大きい程増加する。ミシンは指令値が高速であれば低い割合でゲイン値を増減する。故に、ミシンは検出誤差の影響でトルク指令値が大幅に変動して電流波形が乱れる可能性を下げることができる。一方、回転速度が小さければ慣性力は小さくなり、負荷が掛かる時間も長くなる為、モータへの負荷は駆動に大きく影響する。ミシンは指令値が低速であれば高い割合でゲイン値を増減する。故に、ミシンは負荷が大きく影響する低速回転時でも十分に負荷変動に追従できる。前記増減割合には、指令値が閾値未満である場合の増減割合である低速時割合と、指令値が閾値以上である場合の増減割合であり前記低速時割合よりも低い割合である高速時割合が少なくとも設けてあってもよい。前記ゲイン値決定部は、前記指令値取得部が取得した指令値が前記閾値未満である場合には前記低速時割合で前記ゲイン値を増減し、前記指令値取得部が取得した指令値が前記閾値以上である場合には前記高速時割合で前記ゲイン値を増減してもよい。ミシンは指令値が閾値以上であるか否かを判断するだけで容易に適切な増減割合を設定することができる。前記増減割合には、前記駆動部の駆動状態が糸切りを行っている状態である場合の増減割合であり、糸切りを行っていない場合の増減割合よりも高い割合である糸切り時割合が設けてあってもよい。前記ゲイン値決定部は、前記駆動部の駆動状態が糸切りを行っている状態である場合に前記糸切り時割合で前記ゲイン値を増減してもよい。モータは糸切り時に強い負荷を受ける為、回転速度は低下し易い。ミシンは糸切り時に高い割合でゲイン値を増減する。故に、ミシンは糸切り時でも十分に負荷変動に追従できる。前記検出値取得部は、取得する検出値が増加した場合に、検出値の増加前のサンプリング時間以上のサンプリング時間内に前記検出部が検出した検出結果から、前記回転速度の検出値を取得してもよい。ミシンは回転速度が高速であれば検出部のサンプリング時間を長くする。サンプリング時間が長くなれば検出誤差は平均化して減少する。故に、ミシンはモータの回転速度が高速である場合の検出誤差を下げることができ、電流波形が乱れる可能性を更に下げることができる。本発明の第二の態様のミシン制御プログラムは、主軸を回転するモータと、前記モータの動力で駆動する駆動部を備え、前記モータの回転を制御して縫製を行うミシンで用いるミシン制御プログラムにおいて、前記モータに対する回転速度の指令値を取得する指令値取得工程と、前記モータの回転速度を検出する検出部から前記回転速度の検出値を取得する検出値取得工程と、前記指令値取得工程で取得した指令値と前記検出値取得工程で取得した検出値の偏差を算出する偏差算出工程と、前記偏差算出工程で算出した偏差にゲイン値を乗じて、前記モータに出力するトルク指令値を算出するトルク算出工程と、前記指令値取得工程で取得した指令値、及び前記駆動部の駆動状態の少なくともいずれかに応じた増減割合で、前記偏差算出工程で算出した偏差の増減に従って前記ゲイン値を増減するゲイン値決定工程とを実行する為の前記ミシンのコントローラへの指示を含む。該プログラムによると、ミシンは駆動状況に応じてゲイン値の増減割合を変えることができる。故に、該ミシンは駆動状況に応じて適切にゲイン値を増減できる。以下、本発明の一実施形態のミシン1について図面を参照して説明する。図1を参照しミシン1の構成について説明する。図1の紙面上側、下側、右側、左側、表側、背面側は夫々ミシン1の上側、下側、右側、左側、前側、後側である。テーブル20は上面に凹部図示略を備える。ミシン1はテーブル20の凹部に上方から嵌めてテーブル20に装着する。テーブル20は下面に制御装置30を備える。制御装置30はロッド21を介して踏み込み式のペダル22に接続する。作業者はペダル22をつま先側又は踵側に操作する。ペダル22は操作方向及び操作量を制御装置30に出力する。制御装置30はペダル22の操作方向及び操作量に応じてミシン1の動作を制御する。ミシン1はベッド部2、脚柱部3、アーム部4を備える。ベッド部2はミシン1の土台となる。脚柱部3はベッド部2右端から鉛直上方に延びる。アーム部4は脚柱部3上端から左方に延びる。アーム部4はベッド部2上面に対向する。アーム部4は左端下部に頭部5を備える。頭部5は下端に押え足17を装着し、且つ内部に針棒7を保持する。針棒7は下端に縫針図示略を装着する。針棒7及び縫針はミシンモータ13の駆動に従って上下に往復移動する。アーム部4は左端部前方に天秤9を備える。天秤9は針棒7に従って上下動する。アーム部4は上面に操作部10を固定する。操作部10は前面に液晶パネル11を備える。作業者は液晶パネル11を見ながら操作部10を操作し各種指示をミシン1に入力する。脚柱部3は右側面上部にミシンモータ13を備える。アーム部4は内部に主軸14を備える。主軸14は回転可能な状態でアーム部4内部を左右方向に延びる。主軸14の右端はミシンモータ13に接続し、左端は針棒上下動機構図示略に接続する。ミシンモータ13は主軸14を駆動して針棒7と天秤9を上下動する。ベッド部2は上面左端に針板15を備える。針板15は針穴を有し、縫針は針穴を通過する。ベッド部2は針板15の下部に釜機構図示略、布送り機構図示略、糸切り機構18図2参照を備える。布送り機構はミシンモータ13と布送りモータ16図2参照に接続する。ミシンモータ13は針棒7の上下動に合わせて布送り機構の送り歯図示略を上下動する。布送りモータ16はベッド部2内部に位置するパルスモータである。布送りモータ16はミシンモータ13による上下動との同期を保ちつつ送り歯を前方又は後方に移動する。送り歯が移動すると、送り歯と押え足17の間の加工布図示略は移動する。送り歯の前後方向の移動量はプログラムに従い、ミシンモータ13の回転量は送り歯の前後方向の移動量に影響を与えない。故に、ミシン1は縫製中に送り歯の移動量を自由に制御することができる。作業者は送り歯の移動量を縫製途中に手動で設定する必要は無い。糸切り機構18は糸切りモータ19図2参照に接続する。糸切りモータ19は糸切り機構18の糸切り刃を糸切り位置に移動する。糸切り刃が糸切り位置にある状態でミシンモータ13が回転すると、糸は糸切り刃に接触して切れる。故に、ミシンモータは糸を切る際に負荷を受ける。図2を参照しミシン1の電気的構成について説明する。ミシン1の制御装置30はCPU31を備える。CPU31はミシン1の制御を司る。CPU31はROM32、RAM33、EEPROM34、I/Oインターフェース以下I/Oという35にバスを介して接続する。ROM32は後述するトルク算出処理図3参照とサンプリング時間決定処理図5参照を実行するためのミシン制御プログラム等を記憶する。RAM33はプログラムを実行する為に必要な各種値を一時的に記憶する。EEPROM34は各種値を記憶する不揮発性の記憶装置である。I/O35はペダル22、操作部10に接続する。CPU31はペダル22の操作方向及び操作量をペダル22から入力する。操作部10は作業者からの操作指示をI/O35に出力する。作業者は操作部10を操作することで、後述するゲイン最大値及び偏差基準値を所定範囲内で変更できる。I/O35は駆動回路41~44に接続する。駆動回路41は液晶パネル11を駆動する。駆動回路42はCPU31の制御に応じてミシンモータ13を駆動する。ミシン1はミシンモータ13の回転角位相及び回転速度を検出する為のエンコーダ47を備える。エンコーダ47は検出結果をI/O35に出力する。駆動回路43はCPU31の制御に応じて布送りモータ16を駆動する。ミシン1は布送りモータ16の回転角位相及び回転速度を検出する為のエンコーダ48を備える。エンコーダ48は検出結果をI/O35に出力する。駆動回路44はCPU31の制御に応じて糸切りモータ19を駆動する。糸切りモータ19が回転すると糸切り機構18が動作する。糸切りモータ19の代わりにソレノイド等を用いてもよい。ミシン1の駆動状態について説明する。前述したように、ミシン1のCPU31はペダル22の操作方向及び操作量に応じてミシンモータ13を駆動する。詳細には、CPU31はペダル22の操作方向に応じてミシンモータ13の回転方向を決定する。CPU31はペダル22の操作量に比例する回転速度の指令値を決定し、決定した指令値を駆動回路42に出力する。故に、ミシンモータ13の回転速度は、ペダル22の操作量が少なければ低速となり、ペダル22の操作量が多ければ高速となる。作業者はミシン1に糸切りを指示する場合、操作部10を操作して糸切りの指示を入力する。ミシン1のCPU31は糸切りの指示を入力すると、ミシンモータ13を低速で回転しつつ糸切りモータ19を駆動し糸切りを行う。本実施形態のミシン1は工業用ミシンであり、ミシンモータ13を高速で回転できる。ミシンモータ13の最高速度は5000rpm以上である。以下では、回転速度の指令値が600rpm以上の場合の駆動状態を高速時という。指令値が600rpm未満の場合の駆動状態を低速時という。糸切り機構18及び糸切りモータ19が糸切りを行っている場合の駆動状態を糸切り時という。図3~図5を参照し、ミシン1が実行する処理について説明する。ミシン1のCPU31はROM32に記憶しているミシン制御プログラムに従って、図3に示すトルク算出処理、図5に示すサンプリング時間決定処理を実行する。図3を参照し、トルク算出処理について説明する。トルク算出処理は、ミシンモータ13に出力するトルク指令値T電流指令値を算出する処理である。本実施形態のミシン1は、トルク指令値Tを算出する際に用いるゲイン値をミシンモータ13の回転速度に基づいて増減することができる。故に、ミシン1はミシンモータ13の負荷変動に追従できる。更にミシン1は、モータに対する回転速度の指令値S及びミシン1の駆動状態に応じて、ゲイン値の増減割合を変更することができる。故に、ミシン1は駆動状況に応じた適切な割合でゲイン値を増減し、ミシンモータ13を適切に駆動することができる。CPU31は、ミシンモータ13の回転中に所定間隔毎例えば1msec毎にトルク算出処理を実行する。CPU31はトルク算出処理を開始すると、ミシンモータ13に対する回転速度の指令値目標値Sを取得するS11。前述したように、CPU31はペダル22の操作量に比例する回転速度の指令値Sを決定し、決定した指令値Sを駆動回路42に出力する。S11では、CPU31は駆動回路42に出力した指令値Sの値を取得する。CPU31はミシンモータ13の回転速度の検出値Nを取得するS12。CPU31は、トルク算出処理と並行して実行する回転速度検出処理図示略で、エンコーダ47が検出したミシンモータ13の回転角位相から回転速度の検出値Nを検出している。回転速度の検出値Nは以下の式1で求める。回転速度の検出値Nrpm=回転角位相の変化量回転数/サンプリング時間分式1サンプリング時間は、エンコーダ47が検出したミシンモータ13の回転角位相から回転速度を算出するための時間である。詳細には、サンプリング時間は回転角位相の変化量の計測開始時点から計測終了時点までに経過した時間である。CPU31は式1を用いてその時点の回転速度を検出する。CPU31は、取得した指令値Sと検出値Nの偏差ΔNを算出するS13。CPU31は、取得した指令値Sが閾値本実施形態では600rpm未満であるか否かを判断するS14。指令値Sが閾値以上であり、ミシン1の駆動状況が高速時であればS14:NO、CPU31はゲイン最大値Kpの値をKpHに設定するS15。ゲイン最大値Kpは可変ゲインKpvが取り得る最大の値である。ミシン1はゲイン最大値Kpを設定することで、ミシンモータ13に過剰な電力が掛かることを防止できる。ゲイン最大値Kpは、ミシン1の駆動状況指令値Sの値、糸切りを行っているか否かに応じて予め設定してある。図4に示すように、高速時のゲイン最大値KpHは他のゲイン最大値に比べて最も小さい。詳細は後述するが、トルク指令値Tは可変ゲインKpvの値に比例する。故に、高速時のゲイン最大値KpHを小さくすることで、高速時のトルク指令値Tの最大値は小さくなる。ミシンモータ13が高速で回転している場合、ミシンモータ13の慣性力イナーシャは低速時よりも大きくなる為、可変ゲインKpvトルク指令値Tの増減割合が小さくても回転は安定する。例えば、厚い加工布の縫製を行う場合でも慣性力が大きい為、可変ゲインKpvを小さくしても縫針は加工布を円滑に貫通する。逆に、高速時に可変ゲインKpvを大きくし過ぎるとトルク指令値Tは過剰に大きくなる。トルク指令値Tが過剰に大きくなると、ミシンモータ13の回転変動が増大して騒音が増大する。電力も無駄に浪費する。ミシン1は、高速時のゲイン最大値KpHを小さくすることで、回転変動を抑制しつつミシンモータ13を安定して駆動することができる。CPU31は、S13で算出した偏差ΔNが高速時の偏差基準値NmaxH未満であるか否かを判断するS16。偏差基準値は、可変ゲインKpvがゲイン最大値Kpに達する時点の偏差ΔNの値である。偏差ΔNが偏差基準値未満である場合、偏差ΔNが増加する程可変ゲインKpvは増加する。一方、偏差ΔNが偏差基準値より大きければ可変ゲインKpvはゲイン最大値Kpを維持する。図4に示すように、高速時の偏差基準値NmaxHは低速時、糸切り時の偏差基準値NmaxLよりも大きい。偏差ΔNが高速時の偏差基準値NmaxH未満である場合S16:YES、CPU31は以下の式2を用いて可変ゲインKpvを算出するS17。Kpv=Kp/2KpΔN/2NmaxH式2式2に示すように、偏差ΔNが偏差基準値NmaxH未満であれば、可変ゲインKpvは偏差ΔNに比例して増減する。可変ゲインKpvの最小値はゲイン最大値Kpの2分の1である。前述したように、高速時のゲイン最大値KpHは他のゲイン最大値に比べて最も小さく、且つ偏差基準値NmaxHは他方の偏差基準値NmaxLよりも大きい。故に、図4に示すように、高速時の可変ゲインKpvの増減割合Kp/2NmaxHは他の増減割合に比べて最も小さい。偏差ΔNが高速時の偏差基準値NmaxH以上である場合S16:NO、CPU31は可変ゲインKpvをゲイン最大値Kp高速時のゲイン最大値KpHに設定するS18。処理はS29へ移行する。S11で取得した指令値Sが閾値未満である場合S14:YES、CPU31は駆動状態が糸切り中であるか否かを判断するS21。CPU31は、操作部10から糸切りの指示を入力して糸切り動作を実行している場合に糸切り中と判断する。糸切り中でなく、駆動状況が低速時であればS21:NO、CPU31はゲイン最大値Kpの値をKpLに設定するS23。図4に示すように、低速時のゲイン最大値KpLは高速時のゲイン最大値KpHに比べて大きい。故に、ミシン1は、ミシンモータ13の慣性力が小さい低速時でも安定してミシンモータ13を駆動できる。ミシンモータ13が抵抗を受けて回転速度が低下した場合でも、ミシンモータ13は十分なトルクを発生する為回転速度が安定する。ミシンモータ13の回転速度が低い為、トルク指令値Tを大きくしても回転変動の影響騒音等は小さい。CPU31は、S13で算出した偏差ΔNが低速時と糸切り時の偏差基準値NmaxL未満であるか否かを判断するS24。低速時と糸切り時の偏差基準値NmaxLは高速時の偏差基準値NmaxHよりも小さい。偏差ΔNが偏差基準値NmaxL未満である場合S24:YES、CPU31は以下の式3を用いて可変ゲインKpvを算出するS25。Kpv=Kp/2KpΔN/2NmaxL式3式3に示すように、可変ゲインKpvの最小値はゲイン最大値Kpの2分の1である。故に、低速時には高速時に比べてゲイン最大値だけでなく可変ゲインの最小値も大きい。図4に示すように、低速時の可変ゲインKpvの増減割合Kp/2NmaxLは高速時の増減割合よりも大きい。偏差ΔNが低速時の偏差基準値NmaxL以上である場合S24:NO、CPU31は可変ゲインKpvをゲイン最大値Kp低速時のゲイン最大値KpLに設定するS26。処理はS29へ移行する。糸切り動作を実行している場合S21:YES、CPU31はゲイン最大値Kpの値をKpTに設定するS22。図4に示すように、糸切り時のゲイン最大値KpTは他のゲイン最大値に比べて最も大きい。糸切り時は、低速回転である為ミシンモータ13の慣性力は小さく、且つ糸を切る際に抵抗を受ける。故に、ミシンモータ13は糸切り時に強い負荷を受け、回転速度は低下し易い。ミシンモータ13は糸切り中に十分なトルクを発生する為回転速度が安定する。糸切り中はミシンモータ13の回転速度が低い為、トルク指令値Tを大きくしても回転変動の影響は小さい。CPU31は偏差ΔNが偏差基準値NmaxLであるか否かを判断するS24。偏差ΔNがNmaxL未満であればS24:YES、CPU31は上記式3を用いて可変ゲインKpvを算出するS25。図4に示すように、糸切り時の可変ゲインKpvの増減割合Kp/2NmaxLは最も大きい。偏差ΔNがNmaxL以上であればS24:NO、CPU31は可変ゲインKpvをゲイン最大値Kp糸切り時のゲイン最大値KpTに設定するS26。処理はS29へ移行する。CPU31は、S13で算出した偏差ΔNと、S17、S18、S25、S26で算出した可変ゲインKpvを用いて、以下の式4によりトルク指令値Tを算出するS29。トルク算出処理は終了する。トルク指令値T=可変ゲインKpv×偏差ΔN式4CPU31は、ミシンモータ13の駆動処理図示略において、S29で算出したトルク指令値T電流指令値をミシンモータ13に出力する。図5を参照し、サンプリング時間決定処理について説明する。前述したように、サンプリング時間は、エンコーダ47が検出したミシンモータ13の回転角位相から回転速度を算出するための時間である。回転速度は上記式1で求める。サンプリング時間が短ければ、CPU31は短い時間間隔で最新の回転速度を算出することができる。故に、CPU31は回転速度が急激に変化する場合でもより正確に回転速度を算出することができる。一方、エンコーダ47が検出する回転角位相には誤差が生じる場合がある。上記式1に示すように、サンプリング時間が短い程誤差の影響は大きくなる為、回転速度の検出誤差は大きくなる。図5に示すサンプリング時間決定処理は回転速度に適したサンプリング時間を決定する処理である。CPU31は、ミシンモータ13の回転中に所定間隔毎例えば1msec毎にサンプリング時間決定処理を実行する。CPU31は前回算出した最新の回転速度の検出値Nを取得するS31。CPU31は、最新の検出値Nが閾値である2000rpm以上であるか否かを判断するS32。閾値の値は変更してもよい。最新の検出値Nが2000rpm以上である場合S32:YES、CPU31はサンプリング時間を4msecに設定するS33。処理は終了する。一方、最新の検出値Nが2000rpm未満である場合S32:NO、CPU31はサンプリング時間を2msecに設定するS34。処理は終了する。ミシンモータ13の回転速度の検出誤差は、ミシンモータ13の回転速度が大きい程増加する。例えば、誤差範囲が1であると仮定すると、回転速度が500rpm低速時の場合の検出誤差は僅か5rpmとなるが、回転速度が5000rpm高速時の場合の検出誤差は50rpmとなる。CPU31は、検出値Nが閾値2000rpm以上である場合には閾値未満である場合よりも長いサンプリング時間を設定する。長いサンプリング時間を設定すると回転角位相の検出誤差は平均化し、回転速度の検出誤差は減少する。故に、CPU31は回転速度が大きい場合でもより正確に回転速度を検出できる。CPU31は、検出誤差が小さい場合回転速度が小さい場合には短いサンプリング時間を設定する。故に、CPU31は、慣性力が小さく負荷の影響を受けやすい低速時に、短い時間間隔で最新の回転速度を算出できる。図6を参照し、偏差ΔNと可変ゲインKpvの関係について説明する。ミシン1は、偏差ΔNが偏差基準値NmaxH、NmaxL未満である場合に、偏差ΔNの増減に従って可変ゲインKpvを増減できる。詳細には、ミシン1はミシンモータ13の負荷が増大すれば可変ゲインKpvを増加してトルク指令値Tを増加できる。ミシン1はミシンモータ13の負荷が減少すれば可変ゲインKpvを減少して回転変動の増加を防止できる。故に、ミシン1はモータの負荷変動に追従できる。ミシン1は駆動状況高速時、低速時、糸切り時に応じて可変ゲインKpvの増減割合を増減する。ミシンモータ13の回転速度の検出誤差は回転速度が大きい程増加する。可変ゲインKpvの増減割合を高く設定した場合に検出誤差が増大すると、可変ゲインKpvは大幅に変化する。可変ゲインKpvが大幅に変化するとトルク指令値Tは大幅に変化し、ミシンモータ13の電流波形が乱れる問題が生じる。一方、可変ゲインKpvの増減割合を低く設定すると、ミシン1はミシンモータ13に掛かる負荷の影響が大きい場合にミシンモータ13の負荷変動に十分追従できない。ミシン1は負荷変動に十分追従できなければミシンモータ13の停止等の不具合を生じる場合がある。本実施形態のミシン1は、駆動状況に応じて可変ゲインKpvの増減割合を増減することで、駆動状況に応じて適切に可変ゲインKpvを変更でき、上記問題の発生を抑制できる。詳細には、ミシン1は高速時には低い割合で可変ゲインKpvを増減する。故に、ミシン1は検出誤差の影響でトルク指令値Tが大幅に変動して電流波形が乱れる可能性を下げることができる。一方、回転速度が小さければ慣性力は小さくなり、負荷が掛かる時間も長くなる為、ミシンモータ13への負荷は駆動に大きく影響する。ミシン1は低速時には高い割合で可変ゲインKpvを増減する。故に、ミシン1は負荷が大きく影響する低速時でも十分に負荷変動に追従できる。ミシン1は、回転速度の指令値Sが閾値未満であるか否かを判断するだけで、適切な可変ゲインKpvの増減割合を容易に設定できる。ミシンモータ13は糸切り時に特に強い負荷を受ける為、回転速度は低下し易い。ミシン1は糸切り時に最も高い割合で可変ゲインKpvを増減する。故に、ミシン1は糸切り時でも十分に負荷変動に追従できる。尚、ミシン1は指令値Sが2000rpm以上であれば回転速度の検出のサンプリング時間を長くする。前述したように、サンプリング時間が長くなれば検出誤差は平均化して減少する。故に、ミシン1は、可変ゲインKpvの増減割合を低くして検出誤差の影響を減少することに加え、検出誤差自体を減少することができ、電流波形が乱れる可能性を更に下げることができる。上記実施形態においてミシンモータ13は本発明の主軸を回転するモータに相当する。針棒7、糸切り機構18は駆動部に相当する。図3のS11で指令値Sを取得するCPU31は指令値取得部として機能する。エンコーダ47は検出部に相当する。図3のS12で回転速度の検出値Nを取得するCPU31は検出値取得部として機能する。図3のS13で偏差ΔNを算出するCPU31は偏差算出部として機能する。図3のS29でトルク指令値Tを算出するCPU31はトルク算出部として機能する。S3のS14~S17、S21~S25で可変ゲインKpvを増減するCPU31はゲイン値決定部として機能する。図3のS11で指令値Sを取得する処理は指令値取得ステップに相当する。図3のS12で回転速度の検出値Nを取得する処理は検出値取得ステップに相当する。図3のS13で偏差ΔNを算出する処理は偏差算出ステップに相当する。図3のS29でトルク指令値Tを算出する処理はトルク算出ステップに相当する。S3のS14~S17、S21~S25で可変ゲインKpvを増減する処理はゲイン値決定ステップに相当する。上記実施形態は様々な変形が可能である。上記実施形態のミシン1は、偏差ΔNに比例するように可変ゲインKpvを増減する。しかし、可変ゲインKpvの増減方法は変更できる。例えば、ミシン1は、図7に例示する可変ゲイン決定テーブルを備えてもよい。図7の可変ゲイン決定テーブルは、偏差ΔNが増加した場合に、可変ゲインKpvが増加前の値以上となるように、偏差ΔNの範囲と可変ゲインKpvの値を対応付ける。可変ゲイン決定テーブルは、高速時、低速時、糸切り時のテーブルを備える。ミシン1のCPU31は可変ゲイン決定テーブルにおいて偏差ΔNに対応している値を可変ゲインKpvに設定してもよい。以上のように、ミシン1はテーブルを用いて可変ゲインKpvを増減してもよい。可変ゲインKpvと偏差ΔNは比例する必要は無い。可変ゲインKpvは、偏差ΔNが増加した場合に増加前の値以上となればよい。式2式3は変更してもよい。例えば、可変ゲインKpvの最低値であるKp/2は変更してもよい。ゲイン最大値であるKpH、KpL、KpTの値は操作部10を操作することで変更できてもよいが、KpH<KpL<KpTの関係を保つことが望ましい。同様に、偏差基準値はNmaxL<NmaxHの条件下で変更できてもよい。低速時の偏差基準値と糸切り時の偏差基準値は別々に設けてもよい。上記実施形態のミシン1は指令値Sが閾値未満であるか否かに応じて低速時か高速時かを判断する。つまり、ミシン1は回転速度の指令値Sに応じて2つの増減割合を使い分ける。しかし、増減割合は指令値Sに応じて3つ以上定めても良い。増減割合は指令値Sに比例して変化してもよい。以上のように、ミシン1は、指令値Sが増加した場合に増加前の増減割合以下の増減割合を用いればよい。上記実施形態のミシンは指令値S、駆動状態糸切り動作中であるか否かの2つに応じて増減割合を決定する。しかし、ミシン1は指令値S、駆動状態の一方のみに応じて増減割合を決定してもよい。ミシン1は糸切り動作以外の駆動状態に応じて増減割合を決定してもよい。例えば、ミシン1は加工布の厚み、種類等の入力を作業者に要求し、入力結果からミシンモータ13に加わる負荷を判断してもよい。ミシン1は、判断した負荷に応じて駆動状態負荷が大きい駆動状態であるか否かを判断し、負荷が大きい程可変ゲインKpvの増減割合を大きくしてもよい。ミシンモータ13の回転速度のサンプリング時間は2種類以上設けてもよい。ミシン1は回転速度に比例してサンプリング時間を長くしてもよい。つまり、ミシン1は、指令値Sが増加した場合に増加前のサンプリング時間以上のサンプリング時間を設定すればよい。図3のS14の判断とS21の判断の順番は入れ替えてもよい。