|
Сервопривод - какие алгоритмы кроме ПИД используются?, результаты с ПИД не устраивают (может неправильно готовлю). |
|
|
|
Mar 14 2010, 09:59
|

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

|
Стоит задача: оживить авиационный индикатор. Индикатор состоит из двухфазного двигателя типа ДИД, который через редуктор двигает шкалу или вращает стрелку и датчик обратной связи (потенциометр или сельсин). Двигатель запитываю пониженным напряжением (17в вместо 36в) 400Гц. Больше не могу - входное питание постоянка 24в. Двигатель вращается замечательно. Проблема с реализацией следящей системы. Редуктор обладает весьма значительной инерцией и трением покоя. Попробовал реализовать ПИД (по статье "PID without PhD"), но результат не понравился. Настроить его по Зиглеру-Николсу невозможно - при малых P двигатель не может преодолеть трение редуктора, увеличиваю - как только двигатель в состоянии стронуть редуктор начинаются колебания. Задавить колебания можно значительным увеличением D. При малых D торможение начинается слишком поздно, при больших оно начинает тормозить еще на разгоне, система получается очень вялой. При малых изменениях входного сигнала I часть отрабатывает медленно, а если ее ускорить - начинает мешать при больших перемещениях, снова начинаются колебания. Какие еще алгоритмы применяются в подобных сервосистемах? На просторах интернета встречается статья "Fundamentals of Servo Motion Control", где кроме PID управления описано некое PIV управление, но описано в общих словах. Поиск этого PIV выдает перепечатки этой самой "Fundamentals" с теми же самыми картинками и ни слова больше. Какие алгоритмы применяются в сервосистемах радиоуправляемых моделей? Там нагрзука сервомашинки заранее неизвестна, но работают они очень шустро и четко. Процессор - мега88, плавающую точку не успеет, все считаю в фиксированной. Частота опроса датчика - 50 Гц. В какую сторону копать? Ссылки с не очень заумной математикой приветствуются.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
 |
Ответов
(1 - 75)
|
Mar 14 2010, 11:00
|

Гуру
     
Группа: Banned
Сообщений: 2 754
Регистрация: 5-06-05
Из: Zurich
Пользователь №: 5 744

|
Цитата(Сергей Борщ @ Mar 14 2010, 11:59)  . Какие алгоритмы применяются в сервосистемах радиоуправляемых моделей? Там нагрзука сервомашинки заранее неизвестна, но работают они очень шустро и четко. так называемае канальное кодирование типа шим.Имеем к примеру 8 пропорциональных каналов, соответственно 8 миллисекундных(1-1.5 как у кого) импульсов и затем синхронизирующий импульс длительностью что то 10 мс, все это подается на сдвиговый регистр синхронизация- сброс по длинному импульсу, ну и на конкретном выводе присутствует конкретный канальный импульс .... на передающем конце с помощью пер. резистора меняется длительность конкретного канального импульса больше меньше среднего 1 мс и все это подается на рулевую машинку, которая сравнивает свой импульс с приходящим, путем отработки-- двигатель вращает потенциометр и уравнивает опорный с приходящим импульсами... вот тут схемка рулевой машинки, там вроде ПИ фильтр присутствует R8 R4 C2 0.15uF...вот так это работает, ИМХО с сельсинами мутота намного больше, это ориентировано на 400 Гц 3 фазы, сельсин приемник сельсин передатчик...помню кабина РЛС, 11 тонн, пошла вразнос из за разрегулировки ОС...
|
|
|
|
Guest_@Ark_*
|
Mar 14 2010, 11:04
|
Guests

|
IMHO, нужна обратная связь по скорости вращения двигателя. В первую очередь, задаем скорость вращения и стабилизируем ее с помощью ПИ-регулятора (Д - не нужно). По датчику положения включаем/выключаем двигатель в нужном направлении... Примерно так, в первом приближении.
|
|
|
|
|
Mar 14 2010, 12:02
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Сергей Борщ @ Mar 14 2010, 12:59)  В какую сторону копать? Ссылки с не очень заумной математикой приветствуются. Я не вижу отсюда, почти ничего... Если вы уверены, что проблема именно в трении, то можно побороть эту нелинейность, добавляя момент, который это трение компенсирует (почти). Это означает, что к моменту, который вычисляется Вашим ПИДом (или чем Вы там командуете) нужно добавлять константу*(sign(вычисленная скорость)), возможно, с задержкой. Получится более линейная вещь.
|
|
|
|
Guest_@Ark_*
|
Mar 14 2010, 12:42
|
Guests

|
Цитата ... Получится более линейная вещь. По моему, требуемый момент, будет зависеть от скорости не совсем линейно. Особенно, при малых скоростях. Да и не только от скорости он зависит, но и от других вещей... Лучше уж сразу скорость стабилизировать, по обратной связи. По факту, так сказать.
|
|
|
|
|
Mar 14 2010, 13:02
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(@Ark @ Mar 14 2010, 15:42)  По моему, требуемый момент, будет зависеть от скорости не совсем линейно. Особенно, при малых скоростях. Да и не только от скорости он зависит, но и от других вещей... Лучше уж сразу скорость стабилизировать, по обратной связи. По факту, так сказать. То, что я написала относится именно с случаю т. наз. "сухого трения". Скорость при малых значениях ее обычно измеряется с большой ошибкой. "Жидкое трение", которое пропорционально скорости, - это хорошо.
|
|
|
|
Guest_@Ark_*
|
Mar 14 2010, 13:08
|
Guests

