|
Производная ступенчатой функции, угла, измеряемого энкодером |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 44)
|
Mar 18 2014, 03:43
|
Знающий
   
Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997

|
Вариантов несколько: 1) Отказаться от Д составляющей. 2) Сделать фильтрованную Д составляющую. Так же называется "реализуемый ПИД" или "ПИД" с замедлением. Идея в том, что вместо передаточной функции K_d*p сделать реализуемую функцию вида (K_d*p)/(\tau*p+1) или (K_d*p)/(\tau^2*p + 2*\tau*p+1). Чем меньше \tau, тем ближе процесс к исходному. Но от баланса скачки - задержка вы никуда не денетесь. 3) Ввести какие-то более сложные варианты фильтрации, рассчитать цифровой фильтр-дифференциатор для определенных частот. Опять, конкретный выбор фильтра - вопрос баланса. 4) Отказаться от ПИД регулятора и построить какой-то линейный регулятор, у которого порядок числителя не больше, а лучше на единицу меньше, чем порядок знаменателя. Такое решение предполагает, что вы знаете или можете хотя бы примерно определить модель объекта. Настраивать подбором, как в ПИД, тут будет сложно. С другой стороны, такое решение наиболее гибкое и, на мой взгляд, наиболее предпочтительное, если качество ПИД вас не устраивает.
|
|
|
|
|
Mar 18 2014, 03:53
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Спасибо, я подозревал, что это будет компромисс между скачками и задержкой, но надеялся реализовать его пограмотнее. Вариантов расчета производной, приводящих к задержкам, я придумал и промоделировал уже не один - и да, или гладкая производная, но задержка и неустойчивость управления, или меньше задержка и больше скачки. Но еще не оставляю надежды на нахождение хорошего решения, я могу варьировать опрос энкодера - не только считать щелчки к данному времени по интервалу опроса, а даже засекать само время между щелчками, повесив его на входящее прерывание.
Модель объекта у меня есть (появилась с момента моего последнего слепого тыкания в теме), я почитал про акробот, получил его диффур для моего случая - как общий, так и линеаризованный в окрестности нужного мне положения. Если это поможет - могу написать. И коэффициенты своего ПИДа я получаю подбором только двух параметров, а все предварительные расчеты (в зависимости от параметров конструкции) получаются по формулам из этой модели.
|
|
|
|
|
Mar 18 2014, 05:05
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Поскольку измеряется скорость изменения угла механической системы, есть основания предполагать, что она ограничена по максимальному значению. А насчет задержки - вопрос в ее величине. Например, у нас угол изменяется линейно но медленно, значения по энкодеру на каком-то периоде опроса будут 0,0,0,0,0,0,0,0,0,1 - последняя единица - щелчок когда превысили шаг квантования. И если считать производную по 2 последним отсчетам, деленным на период опроса - будет неверное огромное значение, если по трем и более - будет увеличиваться задержка в показаниях. Я действительно, пожалуй, еще подумаю насчет не периодического равномерного опроса, а получения именно максимально точных интервалов времени между щелчками и попытаюсь придумать, как обработать такой неравномерно дискретизированный сигнал.
|
|
|
|
|
Mar 18 2014, 05:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(_Ivana @ Mar 18 2014, 09:47)  ... Если считать как разность текущего и предыдущего показаний деленную на интервал опроса датчика, то получаются весьма большие скачки, которые идут в управление и не способствуют стабильности конструкции. ... Хм, а если просто правильно вычислять разность? Например, разность между 359 и 1 градус составляет вовсе не 358, как думают некоторые, а всего лишь -2 градуса. И никаких скачков.Upd: Что-то я сегодня невнимателен, чушь всякую несу...
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
Guest_TSerg_*
|
Mar 18 2014, 05:42
|
Guests

|
Скорее всего, это Вы не поняли - производная должна считаться между скачками энкодера, а не за какую-то "последнюю" секунду.
P.S. Для улучшения качества управления по производным вполне возможно, что лучше использовать т.н. "наблюдатели", если более-менее известна физ-мех. модель система. В этом случае производные можно получать с модели с высокой частотой опроса, а состояние модели будет корректироваться эпизодически с частотой срабатывания энкодера.
Грубый пример. Есть инерционный объекта массой m к которому прикладывается сила F, объект совершает линейное перемещение. По энкодеру измеряем с переменным интервалом дискретизации скорость Vизм = dS/dT, ускорение Aизм = dV/dT Вычисляем силу F(t) = m * Aизм
Вводим F(t) в модель системы и наблюдаем с желаемой частотой за параметрами модели, в частности - ускорением.
|
|
|
|
Guest_TSerg_*
|
Mar 18 2014, 07:40
|
Guests

