GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
GR-SAKURAを使用して3個のブラシレスモーターを使用したカメラの平衡装置(俗に言うブラシレスジンバル)を作成したいと考えています。(サーボやステッピングモーターでは排熱や消費電力、重量の点から、バッテリーでの動作は不向きでした)
.
ブラシレスモーターの駆動にはTIのDRV8313を使用し、マイコンからUVW相×3軸分のPWM(合計9つ)を発生させSPIまたはI2Cの9軸センサから取得した角度に応じて、3つのモーターを特定角度で固定する仕組みです。
DRV8313のモーター出力には1シャント抵抗を模した電流センサACS711を取り付けており電流値をマイコンで読み取ります。ホールセンサ等は使用しないセンサレスの基板です。
3軸分の回路をまとめた基板も完成しており、それぞれの軸で単純回転等は実現できています。
技術書では「モータートルクを最大化させるためには、センサレスベクトル制御が最適」との記載がありGR-SAKURAやKAEDEから上記の基板にPWMを送って、電流を検出してベクトル制御をしたいのですが1シャント方式での電流検出には以下のような条件があり、それが実現できるのかどうかがわかりません。.
.attachInterruptでは1相分の監視しかできません。それぞれのPWMの状態の組み合わせで割り込みを発生させる方法はないでしょうか?(具体的には上記の状態の時にアナログポートで電流値を読み取る)
RX62T、RX63Tのアプリケーションノートにそれらしい記事(相補PWMとAD変換割り込み)があるにはある(下記)のですがポートを直に叩いてどうこうしているらしく、それらがどういう意味を持つのかまたRX63Nで実行するにはどのようにすればよいのかを理解することができませんでした・・・。
関連があると思われるアプリケーションノート
----------------------------------------
永久磁石同期モータのベクトル制御(RX62T実装編)Doc Number:R01AN2155JJ0100RX62Tグループ 1シャント電流検出方式における12bitAD変換器使用例Doc Number:R01AN0821JJ0100RX62T PMSMモータの3シャントセンサレスベクトル制御Doc Number:R01AN0903JU0100
どなたかお詳しい方いらっしゃいましたらご教示ください。
以上、宜しくお願い致します。
詳しくなくて、PWMはanalogWriteでやっているのですか?
それぞれの相に対してanalogWriteするタイミングでanalogReadするというのではダメなのでしょうか?
>岡宮さん
セットアップ部にて:
//サイン波を再現するためのテーブル const unsigned char sinwave[128] = { 18, 15, 12, 10, 8, 6, 5, 3, 2, 2, 1, 1, 2, 2, 3, 4, 6, 7, 9, 12, 14, 17, 20, 24, 27, 31, 35, 40, 44, 49, 54, 59, 64, 70, 75, 81, 87, 92, 98,104,111,117,123,129,135,141, 147,154,160,165,171,177,183,188,193,199,204,208,213,217,222,225,229,233,236,239,242,244,246, 248,249,251,252,252,253,253,252,252,251,250,248,247,245,242,240,237,234,230,227,223,219,214, 210,205,200,195,190,184,179,173,167,162,156,150,143,137,131,125,119,113,107,100, 94, 89, 83, 77, 71, 66, 61, 55, 50, 46, 41, 37, 32, 29, 25, 21 }; //テーブルインデックス unsigned char stepA = 20; unsigned char stepB = 63; unsigned char stepC = 106;
ループ部分にて:
//テーブル番号を次へ stepA = (stepA+1) % 128; stepB = (stepB+1) % 128; stepC = (stepC+1) % 128; //出力 analogWrite(U_H, sinwave[stepA]); analogWrite(V_H, sinwave[stepB]); analogWrite(W_H, sinwave[stepC]);
sinwave[
このようにしています。 analogWriteをするタイミングでanalogReadをしたとしても 上下のFETの開閉状態がわからないため、どの相の電流を取得したのか把握ができず 相の電流を算出できません。
なるほどよくよく読むとPWMの信号のHIGH/LOWのタイミングを見ないといけないのですね。
モーター制御に付いてはさっぱり判りませんが、文章を読んだだけの思いつきです。
1.pwm周期も、各位相の規定なら、U相がLOW、V相がHIGH、W相がHIGHのタイミングや、U相がLOW、V相がLOW、W相がHIGHのタイミングも自ずと決まらないでしょうか?
2.U相がLOW、V相がHIGH、W相がHIGH、U相がLOW、V相がLOW、W相がHIGHを外部で論理的に、つまりロジックで検出してそれをADCのトリガーにはできないのでしょうか?
お世話になります。松山@ルネサスです。
社内有識者に確認しました。
1.GR-SAKURA搭載のRX63Nで、3個のBLDCモータを位置制御まで含めてコントロール可能か?
⇒位置情報を取り込むためのエンコーダの信号取込み用チャネルが1chしかないため困難です。
2. 他のRX63T、64Mではどうか?
⇒RX63Tは、位置制御無しならば3モータ駆動可能ですが、エンコーダの信号取込みが2chしかないため、やはり困難です。
GR-KAEDE搭載のRX64Mならば、マイコンのリソース的には足りています(ピンマルチの関係で使えるかどうかは未確認)。
※:回路図:japan.renesasrulz.com/.../gr-kaede.aspx
マイコン単体では、3個分のエンコーダの信号取込みが難しく、やはりchobichanさんが言われるように外部ロジックが必要のようです。
断定的な回答になっておらず恐縮ですが、現状の回答とさせてください。
>chobichanさん、松山さん
位置情報を取り込むためのエンコーダの信号取込み用チャネルが1chしかないため困難です。
RX63Tは、位置制御無しならば3モータ駆動可能ですが、エンコーダの信号取込みが2chしかないため、やはり困難です。
おぉぅ・・・。これだけピンが余っているんだから条件さえ整えば余裕だろうと考えていたのですが
そういえば端子にはそれぞれ本来の役割がいくつか割り振られているのでしたね・・・。.
機能特化しすぎて他のボードでは使えないようにはしたくないので、chobichanさんのおっしゃるように
外の回路でなんとか誤魔化したいと思います。たしかに自分自身で3相それぞれを発信しているのだから
アルゴリズムによっては外付けなしで頑張れるかもしれないですね。もう少し知恵を絞ってみます。
皆様ご回答いただき、ありがとうございました。
余談ですが、「動くモノ開発プロジェクト」で開発途中とされていたBLDCモータのモジュールは完成するのでしょうか
途中で社長さんがかわっちゃったから計画が頓挫しちゃったのかな・・・
これからはブラシレスの時代で、発売を楽しみにしているユーザーもいるのでがんばって開発してくださいね。
モーター制御に関して、補足情報入手しましたので展開します。
-----
この使い方だと1shuntでセンサレスベクトル制御の位置制御となります。
エンコーダを使用しないので、制御的には最難関の制御になるかと思います。
この構成の場合も、RX63Nではモータ3個を回せませんのでNGです。
RX63Tであれば、周辺的には足りていますが、技術的には極めて難しいと思います。
恐らく1マイコンで3つのBLDCモータを1shuntでセンサレスベクトルの位置制御を、
実現している製品は現状、存在しないのではないかと思います。
RX64M(176,144pin)もタイマのリソースとしましては、MTUで2系統、
GPTで1系統の3相制御が可能な端子マルチのようですが、ADが2ユニットなので、
1shuntを3つはとても難しいと考えます。
また、以前、開発していたGR-TSUBAMEは、ブラシ付きDCモーター(エンコーダー付き)制御
でしたが、少量LOT販売についてのモーターメーカーとの調整が付かず、開発凍結となっています。
別途、RX23T,RX24Tを使用したBLDCモーター制御の開発を検討して行きたいと思います。
”こういうのが、あったらなあ・・・”というご要望ありましたら、ぜひ、このRulzか、
gadget_renesas@lm.renesas.com かで、ご意見聞かせてください。
松山 景洋
>松山様
補足情報をご提供いただきありがとうございます。
>制御的には最難関
ルネサスの中の人が「最難関」というほどですか・・・
やはり既存のブラシレスジンバルのように角度センサと組み合わせで制御するのが良いようですね。
しかしいずれにしても、今後のために1シャントブラシレス制御を会得しておこうかと思います。
>RX23T,RX24Tを使用したBLDCモーター制御の開発
個人の手の届く範囲のものであればいいですね。楽しみにしています。
>”こういうのが、あったらなあ・・・”というご要望ありましたら、ぜひ、このRulzか、
前から思ってたんですけど、空モノ(ホバー、マルチコプター)や
水モノ(潜水艦、水上船)を視野に入れたものはには手を出さないんですか?
まぁ予算とか経営陣の顔色とかもあるでしょうし難しいかと思いますが。
「その場で動かない機械」より「自由に動かせる機械」のほうが需要がありますよ。