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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

getOutputSizeImpl

  • Только один входной параметр

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

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

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

getOutputDataTypeImpl

  • Только один входной параметр

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

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

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

isOutputComplexImpl

  • Только один входной параметр

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

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

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

isOutputFixedSizeImpl

  • Только один входной параметр

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

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

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

getDiscreteStateSpecificationImpl

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

Нет данных

Похожие темы

Была ли эта тема полезной?