exponenta event banner

Рекомендации по интеграции функциональных блоков MATLAB

Использование непрямого канала в функциональном блоке MATLAB

В блоках Simulink ® прямой проход означает, что выходной сигнал блока управляется непосредственно значением сигнала входного порта. При непрямом проходе значение выходного сигнала не зависит от значения входного сигнала по меньшей мере в одной функции во время моделирования .

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

Использование непрямого канала:

  • Включение встроенной функции блока MATLAB Function с помощью coder.inline в теле функции верхнего уровня.

  • В окне «Ports and Data Manager» в редакторе функциональных блоков MATLAB выберите «Edit Data» на вкладке «Editor» и снимите флажок «Allow direct feedthrough». Дополнительные сведения см. в разделе Управление портами и данными.

Совет

Не программируйте выходные данные на основе входных данных или обновленных постоянных переменных. Например, не используйте этот код в блоке непрямого сквозного канала:

counter = counter + 1;  	% update state
output = counter;       	% compute output based on updated state
Вместо этого используйте следующий код:
output = counter;       	% compute output based on current state
counter = counter + 1;  	% update state

См. также

Связанные темы