Методы для интеграции внешнего С кода в Simulink
30.04.2019
Часто перед нами возникает необходимость интегрировать внешний С код в модель Simulink.
Когда это может быть полезно?
Например:
- У нас есть существующий код, который реализует определенный алгоритм, и мы хотим быстро встроить его в модель Simulink.
- Мы хотим интегрировать собственные драйвера устройств в Simulink.
Существует несколько способов интеграции внешнего кода в Simulink:
- При помощи S-функций.
- При помощи вызова функции coder.ceval в блоке MATLAB Function.
- При помощи Stateflow.
Если говорить про интеграцию внешнего кода при помощи S-функций, то есть несколько способов создания S-функций:
- Legacy Code Tool. Этот инструмент создает C MEX S-функцию из существующего С кода и спецификаций, которые вы задаете при помощи кода MATLAB.
- S-Function Builder. Этот блок создает C MEX S-функцию из спецификаций и фрагментов кода, которые вы задаете при помощи графического интерфейса пользователя.
- Написание S-функции вручную. Вы можете написать C MEX S-функцию с нуля. В документации приведены шаблоны для C MEX S-функций, которые вы можете использовать как начальную точку для создания собственных S-функций.
Обзор этих трех методов в документации дает представление об их преимуществах и недостатках.
Если вы уже запутались, то диаграмма ниже, надеюсь, поможет вам разобраться:
В этом видео продемонстрирован подход к интеграции внешнего С кода с использованием Legacy Code Tool.
Комментарии