Как получить доступ к массиву структур в simulink? - PullRequest
0 голосов
/ 28 сентября 2011

У меня проблема с тем, что мне нужно получить доступ к функции из dll в matlab / Simulink в rtw.Это должно работать как функция, но у меня есть необходимые параметры в организованном массиве структур.

Теперь вопрос в том, как мне связаться с ними, когда я хочу вызвать свою функцию DLL?

Или есть лучший способ (например, файлы Matlab 2-го уровня или что-то подобное)?Чистая симуляция (без RTW) довольно хорошо работала с файлами уровня 2 м, но я не могу написать файл tlc для их компиляции.Я не нашел много в сети и документации только о источниках C.

Спасибо, Кристиан

Ответы [ 3 ]

1 голос
/ 29 сентября 2011

Для сигналов в Simulink вы запрашиваете массив шин . Существует аналогичная поддержка использования массивов структур для параметров. Для вызова внешней функции вы можете обратиться к устаревшему инструменту кода . Вы также можете использовать функциональный блок MATLAB для вызова своей внешней библиотеки DLL.

0 голосов
/ 24 октября 2011

В конце я закодировал проблему в C и использовал массив, в котором я определил порядок элементов.Затем я написал несколько интерфейсных функций для доступа к этой «виртуальной» структуре.

Это не очень хорошее кодирование, но самый простой способ, который я нашел, и он переносимый.

Спасибо

0 голосов
/ 29 сентября 2011

В дополнение к тому, что @MikeT говорит:

Создание кода из M-функций уровня 2 проблематично. Читать это: http://www.mathworks.co.uk/help/toolbox/simulink/sfg/f7-67622.html#brgscav-1

Кроме того, M-S-функции обычно работают медленно, поскольку они выполняются в интерпретаторе MATLAB: http://blogs.mathworks.com/seth/2010/10/28/tips-for-simulation-performance/

...