Математические операции Simulink на 2 сигналах шины

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

Ради вопроса, предположим, что имеется конкатенация 4 простых шин, каждая из которых содержит поля x и y. Шину сигналов, состоящую из a=x1+x2 и b=y1-y2, необходимо сделать из входов 1,2 и 3,4 шин. Таким образом, выходом блока должно быть соединение двух шин, первая из которых содержит информацию из первой пары входных шин, а вторая - из второй пары.

Трудно масштабируемый способ сделать это следующий.

Пример реализации

Существуют ли какие-либо встроенные возможности операций Buses Math или лучшие способы их реализации? Я ничего не нашел в документации Mathworks, а простой блок операций порождает ошибки несовместимости.


person raggot    schedule 15.10.2015    source источник
comment
Вы не хотите использовать MATLAB function и выполнять эти операции с его телом?   -  person Mikhail_Sam    schedule 15.10.2015
comment
@Mikhail_Sam, я бы предпочел сохранить проект как можно более «графическим», чтобы иметь возможность показывать распечатки и обсуждать их с коллегами. Я все равно рассмотрю этот вариант. Спасибо за вклад   -  person raggot    schedule 15.10.2015


Ответы (1)


Вам необходимо использовать блок для каждой подсистемы. Как показано в этом примере. Обратите внимание, что я вызвал шину BusTest и сделал видимыми размер и тип данных сигналов:

введите описание изображения здесь

Теперь установите для параметра Ширина сигнала этого блока значение два, чтобы он делил входной массив на фрагменты длиной 2:

введите описание изображения здесь

Затем переместите свою логику в этот блок:

введите описание изображения здесь

person Mohsen Nosratinia    schedule 15.10.2015