Перестраиваемые переменные Simulink и семинар в реальном времени (RSIM) - PullRequest
0 голосов
/ 06 октября 2018

В данный момент я работаю над моделью Simulink и заинтересован в том, чтобы получить ее код C (файл batch /.exe), чтобы работать с ним без дальнейшей компиляции.Я уже сгенерировал код (с использованием RSIM), и все работает отлично, когда я запускаю сгенерированный файл .exe, используя разные входы такой же длины, что и входы, использованные при создании пакета.Однако, когда я изменяю длину входных данных (мои множественные входные данные различной длины считываются из блоков «из файла», которые загружают файлы .mat), симуляция завершается сбоем.Таким образом, мой вопрос:

Есть ли способ указать в сгенерированном коде или MATLAB / Simulink (перед компиляцией), что всякий раз, когда я хочу запустить пакет, я хотел бы изменить длину ввода так, чтобы вседлина переменных может быть установлена ​​в соответствии с вводом?Что-то вроде объявления переменной, которая задает длину остальных переменных

Чтобы легко проиллюстрировать мою проблему, скажем, что мои переменные длины ввода подключены к входному порту многопортового коммутатора (он получает разные файлы .mat с разнымидлина).Таким образом, когда я запускаю пакет, изменяя входную длину по сравнению с длинами, когда пакет был сгенерирован, появляется эта ошибка:

Simulink не может распространить режим переменного размера из выходного порта 1 «MANUAL / Drive Cycle /»Скорость цикла (ожидается) / подсистема / caicycle2 'для входного порта 2' РУЧНОЙ / цикл движения / скорость цикла (ожидаемый) / подсистема / многопортовый коммутатор '.Этот входной порт ожидает режим фиксированного размера.Режим переменного размера происходит от «РУЧНОЙ / Цикл движения / Скорость цикла (ожидается) / Подсистема / caicycle2 / Функция MATLAB».Изучите конфигурации «РУЧНОЙ / Цикл движения / Скорость цикла (ожидается) / Подсистема / Многопортовый коммутатор» для одного из следующих сценариев: 1) блок не поддерживает сигналы переменного размера;2) блок поддерживает сигналы переменного размера, но его необходимо настроить.

Да, я уже утвердил вариант, который коммутатор предлагает «разрешать входные сигналы различного размера (приводит к выходному сигналу переменного размера)».Эта проблема возникает не только с коммутатором, но и с другими блоками в потоке сигнала.Может ли кто-нибудь дать мне подсказку о том, как я могу решить эту проблему?Заранее спасибо!

...