|
Цитата(_Ivana @ Mar 18 2014, 09:51)  TSerg, насколько я понимаю, ваш вариант не будет работать. Не просто будет работать, а будет хорошо работать. Цитата(_Ivana @ Mar 18 2014, 09:51)  Допустим, у нас идут небольшие колебания около одного положения - если эти колебания "внутри" шага энкодера - он их не ловит и производная нулевая (что хорошо), а если на границе шага - то мы получаем периодические щелчки на мизерное время (когда верхушка амплитуды превышает порог), и получаем даже еще бОльшие скачки, чем при равномерном опросе показаний. Если параметры системы известны и ограничены, а это так для реальных физических систем, то известна латентность системы на также ограниченные по энергии внешние воздействия. Поэтому убирайте из своей терминологии всякий "мизер" и переходите на инженерный подход к решению задач.
|
|
|
|
Guest_TSerg_*
|
Mar 18 2014, 08:37
|
Guests

|
Спорить не буду, бывают и такие способы повышения точности или устойчивости. За примером далеко ходить не надо - подмешивание на вход АЦП небольшого шума или маятник Капицы. Но я больше о терминологии, чем о принципах.
|
|
|
|
|
Mar 18 2014, 14:20
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Цитата(_Ivana @ Mar 18 2014, 09:51)  Допустим, у нас идут небольшие колебания около одного положения - если эти колебания "внутри" шага энкодера - он их не ловит и производная нулевая (что хорошо), а если на границе шага - то мы получаем периодические щелчки на мизерное время (когда верхушка амплитуды превышает порог), и получаем даже еще бОльшие скачки, чем при равномерном опросе показаний. Все "щелчки" происходят тогда, когда их предсказывает модель системы. Тогда невязка (разность предсказанного и измеренного) получается близкой к нулю, и оценка состояния корректируется лишь немного. То есть на выходе больше результат моделирования чем измерения до тех пор, пока нет большой невязки.
|
|
|
|
|
Mar 19 2014, 05:27
|
Знающий
   
Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458

|
Цитата(_Ivana @ Mar 18 2014, 06:47)  ... Но в управление пропорционально входит производная угла.... По моему, управление по производной Вам может понадобиться, только в том случае, если потребуется притормаживать слишком уж раскрутившуюся систему. В этом случае шелчков будет много, время между ними реальное, дисретная функция будет приближаться к непрерывной. При дрожжании вблизи равновесия управление по производной мне кажется только ухудшит и устойчивость и точность. К стати, с каким знаком у Вас входит управление по производной?
|
|
|
|
|
Mar 19 2014, 12:30
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
По производной угла, измеряемого энкодером у меня ПОС, насколько я понимаю. Как и по самому углу, собственно. Но этот угол с его производной - не единственные составляющие сигнала управления. Построить модель управления без производной у меня не получается, система разбалансируется. ЗЫ попробовал строить прямую по МНК по нескольким последним отсчетом угла при условии периодического опроса, и считать производную по этой прямой. Результат лучше, чем просто первые разности, но получается именно так, как уже писали Цитата Но от баланса скачки - задержка вы никуда не денетесь. 3) Ввести какие-то более сложные варианты фильтрации, рассчитать цифровой фильтр-дифференциатор для определенных частот. Опять, конкретный выбор фильтра - вопрос баланса. МНК это получается тот же КИХ фильтр конечной длины, можно пробовать и другие дифференцирующие фильтры, но при малой длине фильтра получаем выбросы, а при большой - производная красивее, но увеличивается задержка. Причем, это не зависит выбранной частоты опроса энкодера. Я подобрал оптимальную длину фильтра (компромисс скачки-задержка), балансирование есть, но все равно хочется более красивого результата. Буду дальше думать над построением модели и расчетом производной из нее, с корректировкой модели по энкодеру.
|
|
|
|
|
Mar 20 2014, 07:04
|
Знающий
   
Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458

