Программирование DSP Семинар MATLAB, посвященный генерации кода в Simulink Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Семинар MATLAB, посвященный генерации кода в Simulink Печать
Добавил(а) microsin   

Вчера побывал на семинаре "Разработка высокоточных встраиваемых систем в MATLAB и Simulink" (г. Москва, 3-я ул.Ямского поля, д.26, РЭДИССОН БЛЮ БЕЛОРУССКАЯ, Конференц - зал "Моцарт"). Понравилось - красивая гостиница, угощали чаем/кофе с кексиками и кешью, в туалете играл хороший lounge. Оформлено на высоком уровне, красиво. Проводил семинар Михаил Песельник, ведущий инженер департамента MathWorks.

MathWorks seminar 20160322a MathWorks seminar 20160322b MathWorks seminar 20160322c MathWorks seminar 20160322d MathWorks seminar 20160322e

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

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.

 

Добавить комментарий


Защитный код
Обновить

Top of Page