|
Цитата Скорость при малых значениях ее обычно измеряется с большой ошибкой. Это верно, конечно. Поэтому, при наличии редуктора, лучше измерять ее непосредственно на двигателе, а не по датчику положения.
|
|
|
|
|
Mar 14 2010, 18:50
|

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

|
Цитата(proxi @ Mar 14 2010, 13:00)  двигатель вращает потенциометр и уравнивает опорный с приходящим импульсами... У меня примерно то же, только цифровым способом. Проблема в том, что к моменту уравнивания редуктор имеет скорость и за счет инерции пролетает нужное положение. Цитата(proxi @ Mar 14 2010, 13:00)  ИМХО с сельсинами мутота намного больше, это ориентировано на 400 Гц 3 фазы Не все так страшно - у меня сельсин запитывается теми же 400Гц что и обмотка возбуждения двигателя, оцифровка, вычисление арктангенса. Это работает, полградуса точность я получаю, ее достаточно. Цитата(@Ark @ Mar 14 2010, 13:04)  IMHO, нужна обратная связь по скорости вращения двигателя. В первую очередь, задаем скорость вращения и стабилизируем ее с помощью ПИ-регулятора (Д - не нужно). По датчику положения включаем/выключаем двигатель в нужном направлении... Примерно так, в первом приближении. Скорость я могу посчитать по соседним отсчетам датчика положения. А вот на каком уровне ее стабилизировать - не знаю. Я вижу две скорости - как можно быстрее и стоп. Как посчитать требуемую скорость, чтобы система остановилась в требуемом положении - не представляю. Цитата(Tanya @ Mar 14 2010, 14:02)  Я не вижу отсюда, почти ничего... Если вы уверены, что проблема именно в трении, то можно побороть эту нелинейность, добавляя момент, который это трение компенсирует (почти). Это означает, что к моменту, который вычисляется Вашим ПИДом (или чем Вы там командуете) нужно добавлять константу*(sign(вычисленная скорость)), возможно, с задержкой. Получится более линейная вещь. Трение там в момент старта. Потом начинает мешать инерция редуктора. В редукторах с большим трением во время хода как раз проблем нет: движок откючил - все остановилось. Цитата(@Ark @ Mar 14 2010, 15:08)  Это верно, конечно. Поэтому, при наличии редуктора, лучше измерять ее непосредственно на двигателе, а не по датчику положения. В некоторых индикаторах используется двигатель-генератор серии ДГ и, теоретически, я могу считать с генераторной части скорость. Но хотелось бы обойтись без этого - не во всех индикаторах есть генератор и я не совсем понимаю, в чем разница - люфты в редукторе минимальные, если вращается двигатель, то и сигнал с датчика положения меняется пропорционально. Разве что с генератора можно получить информацию о скорости с лучшим разрешением. Цитата(_Pasha @ Mar 14 2010, 17:35)  Стало быть, и период сервы такой же ? Или экстраполируете координату? Если 20мс на все - имхо это медленно. Где-то рядом в частотной области собственные частоты у всей механики в целом. Нет, координату не экстраполирую. Чаще снимать не получается - в случае с сельсином я делаю оцифровку в одной точке периода 400Гц, оцифровываю 4 канала (2 сельсина) и усредняю два значения. В случае с потенциометром делаю два измерения на период (в моменты перехода через 0, для устранения помех от двигателя), и усреднение по 4 отсчетам. Там можно скорость поднять, но тогда разница между соседними отсчетами будет совсем небольшая - стрелка перемещается через всю шкалу где-то 2 сек. на максимальной скорости. Вот я и думал, что могут быть алгоритмы, позволяющие "на лету" оценить инерцию и учитывать ее.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 14 2010, 21:01
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586

|
Я для регулирования положения делал табличку зависимости скорости от расстояния до установки.  В данный момент расстояние до цели delta, а скорость v. v < vel(delta) * 0.9 => увеличиваю усилие v > vel(delta) * 1.1 => уменьшаю усилие В конечной точке включаю тормоз. Конечную систему видел один раз, в остальном всё делал удалённо. + Нагрузка у меня всё время разная и алгоритм нормально её отрабатывает. - Если значения при подходе сделать очень малыми, установка будет точной, но ждать её придётся долго. - Если очень большими - может возникнуть дёрганье вокруг точки установки.
|
|
|
|
|
Mar 14 2010, 21:24
|

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

