matlab — C / C ++ Wrapper для моделей SIMULINK

У меня очень большой программный проект на C / C ++ в Visual Studio и Eclipse. Есть некоторые сторонние программы в виде моделей SIMULINK. Возможно ли в настоящее время:

1) Написать функции оболочки C / C ++ для моделей SIMULINK?
2) Вызывать функции из внешней среды, такие как проекты VS или Eclipse C / C ++, для выполнения интеграции и дальнейших задач?

Я знаю, что вы можете использовать функции MEX (MATLAB Exec.), Которые являются C / C ++ или FORTRAN, обернутыми для использования MATLAB. Но это не идеально для меня.

Случай использования

Мой пример использования основан на моделировании и симуляции, но мои подсистемы довольно разнообразны с точки зрения формата данных. 50% в C / C ++, 35% в моделях SIMULINK, а остальные в двоичных исполняемых файлах, объектном коде, символьных данных и т. Д. Я занимаюсь некоторым сложным моделированием системы; Извините, но не могу сказать вам больше из соображений защиты.

Судя по полученным ответам, люди хотят просто использовать то, что предлагает Mathworks. Мое намерение состояло в том, чтобы получить больше как ответ да нет, но до сих пор у меня тоже были хорошие объяснения.

ОБНОВИТЬ

Мне нужно будет оценить встроенный кодер SIMULINK и посмотреть, сколько дополнительных усилий потребуется для полировки сгенерированного кода. Я читал, что во встроенном кодере есть средство генерации кода на уровне производства; должно быть интересно.

0

Решение

Есть два варианта в зависимости от ваших требований:

  • преобразовать модели Simulink в C, используя Simulink Coder. Это эффективно выводит вас из среды Simulink, поэтому интеграция функциональных возможностей модели в существующую среду идентична включению любого другого кода на языке Си. Конечно, для этого вам нужен доступ к Simulink Coder.

  • Вызов MATLAB Engine. Обратите внимание, вы не можете позвонить только Simulink. Вы вызываете MATLAB и запускаете различные команды MATLAB для загрузки, выполнения и опроса модели Simulink.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]