Вчера побывал на семинаре "Разработка высокоточных встраиваемых систем в MATLAB и Simulink" (г. Москва, 3-я ул.Ямского поля, д.26, РЭДИССОН БЛЮ БЕЛОРУССКАЯ, Конференц - зал "Моцарт"). Понравилось - красивая гостиница, угощали чаем/кофе с кексиками и кешью, в туалете играл хороший lounge. Оформлено на высоком уровне, красиво. Проводил семинар Михаил Песельник, ведущий инженер департамента MathWorks.
Михаил провел довольно толковую и полезную лекцию, без лишней зауми. ИМХО, было интересно и для профессионалов, и для новичков. По крайней мере я почти все понял. Показывал моделирование и работу реального железа - контур управления синхронным двигателем. Что запомнилось:
1. Показывали Code Composer Studio, среда разработки от Texas Instruments, но типа можно и другие среды использовать.
2. Все основано на моделях как "источнике правды". Модели можно составлять как снизу, от железа, так и сверху, от концепции системы.
3. Формат фиксированной точки настраивается.
4. Для импорта внешних данных см. Simulink Coder -> раздел Source. Можно импортировать из Excel и других форматов. WAV-файлов нет.
5. Чтобы можно было генерировать код для микроконтроллеров, нужен Embedded Coder с неким пакетом опций, а также нужен дополнительный скачанный пакет для поддержки нужного микроконтроллера.
6. Хвастались разработкой поддержки для русских процессоров NeuroMatrix.
7. Разработка проекта состоит из 4 основных шагов: моделирование, симуляция, генерация кода, тестирование. Последний шаг подразумевает итерации на каждом из предыдущих шагов с целью детализации модели.
8. Генерировать код можно из Matlab Coder (без Simulink, используется для разработки приложений PC и dll), Simulink Coder (быстрое прототипирование систем, разработка систем реального времени на микроконтроллерах) и Embedded Coder (генерация производственного кода для микроконтроллеров, поддерживаются MCU, DSP, верификация кода с процессором в контуре PIL, оптимизация кода под конкретный процессор).
9. Есть также HDL Coder для генерации кода VHDL и Verilog (программирование ASIC и FPGA).
10. Есть также PLC Coder для программирования логических контроллеров.
11. Генератор кода Embedded Coder выбирается настройкой System target file -> ert.tlc.
12. По умолчанию используется тип данных double (число с плавающей точкой). С целью повышения эффективности (скорости) кода желательно в последствии перейти не числа с фиксированной запятой. Преобразования помогает делать Fixed Point Tool, в результате тип данных из double превращается в fixdt(1, 16, 12). В этом примере значения в скобках означают 1 бит на знак, 16 бит всего на число, 12 бит на дробную часть числа. Проект нужно переводить на фиксированную точку не целиком, а по отдельным мелким частям, каждый раз проверяя результат с помощью инструмента Control ToolBox.
13. Code Generation Advisor: настроек проекта так много, что этот инструмент целесообразно применять для стартовой настройки опций проекта.
14. PIL расшифровывается как Processor-In-Loop, SIL как Software-In-Loop. PIL означает, что все вычисления в контуре (т. е. в процедуре, вызываемой по таймеру) делает именно процессор, и результаты его вычислений сравниваются с вычислениями в модели SIL.
15. Control ToolBox позволяет сравнивать между собой прогоны симуляций (SIL, PIL) и оценивать погрешность.
Российский офис предлагает услуги по обучению и адаптации нестандартного железа (в том случае, если его поддержка пока не анонсирована).
[Ссылки]
1. Разработка высокоточных встраиваемых систем в MATLAB и Simulink site:matlab.ru. |