|
Цитата(Tanya @ Mar 14 2010, 21:13)  Что значит оценить на лету? Она не меняется.. годами... Чтобы не настраивать драйвер под каждый конкретный индикатор. Цитата(Tanya @ Mar 14 2010, 21:13)  Что-то не так у Вас. Инерция Вам, скорее, помогает, чем мешает. А что мешает... мне непонятно.... Как она мне может помогать? Я прекратил подавать напряжение на двигатель, а механизм продолжает двигаться. Значит, надо прекращать крутить двигатель заранее. Насколько заранее - зависит от скорости, которую он успел набрать и это надо как-то рассчитывать. По инерции с максимальной скорости стрелка пролетает половину шкалы, значит надо тормозить, вращая поле в двигателе в обратном направлении. Вращать надо начинать заранее. Должны же быть алгоритмы для подобных систем, задача вроде типовая. Буду, конечно, пробовать снимать характеристики разгона-торможения в процесса калибровки, но не хотелось изобретать велосипед. Цитата(man with no name @ Mar 14 2010, 23:01)  Я для регулирования положения делал табличку зависимости скорости от расстояния до установки. ... В данный момент расстояние до цели delta, а скорость v. v < vel(delta) * 0.9 => увеличиваю усилие v > vel(delta) * 1.1 => уменьшаю усилие В конечной точке включаю тормоз. Можно подробнее? На основании каких данных строилась табличка? За счет чего получается независимость от нагрузки? Отдельного тормоза у меня нет, только торможение противовращением поля в двигателе.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Guest_@Ark_*
|
Mar 14 2010, 22:45
|
Guests

|
Цитата ... люфты в редукторе минимальные, если вращается двигатель, то и сигнал с датчика положения меняется пропорционально. Разве что с генератора можно получить информацию о скорости с лучшим разрешением. Разница именно в этом. На малых скоростях качество регулирования скорости может отличаться значительно... Отдельный регулятор по скорости, по моему мнению, необходим. При старте из неподвижного состояния, в редукторе будет преодолеваться значительный момент силы трения покоя, а после начала движения момент сопротивления резко падает. ПИ-регулятор по скорости должен быстро отрабатывать эту ситуацию, иначе "перебег" будет неизбежен при малых рассогласованиях по положению, даже при небольших используемых скоростях. Регулятор скорости, в процессе работы, будет выполнять и функцию торможения, если, конечно, двигатель (и привод) это позволяет. Текущую скорость можно устанавливать пропорционально рассогласованию по положению. Причем, нужно ограничить, как максимальное, так и минимальное допустимое значение. Можно изменять ступенчато, разбить на несколько поддиапазонов в зависимости от значения рассогласования по положению, или даже задать постоянной. Получится еще один П(ИД)-регулятор, уже по положению, c линейной или ступенчатой (м.б. релейной) характеристикой.
|
|
|
|
|
Mar 15 2010, 09:18
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Сергей Борщ @ Mar 15 2010, 00:24)  Чтобы не настраивать драйвер под каждый конкретный индикатор.Как она мне может помогать? Я прекратил подавать напряжение на двигатель, а механизм продолжает двигаться. Значит, надо прекращать крутить двигатель заранее. Насколько заранее - зависит от скорости, которую он успел набрать и это надо как-то рассчитывать. По инерции с максимальной скорости стрелка пролетает половину шкалы, значит надо тормозить, вращая поле в двигателе в обратном направлении. Вращать надо начинать заранее. Должны же быть алгоритмы для подобных систем, задача вроде типовая. Буду, конечно, пробовать снимать характеристики разгона-торможения в процесса калибровки, но не хотелось изобретать велосипед. Эти индикаторы совсем-совсем разные? Непонятно все это. Система регулирования обычно настраивается не очень точно (не экстремально). Может быть Ваша проблема в том, что Вы включаете ПИД при больших отклонениях задатчика? Тогда интегральный член будет "зашкаливать", и появятся затухающие колебания... Задатчик должен быть достаточно плавным в таком случае. Совершенно естественно, что двигатель должен сначала разгонять, а потом тормозить. И торможение должно начинаться до достижения конечной точки... Вы на машине ездите? Самый быстрый вариант - максимальное ускорение с последующим максимальным торможением. Это банально. Еще сообщу, что самописцы-регистраторы с моторчиками и реохордами выпускались еще до нашего с Вами появления на Свет.
|
|
|
|
|
Mar 15 2010, 09:49
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Tanya @ Mar 15 2010, 12:35)  Ограничение управления имеется всегда. Стандартная борьба - ограничение скорости нарастания задающего параметра. Но не всегда оно достаточно критично чтобы о нем задумываться. Методов борьбы существует несколько. Обычно математически сводящихся друг к другу.  Ограничение скорости нарастания входного параметра безопасными значениями - это учет некоторых ограничений снаружи системы без обратной связи по факту ограничения. И, кстати, упирание в ограничение по току двигателя при старте таким образом учесть сложнее, это ограничение на вторую производную входного сигнала. Цитата(Tanya @ Mar 15 2010, 12:35)  Особенностью данной системы является то, что интегральный член в среднем равен нулю (если нет пружинки или грузика). Легко сообразить, что.. Пожалуйста, закончите свою фразу. Тут есть одна тонкость, которую сообразить не очень легко при подобных рассуждениях на пальцах.
--------------------
Пишите в личку.
|
|
|
|
Guest_@Ark_*
|
Mar 15 2010, 10:10
|
Guests

