|
|
  |
Производная ступенчатой функции, угла, измеряемого энкодером |
|
|
|
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

|
Словами тоже можно рисовать  Просто я не особо следил за тем, чем именно Вы пытаетесь управлять. Есть акробот с актуатором в точке вращения первого звена двух-звенного обращенного маятника, а второе звено, посредством САУ, ставится устойчиво вверх. Ок. Так у Вас, похоже упрощенная модель, поскольку второе звено устойчиво. Достаточно двух много-пульсных энкодеров в точке вращения первого звена и в точке соединения звеньев + датчик точной механической вертикали ( да хоть бы и микропереключатель/оптрон и т.п.). Идеалом было бы наличие аналоговых ДУС в этих точках, т.е. тахогенераторов.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|