|
|
  |
Сервопривод - какие алгоритмы кроме ПИД используются?, результаты с ПИД не устраивают (может неправильно готовлю). |
|
|
|
Mar 16 2010, 01:00
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
У меня была примерно такая задача управления маленьким двигателем, но нагруженным на редуктор с большим передаточным числом. Двигатель был АДП (кажется) почти такой как ДИД. Тоже мучался с сухим трением, которое еще и зависит от текущего положения редуктора. С ПИД долго мучался. Плюнул. Сделал что-то типа системы с переменной структурой. ( В качестве "железной" реализации не заморачивался и использовал драйвер для шагового двигателя - это дало мне плюс - возможность торможения постоянным током. В целом регулировал не напряжением, а частотой - проще). Выглядит на пальцах так - переключаемся между пропорциональным регулятором и торможением постоянным током в точках x=- A*dx/dt ,т.е. момент переключения зависит от текущей ошибки и ее производной. При этом, помню, был ньюанс, что ошибку необходимо определять на каждом периоде 400Гц( у меня было 500Гц и датчик типа диф.трансфортматора). Иначе, при осреднении за несколько периодов, от колебаний невозможно было не избавиться. При таком регуляторе выбирал большой коэффициент П, чтобы заведомо сорваться с сухого трения при максимальной допустимой ошибке. А вообще я вывел этот коэффициент и коэффициент А в меню настроек. Вот. Простите, немного сумбурно
|
|
|
|
|
Mar 16 2010, 06:55
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Ого, нафлудили... Цитата(Сергей Борщ @ Mar 15 2010, 16:09)  Двигатель управляется амплитудой синуса в обмотке управления. От -max до +max. Синус я формирую ШИМом, амплитуду могу менять с дискретностью 8 бит. Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить. Все-таки если управлять частотой с соответствующей коррекцией амплитуды, Вы можете а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел) б) получить линейность управляющего воздействия, в) получить постоянный вращаюший момент при движении. И все, заметьте, в одном флаконе. Циглер-Николс ай-лю-лю!
|
|
|
|
|
Mar 16 2010, 09:28
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(_Pasha @ Mar 16 2010, 08:55)  Все-таки если управлять частотой с соответствующей коррекцией амплитуды, Вы можете а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел) б) получить линейность управляющего воздействия, в) получить постоянный вращаюший момент при движении. И все, заметьте, в одном флаконе. Частотой управлять я не могу. Двигатель расчитан на частоту 400 Гц. Я могу управлять либо амплитудой, либо фазой, либо тем и другим. Умные книжки говорят, что амплитудно-фазовое управление - самое нелинейное. Пусковой момент пропорцинален что при амплитудном, что при фазовом управлении. Амплитудное мне реализовать проще - не нужно бороться с самоходом. Tanya, спасибо за наводку на апликашку. Вынесение Kp за скобки и использование минус четвертого отсчета для расчета скорости позволили избавиться от колебаний и довольно легко настроить ПИД. Приемистость несколько вялая, но в реальной работе быстрее двигать стрелку и не нужно будет, хотя, хотелось бы сделать как можно лучше. Буду пока творить остальные части системы, потом вернусь к серве. Есть идея отключать Д при больших ошибках, чтобы дать возможность разогнаться. Чувствую, изобрету двухконтурную систему имени @Ark.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 16 2010, 09:40
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(Сергей Борщ @ Mar 16 2010, 19:28)  Частотой управлять я не могу. Двигатель расчитан на частоту 400 Гц. Спорное утверждение, главное его не перегрузить,т.е. ограничить ток. Хотя, если Вы уже проблему решили, это уже офтоп.
|
|
|
|
|
Mar 16 2010, 17:53
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(_Pasha @ Mar 16 2010, 09:55)  Ого, нафлудили... а) Скорректировать пусковой момент, задав амплитуду в точке f=0 отличной от нуля, после чего пойдет автонастройка ПИДдержания (новояз мимо не прошел) б) получить линейность управляющего воздействия, в) получить постоянный вращаюший момент при движении. И все, заметьте, в одном флаконе.
Циглер-Николс ай-лю-лю! а) По поводу новяза попрошу ссылаться... б) Скажите, как это сделать нам и Автору без датчика тока. в) это еще зачем? Тогда будем двигаться с ускорением до разноса или остановки трением... Все это Вы написали и запели ай-лю-лю всего-то с одного флакона? Не верю.
|
|
|
|
|
Mar 16 2010, 18:40
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Tanya @ Mar 16 2010, 21:53)  а) Поскольку я Вас недоперепонял, ссылаюсь ©Tanya и сразу же на картинки ссылаюсь[attachment=41869:1112.PNG] насчет формы зависимости амплитуды от частоты. б) и в) - убрать скольжение двигателя. Совсем. Момент, кстати, будет как вращаюший, так и, если надо, тормозящий, а он поболее и нужен. Напомню: Цитата(Сергей Борщ @ Mar 14 2010, 13:59)  Двигатель запитываю пониженным напряжением (17в вместо 36в) 400Гц. Больше не могу - входное питание постоянка 24в. Вот и снизить бы частоту до 200-300 герц.
|
|
|
|
Guest_TSerg_*
|
Mar 18 2010, 12:23
|
Guests

|
>Амплитудное мне реализовать проще - не нужно бороться с самоходом.
- Следует иметь в виду, что при амплитудном способе управления АД электромеханическая постоянная времени обратно пропорциональна величине сигнала управления, т.е. при малых сигналах значительно уменьшается быстродействие.
- Для ДИД-05 нормированная зона нечувствительности 0.4..0.8 В.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|