|
В этой задаче присутствуют два различных процесса управления. Управление непосредственно двигателем - разгон, поддержание скорости, торможение. И слежение за положением - отработка рассогласования. Эти процессы происходят немного в разных временных масштабах. Управление двигателем должно быть быстрее (хотя бы на порядок). Поэтому и есть прямой смысл разделить управление этими процессами, а не сваливать их в одну кучу в одном регуляторе.
|
|
|
|
|
Mar 15 2010, 10:17
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oldring @ Mar 15 2010, 12:49)  Пожалуйста, закончите свою фразу. Тут есть одна тонкость, которую сообразить не очень легко при подобных рассуждениях на пальцах. И так уже банальности пишу. Но раз просите... Это значит, что интеграл от рассогласования тоже равен нулю. Соответственно, и рассогласование (невязка) будет знакопеременной. Это без учета трения и при отсутствии внешних сил. Цитата(@Ark @ Mar 15 2010, 13:10)  В этой задаче присутствуют два различных процесса управления. Управление непосредственно двигателем - разгон, поддержание скорости, торможение. И слежение за положением - отработка рассогласования. Эти процессы происходят немного в разных временных масштабах. Управление двигателем должно быть быстрее (хотя бы на порядок). Поэтому и есть прямой смысл разделить управление этими процессами, а не сваливать их в одну кучу в одном регуляторе. Предполагается, что мы можем создать именно момент. Какой хотим. Какой хочет система управления.
|
|
|
|
Guest_@Ark_*
|
Mar 15 2010, 10:24
|
Guests

|
Цитата Предполагается, что мы можем создать именно момент. Какой хотим. Какой хочет система управления. Система управления "хочет" не момент, а перемещение к нужному положению...
|
|
|
|
|
Mar 15 2010, 10:44
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Tanya @ Mar 15 2010, 13:17)  И так уже банальности пишу. Но раз просите... Это значит, что интеграл от рассогласования тоже равен нулю. Соответственно, и рассогласование (невязка) будет знакопеременной. Это без учета трения и при отсутствии внешних сил. Действительно, пишите банальности. Но немного не те, которые я предположил, что Вы подразумевали. Интеграл от рассогласования будет равен погрешности нуля привода двигателя. В среднем. При учете люфтов и трения - будет дополнительно колебаться несколько больше этого люфта. Невязка неизбежно знакопеременная для любого линейного регулятора с интегратором внутри. Иначе выход интегратора был бы неограничен. Этот факт не является особенностью рассматриваемой системы. Так что же Вы всё-таки хотели сказать именно про особенности данной системы с точки зрения интегратора в регуляторе? Цитата(Tanya @ Mar 15 2010, 13:27)  Это мы хотим положение, а она должна выдавать момент. В момент. В любой момент. Чего-то мне кажется, что у человека сигнал управления - это не момент, а напряжение питания двигателя. И всего три возможных состояния этого сигнала управления.
--------------------
Пишите в личку.
|
|
|
|
Guest_@Ark_*
|
Mar 15 2010, 10:47
|
Guests

|
Цитата Это мы хотим положение, а она должна выдавать момент. В момент. В любой момент. Первый регулятор (по положению) будет обеспечивать наше "стремление" к нужному положению, задавая направление и скорость перемещения. Второй регулятор (по скорости) - будет обеспечивать момент двигателя (который необходим по факту) для поддержания заданной скорости в данный момент времени. По-моему, все просто и прозрачно для понимания... Цитата Чего-то мне кажется, что у человека сигнал управления - это не момент, а напряжение питания двигателя. И всего три возможных состояния этого сигнала управления. В этом случае, все регулируется ШИМ-ом. И какой там момент получился на двигателе для поддержания нужной скорости - обычно никого не интересует (лишь бы допустимый ток не превысить).
|
|
|
|
|
Mar 15 2010, 10:55
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oldring @ Mar 15 2010, 13:44)  Невязка неизбежно знакопеременная для любого линейного регулятора с интегратором внутри. Иначе выход интегратора был бы неограничен. Этот факт не является особенностью рассматриваемой системы.
Так что же Вы всё-таки хотели сказать именно про особенности данной системы с точки зрения интегратора в регуляторе? Для регуляторов температуры печек там разных... интегральный член не равен нулю и является основным в стационарном случае. При этом не обязательно невязка будет знакопеременной. Вот и все банальности. А если автор не владеет текущим моментом, то ему же хуже. Цитата(@Ark @ Mar 15 2010, 13:47)  Первый регулятор (по положению) будет обеспечивать наше "стремление" к нужному положению, задавая направление и скорость перемещения. Второй регулятор (по скорости) - будет обеспечивать момент двигателя (который необходим по факту) для поддержания заданной скорости в данный момент времени. По-моему, все просто и прозрачно для понимания... Мы про разное. Вы - про движение по заданной траектории, а я про "тупой" ПИД. Но линеаризованный. Выход которого должен давать момент в любой момент. Кроме того, момент пропорционален производной от скорости.. без учета трения.
|
|
|
|
|
Mar 15 2010, 11:27
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oldring @ Mar 15 2010, 14:10)  Невязка (ошибка) будет знакопеременной обязательно. И у печек - тоже. Иначе выход регулятора будет неограничен. Это же банальность.  Есть такая банальная теорема. Интеграл ошибки регулятора с хотя бы одним полюсом в нуле при реакции на единичный скачек равен нулю. Не шутите так. Рассогласование падает в нуль... Интегрирование останавливается. Знакопеременность рассогласования может и быть, но интеграл от него не нуль.
|
|
|
|
|
Mar 15 2010, 12:09
|

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

