Pull to refresh
4
0
Валерий @ValeriyS

DSP, GPGPU, FPGA, Analog

Send message

Спасибо за очень подробную и полезную инструкцию как получить доступ к записи в регистры ПЛИС со стороны компьютера через System Console. Это позволяет создавать скрипты для автоматизации операций с регистрами.
Добавлю лишь, что можно использовать ещё один способ для этой же цели: In-System Sources and Probes. Почти что тоже самое, но в графическом GUI варианте.
https://www.intel.com/content/www/us/en/docs/programmable/683552/18-1/design-debugging-using-in-system-sources-45607.html

Есть что-то более простое и такое же эффективное как предиктор Смита? Куда уж проще чем этот предиктор, ведь мы всего лишь добавляем в свою цифровую систему задержку сигнала на фиксированное число отсчётов.

Для систем с известным запаздывающим звеном давно (1957 год) предложен и используется предиктор Смита:
https://en.wikipedia.org/wiki/Smith_predictor

Может стоило посмотреть в сторону FPGA для реализации ПИД контроллеров для моторов? Сейчас вполне реально сделать модель в Simulink и конвертировать алгоритм в Verilog. Тогда можно было бы:

  • механические резонансы фильтрами подрезать

  • выдержать строгий период петли упраления

  • обеспечить минимальную задержку в петле управления

Согласен с важностью появления новых "теорий всего", т.е. теорий дающих возможность объединить гравитацию и квантовую теорию поля. Прежде чем вникать в формулы хотелось бы услышать, какие проблемы существующих общепринятых теорий решает новая теория, какие новые предсказания она предлагает, какие эксперименты могли бы подтвердить её правоту.

По сути дела «наш»  мир это гравитационное поле, а вся остальная материя и остальные взаимодействия это колебаний разных частей этого поля.

Три утвержения в одном предложении и все три несостоятельны:
Гравитация - это не поле, а искривление метрики пространства-времени. Материя - это не взаимодействие, а результат взаимодействия. Остальные взаимодействия - это не колебания гравитации.

Пояснение 1: Согласно общей теории относительности Эйнштейна, гравитация является не полем, а результатом искривления метрики пространства-времени из-за присутствия массы и энергии. Теория гравитации, как она представлена в общей теории относительности, описывает взаимодействие через геометрию пространства-времени.

Пояснение 2: Материя представляет собой физические объекты, обладающие массой и/или энергией, которые могут участвовать во взаимодействиях. Взаимодействия (например, электромагнитное, слабое, сильное) являются фундаментальными силами, посредством которых частицы материи взаимодействуют друг с другом.

Пояснение 3: Четыре фундаментальные взаимодействия (гравитационное, электромагнитное, слабое и сильное) описываются различными теоретическими моделями. Гравитация описывается общей теорией относительности, тогда как остальные три взаимодействия описываются квантовой теорией поля. Они не являются колебаниями гравитационного взаимодействия, а имеют свои собственные квантовые носители: фотоны для электромагнитного взаимодействия, бозоны W и Z для слабого взаимодействия и глюоны для сильного взаимодействия.

Даже страшно представить, насколько увеличилась бы скорость операций ввода/вывода, если бы этот человек потратил на улучшение кода 5 часов вместо 5 минут (подсказка - на 360%).

Отличная статья, спасибо! Буквально неделю назад случайно наткнулся на ADRC. Основные идеи ADRC следующие:

  • объект управления является системой второго порядка (двигатели как раз попадают в эту категорию, т.к. ускорение пропорционально приложенному моменту)

  • основная задача ADRC - убрать всё кроме прямой пропорциональности ускорения и момента при меняющейся нагрузке на двигатель (привет PID с gain scheduling)

  • главная фишка ADRC - менять коэффициенты контроллера постоянно наблюдая за реакцией планта на приложенный контроллером сигнал (типа PID с постоянной подстройкой его коэффициентов)

В имеющихся публикациях упоминается нетривиальность реализации ADRC, типа каких-то ноу-хау, которые авторы не имеют права раскрывать. Также не встречал освещения необходимости сохранения типичного для двигателей двухконтурного контроллера (sic!). Здесь я имею в виду первый контур работающий по скорости и второй контур - по позиции. Построить feedback контроллер для планта, поворачивающего фазу на 180°, используя только один контур - практически нереализуемая и не несущая особой пользы затея. В двухконтурной же системе мы имеем два планта первого порядка, где каждый поворачивает фазу в своей петле управления только на 90°, оставляя ещё примерно 90° в качестве запаса по фазе.

Классная статья, спасибо. Очень интересна часть с интеграцией Simulink модели и фреймворка на Azure RTOS.
Возможность использования таких могучих инструментов как-бы предполагает использовать стандартный подход к построению систем с обратной связью:
- измерить частотную характеристику
- построить zero/pole модель (System Identification, функция ssest в Матлаб)
- рассчитать контроллер как zero/pole cancelling для минимально-фазовой части (bi-quad sections, SOS объекты в Матлаб)
- посмотреть и подстроить характеристики sensitivity и disturbance attenuation