|
Цитата(_Ivana @ Mar 19 2014, 16:30)  Построить модель управления без производной у меня не получается, система разбалансируется. Это тревожный факт. Одной пропорциональной составляющей обычно достаточно чтобы ПИД заработал со статической ошибкой регулирования. (Считаем, что фазовые условия устойчивости выполнены) Интегральная составляющая позволяет убрать статическую ошибку слежения и подобраться к границе устойчивости. По моему опыту (высоковольтные источники, нагреватель пресса-экструдера) настройки ПИД - дифференциальная составляющая это роскошь, которая позволяет увеличить скорость реакции системы регулирования при внешних возмущениях. Я пользовался регулированием по скорости с отрицательным коэффициентом, это позволяло избежать перерегулирования при очень больших возмущениях. То есть, когда систему "понесло" слишком быстро управление по скорости давало вклад уменьшающий расстройку. Но этот коэффициент был очень мал и почти не влиял при колебаниях вблизи равновесия. Я бы посоветовал разобраться, почему Ваша система не работает в пропорциональном режиме. (Если я правильно понял.)
|
|
|
|
|
Mar 20 2014, 14:15
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Цитата(AndreyVN @ Mar 20 2014, 11:04)  Это тревожный факт. Одной пропорциональной составляющей обычно достаточно чтобы ПИД заработал со статической ошибкой регулирования. (Считаем, что фазовые условия устойчивости выполнены) Интегральная составляющая позволяет убрать статическую ошибку слежения и подобраться к границе устойчивости. По моему опыту (высоковольтные источники, нагреватель пресса-экструдера) настройки ПИД - дифференциальная составляющая это роскошь, которая позволяет увеличить скорость реакции системы регулирования при внешних возмущениях. Регуляция тока и температуры это в грубом приближении системы первого порядка, производная от регулируемой величины задается в качестве воздействия. А механическая система это второй порядок, как минимум. Замкнув упраление по положению получаем колебательную систему, как например у маятника, естественная обратная связь по положению. А если маятник перевернутый на подвижном основании то его нелзя (по хорошему, не надеясь на вязкое трение и т.п.) стабилизировать статическим регулятором по углу отклонения, колебания получаеются с нарастающей амплитудой.
|
|
|
|
|
Mar 21 2014, 06:50
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
АНТОН КОЗЛОВ: спасибо, я, если найду в сети, посмотрю эту книжку. Но я сам уже реализовал несложный алгоритм аппроксимации любого количества точек прямой линией по МНК и получение производной из этой прямой. Все хорошо,чем больше точек, тем лучше точность, но беда в том, что такая производная хорошо аппроксимирует середину интервала, и при увеличении количества точек я получаю задержку, что приводит к разбалансировке системы. Более того, я реализовал также алгоритм БИХ фильтра - расчет производной по первой разности с последующим экспоненциальным сглаживанием (добавлением предыдущего значения рассчитанной производной с определенным весом) - получается примерно то же самое, но вычислительно гораздо короче. И действительно, как уже писали выше, при любых фильтрах получается компромисс между выбросами и задержкой, который (насколько я думаю), такими методами принципиально нельзя обойти. Я нашел этот компромисс для разных параметров системы и частот опроса, если по-другому не получится, буду пробовать обойтись этими методами.
AndreyVN: у меня механическая система с двумя степенями свободы и одним управляющим воздействием, которое рассчитывается по 4 входящим параметрам (2 угла с их производными), система с дефицитом управления и наличием двух колебательных, одной устойчивой и одной неустойчивой мод в нужном мне положении равновесия.
ЗЫ я тут немного подумал, и наконец-то кое-что понял. При простейшем подходе мы имеем (настоящую, в железе) механическую систему с нужным количеством всех датчиков, опрашиваем эти датчики, умножаем их показания на заранее рассчитанные коэффициенты и подаем это в качестве управления. Я пока оставляю в стороне вопросы датчиков, их фильтрацию по Калману или альфа/бете и т.п.. считая их идеальными. Но ведь у меня есть математическая модель моей системы - собственно, ее я и использую для моделирования на компьютере. Система нелинейных диффуров, но принципиально решаемая. Значит, параллельно с поведением реальной системы я могу запустить расчет этой модели из тех же начальных условий, и модель будет предсказывать будущее состояние системы. Понятно, что через какое-то время их состояния разойдутся, но я могу рассчитывать свою модель снова с начальными условиями, взятыми из показаний реальных датчиков. Как правильно и оптимально использовать модель я до конца еще не понял, но реализовал какой-то кустарный вариант ее применения для предсказания/расчета нужной производной в своем матлабовском коде, результат на первый взгляд обнадеживает. Буду думать дальше.
|
|
|
|
Guest_TSerg_*
|
Mar 21 2014, 07:51
|
Guests

