Иерархическое вложение различных источников и различных приемников

В этом примере показано, как использовать Различные Исходные блоки, чтобы обеспечить Различный выбор на датчиках.

Эта модель иллюстрирует, как можно использовать несколько Различных Исходных блоков, чтобы обеспечить различный выбор на датчиках. В этой модели несколько Различных Исходных блоков используются, чтобы создать иерархическое вложение вариантов. Выбор сначала сгруппирован рядом: Ряд, B Ряд и Ряд C. Комбинация одного или нескольких рядов обеспечивается, как введено для модели устройства. Получившаяся модель устройства предоставляется, как введено поставщику включением или, исключая выбор датчика. В этой модели постоянный блок маскируется как заполнитель для аналого-цифрового конвертера (A/D) блоки. Эта модель показывает изменение входных параметров датчика. В качестве альтернативы можно использовать Различные блоки Приемника, чтобы создать изменение привода выходные параметры. Различные контрольные переменные, которые параметрируют Различные Исходные блоки, заданы в PostLoadFcn 'callback'.

Рассмотрите эту модель с Различными Исходными блоками.

В этой модели Различный Исходный блок "Поставщик" получает входные параметры от Различных Исходных блоков "X Датчиков" и блоки "Модели устройства". Блок "X Sensor" получает входные параметры от констант AD7 и AD8. Блок "Device Model" получает входные параметры от Различных Исходных блоков "Ряд", "Ряд B", и "C Ряд". Различные Исходные блоки "Ряд", "Ряды B", и "C Ряд" получают входные параметры от блоков Константа.

Теперь симулируйте модель.

Когда вы симулируете модель, постоянный блок AD5 активен. Различный Исходный блок "Поставщик" выбирает между двумя поставщиками, ПОСТАВЩИКОМ == 1 или ПОСТАВЩИКОМ == 2 и в базовом рабочем пространстве, ПОСТАВЩИК является Simulink.Parameter с Поставщиком Value=1. Различный Исходный блок "Модель устройства" выбирает между DEVICE_MODEL == 1, DEVICE_MODEL == 2 или DEVICE_MODEL == 3 и в базовом рабочем пространстве, DEVICE_MODEL.Value=3. Различный Исходный блок "C Ряд" выбирает между C_SERIES == 1 и C_SERIES == 2 и в базовом рабочем пространстве, C_SERIES.Value=2.

Генерация кода

Можно использовать Simulink Coder, чтобы сгенерировать код из модели, содержащей Различные блоки Subsystem. По умолчанию сгенерированный код содержит только активный вариант. В качестве альтернативы можно сгенерировать код для всех вариантов, которые охраняют условные выражения препроцессора C (#if, #elif, #endif) при использовании Embedded Coder.

Больше о