• Регистрация
Hate_Matlab
Hate_Matlab-10.62
н/д
  • Написать
  • Подписаться

Векторное управление АД

С наступающим который, я не хочу проводить в этой проге

Задача у меня была сделать обратку для векторного управления АД.

У меня сама схема двигателя в неподвижной двухфазной системе координат альфа-бета-ноль. Векторное управление происходит по вектору поля ротора, поэтому надо перейти к СК, ориентированной по потокосцеплению ротора - вращательной (qd0).

Вот начал собирать обратную связь с учётом переходов между системами координат, но если на входе получается 2 преобразования Парка - потокосцепление ротора и ток статора, то на выходе происходит только одно преобразование Парка... а мне по идеи нужно вернуть сигналы (потокосцепление и ток) на свои места, т.е. замкнуть цепь.

Я где-то промахнулся или выходной сигнал надо просто блоком Demux разбить на 2?

 

P.S. Или может, у кого-то есть схема векторного управления в СК "альфа-бета-ноль"? Это было бы проще, если вообще реально.

Файлы

  • Обратная связь.jpg

Теги

    26.12.2020

    Ответы

    • hex oct bin
      hex oct bin +43.63
      27.12.2020 09:27

      У TI есть хорошее руководство, где описан принцип работы FOC. Я на его основе написал программу и довольно плавно вращал настоящий двигатель. Единственное, что пришлось добавить - это изменение параметров SMO в зависимости от оборотов двигателя ( это уже специфика конкретной реализации). Кроме того, насколько мне известно, в примерах есть куча готовых моделей  FOC.

      p.s. ну и если совсем не хочется проводить новый год в матлабе - напишите модель на python все уравнения есть.

      • Hate_Matlab
        Hate_Matlab-10.62
        27.12.2020 16:59

        А что значат TI, FOC, SMO на повседневно-пигмейском?

        напишите модель на python все уравнения есть

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

        • hex oct bin
          hex oct bin +43.63
          27.12.2020 17:14

          "А что значат TI, FOC, SMO на повседневно-пигмейском?" - это означает отсутствие желания вбить незнакомые слова в Гугл. 

          Ну я Вам помогу.

          • Hate_Matlab
            Hate_Matlab-10.62
            27.12.2020 23:01

            1. На английском - сразу мимо.

            2. Ну все эти схемы, шо надо типо перевести из одной СК в другую и т.д. я видел и в Усольцеве. Оно как бэ ничего не даёт, потому что там не матлабовские блоки, мне б нормальную инструкцию, как это всё в матлабе реализовать, потому что как я понял эти схемы, я вон выше на скрине собрал, только вошли 2 величины, вышла - 1.

      • Andrey Ermakov
        Andrey Ermakov +54.93
        27.12.2020 18:17

        Не важно в какой системе координат у вас модель двигателя.

        В реальной реализации весь вектор выглядит 

        1. Измерили А Б С

        2. Измерили угол ротора

        3. Преобразование Кларк АБС->Альфа Бета

        4. Преобразование Парка Альфа Бета-> DQ 

        Здесь важно что угол этого преобразования Угол ротора+ Угол скольжения

        5. Модель поля ротора Расчет скольжения

        6. Регуляторы Id Iq Im.

        7. Обратный Парк

        А далее если у вас ШИМ векторный то туда задания по АЛьфа Бета

        Если у вас шим на пиле то Обратный Кларк и задания в А Б С

        тоже самое и с электро машиной.

        • hex oct bin
          hex oct bin +43.63
          27.12.2020 18:20

          У тексаса есть pdf докумен, где это все есть с формулами, картинками, описанием и кодом. Единственный минус - на английском. 

          А процесс перехода между вращающийся системой координат и неподвижной вы уже описали.

          • Andrey Ermakov
            Andrey Ermakov +54.93
            27.12.2020 18:28

            мне кажется пдф тут не помогут=) 

            ДА естати есть книжка Юры Калачева, Векторное управление заметки практика, в пдф в сети на русском.

            • hex oct bin
              hex oct bin +43.63
              27.12.2020 22:35

              Видел такую, если честно мне не понравилась. Мануала статьи у ТИ лучше написаны.

              • Andrey Ermakov
                Andrey Ermakov +54.93
                27.12.2020 22:55

                Ну мне не ведомо как у ТИ написано=) , но книжка на русском что многое меняет.

          • Hate_Matlab
            Hate_Matlab-10.62
            27.12.2020 23:14

            Не важно в какой системе координат у вас модель двигателя.

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

            В реальной реализации весь вектор выглядит 

            1. Измерили А Б С

            2. Измерили угол ротора

            3. Преобразование Кларк АБС->Альфа Бета

            4. Преобразование Парка Альфа Бета-> DQ

            Не понял, вы предлагайте саму модель двигателя перевести в qd? Но-но, ща ещё и она работать перестанет, мне этого не надо. Давайте пусть сам двигатель останется в альфа-бета.

            Здесь важно что угол этого преобразования Угол ротора+ Угол скольжения

            А Help пишет, что угол "тета" - это w*t, я так его вон и задал. Чё, хелп опять по факту бесполезный?

            5. Модель поля ротора Расчет скольжения

            6. Регуляторы Id Iq Im.

            7. Обратный Парк

            Не воспринимаю поток. У меня схема по рисунку 2.1 на стр. 23. Там просто интегрирование частоты по времени. Я его пытаюсь заключить между двумя преобразователями Парка - прямым и обратным, чтобы сам двигатель оставался в неподвижно СК.

            • Andrey Ermakov
              Andrey Ermakov +54.93
              28.12.2020 20:16

              Да проблема в том что вы вообще не понимаете что должно быть на выходе.

              Модель двигателя в АЛьфа Беата питается наряжениями после InversePark.

              Модель двигателя в DQ просто выходами регулятора.

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

              На рис 2.1 подробно представлена структура СУ для управления током.

              • Hate_Matlab
                Hate_Matlab-10.62
                30.12.2020 18:45

                Модель двигателя в АЛьфа Беата питается наряжениями после InversePark.

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

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

                Ну вот у меня эта частота - это потокосцепление ротора "альфа" поделить на ток статора "бета". Только вопрос этой темы остаётся - у меня на "входе" две трансформации Парка, а на "выходе" одна, так и должно быть? И если да, то куда именно я её должен вернуть в двигателе (в этом пособии она возвращается непонятно во что - я к этому и веду, что было бы там в блоках матлаба, было бы понятнее)?

                Да проблема в том что вы вообще не понимаете что должно быть на выходе.

                На рис 2.1 подробно представлена структура СУ для управления током

                Да, я прочёл название рисунка, там ещё было управление напряжениями (но схема громоздкая, а я иду на упрощение). Мне не особо важно, через что конкретно управлять машиной - током, напряжением, да хоть ломом - мне надо, чтобы при изменении нагрузки на валу не менялась скорость ротора. Вернее менялась сначала, но быстренько возвращалась на ту же величину, что и была... ну короче, не мне вас учить тому что такое управление - вы и так знайте про это больше меня...

                Если вы можете посоветовать способ регулировки попроще, то я сердечно вас прошу - буду только рад, мне не доставляет мучаться с этой прогой. Я векторное выбрал просто потому, что вот нашёл более менее приближённые к матлабовским схемы его формирования, но всё равно всё пошло как обычно. Так что если посоветуйте другой метод, то, пожалуйста, так же с максимально приближенными к матлабу схемами. 

                 

                 

          • Andrey Ermakov
            Andrey Ermakov +54.93
            30.12.2020 20:34

            Ну вот у меня эта частота - это потокосцепление ротора "альфа" поделить на ток статора "бета". Только вопрос этой темы остаётся - у меня на "входе" две трансформации Парка, а на "выходе" одна, так и должно быть? И если да, то куда именно я её должен вернуть в двигателе (в этом пособии она возвращается непонятно во что - я к этому и веду, что было бы там в блоках матлаба, было бы понятнее)?

            Не понимаю в чем вопрос +) после регуляторов инверсный парк  будет Алфа бета ее на вашу модель

            • Hate_Matlab
              Hate_Matlab-10.62
              30.12.2020 21:59

              Да вон он этот обратный преобразователь на скриншоте самый левый. Суть всей этой темы в её шапке:

               Я где-то промахнулся или выходной сигнал надо просто блоком Demux разбить на 2?

              Вопрос в том, что если я правильно собрал обратную связь, то КУДА надо возвращать единственный сигнал от инверсивного преобразователя Парка.

              На входе у меня два Парка.

              На выходе у меня один Парк.

              Понимайте???

              Во что он выходит??? Я думал, что входят потокосцепление ротора и ток статора, то и выходят они же, но нет - выходит что-то одно, а что именно? Я не понимаю, что в этой методичке значит блок "е-". Вернее я понимаю его, как там в этой методичке он описан. Но какое место, какой блок... что является этой экспонентой в Матлабе я не понимаю! 

            • Andrey Ermakov
              Andrey Ermakov +54.93
              31.12.2020 20:15

              я вам по пунктам расписал что откуда выходит в классической структуре управления, что вы там делаете мне не ведомо. Обратные преобразования дают 2 сигнала ( альфа бета) напряженией для управления, или 2 сигнала токов или 2 сигнала потоков. Один инверсный парк в simulink это 3 мультиплексированных сигнала Alpha Beta Zero вы в хелп то по блоку загляните.

              • Hate_Matlab
                Hate_Matlab-10.62
                1.01.2021 16:21

                Ну то есть у меня обратная связь собрана неправильно? Ну вот почему сразу так и не написать?