|
Цитата(Oldring @ Mar 15 2010, 11:04)  Можно подмешать к току двигателя переменный ток, создающий момент, превышающий трение. Управляемость простыми алгоритмами улучшится, но и износ механики возрастет. Двигатель индукционный двухфазный. Запитан двумя синусами 400 Гц, сдвинутыми на 90 градусов. Цитата(Tanya @ Mar 15 2010, 11:18)  Эти индикаторы совсем-совсем разные? Непонятно все это. Система регулирования обычно настраивается не очень точно (не экстремально). Да, совсем-совсем. Я могу сделать какую-то процедуру калибровки (желательно автоматической), но пока непонятно - что именно калибровать. Цитата(Tanya @ Mar 15 2010, 11:18)  Может быть Ваша проблема в том, что Вы включаете ПИД при больших отклонениях задатчика? Тогда интегральный член будет "зашкаливать", и появятся затухающие колебания... Задатчик должен быть достаточно плавным в таком случае. Совершенно естественно, что двигатель должен сначала разгонять, а потом тормозить. И торможение должно начинаться до достижения конечной точки... Вы на машине ездите? Может быть и в этом. Какое именно отклонение задатчика считать большим? Я в начале писал, что колебания есть даже при отключенном интегральном члене. Да, мне понятно, что торможение должно начинаться заранее. Изначальный вопрос ветки можно переформулировать так: как рассчитать момент, когда надо начинать тормозить? Да, езжу. Цитата(Tanya @ Mar 15 2010, 11:18)  Самый быстрый вариант - максимальное ускорение с последующим максимальным торможением. Это банально. Еще сообщу, что самописцы-регистраторы с моторчиками и реохордами выпускались еще до нашего с Вами появления на Свет. Прекрасно. Вот самый быстрый (приемистый) вариант меня и интересует. Возможно для Вас это и банально, для меня - нет. Если бы я мог решить задачу сам - я бы ее решал. Но поскольку мои знания в электроприводе и ТАУ весьма минимальны - я и обратился на форум. Простого знания того, что это банально мне будет недостаточно для решения задачи. Спасибо за упоминание регистраторов - об их существовании я слышал. Вы не поверите - но в реальном самолете те самые индикаторы тоже работают и работали до нашего с Вами появления на Свет. Там они управляются чисто аналоговым способом. Я не могу себе позволить киловаттный источник 36в 400 Гц и штатную схему с кучей трансформаторов для вращения полуваттного двигателя. Мне надо управлять цифрой. Цитата(@Ark @ Mar 15 2010, 12:10)  В этой задаче присутствуют два различных процесса управления. Управление непосредственно двигателем - разгон, поддержание скорости, торможение. И слежение за положением - отработка рассогласования. Эти процессы происходят немного в разных временных масштабах. Управление двигателем должно быть быстрее (хотя бы на порядок). Поэтому и есть прямой смысл разделить управление этими процессами, а не сваливать их в одну кучу в одном регуляторе. Было бы замечательно. Мучает вопрос - как определить или рассчитать скорость, которую надо поддерживать? Цитата(Oldring @ Mar 15 2010, 12:44)  Чего-то мне кажется, что у человека сигнал управления - это не момент, а напряжение питания двигателя. И всего три возможных состояния этого сигнала управления. Двигатель управляется амплитудой синуса в обмотке управления. От -max до +max. Синус я формирую ШИМом, амплитуду могу менять с дискретностью 8 бит. Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 15 2010, 12:13
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oldring @ Mar 15 2010, 14:33)  Назрел закономерный банальный вопрос. Что именно Вы называли "невязкой" для регулятора? Согласно неизвестному автору Википедии это то же самое, что и "рассогласование". http://ru.wikipedia.org/wiki/%D0%9F%D0%98%...%82%D0%BE%D1%80Согласна с неизвестным автором. Он также сообщает, что "Если система не испытывает внешних возмущений, то через некоторое время регулируемая величина стабилизируется на заданном значении, сигнал пропорциональной составляющей будет равен нулю, а выходной сигнал будет полностью обеспечивать интегральная составляющая." А я что говорила? Только слово "полностью" не говорила. А говорила - основным. Что Вам не нравится? Мне вот Ваш новый облик... личина... Напоминает какого-то грубияна.
|
|
|
|
Guest_@Ark_*
|
Mar 15 2010, 12:26
|
Guests

