記事のディレクトリ
定義
ここで、Aは、一度に、所定の速度に対応する、利得であります 期間、加速度Aに従って、均一速度指令に加速又は減速ホモジナイズ
上記のように、この機能は、速度信号変換、位置ループ制御、そのようなプロセスの等価な位置制御システムと等価です。
- 最終的な量は、位置に設定されています ;
- システム均一な位置変化率、 ;
- 最終到着 時間は、システムが設定した位置に到達します ;
同じことが、異なる制御対象ゲインのために、速度ループに適用されます 物理的な意味は異なるが、究極の目標は、システムの応答時間を最適化するために、オーバーシュートを低減する、入力信号のランプ関数がより緩やかになるようにすることです。
離散化
式はに従って離散化され
時間サンプリングは、入力離散をすることができます:
プログラムを実装
まず、ここでの全てのは簡単なランプ関数の実装のアイデアについて話をします:
- サンプリング時間、我々はシステムのより多くの離散サンプリング時間もする必要があります。
- 電流値の現在の状態、制御システムの量の値、すなわち、 。
- 目標値は、システムが最終的に所望の値に達すると、すなわち ;
- 遅延時間は、時間は、システムは、所望の目標値に達します。
- ステップ数は、ステップ数は、通常は、ターゲットシステムに到達します ;
- スロープ、スロープ 、どれが各ステップ目標値にステップによる最終ステップの値を大きくする必要があります。
通常、実際の制御システムでは、関数やイベントタイマ割り込み、必要性システムの現在値、目標値、および遅延時間ランプ関数の傾き及びランプ関数を得るために、一回のステップの数を計算を実行します。
ここでとmatlab
実際のハードウェアにC言語の動作に実際のテスト、それに加えて、生成されたランプ関数で第1のアナログ、。
MathWorks社のMATLABプログラム
次のプログラムは1であり、サンプリング時間をシミュレートしdelay
、最終的に達した後(遅延がsample_timeのの整数倍である)時target
、以下のように、具体的な手順を、
function ramp_func()
%采样时间为1
sample_time = 1;
current = 0;
%到达目标值期望的时间
delay = 10;
%需要步数
step = delay/sample_time;
fprintf('step:%d\n',step);
%目标值
target = 20;
%斜率 增益A
inc_dec = (target - current)/step;
output = 1:1:step;
i=1;
while i <= step
output(i) = current + inc_dec;
current = output(i);
fprintf('output(%d):%d\n',i,output(i));
i = i+1;
end
plot(output);
end
次のように最終的な結果です。