Матлаб симулинк – моделирование и и симуляция динамических систем для Simulink
Содержание
Управление электроприводом с помощью MATLAB, Simulink
27 июня 2018
10:00
Мероприятие бесплатное Регистрация обязательна и заканчивается за сутки до начала мероприятия
Павел Рословец, инженер ЦИТМ Экспонента
Cпециализируется на физическом моделировании, системах управления и навигационных системах. В 2013 году окончил МГТУ им. Н.Э. Баумана по специальности «Приборы и системы ориентации, стабилизации и навигации» имеет опыт разработки в среде MATLAB более 6 лет.
Роман Мнев, инженер ЦИТМ Экспонента
Специализируется на физическом моделировании и системах управления. В 2010 году закончил МЭИ(ТУ) по специальности «Электрические машины», в 2014 году защитил кандидатскую диссертацию по специальности «Электрические станции и электроэнергетические системы». Имеет опыт разработки в среде MATLAB более 9 лет, основные направления деятельности — электроэнергетика, силовая электроника, слаботочная электротехника. До перехода в ЦИТМ Экспонента работал в областях прикладной науки и авиационно-промышленного комплекса.
Михаил Песельник, ведущий инженер ЦИТМ Экспонента
Михаил Песельник — ведущий инженер ЦИТМ Экспонента по прототипированию алгоритмов в реальном времени, а также по процессам верификации и валидации при проектировании встраиваемых систем повышенной надежности. Михаил имеет квалификацию магистра по специальности «Системный анализ, управление и обработка информации» в МГУЛ. Михаил имеет многолетний опыт работы с инструментами MathWorks в области разработки алгоритмов управления и является профессиональным тренером по модельно-ориентированному проектированию. До перехода в ЦИТМ Экспонента, он работал в мировых автомобильных компаниях, разрабатывая системы управления для двигателей внутреннего сгорания. Дамы и господа!
Компания Mathworksи центр «Экспонента» приглашают вас принять участие в бесплатном семинаре «Управление электроприводом с помощью MATLAB, Simulink».
На семинаре будет показано, как с помощью инструментов MATLAB&Simulinkвозможно построение системы управления в автоматизированном режиме, при котором разработка может вестись силами инженера профильной квалификации без привлечения сторонних ресурсов.
Существенно упростить и ускорить разработку позволит применение комплекса полунатурного моделирования (машины реального времени). На семинаре будет продемонстрировано использование таких комплексов на всех этапах проектирования. Демонстрация будет проводиться на примере КПМ «Ритм» – машины реального времени, разработанной в ЦИТМ «Экспонента».
В первой части семинара мы рассмотрим различные подходы к построению модели электропривода, а также уточним модель на основании экспериментальных данных, снятых с реальной электрической машины, для достижения удовлетворительной точности модели. Экспериментальные данные будут получены на месте с помощью машины реального времени.
В продолжение семинара мы покажем, как быстро разрабатывать и настраивать алгоритмы управления электроприводом в соответствии с требованиями технического задания. Отдельное внимание уделим разработке логики перехода между режимами, в том числе реакции на аварийные состояния.
В завершающей части семинара мы покажем, как от разработанного и протестированного алгоритма перейти к его реализации на целевой платформе. Будут показаны все этапы процесса, обеспечивающие плавный и бесшовный переход от математического алгоритма в среде MATLAB&Simulinkк полноценной системе управления на базе микроконтроллера STM32. Бесшовность перехода обеспечивается последовательным переходом от быстрого прототипирования (с помощью КПМ «Ритм») к автоматической генерации исходного кода на языке C.
Дополнительно будет показана возможность безопасного тестирования реализованной системы управления по методике «железо в контуре», или Hardwareintheloop, для чего также будет применён КПМ «Ритм».
Семинар будет интересен инженерам и специалистам в области разработки систем электропривода и электроснабжения.
Инфопартнеры:
Подробная программа семинара
09:30 – 10:00
Регистрация, приветственный кофе
10:00 – 11:00
MATLAB & Simulink — язык инженерного моделирования
Моделирование электропривода
Общие принципы построения моделей
Способы представления электротехнических компонентов
Быстрый старт – готовые блоки машин и систем управления
Выбор степени детализации представления силовой электроники
Автоматическая генерация кода для микроконтроллера
Программно-аппаратное моделирование (Hardware in the loop)
Реализация на микроконтроллере
Связанные продукты:
27 июня 2018
10:00
Москва, 2-й Южнопортовый проезд, д. 31, стр. 4
Мероприятие бесплатное
Регистрация закрыта
matlab.ru
MATLAB — высокоуровневый язык технических расчетов
MATLAB предоставляет инструменты для получения, анализа и визуализации данных, позволяющие исследовать проблему быстрее, чем это возможно с помощью электронных таблиц или традиционных языков программирования. Также вы можете документировать результаты в виде графиков, отчётов или публикации кода MATLAB.
Доступ к данным
MATLAB позволяет вам получать доступ к данным из файлов, других приложений, баз данных, внешних устройств. Вы можете читать данные из файлов таких популярных форматов как Microsoft Excel, текстовых или двоичных файлов, изображений, аудио и видео файлов, научных форматов (netCDF и HDF). Функции ввода-вывода позволяют работать с файлами данных любых форматов.
Используя расширения MATLAB можно получать данные с различных устройств, таких как последовательный порт компьютера или звуковая карта, а также потоковые данные в реальном времени с измерительных устройств непосредственно в MATLAB для анализа и визуализации. Помимо того, вы можете управлять такими приборами, как осциллографы, анализаторы сигналов и генераторы колебаний специальной формы.
Анализ данных
MATLAB позволяет управлять, фильтровать и осуществлять предварительную обработку данных. Вы можете исследовать данные для нахождения трендов, проверки гипотез, построения описательных моделей. В MATLAB включены функции для фильтрации, сглаживания, свёртки и быстрого преобразования Фурье (FFT). Продукты-расширения включают возможности подбора кривых и поверхностей, многомерной статистики, спектрального анализа, анализа изображений, идентификации систем и другие инструменты анализа.
Визуализация данных
MATLAB предоставляет набор встроенных функций построения 2D и 3D графиков, а также функции объёмной визуализации. Вы можете использовать эти функции для визуализации и как средство представления обрабатываемой информации. Графики могут быть созданы как интерактивно, так и программно.
В галерее графиков MATLAB есть примеры множества способов представления данных графически. Для каждого примера можно посмотреть и скачать исходный код для использования в ваших приложениях MATLAB.
matlab.ru
Запуск моделей Simulink на аппаратных платформах
В релизе MATLAB R2012a появилась возможность запускать модели Simulink на поддерживаемых аппаратных платформах. Таким образом, Simulink предлагает встроенную поддержку для прототипирования, тестирования и запуска моделей на недорогом целевом оборудовании, включая Arduino®, LEGO® MINDSTORMS® NXT, PandaBoard и BeagleBoard. Вы можете проектировать алгоритмы в Simulink для систем управления, робототехники, обработки звука и систем компьютерного зрения, и видеть, как они работают на реальном железе.
Многие, кто читал эту новость, могли задаться вопросом — а что нового в этом функционале? Ведь еще до релиза R2012a у нас была возможность работать из MATLAB/Simulink с Arduino, LEGO и BeagleBoard — скачав соответствующую поддержку с File Exchange.
Если вкратце, то основное отличие Simulink Run on Target Hardware (ROTH) заключается в том, что для запуска моделей Simulink на железе не требуется Embedded Coder. Для работы этого функционала достаточно иметь студенческую версию Simulink.
Какие основные возможности Simulink ROTH?
Автоматическая установка и настройка поддержки целевого оборудования
Библиотека блоков Simulink для аппаратных интерфейсов: I/O портов, датчиков и исполнительных механизмов
Выстроенный рабочий процесс для разработки, выполнения и отладки ваших алгоритмов непосредственно на поддерживаемом обрудование
Прямая связь между Simulink целевым оборудованием
Интерактивная настройка параметров и мониторинг сигналов во время работы вашего приложения
Развертывание модели для автономного выполнения
Главная целевая аудитория ROTH — это, конечно, студенты и преподаватели. Им требуется недорогое оборудование, и нужно, чтобы их алгоритмы просто работали на этом оборудовании.
Есть два подхода к исследованию и анализу свойств систем – это симуляция и физическое взаимодействие.
В данном контексте, симуляция – это конфигурация, при которой сам алгоритм, динамика объекта управления, и внешняя среда, с которой они взаимодействуют – все это моделируется на компьютере.
Физическое взаимодействие – это сценарий, при котором настоящее устройство взаимодействует с физическим миром посредством датчиков и исполнительных механизмов. Алгоритм при этом может работать либо на компьютере и связываться с устройством, либо может работать непосредственно на процессоре, установленном в устройстве.
Именно здесь большое значение имеет обучение на реальных проектах (Project-Based Learning).
Студенты обучаются, выполняя определенные задачи. Это весело, это бросает вызов студентам, и часто позволяет применить на практике полученные теоретические знания.
Методика обучения на проектах основана на непосредственном экспериментировании с настоящими задачами. Взаимодействие с настоящей средой стимулирует процесс обучения у студента и предлагает возможности по исследованию и анализу сложных проблем. Работа над проектом также предоставляет возможности для командной кооперации и пониманию того, как устроен инженерный процесс – от первоначальной идеи до конечной реализации.
Итак, какие преимущества вы получаете при использовании технологии Simulink Run on Target Hardware? Во-первых, вы получаете из модели исполняемый файл и запускаете его на целевом железе нажатием одной кнопки. Это позволяет студентам взаимодействовать с реальным железом, при этом избегая работы с низкоуровневыми функциями и интерфейсами. Во-вторых, вы работаете в графической среде и разрабатываете алгоритм на языке блок-схем, что позволяет сконцентрироваться на самом алгоритме, нежели чем на вопросах, связанных с его реализацией. В-третьих, Simulink также предлагает широкий набор расширений, называемых тулбоксами, которые предоставляют дополнительные возможности и функционал для создания приложений обработки изображений и видео. Это упрощает создание продвинутых алгоритмов, которые применяются в индустрии.
В этом небольшом видео вы можете посмотреть, каким образом осуществляется работа с целевым оборудованием из Simulink на примере платы BeagleBoard.
matlab.ru
MATLAB & Simulink для моделирования систем
Код тренинга: MSRS
MATLAB & Simulink для моделирования систем представляет собой спецкурс, состоящий из 2-х частей: hands-on мастер-класса и практической работы. Мастер-класс проходит в 1 день, где сертифицированный тренер MathWorks на простых и сложных лабораторных примерах, поможет вам получить или восполнить недостающие знания в средах MATLAB и Simulink, что делает полезным участие обучающихся любого уровня.
Практическая работа длится 2 недели. В течение которой, сертифицированные инженеры департамента MathWorks дистанционно консультируют слушателей в решении практической задачи, выбранной ими совместно с тренером в конце мастер-класса.
Курс хорошо подходит для объективного определения уровня навыков моделирования в группе. В результате курса формируется адаптированный план обучения группы на курсах MATLAB и Simulink повышенной сложности. Часть полученных в мастер-классе знаний о возможностях среды закрепляются в совместном решении группой выбранной прикладной задачи, при консультационном участии тренера.
Цели курса
Быстрое восстановление и расширение знаний о среде MATLAB и Simulink в части моделирования систем и алгоритмов управления. (5ч)
Консультационная помощь в решении средствами MATLAB и Simulink прикладной задачи, стоящей перед группой. (10ч)
Разработка рекомендованного плана обучения и развития группы сотрудников, исходя из производственных задач и уровня знаний в группе. (1ч)
Предварительная подготовка
Необходимы знания математики на уровне высшего образования и знание основ ТАУ (теории автоматического управления). Опыт работы с MATLAB или Simulink НЕ являются обязательными.
Курс предоставляется только в групповом формате в помещении заказчика, оборудованном проектором и компьютерами\ноутбуками для учащихся. В стоимость обучения входит предоставление на время обучения и выполнения лабораторного практикума необходимого специализированного ПО (установка силами заказчика).
Необходимо предварительное согласование списка практических вопросов и возможных тестовых задач для наполнения консультационно-практической части курса.
Заявка на тренинг Подробнее
Модуль 1. MATLABRefresher (30’)
Работа с элементами интерфейса MATLAB
Определение данных и основы работы с матрицами
Индексирование данных
Основы визуализации
Импорт и экспорт данных
Модуль 2. Построение моделей в Simulink(30’)
Построение модели
Запуск и проверка модели с разными сценариями
Настройка параметров запуска модели
Модуль 3. Идентификация динамических систем (60’)
Построение модели объекта на основе экспериментальных данных (Идентификация черного ящика)
Выбор оптимального порядка модели
Анализ точности модели
Импорт модели в Simulink
Сравнение модели с оригиналом
Модуль 4. Разработка алгоритмов управления (60’)
Построение модели объекта управления
Подбор структуры и настройка регулятора
Автоматизация рутин при разработке алгоритмов управления
Модуль 5. Управляющая логика (60’)
Работа с конечными автоматами и машинами состояний
Объявление состояний и описание переходов между ними
Объявление интерфейсов с Simulink
Модуль 6. Выбор практической групповой задачи (60’)
Обзор методики оценки компетенций — Model-Based Design Adoption grid
Определение положения группы на Model-Based Design Adoption grid и выбор фокуса для практической части курса исходя из производственных задач
Написание технического плана работ по практической задаче*
Модуль 7. Решение прикладной задачи
Согласно плана работ (см. выше)
Заключение.
Ознакомление заказчика с рекомендованным планом обучения группы
Ознакомление заказчика с рекомендованным планом внедрения и развития методик модельно-ориентированного проектирования
* Практическая часть должна быть завершена в течение 2х недель после окончания лекционной части курса. Настоятельно рекомендуется использовать командные практические задачи.
В образовательных целях сделал себе подарок на ДР: купил платку Марсоход2. Познакомился с верилогом, даже решил одну небольшую задачку на нем. Но в универе нам расхвалили матлаб и показали как генерировать прошивку для ПЛИС прямиком по модели из Simulink. Показали теоретически, т.к. никаких отладочных плат в живую нет. Но тема больно уж интересная, поэтому было решено подружить матлаб с имеющимся марсоходом, что вроде как получилось. Под катом «как поморгать светодиодами из Matlab» со скриншотами
Что нам понадобится:
Quartus 2 (у меня 13.1 х64) с установленными драйверами программатора
Matlab/Simulink (у меня 2014а, с модулями HDL Coder)
Умение (хотя бы на начальном уровне) рисовать схемки в Simulink
Желание поиграться
Настраиваем Matlab
Ни о каком марсоходе матлаб изначально не знает. Не знает он и где установлен квартус. C этого и начнем. Запускаем Matlab и в консоли пишем:
Путь заменяем на свой. Теперь необходимо добавить и настроить нашу плату. Опять же в консоли:
fpgaBoardManager
Появилсь окно (изначально оно пустое либо с предустановленными «монструозными» отладочными платами):
Жмем «Create Custom Board«. Появляется окно мастера. Заполняем, указывая имя, которое хотим видеть, производителя, выбираем чип. Если вдруг у вас на JTAGе висит несколько микросхем, то выбираем номер, под которым интересующая нас ПЛИС
Прокручиваем страницу до конца и нажимаем «Next«. Открывается новая страница
Где выбираем интерфейс подключения FPGA-In-The-Loop (у нас это JTAG без вариантов), ставим галочку «User defined I/O» (как видим из пояснения, требуется HDL Coder). Пару слов о режимах работы:
FPFA-In-The-Loop
В этом режиме ПЛИС используется как калькулятор. Данные отправляются в плату, там обрабатываются и принимаются обратно. Удобно для отладки или ускорения математики.
FPGA Turnkey
В этом режиме проект заливается в плис и работает «внутри». В этом режиме становятся доступны выводы ПЛИС. Т.е. это наш режим для моргания светодиодом.
Далее настраивается вход тактирования, у нас это 100МГц на 25 выводе. Входа сброса нет, хотя при желании, наверное, можно выбрать кнопку. На этой странице все, жмем Next.
Тут нам предлагают указать выводы, которые захотим использовать. Опишем светодиоды и кнопки. Жмем Add New, пишем имя сигнала, описание если надо, тип вход или выход, ширину в битах и номера используемых пинов, прям через запятую начиная с младшего бита. Номера выводов смотрим в документации на плату. Когда заполнили еще раз жмем Next. Теперь нам предложат проверить, что мы настроили.
Чтобы проверить все сразу ставим все галочки, выбираем выход со светодиодами (если они есть, а они у нас есть) и жмем «Run selected test(s)«. Появится предупреждение, что это может занять от 10 минут до получаса в зависимости от скорости вашей системы (у меня занимает примерно полторы минуты). Не забываем подключить плату и Соглашаемся.
По завершении на светодиодах запустится счетчик. Если так и есть — отлично, иначе придется разбираться что и где не проходит.
Теперь плата сконфигурирована, жмем Finish и сохраняем файл с настройками платы (см в приложении). Загрузить имеющийся файл можно по кнопке Add Board from file с первого скриншота.
Simulink
Теперь, когда мы настроили плату — пора нарисовать схему, которую будем «зашивать» в ПЛИС. Главная схема Simulink-а должна содержать подсистему, которая уже будет реализована в ПЛИС. Сначала попробуем соединить имеющиеся кнопки со светодиодами. А чтобы проверить (хоть и проверять по сути нечего) добавим источник сигнала — счетчик. Т.к. система имеет 2 кнопки, то счетчик должен быть двухбитным. Добавляем пустую подсистему и осцилограф. соединяем их. Получили схему:
На подсистеме жмем правой кн. Мыши, в контекстном меню HDL Coder >> HDL Workflow adwisor. Откроется очередной мастер. В дереве слева выбираем пункт 1.1 Set target device…. И заполняем в соответствии с тем, чего хотим: Target workflow — FPGA Turnkey, Target platform — new_marsohod2 (или ваше название), Synthesis tool — Altera Quartus II. У меня эта вкладка при смене значений из выпадающих списков иногда ведет себя несколько неадекватно, поэтому кнопки Apply, Refresh и переход туда-обратно в дереве слева помогут правильно заполнить эту вкладку. Как только заполнили жмем Apply, а потом Run this Task. После в дереве слева этот пункт должен получить зеленую галочку. Если вылезли ошибки — придется читать что не получилось и исправлять (возможно пути к квартусу или еще что)
Если все прошло удачно — переходим на следующую вкладку — «1.2. Set target interface«. Тут нам предлагают указать входы и выходы подсистемы и ранее указанных сигналов ПЛИС. Соединяем вход с кнопками, выход со светодиодами. Тут matlab сам увидит размерности, проверит их и обрежет по необходимости и возможности. Опять жмем Apply и Run this task
Если все удачно — переходим к следующей вкладке, там можно исправить тактовую частоту. Ничего интересного там нет, просто жмем Run this task, ждем и идем дальше. Остальные вкладки в общем случае можно не трогать, поэтому выбираем последний пункт 5.2, жмем в контекстном меню Run to selected task и ждем. При первом запуске обычно на этапе «2.1 Check global settings» вылезает предупреждение, что уровни ошибок и предупреждений настроены неправильно.
Прокручиваем чуть-чуть страницу и жмем «Modyfy all» и опять запускаем обработку всех пунктов. Когда все задачи будут обработаны — плата уже будет прошита и загорятся 2 светодиода. Нажимая на кнопки можно их отключать. Т.к. кнопки подключены с подтяжкой к питанию — такое поведение полностью корректно. Т.е. наша подсистема оказалась внутри ПЛИС, к ее входу подключены кнопки, а к выходу — светодиоды. Используя блоки из разделa HDL Coder можно наворотить что-нибудь сложное внутри этой подсистемы, моделируя работу в Simulink, а потом создать прошивку даже не открывая Quartus и не видя никакого кода.
Так, например, реализовав такую схему в подсистеме
Получим на светодиодах значение на кнопках (умноженное на 4), но с значительной инерцией.
По сути это IIR — фильтр с бесконечной переходной характеристикой, но из-за цифровой реализации на fixed-point имеет проблемы с точностью и «залипаниями» (на светодиодах значение +-1 от того, что должно быть).
А где же всетаки моргание светодиодами?
Создадим новую модель и добавим в нее такую подсистему:
Настройки блоков:
Тут унас происходит сдвиг вправо на 22 бита. Необходим, чтобы наглядно было как сменяются значения на светодиодах, а для этого надо уменьшить частоту, т.е. взять старшие биты счетчика.
Тут у нас преобразуется тип выходных данных. На выходе блока будет число с фиксированной точкой, 4 разряда и без дробной части (так приходится изголяться, когда нужно произвольное количество разрядов. встроенного типа uint4 нет, есть только uint8, uint16 и uint32). Разрядность счетчика — 26. На Sample Time у него можно забить, т.к. оно учитывается только при моделировании. В железе здесь будет CLK. Собственно все что здесь происходит — счетчик тактовых импульсов, сдвиг его значения на 22 вправо (выделяем старшие 4 бита), преобразование типа данных (указываем матлабу размерность выходных данных. иначе оно отказывается присоединять к выходу светодиоды, т.к. оператор сдвига не преобразует тип данных(у него на выходе все так же 26 бит)). Теперь запускаем HDL Workflow adwisor и как выше описано настраиваем и выполняем все пункты. После всего этого светодиоды замигают демонстрируя работу счетчика.
Аналогично можно получить исходные коды на VHDL или Verilog если выбрать Generic ASIC/FPGA в первом пункте и обновить остальные настройки. После полученные файлы можно импортировать в квартус и использовать как душа ляжет наравне со своими модулями.