|
Не далее, как несколькими постами выше именно о таком варианте управления с эталонной моделью ( грубые датчики, неадекватное или с погрешностями описание дин. системы и пр.) Вам намекалось.
От модели можно безболезненно "требовать" более высокой частоты дискретизации, а главное - равномерной.
P.S. Еще один вариант управления, который почти не потребует заглубления в "высокую" математику - fuzzy-logic.
P.P.S. Зачем Вам сдался МНК в чистом виде? Для гладких полиномиальных вплоть до n-производной функций (для мех. систем, ограниченных возмущениями с конечной энергией - это так) давно разработан мат. аппарат синтеза КИХ-фильтров (осредняющих, дифференциирующих, прогнозирующих - в любом сочетании ).
|
|
|
|
|
Mar 21 2014, 08:03
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
TSerg, да, спасибо, ваши с amaora краткие намеки я и перечитываю постоянно, пытаясь понять, разобраться и промоделировать. Наверное, надо еще что-нибудь почитать на эту тему, чтобы пришло полное понимание.
А мой комментарий вашего предложения, что "это не будет работать" относился к вашему посту до его исправления, когда он не содержал предложения использовать модель, а только предложение считать производную по точному времени между щелчками энкодера. Я даже пока не моделирую этот метод, поскольку пребываю в уверенности его неработоспособности, причины моей уверенности я написал ранее, здесь не повторяю, чтобы не использовать режущую ваш слух терминологию. Но если промоделирую, отпишусь о результатах.
ЗЫ МНК в чистом виде я вывел формулы за пару минут на бумажке и вбил их в программу. Я догадываюсь, что есть давно разработанные специальные фильтры, если найду их расчет, попробую. Но у них тоже будут недостатки в виде задержки, хотя в конкретном случае они могут оказаться лучше простого МНК.
|
|
|
|
Guest_TSerg_*
|
Mar 21 2014, 08:08
|
Guests

|
К примеру, фильтры на 5 элементов: Экстраполирующий (предсказатель): (16,-14,-4,11,-4)/5; Дифференцирущий (I порядка): (-2,-1,0,1,2)/10;
|
|
|
|
|
Mar 21 2014, 08:11
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
RHnd, я не против, но что делать в ситуации, когда верхушка плавной синусоиды слегка пересекла очередной порог энкодера и мы получили щелчок туда и почти тут же - обратно? Дифференцировать по времени между щелчками - получим огромный (простите не инженерную терминологию) выброс, вместо нулевой производной в верхушке синусоиды.
TSerg, спасибо, я попробую ваши фильтры, сначала экстраполировать сигнал на 2 отсчета вперед, а потом посчитать производную в текущей точке по 5 отсчетам, используя полученные выше 2 экстраполированных.
|
|
|
|
Guest_TSerg_*
|
Mar 21 2014, 08:27
|
Guests

