isInputDirectFeedthroughImpl

Класс: matlab.system.mixin. Непрямой
Пакет: matlab.system.mixin

Прямое состояние сквозного соединения входного параметра

Синтаксис

[flag1,...,flagN] = isInputDirectFeedthroughImpl(obj)
[flag1,...,flagN] = isInputDirectFeedthroughImpl(obj,input,input2, ...)

Описание

[flag1,...,flagN] = isInputDirectFeedthroughImpl(obj) задает, является ли каждый входной параметр прямым входным параметром сквозного соединения. Если прямым сквозным соединением является true, вывод зависит от входного параметра в каждый раз момент.

[flag1,...,flagN] = isInputDirectFeedthroughImpl(obj,input,input2, ...) использует один или несколько входных спецификаций Системного объекта, чтобы определить, имеют ли входные параметры прямое сквозное соединение.

Если вы не включаете метод isInputDirectFeedthroughImpl в свою Систему object™ файл определения класса, все входные параметры приняты, чтобы быть прямым сквозным соединением.

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

  • Системный объект поддерживает генерацию кода и не наследовался mixin Propagates — Simulink автоматически выводит прямые настройки сквозного соединения из кода Системного объекта.

  • Системный объект поддерживает генерацию кода и наследовался mixin Propagates — Simulink автоматически не выводит прямые настройки сквозного соединения. Вместо этого это использует значение, возвращенное методом isInputDirectFeedthroughImpl.

  • Системный объект не поддерживает генерацию кода — Значение по умолчанию, метод isInputDirectFeedthroughImpl возвращает false, указывая, что прямое сквозное соединение не включено. Чтобы заменить поведение по умолчанию, реализуйте метод isInputDirectFeedthroughImpl в своем файле определения класса.

Информация о классе

Этот метод является частью matlab.system.mixin.Nondirect class.

Детали во время выполнения

isInputDirectFeedthroughImpl вызван блоком MATLAB System.

Метод, создающий советы

  • Вам необходимо задать Access = protected для этого метода.

  • Вы не можете изменить, реализовать, или доступ настраиваемые свойства в этом методе.

Входные параметры

развернуть все

Указатель системного объекта раньше получал доступ к свойствам, состояниям и методам, характерным для объекта.

Вводы к алгоритму (stepImpl) Системного объекта. Список входных параметров должен совпадать с порядком входных параметров в подписи stepImpl.

Выходные аргументы

развернуть все

Логическое значение, или true или false, указывающий, является ли входной параметр прямым сквозным соединением. Количество выходных флагов должно совпадать с количеством входных параметров к Системному объекту (входные параметры к stepImpl, outputImpl или updateImpl).

Примеры

развернуть все

Используйте isInputDirectFeedthroughImpl в своем файле определения класса для маркировки всех входных параметров как непрямое сквозное соединение.

methods (Access = protected)
   function flag = isInputDirectFeedthroughImpl(~)
      flag = false;
   end
end

Полное определение класса

classdef intDelaySysObj < matlab.System &...
     matlab.system.mixin.Nondirect
   % intDelaySysObj Delay input by specified number of samples.

   properties
      InitialOutput = 0;
   end
   properties (Nontunable)
      NumDelays = 1;
   end
   properties (DiscreteState)
      PreviousInput;
   end

   methods (Access = protected)
      function validatePropertiesImpl(obj)
         if ((numel(obj.NumDelays)>1) || (obj.NumDelays <= 0))
            error('Number of delays must be > 0 scalar value.');
         end
         if (numel(obj.InitialOutput)>1)
            error('Initial Output must be scalar value.');
         end
      end

      function setupImpl(obj)
         obj.PreviousInput = ones(1,obj.NumDelays)*obj.InitialOutput;
      end
      
      function resetImpl(obj)
         obj.PreviousInput = ones(1,obj.NumDelays)*obj.InitialOutput;
      end
      
      function [y] = outputImpl(obj,~)
         y = obj.PreviousInput(end);
      end
      function updateImpl(obj, u)
         obj.PreviousInput = [u obj.PreviousInput(1:end-1)]; 
      end
      function flag = isInputDirectFeedthroughImpl(~)
         flag = false;
      end
   end
end 
Была ли эта тема полезной?