|
Цитата Было бы замечательно. Мучает вопрос - как определить или рассчитать скорость, которую надо поддерживать? Определить опытным путем. Или по известным методикам настройки ПИД-регуляторов. Коэффициент пропорциональности регулятора положения и будет задавать скорость в зависимости от рассогласования. Но вначале, нужно настроить регулятор скорости двигателя - так чтобы поддерживал скорость при меняющейся нагрузке и отрабатывал ее изменение с нужными Вам временнЫми характеристиками (разгон и торможение). Подберете все это один раз для данного типа прибора, и все. Я думаю, что заниматься настройкой каждого экземпляра Вам не придется.
|
|
|
|
|
Mar 15 2010, 12:29
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Сергей Борщ @ Mar 15 2010, 15:09)  Насколько линейно момент на валу и обороты зависят от амплитуды управляющего сигнала - затрудняюсь ответить. Если Вы сразу обе обмотки так питаете, то, боюсь, момент будет квадратом от тока. Тогда бы только в одну сторону вращалось...? Все это непонятно. Мне. Сначала надо бы разобраться с этими двигателями. А потом можно скачать аппликацию от Microchip'а. Была такая про удержание инверсного маятника моторчиком.
|
|
|
|
|
Mar 15 2010, 12:36
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Tanya @ Mar 15 2010, 15:13)  Что Вам не нравится? Мне вот Ваш новый облик... личина... Напоминает какого-то грубияна. Вы правы. Я ошибся. У печек ошибка может быть и не знакопеременной. Знакопеременной ошибка обязана быть когда у замкнутого контура полюса оказываются левее, чем какой-то нескомпенсированный полюс объекта. То есть если разработчик пытается сделать более быструю замкнутую обратную связь, чем позволяет разомкнутое управление. В случае объекта с интегратором знакопеременность таким образом при управлении регулятором с интегратором неизбежна, так как все полюса замкнутого контура должны быть левее нуля для устойчивости системы. Цитата(Tanya @ Mar 15 2010, 15:13)  Мне вот Ваш новый облик... личина... Напоминает какого-то грубияна. Говоря современным русским языком - аватар. Мне - тоже. Цитата(Tanya @ Mar 15 2010, 15:29)  Была такая про удержание инверсного маятника моторчиком. Вот только инверсного маятника человеку не хватает...
--------------------
Пишите в личку.
|
|
|
|
|
Mar 15 2010, 12:39
|

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

|
Цитата(Tanya @ Mar 15 2010, 14:29)  Если Вы сразу обе обмотки так питаете, то, боюсь, момент будет квадратом от тока. Тогда бы только в одну сторону вращалось...? Все это непонятно. Мне. Обмотка возбуждения запитана постоянно синусом 400 Гц. На обмотку управления подается синус, сдвинутый на +-90 градусов. При +90 двигатель вращается в одну сторону, при -90 - в другую. Чем больше амплитуда - тем быстрее вращение. Цитата(Tanya @ Mar 15 2010, 14:29)  А потом можно скачать аппликацию от Microchip'а. Была такая про удержание инверсного маятника моторчиком. Спасибо, поищу. Более точного названия не помните?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 15 2010, 12:58
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Tanya @ Mar 15 2010, 15:29)  Если Вы сразу обе обмотки так питаете, то, боюсь, момент будет квадратом от тока. Тогда бы только в одну сторону вращалось...? Все это непонятно. Мне. Пардон. Не заметила, что Вы пишите только про одну обмотку. Тогда момент будет пропорционален току. А зачем Вы синус еще ШИМом делаете? Можно и меандр, наверное. Если сделать локальную обратную связь по току, тогда Вы будете правильно управлять - моментом. Цитата(Сергей Борщ @ Mar 15 2010, 15:39)  Обмотка возбуждения запитана постоянно синусом 400 Гц. На обмотку управления подается синус, сдвинутый на +-90 градусов. При +90 двигатель вращается в одну сторону, при -90 - в другую. Чем больше амплитуда - тем быстрее вращение.Спасибо, поищу. Более точного названия не помните? Уже каялась... Названия не помню... Что-нибудь вроде... inverse(ted) pendulum ? Цитата(Tanya @ Mar 15 2010, 15:51)  Уже каялась... Названия не помню... Что-нибудь вроде... inverse(ted) pendulum ? http://www.microchip.com/stellent/idcplg?I...ppnote=en021807Вот нашлось. Хотя их поиск по ключевым словам не давал ответа... А слова-то правильные были... Цитата(Oldring @ Mar 15 2010, 15:36)  Вот только инверсного маятника человеку не хватает... Ваш аватар сегодня разыгрался. Там про ПИДдержание этого самого маятника. Украинцы пробрались?
|
|
|
|
|
Mar 15 2010, 13:28
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Tanya @ Mar 15 2010, 15:58)  Ваш аватар сегодня разыгрался. Там про ПИДдержание этого самого маятника. Украинцы пробрались? Не понял про украинцев. Куда пробрались? Вам не нравятся украинцы? Я заметил, что там главная цель - застабиллизировать неустойчивый перевернутый маятник. Без требований оптимальности. Без учета люфтов и трения. У человека задача немного другая. Кстати, интересно. У микрочиповской игрушки ведь нет датчика положения платформы? То есть их платформа должна гулять как пьяный моряк под действием шума? Хороший пример для наблюдения броуновского блуждания.
--------------------
Пишите в личку.
|
|
|
|
|
Mar 15 2010, 14:00
|
Гуру
     
Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741

