- 締切済み
PWMによるDCモータの制御についてお聞きしたいのですが、既設の駆動基
PWMによるDCモータの制御についてお聞きしたいのですが、既設の駆動基板でDCモータを動かしているのですが、高速回転時の回転速度を落としたいと考えています。しかし、既設の駆動基板は外部よりパラメータ設定が出来ず(固定)、多層基板になっており解析出来ませんでした。(ブラックボックス化されている。) モータのパルス波形を見たところ、高速回転時のON Dutyは50%(f=23kHzなのでON時間は約22μS)でした。従いまして、、既設の駆動基板からDCモータに行く2本のリード線の間にON Dutyを最大30%(ON時間:13μS)に制限させる別回路を設け回転速度を落としたいと考えています。 私が考えられる範囲での具体案としましては、なるべく部品点数を少なくしたいのですが、モータへ行く2本のリード線のうちの1本(正回転時の+側)にFETかトランジスタを割り込ませ、オペアンプ又はコンパレータを使い、正回転時の矩形波の立ち上がりを検出したら、割り込ませたFETかトランジスタを13μSだけONさせたいと思っていますが、電子回路そのものと、使用する電子部品の型式、定数及び13μSだけONさせる方法が分かりませんので教えて頂きたく思います。又、別によい方法がございましたら、ご教授願います。 駆動条件は以下のようになります。 (1)PWMのドライブ電圧:DC30V(正転時0~+30Vの矩形波、逆転時0~-30Vの矩形波、) (2)駆動周波数:23kHZ(固定) (3)低速回転時のON Duty:10%(正転・逆転あり) (4)高速回転時のON Duty:50%(正転のみ)
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- 正親町(@Ohgimachi)
- ベストアンサー率43% (110/252)
補足 #4です。 図は#4に添付しておきました。(gooの不具合のため) マイコンから30Vは出力できないので、パワーラインではなくてマイコンのPWM制御出力を改造した方が簡単ですよ。BGAでなければ、マイコンの出力PINをハンダで浮かせて配線します。
- 正親町(@Ohgimachi)
- ベストアンサー率43% (110/252)
補足です >それでエンコーダからの検出で目標のパルス数がカウントされると、モータへのパルス波形を切る。といった制御をしているように感じました。 通常はPWMの出力を停止するだけではモーターは静止しないのです。機械の慣性とコンデンサに電気が貯まっているためです。従ってサーボの制御では、停止位置に近づくと減速制御をさせるのですが・・・ >なんとなくなのですが、速度の制御まではしていない様な気がするのです。 これはモーターに負荷を掛けて回してみればわかります。負荷が増えるとPWMのON Dutyの時間が増加します。 高速の時だけ回転数を落としたいとの事なので、私の回答もNGですね。申し訳ありませんでした。 DC-DCコンバーターをいじると、低速時も回転も落ちるので駄目ですね。したがってサーボがないという前提条件で最初のfujiko4321さんの提案どうりパルス幅の制限をするのがよいと思います。 回路は簡単で、最大パルス幅を出力する単安定マルチバイブレーター(ワンショット)を作り、それとPWMの信号のANDをとって、PWM出力とすればOKです。ワンショットのトリガーはPWMの立ち上がりエッジに設定します。ワンショットはfujiko4321さんのお薦めの555でもよいし74121でもどちらでもOKです。
お礼
ご回答ありがとうございます。 お礼と補足には画像が添付できませんので 下記に移動致しました。 http://okwave.jp/qa/q6139375.html お手数ですが、引き続き宜しくお願い致します。 電子回路につきましては初心者です。
- 正親町(@Ohgimachi)
- ベストアンサー率43% (110/252)
問内容とお礼を読む限りでは、その方法はNGのようです。 マイクロコントローラーからモーター制御のPWM信号が出力されているのであれば、そのモーターはデジタル・サーボがかけられてる可能性が高いです。その場合に制御回路の出力をいじると、トルク変動で回転数が不安定になったり、最悪起動しなくなったりします。 サーボがかけられている場合には、モーターの回転数を検出するエンコーダか電流検出用のCT(カレント・トランス)があり、それがマイクロコントローラーのカウンター入力に接続されているはずです。デジタル・サーボの場合には、エンコーダーであれCTであれ、その波形を整形して矩形波のパルスに変換してカウンターに入力します。そして入力される回転信号のパルスの周波数を測定してモーターの回転数を検出しているのです。 その場合には2つの方法が検討できます。 (1) カウンターのクロックを外部から入力している場合 高精度の回転数制御をウリにしているのであれば、カウンターのクロックに数十kHzの専用の水晶振動子を搭載しています。その水晶振動子(水晶発振器)の周波数を高くすれば見かけ上のモーターの回転数が高くなり、回転数が落ちます。 (2) カウンターのクロックにCPUのクロックを流用(分周)している場合 カウンターの入力を切り離し、エンコーダーとカウンターの間に「PLLシンセサイザー」を挿入して、モーターの回転数を見かけ上高くします。PLLシンセサイザーは、整数倍でなければアナログでつくらなければならないので結構難易度が高いかも。また位相が遅れるので回転が不安定になる可能性もあります
お礼
ご回答ありがとうございます。 ご提案の通り、このモータには搬送物の位置決めをする為にエンコーダが付いています。確かにエンコーダからのパルス信号の周波数を上げれば回転速度を落とせそうなんですが、例えばエンコーダで位置決めと速度制御をしている場合、エンコーダからのパルス信号の周波数を2倍に上げた場合、回転速度が半分になりますが、移動距離も半分になってしまいます。その場合、「搬送物の位置決め」と言う意味ではNGになります。 高速回転時と低速回転時のモータへの波形(矩形波)を見て思ったのですが、低速時はON Duty:10%、高速時はON Duty:50%と2種類に固定されているような気がします。それでエンコーダからの検出で目標のパルス数がカウントされると、モータへのパルス波形を切る。といった制御をしているように感じました。なんとなくなのですが、速度の制御まではしていない様な気がするのです。 又、私が試しに確認した事を下記に記します。 マイクロコントローラ自体の電源は外部ACアダプターよりDC32Vを入力しています。 モータのドライブ回路の電源電圧を18V程度に落とせば回転速度が落とせますので、基板を解析して 見ましたが、コイル・電解コンデンサ(平滑用)・FET・トランジスタが各6~7個 あったのと、多層基板であった為、ドライブ回路の電源を作っている場所を 絞り込めず断念しました。 又、基板自体の電源電圧がDC32Vだったので、そこからあえてDC30Vを 作るわけが無く、これがそのままドライブ回路の電源電圧になっていると 思いましたので、ACアダプターの代わりに定電圧電源から供給し、18V付近まで 下げることが出来ないか確認してみました。結果は、30Vまで下げた所で システム自体が動かなくなりました。と言うことは、入力電圧を監視しているのだと思います。 やはり、どうしても外付けの回路で逃げたいのですが、 何とか良い方法はないでしょうか? アドバイス頂いたものをバラックで組み、動作を確認して報告も可能です。
- MOMON12345
- ベストアンサー率32% (1125/3490)
なんかこのサイトはエラーが出まくりで、なかなか解答できません。 まあgooがやる事なのでだめだめなのでしょう。 えーと、文章で説明するのは面倒なので↓を見て下さい。 http://bbradio.hp.infoseek.co.jp/555_01/555_01.html S1の代わりにPNPのトランジスタを入れ、ベースを適当な抵抗で分圧してモータのドライバに接続します。 555のタイマ時間が13μS程度になるように定数を設定します。 555の出力,3番端子をFETのドレインに接続します。 http://ixdev.ixys.com/DataSheet/98556.pdf FETのソースはドライバのGND端子に、ドレインはモータに接続します。 つまりホット側をスイッチするのではなくGND側を切るように使うのですが、これはFETドライバを節約するだけの理由です。 つまりドライバトランジスタを別途つけるのならばホット側をスイッチしてもかまいません。 他に低速動作時にはこの回路が働かない(FETはONになりっぱなしになる)ように多少の工夫は必要です。 555がワンショット、Trは入力波形を反転させて555をトリガするためのもの、FETでANDを取っています。 なおFETがOFFしたときにDCモータだとスパイク電圧が出ると思うのですがどうでしょうか? このあたりの保護回路とかも、必要に応じて組み込んでください。
お礼
詳細を連絡頂きましてありがとうございます。 よく確認してみてまた連絡致します。 先ずはお礼まで。
補足
ご回答ありがとうございます。 お礼と補足には画像が添付できませんので 下記に移動致しました。 http://okwave.jp/qa/q6139375.html お手数ですが、引き続き宜しくお願い致します。 電子回路につきましては初心者です。
- MOMON12345
- ベストアンサー率32% (1125/3490)
#1です。 そうですか、外付けしかないとすれば外付けでやるしかないですね。 簡単にやるにはモータへの出力を積分して電圧にし、コンパレータで低速なのか高速なのかを判断し、高速時ならばワンショットをたたいて13μSだけONになるようにして入力波形とANDを取る方法ですかね。 電圧が高いので色々工夫は必要ですが、そう大げさな回路ではないと思います。 ただコンパレータで判断すると必ず遅れが生じます。 (積分回路が必要なので) 従ってモータの回転数は回転開始時や速度変更時に不安定になります。 これを回避するにはパルス幅そのものを計測する必要があります。 これもロジック回路で組めばそう大変ではないと思います。 あとはPICなどのマイコンにやらせる手ですね。 この方が簡単かも知れません。
お礼
ご回答ありがとうございます。 コンパレータの部分はイメージできましたが、 「高速時ならばワンショットをたたいて13μSだけONになるようにして 入力波形とANDを取る方法ですかね。」 の部分がよく分かりませんでした。 (1)ワンショットをたたいて (2)13μSだけONになるようにして (3)入力波形とANDを取る方法 について出来ましたら、詳しく教えて頂けないでしょうか? 私は、電子回路の設計につきましては初心者です。
- MOMON12345
- ベストアンサー率32% (1125/3490)
ワンショットをたたく手もありますが、ドライブ回路等を考えるとモータドライバを作り直した方が早いような気もします。 パルス幅を減らすために555などをワンショットとして使うならば、それをそのまま自励発振させれば良いわけですよね。 連続可変だとかリニアリティが云々となるとディジタル制御の方が楽になりますが、繰り返す周波数が固定でデューティが低速と高速用だけなら作ってしまった方が簡単そうです。
お礼
早速回答頂きましてありがとうございます。 この基板が制御しているのは今回のDCモータもそうですが 他に4軸 モータがあります。各モータドライバへの指令は同一基板内の CPUから出ているものと思われます。 又、パソコンとの通信ボード等もこの基板内に 組み込まれています。製造元はアメリカです。 従いまして、どうしても外付けの回路で逃げたいのですが、 何とか良い方法はないでしょうか?
お礼
ご回答頂きましてありがとうございます。 「モーターに負荷を掛けて回してみればわかります。負荷が増えるとPWMのON Dutyの時間が増加します。」 →モータに負荷を掛けて回し、波形を見てみました。低速時も高速時も負荷を掛けるとON Dutyが70~80%位まで上がり、速度制御をしていることが判明しました。 未熟な上に憶測で判断し、回答頂いた皆様の判断を鈍らせてしまい申し訳ありませんでした。 「パワーラインではなくてマイコンのPWM制御出力を改造した方が簡単ですよ。」 →図の添付ありがとうございました。確かに単安定マルチバイブレーターとマイコンのPWM制御出力とのANDを前段に入れればパワーラインの改造よりも大分楽になりますね。しかし、速度制御をしていることが判明しましたので、いずれの方法も使えなくなってしまいました。本当にすみません。マイコンの実装はBGAではないので、パターンさえ追えれば出来そうだったのに・・・。 残念な結果ですが、なんとしても、この制御を成功させなければなりません。ご教授頂いた内容をバラックで確認し、報告する事は可能です。 未熟者ですが、気持ちと使命感はあります。諦めずやりますので、何か解決策が無いか今後ともどうぞ宜しくお願い致します。