|
Цитата(_Ivana @ Mar 21 2014, 12:03)  А мой комментарий вашего предложения, что "это не будет работать" относился к вашему посту до его исправления, когда он не содержал предложения использовать модель, а только предложение считать производную по точному времени между щелчками энкодера. В нескольких постах Вам уже явно намекают, что расчет скорости по энкодеру через интервал времени между изменениями его состояния и при низких скоростях - это действенный, применяемый метод. Как считать интервал времени - это второй и не принципиальный вопрос. - можно от бортового времени (если оно есть) с точностью до пико-, нано-, микро-секунд; - можно по отдельному счетчику, запускаемому по прерыванию от одной смены состояния энкодера и до другой; - можно по GPS/ГЛОНАСС  Да, и - не поленитесь и нарисуйте кинематическую схему вашего неустойчивого изделия + где прикладывается крутящий момент, наличие вязкого и сухого трения ( без учета этих сил можно долго колдовать ). Акробот-ы они тоже разные бывают.
|
|
|
|
|
Mar 21 2014, 08:28
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Я догадывался, что если несколько человек говорят одно и то же, то наверное стоит к этому прислушаться  Время я засеку по внутреннему таймеру контроллера достаточно точно, это не проблема. Придется думать (и/или читать умные книжки) что с этим неравномерно дискретизированным сигналом делать дальше. И это не считая того, что надо попробовать ваши предложенные фильтры и их аналоги для бОльшего количества точек, разобраться с применением в расчетах модели объекта и может быть еще и нечеткая логика на горизонте.... Есть куда копать, даже 4 стороны, спасибо за подсказки. Схема - двухзвенный маятник, в точке соединения звеньев прикладывается управляющий момент (на конце первого звена закреплен двигатель, на его валу конец второго звена), эта конструкция ставится началом первого звена на пол, второе звено короче первого и висит вниз, хочу балансировать чтобы вся конструкция стояла и не падала. Трение, противо ЭДС двигателя и т.п. не учитывал, надеюсь это не будет фатально. Массы, центры масс и моменты инерции звеньев известны, датчики - энкодер на валу двигателя, гироскоп с акселерометром на первом звене. ПИД идеальной модели можно увидеть в матлаб-анимации здесь (в предпоследнем посте): http://electronix.ru/forum/index.php?showt...15&start=15 Сейчас я подобрал 2 коэффициента подавления неустойчивой и колебательной мод, идеальная модель за одно-два колебания стабилизируется в положении равновесия. Или что вы имели в виду под нарисованной схемой?
|
|
|
|
Guest_TSerg_*
|
Mar 21 2014, 09:04
|
Guests

|
Словами тоже можно рисовать  Просто я не особо следил за тем, чем именно Вы пытаетесь управлять. Есть акробот с актуатором в точке вращения первого звена двух-звенного обращенного маятника, а второе звено, посредством САУ, ставится устойчиво вверх. Ок. Так у Вас, похоже упрощенная модель, поскольку второе звено устойчиво. Достаточно двух много-пульсных энкодеров в точке вращения первого звена и в точке соединения звеньев + датчик точной механической вертикали ( да хоть бы и микропереключатель/оптрон и т.п.). Идеалом было бы наличие аналоговых ДУС в этих точках, т.е. тахогенераторов.
|
|
|
|
|
Mar 21 2014, 09:09
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Вот здесь http://books.google.com.ua/books?id=oCsFYK...p;q&f=false автор рассматривает задачи локальной и глобальной стабилизации двухзвенного маятника в положении "оба звена вверх" в двух постановках - управлением или в точке подвеса, или в точке соединения звеньев. В случае "оба звена вверх" присутствуют две устойчивые и две неустойчивые моды, и ни одной колебательной. Автор рассчитывает управление, а в конце скромно замечает, что случай "второе звено вниз" гораздо проще, там одна неустойчивая мода и нечего его рассматривать. Я рассмотрел этот случай, там колебательная мода тоже сильно портит управление, оно получается тоже колебательным, в отличие от "оба звена вверх", а отсюда - и дребезг энкодера... Получается формально проще, а фактически, когда нет хорошего датчика скорости второго звена относительно первого - не факт. Цитата Достаточно двух много-пульсных энкодеров в точке вращения первого звена и в точке соединения звеньев + датчик точной механической вертикали ( да хоть бы и микропереключатель/оптрон и т.п.). Идеалом было бы наличие аналоговых ДУС в этих точках, т.е. тахогенераторов. Я хочу быть не привязанным к земле, у меня же нет шарнира в точке крепления первого звена - оно ставится на пол и держится на трении, на которое я надеюсь. Поэтому и датчики такие на первом звене - гироскоп и акселерометр, надеюсь получить от них хорошие угол первого звена от вертикали и его производную - буду изучать чужой опыт, благо его немало в этом случае. А межзвенный датчик я могу выбирать из более широкого диапазона, он же не привязан к внешней системе отсчета. Я думал, энкодера уже стоящего на двигателе с редуктором - 8400 щелчков на оборот должно хватить, а оказывается встретил такие сложности с расчетом его производной. Если будет совсем плохо, то буду думать какой другой датчик угловой межзвенной скорости поставить. Но пока из спортивных соображений хочу победить энкодер, то есть обойтись только им в межзвенном угле.
|
|
|
|
Guest_TSerg_*
|
Mar 21 2014, 14:13
|
Guests