|
Насколько я помню, петля PI+V (скорость) позволяет получить стабильность привода при низких скоростях и удержании позиции. При этом датчик скорости должен быть аналоговый (тахогенератор). Это избавляет контроллер от необходимости рассчитывать скорость при почти неподвижном энкодере, тем более, что простым просчетом числа импульсов за единицу времени при почти неподвижном диске получаем большую ошибку. С другой стороны вводить аналоговый тахогенератор в современный привод (там, где он не предусмотрен конструктивно)- это большие проблемы с механикой и надежностью. В продвинутых контроллерах предусмотрен аппаратный блок velocity estimator для квадратурного энкодера. Обычно работает по принципу заполнения импульса от энкодера импульсами высокой частоты и регистрации их в отдельном аппаратном счетчике. В принципе работоспособен, но иногда чудит при удержании позиции привода. Второй вариант- синусно-косинусный энкодер, дающий аналоговый отсчет промежуточного положения между слотами диска энкодера. Но плохо работает при длинных проводах от привода к контроллеру (помехи АЦП). Так вот, собственно, как считаете, таходатчик при сегодняшней технике развития привода это анахронизм, и надо "тянуть" за алгоритм обработки энкодера, или все таки надо его сохранить?
|
|
|
|
|
Mar 15 2010, 14:09
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oldring @ Mar 15 2010, 16:28)  Не понял про украинцев. Куда пробрались? Вам не нравятся украинцы?
Я заметил, что там главная цель - застабиллизировать неустойчивый перевернутый маятник. Без требований оптимальности. Без учета люфтов и трения. У человека задача немного другая.
Кстати, интересно. У микрочиповской игрушки ведь нет датчика положения платформы? То есть их платформа должна гулять как пьяный моряк под действием шума? Хороший пример для наблюдения броуновского блуждания. Задача почти такая же. Задатчик гуляет сам по себе. Из внешнего мира. Вот он шум... из Зазеркалья... Закулисы... А наша задача - его отслеживать. Только у нас устойчивость получше, но непринципиально. Слов ПИДдержание... какое-то украинское. Откуда взялось? Цитата(khach @ Mar 15 2010, 17:00)  Так вот, собственно, как считаете, таходатчик при сегодняшней технике развития привода это анахронизм, и надо "тянуть" за алгоритм обработки энкодера, или все таки надо его сохранить? А может... Этот самый мотор может в нерабочее время подрабатывать (тахо)генератором? Это бы было хорошо.
|
|
|
|
|
Mar 15 2010, 14:27
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Tanya @ Mar 15 2010, 17:06)  Задача почти такая же. Задатчик гуляет сам по себе. Из внешнего мира. Вот он шум... из Зазеркалья... Закулисы... А наша задача - его отслеживать. Только у нас устойчивость получше, но непринципиально. Слов ПИДдержание... какое-то украинское. Откуда взялось? Все задачи стабиллизации чем-то похожи. Отличия обычно непринципиальны. Принципиально только тогда, когда разработчику не удается застабиллизировать систему. Или не удается добиться от системы каких-то свойств. Например, чтобы тележка не начинала ехать в сторону с произвольной скоростью. Интересно, что у Микрочиповцев стабиллизитрует тележку вблизи нулевой скорости? Трение грузика о воздух? Или они о чем-то не договаривают? "Пиддержиние" по-украински совершенно не звучит. Это какой-то суржик. По украински будет "пиддэржка" или "пидтрымка". Цитата(khach @ Mar 15 2010, 17:00)  Так вот, собственно, как считаете, таходатчик при сегодняшней технике развития привода это анахронизм, и надо "тянуть" за алгоритм обработки энкодера, или все таки надо его сохранить? Я думаю, что обеспечить в покое гуляния положения меньше дискрета энкодера сложно в любом случае, хоть с тахогенератором, хоть без.
--------------------
Пишите в личку.
|
|
|
|
Guest_@Ark_*
|
Mar 15 2010, 14:27
|
Guests

|
Цитата Этот самый мотор может в нерабочее время подрабатывать (тахо)генератором? Не "может", а "должен"!
|
|
|
|
|
Mar 15 2010, 14:53
|

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

|
Цитата(Tanya @ Mar 15 2010, 14:58)  А зачем Вы синус еще ШИМом делаете? Можно и меандр, наверное. Если сделать локальную обратную связь по току, тогда Вы будете правильно управлять - моментом. ШИМом - чтобы не греть обмотку лишними гармониками. Обратную связь по току уже делать поздно - платы изготовлены и свободных входов АЦП не осталось. Цитата(Tanya @ Mar 15 2010, 14:58)  http://www.microchip.com/stellent/idcplg?I...ppnote=en021807Вот нашлось. Хотя их поиск по ключевым словам не давал ответа... А слова-то правильные были... Спасибо! Вот чем микрочиповцы всегда выделялись - прекрасным стилем изложения аппнот. Нашел отличия от своей реализации - у них Kp вынесен за скобки и для вычисления диф. компоненты берется не предыдущий, а "минус третий" отсчет. Надо попробовать. Можно еще и скользящее среднее на эти отчсеты наложить. Цитата(perfect @ Mar 15 2010, 15:25)  Моторчик должен ехать некое количество оборотов, а потом остановиться в определённом месте, и не заходить там в колебания. ? Ехать 400 герцами со сдвигом пор фазе. А стоять? Да, задача такая. А стоять - это когда амплитуда в управляющей обмотке равна нулю.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 15 2010, 15:22
|

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

