exponenta event banner

getOutputDataTypeImpl

Типы данных выходных портов

Синтаксис

[dt_1,dt_2,...,dt_n] = getOutputDataTypeImpl(obj)

Описание

[dt_1,dt_2,...,dt_n] = getOutputDataTypeImpl(obj) возвращает тип данных каждого выходного порта в виде символьного вектора для встроенных типов данных или в виде числового объекта для типов данных с фиксированной точкой. Количество выходов должно соответствовать значению, возвращенному из getNumOutputsImpl метод или количество выходных аргументов, перечисленных в stepImpl способ.

Для системных объектов с одним входом и одним выходом, в которых типы входных и выходных данных должны быть одинаковыми, внедрение этого метода не требуется. В этом случае getOutputDataTypeImpl предполагает, что типы входных и выходных данных одинаковы, и возвращает тип данных ввода.

Если системный object™ имеет несколько входных или выходных данных и используется распространение, необходимо задать типы выходных данных в getOutputDataTypeImpl способ. Для Simulink ®, если типы входных и выходных данных различны, может потребоваться приведение выходного значения к типу данных соответствующегоdt_n выходной аргумент. Вы указываете это литье в stepImpl способ. Для вывода шины необходимо указать имя выходной шины в getOutputDataTypeImpl.

При необходимости определения типа выходных данных можно использовать propagatedInputDataType в пределах getOutputDataTypeImpl способ получения входного типа.

Сведения о времени выполнения

getOutputDataTypeImpl вызывается системным блоком MATLAB.

Советы по разработке методов

  • Необходимо установить Access = protected для этого метода.

  • Невозможно изменить свойства этого метода.

  • При отладке кода и проверке типов данных до того, как Simulink завершит распространение, могут появиться выходные данные с пустыми типами данных []. Это происходит из-за того, что Simulink не завершил установку типов выходных данных.

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

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

Дескриптор системного объекта, используемый для доступа к свойствам, состояниям и методам, определенным для объекта. Если ваш getOutputDataTypeImpl метод не использует объект, можно заменить этот ввод на ~.

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

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

Тип данных свойства. Для встроенных типов данных dt - символьный вектор. Для типов данных с фиксированной точкой dt является объектом числового типа.

Примеры

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

Укажите в файле определения класса, как управлять типом выходных данных из системного блока MATLAB ®. В этом примере показано, как использовать getOutputDataTypeImpl изменение типа выходных данных с одного на двойной или распространение входных данных как двойных. Также показано, как привести тип данных к изменению типа выходных данных в stepImpl способ.

classdef DataTypeChange < matlab.System & ...
  matlab.system.mixin.Propagates

   properties(Nontunable)
      Quantize = false
   end

   methods(Access = protected)
      function y = stepImpl(obj,u)
         if obj.Quantize == true
            % Cast for output data type to differ from input.
            y = single(u);
         else
            % Propagate output data type.
            y = u;
         end
      end

      function out = getOutputDataTypeImpl(obj)
         if obj.Quantize == true
            out = "single";
         else
            out = propagatedInputDataType(obj,1);
         end
      end
   end
end

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

properties(Nontunable)
   OutputBusName = "myBus";
end

methods (Access = protected)
   function out = getOutputDataTypeImpl(obj)
      out = obj.OutputBusName;
   end
end
Представлен в R2013b