|
Цитата(_Ivana @ Mar 21 2014, 13:09)  Я хочу быть не привязанным к земле, у меня же нет шарнира в точке крепления первого звена - оно ставится на пол и держится на трении, на которое я надеюсь. Вот и новые вводные - скользящая точка опоры. Я же просил - сделать точный чертеж кинематики со всеми ограничениями, нэ? Потом, еще окажется, что это вовсе не плоский, а трехмерный случай  Что тут могу сказать - метод подбора управления способом тыка под недоопределенную физическую систему может вызвать только сочувствие.
|
|
|
|
|
Mar 21 2014, 18:11
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Я постарался максимально подробно описать свою конструкцию, некоторые ограничения понятны из описания - например, максимальная угловая скорость двигателя с редуктором весьма ограничена, и ее может не хватить для нужд управления, еще буду проверять этот момент. С другой стороны, чем больше понижение на редукторе, тем больше момент и больше щелчков энкодера на оборот. Попробую найти компромисс. Да, сначала хотел трехмерный случай, но решил сперва сделать плоский вариант  А насчет управления у Формальского все расписано, я рассчитал для своего случая, и при идеальных датчиках и двигателе все должно быть хорошо. Теперь на первый план выходят сложности с их неидеальностями и варианты как их оптимально обходить.
|
|
|
|
Guest_TSerg_*
|
Mar 21 2014, 18:23
|
Guests

|
Извините, но если Вы не учитываете скольжение точки опоры, так и надо говорить - жестко закрепленная, она. P.S. Идеальные объекты.. как это заманчиво! Увы, реальность ставит другие задачи, которые надо решать сейчас и в заданных ограничениях.
P.P.S. Не надо кивать на Формальского или на Мартыненко. Думать надо Вам.
|
|
|
|
Guest_TSerg_*
|
Mar 24 2014, 10:20
|
Guests

|
Здесь небольшая (50 Mb) подборка материалов по обратному маятнику - может что-то пригодится: http://exfile.ru/457976
|
|
|
|
|
Mar 24 2014, 14:30
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Спасибо, скачал, буду пытаться разобраться. Тут на форуме уже интересовались подобным: http://electronix.ru/forum/index.php?showtopic=94350 , некоторые рекомендации совпадают. ЗЫ сейчас пытаюсь разобраться что такое наблюдатель и управление по модели - второе хоть как-то качественно понятно, а с первым совсем сурово - здесь http://www.bmstu.ru/ps/~s_tkachev/ есть статья по ним, но там понятны только предлоги (а там векторные поля, коммутаторы, производные и скобки Ли, кораспределения, теоремы Гамильтона-Кэли и прочие сильные слова и термины  )
|
|
|
|
Guest_TSerg_*
|
Mar 24 2014, 15:54
|
Guests

|
|
|
|
|
|
Mar 24 2014, 16:43
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Да, в вашей подборке та серьезная статья Ткачева тоже присутствует Спасибо, чувствую, объемом информации для усвоения я обеспечен на неопределенное время. Но делать нечего, придется разбираться и моделировать. Хотя, может и можно уже попробовать реализовать в железе управление, посчитанное по Формальскому – по двум углам и их производным, производную по энкодеру посчитать по МНК, модель в Матлабе более-менее работает. Хотя остается один тонкий момент – двигатель. У меня управление задается в виде момента силы, двигатель с сильным редуктором, может можно приблизительно считать, что момент силы прямо пропорционален напряжению, подаваемому на двигатель. Если же это сильно не так, и момент зависит еще от многих параметров (например, скорости вала), тогда надо попытаться включить в моделирование эти зависимости.
|
|
|
|
Guest_TSerg_*
|
Mar 25 2014, 02:29
|
Guests

