Постановка задачи


Это вторая, итоговая статья. Напоминаю цель: есть двигатель постоянного тока. Задача — разработать, собрать и протестировать устройство, позволяющиее реализовать контур управления с заданием тока применительно к этому двигателю. Желаемое время переходного процесса на застопоренном двигателе (без противо-ЭДС) — не более 10мс.

Текст разбит на две статьи:


Напоминаю, как выглядит макет управляющего железа:



Желаемый результат


Вся система как чёрный ящик


Итак, вся затея состоит в том, что я хочу напрямую задавать силу тока, протекающего через мой двигатель. Если объединить контроллер и двигатель воедино, то я бы хотел получить примерно следующее:


Здесь J(t) — это задание по току, I(t) — это ток, протекающий через двигатель. Я бы хотел, чтобы входной и выходной сигналы были бы связаны по закону ? I'(t) + I(t) = J(t). Этот закон выбран произвольно, просто мне нравится такое дифференциальное уравнение. Умными словами оно называется апериодическим звеном первого порядка. Контроллеры, подчиняющиеся такому закону даже имееют свой собственный символ на некоторых схемах:

Вот реакция подобного звена на единичное ступенчатое воздействие:


Это красивая экспоненциальная сходимость без разнообразных колебаний, поэтому такая форма и была выбрана. Постоянная тау в формуле ? I'(t) + I(t) = J(t) называется постоянной времени, это то время, за которое процесс достигнет 63% своего конечного значения при реакции на единичный скачок. Если определить время переходного процесса как время достижения 98% конечного значения, то это примерно 5 тау. В постановке задачи у нас время переходного процесса не должно превосходить 10мс, поэтому возьмём ? = 0,002.

Приоткроем чёрный ящик


Если же чёрный ящик приоткрыть, то выглядеть он будет как-то так:

На вход чёрного ящика подаём сигнал J(t), на выход получаем протекающий ток I(t). Внутри чёрного ящика два подъящика: двигатель со своим диффуром, связывающим напряжение на клеммах U(t) с протекающим через него током I(t), и непосредственно регулятор, который должен подавать напряжение U(t) в зависимости от задания тока J(t) и реально протекающего тока I(t).

Давайте скажем, что регулятор берёт на вход ошибку E(t) — это разница между желаемой силой тока и реальной, и на выход даёт напряжение U(t). Наша задача найти диффур, который связывает E(t) и U(t), тогда будет понятно, как программировать ардуину контроллера.

Итак, мы хотим, чтобы задание тока и реальный ток были бы связаны по выбранному нами закону:


Применим к нему преобразование Лапласа (с нулевыми начальными значениями):


И составим следующую пропорцию:


На всякий случай, в теории управления эта пропорция называется передаточной функцией.

Определим ошибку E(t) как разницу между желаемой и реальной силой тока:


Для настройки контура тока зафиксируем вал двигателя, таким образом угловая скорость уходит из диффура двигателя:


В предыдущей статье мы вывели связь между напряжением на клеммах мотора и силой протекающего тока (при зафиксированном роторе):


Давайте поделим эту пропорцию на пропорцию из уравнения (1):


Почти закончили, осталось перейти от координат Лапласа к обычным временным. Для начала раскроем пропорцию:


Вооружившись таблицами преобразования Лапласа, можно увидеть следующее:


А это значит, что напряжение U(t) и ошибка задания E(t) должны быть связаны по следующему закону:


Таким образом, выбрав поведение всей системы как апериодическое звено первого порядка, мы получаем, что необходимый регулятор есть не что иное, как обычный ПИ-регулятор.

Воплощение в жизнь


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

Проверка работы регулятора


Для проверки работы регулятора зададим ему на вход меандр и синусоидальный сигнал.

Меандр


Вот тут можно взять данные эксперимента: из нулевого начального состояния зададим желаемую силу тока в I0=4А и измерим реально протекающий ток.

Затем давайте посчитаем на бумаге, по какому закону должен изменяться протекающий ток в таких условиях. Это один-в-один совпадает с тем, что мы делали в предыдущей статье:


Попробуем подобрать значение параметра, чтобы теоретическая кривая наилучшем образом аппроксимировала реальные данные и сравним с выбранной нами ранее постоянной времени. Код подбора параметра можно взять здесь.

Вот результат работы управляющего контура на полупериоде меандра:


Метод наименьших квадратов нам говорит, что наилучшее значение параметра это .00184, что очень близко к выбранной нами постоянной времени .002. Хорошо видно, что переходный процесс уложился в десять миллисекунд, которые ему были отведены в постановке задачи.

