Я хотел бы спросить вас, может ли модель S-функции C mex в Simulink снизить время выполнения dSpace, вместо того, чтобы иметь модель с блоками и функциями.
Я хотел бы спросить вас, может ли модель S-функции C mex в Simulink снизить время выполнения dSpace, вместо того, чтобы иметь модель с блоками и функциями.
Ответы:
Краткий ответ: это зависит от того, какие блоки вы заменяете, и даже в этом случае эффекты могут быть незначительными.
Взаимосвязанный набор стандартных блоков Simulink (усиление, сумма, интеграл, производная и т. Д.) Определенно будет одинаково быстрым или быстрым, чем любая пользовательская функция, которую вы пишете, CMEX или нет. С другой стороны, замена функционального блока MATLAB на S-функцию CMEX может иметь некоторый эффект, но это очень трудно определить.
Эффект от использования S-функции CMEX будет зависеть от вашего умения писать эффективный код на C, и даже тогда эффект может быть небольшим по сравнению со временем выполнения других частей вашей модели.
Это также не так просто, как спросить, какой блок более эффективен в «Нормальном режиме» Simulink. dSpace использует комбинацию Simulink Coder и собственного проприетарного программного обеспечения для преобразования вашей модели Simulink в код C, который затем компилируется в исполняемый файл. Этот исполняемый файл затем запускается в реальном времени аппаратным обеспечением dSpace. Следовательно, в процессе перевода из Simulink в C-код преимущества использования S-функции CMEX могут быть сведены на нет.
* Примечание: я не работал с dSpace, но в своем исследовании я использую очень похожий программный пакет под названием QUARC, который в основном является канадским эквивалентом.