Как раз правильно настроенный ПИД и поможет вам и активно затормозить двигателем перед остановкой (Д-компонента) и довести точно до выбранного положения (И-компонента) и сделать это достаточно быстро (П-компонента). Я делал подобную сервосистему с 10-оборотным резистором в обратной связи при помощи 10-битного АЦП меги, получал примерно 14 бит в комнатных условиях на ширпотребных компонентах. Но измерял не сам потенциометр, а сигнал рассогласования между текущим и желаемым положением. Делал следующим образом: при помощи 14-битного ШИМа формировал уставку - желаемое положение сервосистемы. ШИМ пропускал через фильтр на ОУ, на втором ОУ делал измерительный усилитель, на входы которого подавал выход фильтра и напряжение с потенциометра (на всякий случай через второй такой же фильтр на ОУ). Выход измерительного усилителя подавал на вход АЦП. Результат преобразования АЦП был ошибкой рассогласования для ПИДа. ПИДом вращал двигатель, пытаясь вывести выход измерительного усилителя в середину шкалы АЦП.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|