Синусоидальный сигнал


На всякий случай вторая проверка, опять же, вычисления все взяты из предыдущей статьи. При синусоидальном задании силы тока I(t) должна меняться по следующему закону:


Код подбора параметра теоретической кривой можно взять тут. Он нам говорит, что постоянная времени равна .00196, что опять-таки близко к расчётному параметру в 2мс.

Вот результат работы управляющего контура на синусоидальном входном сигнале:

Заключение


В общем, не так страшен чёрт, как его малюют. Большое спасибо arastas за науку! Постараюсь в обозримом будущем найти немного времени, чтобы собрать перевёрнутый маятник не так, как его делал (управляя напряжением), а управляя непосредственно силой тока, это должно упростить расчёты регулятора непосредственно маятника.
Поделиться с друзьями
-->

Комментарии (24)


  1. Crazy_Pit
    17.11.2016 21:36
    +1

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


  1. HOMPAIN
    17.11.2016 22:10

    Для чего сделана не прямая зависимость тока задаваемого от желаемого, зачем нужно плавное изменение? Почему нельзя просто мерить ток и если он больше, то питание отключается, меньше, подаётся?


    1. haqreu
      17.11.2016 22:20

      Ну почему нельзя, можно. То, что вы предлагаете, если я правильно понимаю, называется релейным регулятором, по-английски on-off controller.

      При постоянном входном сигнале будет выдавать довольно мерзкие осцилляции выходного сигнала:



      Для моих целей и с моими вычислительными ресурсами такое качество управления не подходит.


      1. HOMPAIN
        17.11.2016 23:02

        Да, будет нечто такое, но в меньших масштабах. У вас частота ШИМ 20кГц, индуктивность мотора 6мГн и сопротивление 4.4 Ома. С такими параметрами у вас флуктуация амплитуды выходного сигнала будут в районе 2-4%. На вашем графике у вас шумы большей амплитуды.


        1. haqreu
          17.11.2016 23:06

          Ну не 20кГц, я ток могу измерять максимум с частотой 7.8кГц, хотя это мало что меняет. И да, релейное управление вполне имеет право на жизнь.


          1. Arastas
            17.11.2016 23:10

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


  1. Arastas
    17.11.2016 22:55

    довольно мерзкие осцилляци

    Лучше сказать — автоколебания. А если с высокой частотой, то чаттеринг.
    Вообще, релейное управление, а точнее его современное расширение Sliding mode control, — достаточно популярное направление, со своими достижениями, проблемами и приложениями. Что интересно, очень много в этом направлении сделано пост-советскими учёными.


    1. haqreu
      17.11.2016 23:01

      Ну я маску-то нашёл, спасибо за уточнение :)


    1. user343
      17.11.2016 23:10

      Название статьи «делаем замкнутый контур тока» — как-то не совсем по-русски звучит.
      Разомкнутый контур ТОКА сделать можно, но двигатель вращаться не будет.
      Или автор на английском думает или может всё-таки
      «контур управления с заданием тока и стабилизацией»?

      >Фиттинг параметра

      Новая непонятная калька с англ. — отклонение, разброс или допуск м.б.?
      Студенты не поймут, даже если перед этим курс «электрич. машины» на русском 2 года учить будут.


      1. haqreu
        17.11.2016 23:11

        Фиттинг в данном случае — подбор. И про кальки — да, моя вина. Я действительно книг по ТУ не читал. Closed-loop current control. Сейчас поправлю, спасибо


      1. Arastas
        17.11.2016 23:24

        А чем Вам не нравится «замкнутый контур тока»? Вполне устоявшееся выражение в ТАУ.

        Разомкнутый контур ТОКА сделать можно, но двигатель вращаться не будет
        Либо это неправда, либо я не понимаю, что Вы подразумеваете под разомкнутым контуром. Я думаю, что отсутствие обратной связи.


        1. user343
          18.11.2016 01:34
          -1

          Контур регулирования тока изредка для краткости называют в ТАУ контуром тока. В конкретном разделе работы, после названия главы или другого указания контекста (http://portal.tpu.ru/SHARED/m/MALTSEVA/Student/Tab2/Tab/suepac.pdf).
          Иначе, как тут в заголовке, возникнет путаница с контуром протекания тока. В теоретич.электротехнике: http://www.ngpedia.ru/id107826p1.html.

          Разомкнутый контур управления — да, без обратных связей.
          Омически разомкнутый контур — не пропускает ток.

          «Распродажа Замкнутый Контур Тока Датчика и других китайских товаров со скидкой.» — плохой машинный перевод.


      1. HOMPAIN
        17.11.2016 23:47
        +2

        Фитинг по русски — это аппроксимация.
        Fitting или Fit используется для аппроксимации во многих программах, математических пакетах на английском языке. Но как вы правильно заметили, на русском это слово в данном контексте не используется.


        1. user343
          18.11.2016 01:40
          -1

          Спросил у lingvo 6, электронного словаря 1999 г.:

          fitting of polynomial мат. подбор многочлена, приближенное изображение функциональной зависимости многочленом

          fitting process мат. процесс подбора эмпирической кривой

          fitting method мат. метод подбора (эмпирической) кривой

          аппроксимация approximation


      1. merlin-vrn
        18.11.2016 08:41
        +1

        Термин "фиттинг" очень широко применяется при математическом моделировании, и здесь применён точно к месту. То есть, это ваша необразованность, а не косяк автора. Автор молодец.


  1. maybe_im_a_leo
    18.11.2016 05:06

    Годное пособие по ТАУ, респект!
    Но если говорить конечно про практику, то релейное упрвление — тут что называется state of the art
    И контур регулирования по току обычно так и реализуется в шаговиках или ДПТ, например миксросхема DRV8840.
    То что там получаются колебания блуждающего спектра частоты решается добавлением в схему одного триггера, который сбрасывается с фиксированной частотой.
    И постоянная времени конечно как минимум в 10 раз меньше должна быть для реальной практики.


    1. Arastas
      18.11.2016 12:52

      Релейное управление даст приемлемые результаты при высоких частотах PWM, в том же DRV8840 PWM от 50кГц.

      Да и то, на мой взгляд, это применимо в системах, где нет особых требований по точности. Если же говорить про высокоточные системы позиционирования, то там state of the art для контура момента включает в себя учёт пульсаций момента, мёртвого времени ключей и т.п. Ну и ПИ регуляторы.

      А так, вообще, да. Любое PWM при желании можно трактовать как релейное управление. :)


    1. Arastas
      18.11.2016 12:59

      И постоянная времени конечно как минимум в 10 раз меньше должна быть для реальной практики.

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


  1. armature_current
    18.11.2016 06:27

    Задача — разработать, собрать и протестировать устройство, позволяющиее реализовать контур управления с заданием тока применительно к этому двигателю

    Зачем Вам устройство стабилизации тока якоря? Это двигатель, а не катушка индуктивности. Он должен крутиться! И на заданных оборотах выдавать нужный момент, который в свою очередь пропорционален току якоря. Попробуйте почитать труды Шрейнера Р. Т., например "Системы подчиненного регулирования электроприводов".


    Ну а по поводу методики изложения — вообще каша какая-то. Вот к пример фраза:


    Это красивая экспоненциальная сходимость без разнообразных колебаний, поэтому такая форма и была выбрана

    Неужели в пособиях по ТАУ теперь так принято?


  1. bdvLP
    18.11.2016 08:36

    Как вариант еще можно попробовать предуправление — дополнительно к выходу ПИ-регулятора добавлять компенсацию I(t)*R, по идее быстродействие должно возрасти


  1. user343
    18.11.2016 19:02
    -1

    Ещё работе не хватает практической и зрелищной проверки. Я бы уснул от таких формул :)
    Взять ту же тележку, поставить на рельсы, задавать с клавиатуры разные токи, толкать этими импульсами, измерять пройденный путь.
    Или например заставить двигатель через шкив поднимать гирьку токами 1, 2, 5 А в течение 1с.
    Иначе обучающиеся не поймут практической важности всех этих теоретич. измышлений.

    Вот пример с динамометром и лишней электромагнитной муфтой на валу:
    https://www.youtube.com/watch?v=qnD3869QF1c
    Тут шкала повеселее — человек с молотом получает звания «слабак/.../бугай/громила/кингконг»
    https://youtu.be/AZRuhbAiq2g


    1. user343
      20.11.2016 16:39

      Вот ещё забавный «useless box», мототележка с одной красной кнопкой:
      https://youtu.be/i4U3O4-ym9s


  1. unabl4
    18.11.2016 21:28

    Спасибо за статью. Интересно.
    А можно ту же самую задачу «решать» в т.н пространстве состояний?
    https://en.wikipedia.org/wiki/State-space_representation


  1. acronics
    23.11.2016 21:34
    +1

    Очень приятно осознавать, что хоть кто-то ещё занимается прекрасным и нужным делом, требующим инженерной подготовки, а не участвует в разработке очередного веб-приложения с применением суперсовременных ИТ-технологий. Это такой бальзам на душу, серьёзно.
    Спасибо за статью!