5 相ステッピング モーターを制御するソフトウェアを作成しています。ステッピング モーターの速度は、モーター コントローラーに送信するパルスの周波数によって制御されます。私の現在の課題は、動きのイーズインとイーズアウトをしたいということです。ソースコードを持っていない古いソフトウェアの動作を実際に複製しています。私はイージングのロジックを理解しており、次のように動作します。
- 終了/持続速度が遅い場合、イーズインは遅くなります/時間がかかります
- エンディング/持続速度が速いと、イーズインが速く/短くなる
たとえば…持続速度が 693 Hz の場合、イーズインの長さは 766 ミリ秒です。Saleae ロジック アナライザーを使用して、このイーズイン曲線をサンプリングしました。曲線は次のとおりです。
開始周波数は 97.77 Hz です。ここに実際のデータへのリンクがあります。そのため、コードでこれに適切なロジック/式を実装する方法を見つけようとしています。次のコードは、必要な増分に比較的近いHzの増分を吐き出しますが、理解できないのは、それを繰り返しcurrent_freq
て、ますます長い時間同じ状態に保つ方法です。グラフに表示される曲線を本質的に作成するものです。増分を作成する乗数もオフですが、比較的近いです…</p>
** 編集 – 理論的には、ステップアップを保持する時間の増分の次元を追加する限り、以下は機能すると思いますがcurrent_freq
、私の実装には何か問題があります...各周波数を1回だけ実行しています.
current_freq = 97.
end_freq = 1134
t = 4
# number of times to send the current freqency
print current_freq
while current_freq < end_freq:
i = 1
t = t+t * .1673
print i
while i <= t:
print current_freq
i = i+1
break
current_freq = current_freq + current_freq * .1673
何か案は?これは対数ですか?罪か余か?あからさまに明らかでない場合は、私は数学が苦手です。