Добавьте и реализуйте методы распространения

Когда использовать методы распространения

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

Рассмотрите использование методов распространения в своей Системе object™ когда:

  • Системный объект требует доступа ко всем функциям MATLAB®, которые не поддерживают генерацию кода, что означает, что вы не можете сгенерировать код для симуляции. Необходимо использовать методы распространения в этом случае. Используйте эти методы, чтобы указать информацию для выходных параметров.

  • Вы хотите использовать сигналы переменного размера.

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

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

Добавьте методы распространения в системные объекты

Методы распространения находятся в классе matlab.system.mixin.Propagates. Чтобы добавить эти методы в Системный объект, добавьте класс matlab.system.mixin.Propagates в верхнюю часть файла родительского класса для Системного объекта после класса matlab.System. Например:

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

Реализуйте методы распространения

Simulink оценивает использование методов распространения, чтобы оценить порты ввода и вывода блока MATLAB System для запуска.

Каждый метод имеет реализацию по умолчанию, перечисленную в столбце Default Implementation Should Suffice if. Если ваш Системный объект не использует реализацию по умолчанию, необходимо реализовать версию метода распространения для Системного объекта.

ОписаниеМетод распространенияРеализация по умолчанию Должна быть Достаточной если Пример

Получает размерности выходных портов. Связанным методом является getOutputSize.

getOutputSizeImpl

  • Только один вход

  • Только один вывод

  • Входной размер, который совпадает с выходным размером

Получает типы данных выходных портов. Связанным методом является getOutputDataType.

getOutputDataTypeImpl

  • Только один вход

  • Только один вывод

  • Выходные данные всегда вводят то же самое как тип входных данных

Указывает, являются ли выходные порты комплексными или нет. Связанным методом является isOutputComplex.

isOutputComplexImpl

  • Только один вход

  • Только один вывод

  • Выводите сложность всегда то же самое как th входная сложность

Являются ли выходные порты фиксированным размером. Связанным методом является isOutputFixedSize.

isOutputFixedSizeImpl

  • Только один вход

  • Только один вывод

  • Выведите и введите, фиксированный размер

Получает размер, тип данных и сложность свойства дискретного состояния. Связанным методом является getDiscreteStateSpecification.

getDiscreteStateSpecificationImpl

Никакие свойства DiscreteState

Нет данных

Похожие темы