2013-07-04 1 views
0

Проблема:Динамическая проводка в связанном блоке

В моей модели simulink у меня есть создатель автобуса, который отправит все сигналы в блок. Цель блока - сделать селектор и переключатель динамически основанный на индексе. Пример: у меня есть 3 объекта, каждый из которых имеет положение и сигнал скорости, и я хочу получить положение трех объектов, поэтому 3 сигнала (это означает, что селектор шины будет иметь 3 выхода, а мультипереключатель будет иметь 4 (один для индекса)). Блок работает правильно, с скриптом рекурсивной функции, вызываемым в обратном вызове, он проверяет шину на все возможные сигналы и подсчитывает количество объектов и соответственно изменяет селектор шин и коммутатор. Проблема в том, что этот блок связан с библиотекой, поэтому мне нужно отключить ссылку, чтобы скрипт обратного вызова работал.

Вопросы:

  1. Что я должен изменить, чтобы избежать отключения связи?
  2. Есть ли другой способ сделать динамическую проводку и не использовать сценарий обратного вызова?
+1

PS: вы также можете пометить флажок «Разрешить библиотечный блок изменять его содержимое»: http://www.mathworks.co.uk/help/simulink/ug/create-dynamic-masked-subsystems. HTML. Не уверен, что это будет работать в вашем случае, но стоит того. – am304

ответ

0

Предлагаю использовать блок vector concatenation вместо создателя автобуса и блок matlab function. Вот модель

enter image description here

и вот код в функции MatLab:

enter image description here

Таким образом, блок в библиотеке не нужно менять каждый раз. Также, если вам нужно сохранить свои автобусы, вы можете использовать блок bus to vector, чтобы преобразовать их в вектор.

0

Идея использования блока MATLAB Function для выбора является хорошей, но я бы попытался остаться с вводом шины, чтобы сохранить преимущества работы с шинами, а не конвертировать в вектор и обратно. Поэтому вместо того, чтобы ваш код был обратным вызовом блока селектора шин, моим предложением было бы реализовать его в функциональном блоке MATLAB с входом шины и сигнальным входом, используемым для выбора в шине, и определить выход еще как объект шины.

Смежные вопросы