Факторы по интегрированию для блоков MATLAB Function

Использование Nondirect Feedthrough в блоке MATLAB Function

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

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

Чтобы использовать nondirect feedthrough:

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

  • В Диспетчере портов и данных в MATLAB Function Block Editor выберите Edit Data на вкладке Editor и снимите флажок Allow direct feedthrough. Для получения дополнительной информации см. «Порты и диспетчер данных».

Совет

Не программируйте выходы, чтобы полагаться на входы или обновленные постоянные переменные. Для примера не используйте этот код в ненаправленном блоке 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

См. также

Похожие темы