1

RS232 を使用して、電圧を表す浮動小数点数 (2.5 ~ 7.5 の範囲) で指定された入力を受け取るランプを制御するシステムがあります。コントロールは、センサーが拾う明るさである 0 から 6000 の範囲の出力を与えます。

私が望むのは、システムのバランスをとって輝度値を指定できるようにすることであり、システムはこれを達成する電圧値でバランスをとる必要があります。

特定の出力を得るために電圧入力がどうあるべきかを見つけるための標準的なアルゴリズムまたは手法はありますか? 私は、値を繰り返し試行し、各試行から、決定された出力値を達成するためにより良いはずの新しい値を決定するアルゴリズムを考えていました。(私の場合は3000です)。

必要な電圧値は、異なるシステム間およびランプの寿命によって異なる傾向があるため、完全に自動で行うことが望ましいです。

手法またはアルゴリズムの名前を探しているだけですが、疑似コードも同様に機能します。:)

4

3 に答える 3

1

2.5 から 7.5 の間のすべての電圧を 0.1V 刻みで試して、最初の実行時にシステムを調整し、センサー出力を記録します。

たとえば、希望の明るさレベルとして 3000 を指定すると、最も近い明るさを与える電圧を選択し、希望の明るさが得られるまで、センサー出力に基づいて少しずつ上下に調整します。ときどき (校正値の精度が低下することに基づいて) 再校正してください。

于 2011-06-15T06:58:51.337 に答える
1

私は物理学にはまったく興味がありませんが、電圧と明るさの関係が線形に近いと仮定できる場合は、標準の二分探索を使用できます。

それ以外では、ファジー論理の標準的な使用例の 1 つである倒立振子を思い出します。

于 2011-06-23T06:39:19.417 に答える
1

ウィキペディアをさらにブラウジングした後、これを見つけました:

制御ループ フィードバック メカニズム:

previous_error = setpoint - actual_position
integral = 0
start:
  error = setpoint - actual_position
  integral = integral + (error*dt)
  derivative = (error - previous_error)/dt
  output = (Kp*error) + (Ki*integral) + (Kd*derivative)
  previous_error = error
  wait(dt)
goto start

[編集]

「積分」コンポーネントを削除し、重み (Ki と Kd) を微調整することで、ループは完全に機能します。

于 2011-06-23T06:30:38.310 に答える