|
Момент вращения зависит от тока, ток от разницы напряжения и противоэдс, а также момента нагрузки, противоэдс - от скорости вращения и момента нагрузки. Еще две постоянные времени - электромагнитная и электро-механическая. Первую, можно не учитывать, вторую - придется.
ДПТ независимого возбуждения или на магнитах. M=k*Ф*I E=k*Ф*w U-E=I*R M-Mc=J*dw/dt
В Вашем случае целесообразнее выполнить питание/управление двигателя от источника тока, при этом он приобретает свойство источника момента. Задавая ток, получаете нужный момент.
|
|
|
|
|
Mar 25 2014, 16:03
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Очередное спасибо. То есть, будет эффективнее не усложнять модель маятника моделью зависимости момента двигателя от напряжения (не переводить управление моментом в управление напряжением), а поставить резистор в разрыв, замерять напряжение на нем с помощью АЦП того же МК, и сделать еще один контур управления двигателем, который будет принимать на вход нужный момент (пропорциональный току) и с помощью своего ПИДа удерживать этот ток, управляя напряжением на двигателе с помощью ШИМ?
Или, скорее всего, уже есть готовые модули токового управления двигателем. Если стоят разумных денег и подойдут к моему двигателю, имеет смысл взять, чтобы хоть этот вопрос на первое время снять.
|
|
|
|
Guest_TSerg_*
|
Mar 25 2014, 16:25
|
Guests

|
Цитата(_Ivana @ Mar 25 2014, 20:03)  и с помощью своего ПИДа удерживать этот ток, управляя напряжением на двигателе с помощью ШИМ? ПИД тут совершенно не нужен. Обычный ШИМ со стабилизацией тока.
|
|
|
|
|
Apr 1 2014, 03:07
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Kluwert, спасибо, я пробовал в другом варианте адаптивные фильтры - например, изменение длины окна (количества отсчетов) для МНК в зависимости не от количества перескоков, а просто от величины угла, предполагая, что при выходе в нулевой угол скорость тоже близка к нулю. Работает, но не сказать что сильно лучше, чем при постоянной длине окна, подобранной для любой частоты опроса датчика просто равной половине максимального времени запаздывания сигнала скорости, при котором система еще стабилизируется - это время подбиралось в модели с идеальной непрерывной угловой скоростью. То есть, все тот же пресловутый баланс гладкости/запаздывания. Хотя, может я что-то не так делаю, может и можно подобрать наиболее условно оптимальный фильтр для моего случая, или еще покрутить детальнее варианты учета времени между перескоками. Все-таки хочется разобраться и попробовать построить управление с использованием модели и/или наблюдателя, благо математическая модель системы существует и относительно несложна. Это если пока отвлечься от управления двигателем, которое мне все же хочется реализовать через напряжение, введя в модель момент от противоэдс, и от наличия трения и условия ограничения скорости в межзвенном шарнире из-за редуктора большой кратности на двигателе.
|
|
|
|
|
Apr 1 2014, 16:08
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Мне кажется было бы достаточно комбинирования двух способов. На высоких скоростях тот, что вы уже используете, дифференцирующий фильтр. На низких, использование времени между переключениями. Надо только как-то оптимально их совместить, для минимизации погрешности. Можно и с задержкой работать, у меня была задача стабилизации перевернутого маятника со случайной задержкой (потеря пакетов в сети) в контуре управления. Но на деле я ни вижу в этом пользы, лучше задержку не вносить (если возможно), чем с ней бороться. По синтезу регуляторов, может быть будет полезна вот эта ссылка http://www.unn.ru/pages/e-library/aids/2006/36.pdf . Там в некоторых местах накручены сложности для того, чтобы линеаризовать неравенства (как и во многих статьях про LMI). Можно этого и не делать, а решать неравенства как есть, но другими методами. Каким нибудь стохастическим поиском, если регулятор настраивается один раз, то можете даже перебором. Такими методами можно синтезировать например динамический регулятор для системы с запаздыванием. Проще чем руками его стоить. По двигателю, зная постоянную связывающую скорость с эдс и сопротивление обмоток, пренебрегая преходным процессом связанным с индуктивностью (для коллекторного двигателя при низкой частоте дискретизации управления можно так сделать) и зная скорость, можно управлять моментом задавая напряжение. Значение тока буду выражатся так, I=(U-Ew)/R, связь статическая. Но нужно предварительно оценить E и R, либо откалибровать регулятор. Выразить значение U зная все остальное не сложно. Но E и особенно R плавают с температурой, и не стоит рассчитывать на высокую точность такого метода. Уравнения ДПТ легко найти, если у меня не очень ясно получилось.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|