Существуют различия в том, как можно использовать системные объекты в блоке MATLAB System в Simulink® от использования того же объекта в MATLAB®. Вы видите эти различия при работе с сигналами переменного размера и настраиваемыми параметрами и при использовании системных объектов в качестве свойств.
Чтобы использовать сигналы переменного размера в Системном object™, вы должны реализовать методы распространения. В частности, используйте isOutputFixedSizeImpl
метод, чтобы указать, является ли выход переменным размером или фиксированным размером. Этот метод нужен для интерпретированных методов выполнения и симуляции генерации кода.
Simulink регистрирует общедоступные настраиваемые свойства системного объекта как настраиваемые параметры соответствующего блока MATLAB System. Если свойство системный объект настраивается, оно также настраивается в блоке MATLAB System. Во время выполнения можно изменить параметр с помощью одного из следующих подходов. Изменение применяется в верхней части цикла симуляции.
В командной строке MATLAB используйте set_param
для изменения значения параметров.
В редакторе Simulink отредактируйте диалоговое окно MATLAB System блока, чтобы изменить значение параметров, а затем обновите блок-схему.
Вы не можете изменить общедоступные настраиваемые свойства из внутренних методов системного объекта, таких как stepImpl
.
Во время моделирования установка недопустимого значения настраиваемого параметра вызывает сообщение об ошибке и останавливает симуляцию.
Блок MATLAB System позволяет системному объекту иметь другие системные объекты в качестве общих или частной собственности. Однако:
Системные объекты и другие объекты MATLAB, сохраненные в качестве общественной собственности, считываются только для чтения. В результате вы не можете задать значение параметра, вы можете получить только значение параметра.
Системные объекты, сохраненные как значения свойств, отображаются затемненными в диалоговом окне MATLAB System блока.
MATLAB не требует, чтобы объекты присваивали значения по умолчанию свойствам. Однако в Simulink, если ваш системный объект имеет свойства без назначенных значений по умолчанию, параметр связанного диалогового окна требует, чтобы тип данных значения был встроенным типом данных Simulink.
Чтобы использовать блок MATLAB System в For Each Subsystem блоке, реализуйте supportsMultipleInstanceImpl
способ. Этот метод должен вернуться true
. Блок MATLAB System клонирует системный объект для каждой итерации For Each Subsystem.
В Simulink используйте validateInputsImpl
метод для проверки только атрибутов (размер, тип данных и сложность) входов. Не используйте этот метод для проверки значения входов.