本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:PWM信号を、エンコーダ信号に変換したいのです。)

PWM信号をエンコーダ信号に変換する方法とは?

2023/10/15 11:17

このQ&Aのポイント
  • PWM信号をエンコーダ信号に変換する方法を検討しています。
  • PWM信号はモータ駆動用の信号であり、エンコーダ信号に変換する方法を知りたいです。
  • DCモータ駆動用のPWM信号をエンコーダ信号に変換する回路の実現方法を教えてください。
※ 以下は、質問の原文です

PWM信号を、エンコーダ信号に変換したいのです。

2007/09/04 20:21

ある基板から、DCモータ駆動用のPWM信号が出力されています。
この信号を、エンコーダ信号(PWMに応じて周波数が変化し、位相が90度
ずれた2つのパルス)に変換する回路を検討しております。
(可能な限り、ハードだけで実現したいと考えております)
どなたか、知恵を授けてください。

PWM信号はモータ駆動の信号ですので、CW/CCW両方の信号が出てきます。
(+側がPWMの時は、-側はH固定、-側がPWMの時は、+側はH固定)
エンコーダ信号パルスは、PWMに応じて、位相が変化する必要があります。

PWMの周波数は約22KHzです。エンコーダ側は最速で6KHz程度が必要です。

よろしくお願いします。

回答 (2件中 1~2件目)

2007/09/06 23:01
回答No.2

明確な回答で無く申し訳ありません。
PWM信号をパルスに直してもあなたの考え道理に動かないのでは?
DCモーターの駆動回路は低速時にPWMの幅を変えても素直に比例して動き
出さないし、減速時にはオーバーラン傾向を示しモーターが先行しますよ。
そのためにエンコーダーを外付けしてフィードバックをかけます。
回路としては最高速のときに6KHZの8倍した発信周波数となるVFをつけ
バイナリーカウンターと正逆の信号をつき合わせれば?
回路は自信なし。

お礼

2007/09/07 11:08

かめせんにん様

ご回答、ありがとうございます。
ご指摘の通り、モータの制御においては、立ち上がりの遅れや、
惰性回転があると思います。

今回は、仮想モータ+仮想エンコーダ とでも言いましょうか、
「ある基板」に対して、あたかもモータとエンコーダが接続されている
かの如く、騙すための回路を検討しております。
「ある基板」から取り出したモータ駆動信号(PWM)を加工して、
エンコーダ信号として、「ある基板に返す」事を目的にしております。
「ある基板」からは、「超理想的モータが接続されている」という風に
見えるかも知れません。

回路のご提案、ありがとうございます。
早速、試してみたいと思います。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する
2007/09/04 21:38
回答No.1

毎度JOです。
高速なマイコンであれば、簡単な回路(ソフトウエアはそこそこ重い)で実現できそうですが、ハードウエアのみで実現するとなると、
PWMの正転・逆転で出てくる信号でPWMのパルスの幅に応じて、
エンコーダのA相・B相に対応する信号に変換する事でしょうか?

そこで質問なのですが、
例えば、
1)PWMが正転時(+側がH固定 -側がLO固定)の場合、エンコーダに対応する信号は、A相・B相は加算側に6KHzのパルス
2)PWMが逆転時(+側がLO固定 -側がH固定)の場合、エンコーダに対応する信号は、A相・B相は減算側に6KHzのパルス
上記のような動作でよろしいのでしょうか??

追加の質問
>>ある基板から、DCモータ駆動用のPWM信号が出力されています
1)この電圧は最大何Vでしょうか?

2)PWMのLO電圧(GNDに接続??)とエンコーダ回路のGNDは共通と考えて差し支えありませんか??

毎度JOです。
>>PWMに応じて周波数が変化し
となっていますから、
>>正回転時:A相がB相よりも90度進んでいる
>>逆回転時:B相がA相よりも90度進んでいる
これらの各相の周波数もPWMの幅の応じて変化する必要がありますね?

追記でも記載している通り、PWMの波形は
正転の場合
1)最小回転数時  -側がH固定・+側はLのわずかなパルス
2)中速回転数時  -側がH固定・+側はH・Lが50%のパルス
3)全速回転数時  -側がH固定・+側はL固定
となっているハズです、そこでこれらのPWMの変化を、
出力である「A相がB相よりも90度進んでいる」波形に周波数で「反映」させねばなりません、
A・B各相の周波数の例として
全速回転数時6KHzのパルス
中速回転数時3KHzのパルス
最小回転数時0.5KHzのパルス??
の如く変化させれば宜しいでしょうか??
単に正転・逆転の検出だけであれば簡単ですが、PWMの幅に応じてA・B各相の周波数が変化するとすると、


直感的には、PWM制御されたモータに、ロータリーエンコーダが直付けされていて、
このロータリーエンコーダのパルスを、モータを介さずPWM信号から生成したい!! 
その時のA・B相の周波数は、モータが正転全速回転時6kHz、と読み取れますが??

お礼

2007/09/05 08:03

JO様
早速のご回答、ありがとうございます。

モータ駆動用信号(希望する回路への入力信号)は、+側、-側の2本あり、正回転時:+側がPWM(22KHz)、-側がH固定、
逆回転時:+側がH固定、-側がPWM(22KHz)
なっているとお考え下さい。
*Hの時の電圧は、30Vですので、トランジスタ等をかませて、適当な電圧
(5Vや3.3V)に変換する必要があると考えております。

これに対して、出力側はA、B 2つのパルスが出力され
正回転時:A相がB相よりも90度進んでいる
逆回転時:B相がA相よりも90度進んでいる
状態を作り出したいと考えております。

PWMのLowは、出力パルスのLowと共通です。

以上、よろしくお願いいたします。

JO様

ご指摘の通り、最初に書いた「ある基板」には、本来
DCモータと、それに連動したエンコーダ(光学式)が
接続されており、モータの速度制御が行なわれています。

この基板から出力されるPWM信号を元にして、エンコーダ状の
パルスを作り、基板に入力して、あたかも、モータとエンコーダが
接続されているかのように、騙したいと考えています。

PWMのDutyに対しての、エンコーダパルスの周波数は、
データ取りをして決めなければなりませんが、ハードだけで
実現する場合、半固定抵抗等で、調整できる仕様になっている事が
望ましいです。

PWMを積分(?)してアナログ電圧に変換し、更にPICマイコン等に
入力して、位相の違うパルスを出力する事も考えているのですが、
出来うるならば、ハードだけで実現したいのです。

技術力のない私に、知恵を授けてください。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。