Для меня это прямо как чудо, что можно усилиями одного или нескольких человек поднять такую инфраструктуру серво-привода.

"This example, seemingly plucked from a science fiction thriller, mean that: “You can't have a conversation about artificial intelligence, intelligence, machine learning, autonomy if you're not going to talk about ethics and AI” said Hamilton."

Я не поленился прочитать цитируемую статью (длинная, смотрите самый конец). Там прямо сказано, что воображаемый пример приведен из научной фантастики. Я сам лет десять назад читал эту книгу и отлично помню сюжет. Заголовок данного поста, как и его содержание, вводит читателей в заблуждение. С трудом удержался, чтобе не поставить автору поста минус в карму.

Если система представима в виде конечного и вычисляемого набора нулей и полюсов, то необходимым и достаточным критерием устойчивости является отсутствие полюсов в правой полуплоскости, или я что-то упустил в этом утверждении?

Я предполагаю, что:

- количество нулей равно количеству полюсов

- общий знак для gain выбран правильно для обеспечения отрицательной обратной связи

Я не припомню книги, где бы все аспекты освещались целостно и на приличном фундаментальном уровне. Больше всего мне нравятся учебные публикации от MIT, там я чаще всего нахожу ответы по-делу на свои частные проблемы/задачи.

Для контроллеров нелинейных систем все средства хороши, включая FIR и FFT :)

Если мы имеем систему с несколькими степенями свободы (например угол/позиция) и таким же количеством наших элементов воздействия, то сначала надо выполнить decoupling. После этого можно управлять независимо по каждой из степеней свободы. Decoupling - отдельная большая тема, я не хотел бы смешивать всё в одном флаконе :)

Если я понял правильно, здесь мы имеем систему с одним элементом воздействия. Далее не важно, сколько внутренних переменных состояния имеет наш объект, т.к. для линейной системы у нас будет только одна АЧХ/ФЧХ. Если мы знаем полином для этой ЧХ, то можем разложить полином на нули/полюса и так далее.

Для контроллеров нелинейных систем все средства хороши, включая FIR и FFT :)

Да, ваша задача это практически идеальный пример, когда использование IIR фильтра с нулями/полюсами обратными резонансу на 50 Гц было бы верным решением. Мы работали с системами, где подрбных резонансов в полосе пропускания было 3-5 штук. Чем точнее мы их измеряли, тем точнее была компенсация набором IIR фильтров, тем более высокую полосу пропускания можно было получить для feedback loop.

Если есть резкое изменение амплитудной характеристики, значит ваш plant имеет и такое же резкое изменение фазы в данном месте. Просто надо помнить, чо механические системы это набор резонансных элементов, для которых амплитуда и фаза всегда взаимно связаны. Поэтому когда мы компенсируем амплитуду нашего plant с помощью IIR мы заодно компенсируем его фазу.

Даже классический PID контроллер является частным случаем минимально-фазового IIR фильтра :)

Что касается стандартных контроллеров, то нередко у них есть опция включения резонансных фильтров, реализованных как подмножество IIR фильтров. Полной гибкости конечно нет, произвольные нули/полюса так не погасишь.

Сейчас стали появляться контроллеры, позоляющие реализовать практически любую архитектуру управления. Это делается путём компиляции вашей Simulink модели прямо в код, исполняемый в процессоре контроллера. В этом случа мы можем достроить достаточное количество универсальных IIR фильтров с произвольным набором нулей/полюсов.

Ход ваших мыслей абсолютно правильный, я его только немного продолжил бы:

  • Минимально-фазовыми могут быть только IIR фильтры.

  • Если фаза минимальна, то и задержки минимальны.

  • Поэтому IIR фильтры исключительно популярны в системах управления с обратной связью.

Интересно было бы посмотреть на публикацию, где излагается feedback контроллер, построенный на FIR или FFT.

Что, если я скажу вам, что для произвольной АЧХ, определённой до бесконечно высоких частот, существует только одна минимально-фазовая ФЧХ? По работе, я вычислял эту ФЧХ для любой заданной АЧХ. И эта минимально-фазовая ФЧХ может быть апроксимирована с произольно высокой точностью набором минимально-фазовых SOS IIR фильтров (их количество просто будет расти с ростом требований по точности совпадения АЧХ).

Не очень понял ваш комментарий, но наверно вы говорите о System Identification. Это случай, когда мы измерили АЧХ и ФЧХ объекта и хотим представить его в виде набора нулей/полюсов. Тогда, конечно, полной компенсации за счет взаимного уничтожения нулей/полюсов не получится. В данной статье другой случай. У нас есть аналитическое выражение для State Space, котрое мы можем аналитически-же разложить на нули/полюса и построить совершенно идеальный feedback контроллер.

Чаще всего модель заметно отличается от реальной системы, но в данной статье, по-моему, рассматривается идеализированный точный вариант.

Information

Rating
5,059-th
Location
Santa Clara, California, США
Registered
Activity