Этот пример показывает, как блок Variant Source позволяет объединять сигналы вызова функции.
Откройте модель slexVariantSourceFunctionCall.slx
. Модель содержит исходный блок Variant Source с условиями A==1
и A==2
в его входных портах. A
- переменная управления вариантом, заданная в PostLoadFcn
в файле > ModelProperties > Коллбэки. Условия исполнения во входных и выходных портах блока Variant Source определяют активацию и деактивацию блоков, подключенных к нему.
Блок Sine Wave соединяется с двумя блоками function-call MATLAB ®. Блок function-call с именем Filter Positive входа запускается, когда блок Sine wave значения положителен. Блок function-call с именем Filter Negative входа запускается, когда значение блока Sine Wave равно 0 или отрицательное. Порт выхода Исходного блока Variant соединяется с подсистемой вызова функций называемым счетчиком. Подсистема срабатывает при A==1
и блок Sine Wave выводит положительные значения, и когда A==2
и блок Sine Wave выводит отрицательные значения.
open_system('slexVariantSourceFunctionCall.slx')
1 Включите Output function call
опция в диалоговом окне «Параметры исходного блока варианта». Чтобы включить эту опцию программно, используйте эту команду:
set_param(slexVariantSourceFunctionCall/Variant Source,'OutputFunctionCall','On')
2 Симулируйте модель путем выполнения симуляция > Update Diagram.The variant condition propagation определяет активные и неактивные варианты выбора.
Когда A==1
и блок выхода Sine Wave положителен, активен блок вызова функции с именем Filter Positive входа.
Когда A==2
и блок Sine Wave имеет значение 0 или отрицательное, блок вызова функции с именем Filter Negative входа является активным.
В обоих случаях значение счетчика в подмножестве вызова функции с именем Counter увеличивается. Если A~=1
и A~=2
, тогда 'Counter' не выполняется, так как блок Sine Wave неактивен.
sim('slexVariantSourceFunctionCall.slx') load_system('slexVariantSourceFunctionCall/Counter')