[H8-ML(4068)] モータの制御について
From: "SumioNoriko" <sumionoriko@xxxxxxxxxxxxxxx>
Date: 2003年11月11日(火)01時34分10秒
はじめまして。森です。

今マイコンでモータを制御するプログラムを作成中です。
しかしながら、モータを制御するためのカウント値の計算でつまづいています。

○現在の計算の仕方

総パルス数=Pls、自起動=Smin、最高速=Smax、加速度=Sup、減速度=Sdown
現在の時間=t、現在の速度=v
とすると、

↓

加速時間=(Smax-Smin)/Sup →傾き、自起動、最高速より、時間を計算
減速時間=(Smax-Smin)/Sdown
加速域のパルス数=(Smin+Smax)*加速時間/2 →(上辺+下底)*高さ÷2
減速域のパルス数=(Smin+Smax)*減速時間/2

t=0
for(i=1;i<=Pls;i++){

if i <=加速パルス数
  v=Sup*t+Smin →次のパルスまでの時間t2 = 1/v → 次の出力パルスが持つ速度
v=Sup*t2+Smin
else if i >= Pls-減速パルス数
  v=Smax-Sdown*t →加速域と同じ
else if 定速域
  v=Smax

}

カウント値=クロック数[Hz]/速度v

↑

加速域、減速域の条件は省きます。
分かりにくくてすみません。

問題>
※総パルス数、自起動、最高速、加速/減速度を与えると、台形駆動を行うプログラ
ムを作成したい。
 ( 割り込みの度に次のパルス周期を計算し、出力するプログラムにしたい)
※ROM要領が小さいため、バッファにパルスパターンを持たしたくない。
※毎回割り込みの度に次のパルス周期を計算して制御したい。

1.市販のモーターコントローラーの中には自起動そのままのパルス
  周期を出力していないものもあるが、これはどうしてでしょうか?
2.加速度の減速度を同じにしても、パルス周期が加速と減速で違ってしまう。
  (階段状に速度が変化するので仕方がない気もしますが、何かいい方法はないで
しょうか?)
3.上のプログラムのようにやると、自起動が小さい場合、計算した加速パルス数よ
りも
  ずっと早く最高速に達して波形(台形駆動)がおかしくなる。。

既にこのような制御プログラムの経験がある方や、
何かいい案がある方がいれば教えてください。
サンプルなどがあればさらにありがたいです。
よろしくお願いします。




スレッド概略
[表示中](起点)
 ├[4069(1)]
 └[4071(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]