|
Цитата(Tanya @ Mar 15 2010, 17:11)  Тогда мучайтесь... Хотели, как лучше... Оно конечно. Смотрел в процессе придумывания схемы на штатные схемы включения - там обратной связи по току нет. Вот одна из штатных схем:
М1 - двигатель, М2 - сельсин. Экранированный провод от сельсина - сигнал рассогласования (синус 400Гц, амплитуда пропорциональна ошибке).
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 15 2010, 15:50
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Сергей Борщ @ Mar 15 2010, 18:22)  Оно конечно. Смотрел в процессе придумывания схемы на штатные схемы включения - там обратной связи по току нет. Вот одна из штатных схем:
М1 - двигатель, М2 - сельсин. Экранированный провод от сельсина - сигнал рассогласования (синус 400Гц, амплитуда пропорциональна ошибке). Обмотка двигателя подмагничена постоянным током? Очень интересно. Как же ротор тогда вообще вращается??? И, как легко заметить, у этого двигателя всего две обмотки... Не понимаю я эту схему.
--------------------
Пишите в личку.
|
|
|
|
|
Mar 15 2010, 16:30
|

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

|
Цитата(Tanya @ Mar 15 2010, 17:39)  Я такое слово "сельсин" впервые... Это все от самолета? Много красивых слов. Так одна лампа все и делает, или еще что-то? Неужто лампу нельзя "подменить"? Вот и подменяю. Но мне надо сигнал не с аналогового источника, а из компьютера принимать. Цитата(тау @ Mar 15 2010, 18:24)  классика почти. Сельсин датчик - усилитель ламповый (хорошо еще что не электромашинный) - сельсин приемник (M1 на схеме это СП). Нет, вы не правы. М2- сельсин-приемник в трансформаторном режиме, М1 - двигатель ДИД-0.5
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 15 2010, 16:45
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Сергей Борщ @ Mar 15 2010, 19:30)  Нет, вы не правы. М2- сельсин-приемник в трансформаторном режиме, М1 - двигатель ДИД-0.5Понятно. А не токовое ли вообще возбуждение у обмоток этого двигателя на схеме? Интегратор там, очевидно не нужен. Дифференциатор - тоже не нужен. Ток пропорционален рассогласованию. На зону нечуствительности плюют. Нужно постараться обеспечить номинальный рабочий ток несмотря на пониженное напряжение питания. Для этого следует выкинуть фазосдвигающие цепочки из емкостей, заменив на прямое токовое возбуждение. Там скорее всего теряется бОльшая часть напряжения на фазосдвигающих емкостях.
--------------------
Пишите в личку.
|
|
|
|
|
Mar 15 2010, 17:32
|

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

|
Цитата(тау @ Mar 15 2010, 19:00)  СП в трансформаторном режиме - это все таки датчик рассогласования , разве нет? или "уставка" Да, датчик рассогласования. Но термином "сельсин-датчик" называется именно датчик угла, уставки, а в данном включении этот сельсин является сельсин-приемником в трансформаторной схеме.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 15 2010, 18:31
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Сергей Борщ @ Mar 15 2010, 20:32)  Да, датчик рассогласования. Но термином "сельсин-датчик" называется именно датчик угла, уставки, а в данном включении этот сельсин является сельсин-приемником в трансформаторной схеме. Я Пастернака не читала в лампах не разбираюсь... А если вместо лампы полевой транзистор в ключевом режиме... Из сигнала на лампу изготовить ШИМ... Если там через обмотку постоянный ток течет, то он-то и дергает (трясет) двигатель?
|
|
|
|
|
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 В.
|
|
|
|
|
May 26 2010, 14:00
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 27-05-09
Из: Шахты
Пользователь №: 49 641

|
Цитата(Сергей Борщ @ Mar 16 2010, 13:28)  Частотой управлять я не могу. Двигатель расчитан на частоту 400 Гц. Я могу управлять либо амплитудой, либо фазой, либо тем и другим. Умные книжки говорят, что амплитудно-фазовое управление - самое нелинейное. Пусковой момент пропорцинален что при амплитудном, что при фазовом управлении. Амплитудное мне реализовать проще - не нужно бороться с самоходом. Tanya, спасибо за наводку на апликашку. Вынесение Kp за скобки и использование минус четвертого отсчета для расчета скорости позволили избавиться от колебаний и довольно легко настроить ПИД. Приемистость несколько вялая, но в реальной работе быстрее двигать стрелку и не нужно будет, хотя, хотелось бы сделать как можно лучше. Буду пока творить остальные части системы, потом вернусь к серве. Есть идея отключать Д при больших ошибках, чтобы дать возможность разогнаться. Чувствую, изобрету двухконтурную систему имени @Ark. Посмотри сайт freescale.com там описана работа с моторами или ti.com
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|