Использование системных объектов в циклах обратной связи

Если вашему алгоритму нужно обработать ненаправленные исходные данные через Системную object™, используйте isInputDirectFeedthroughImpl, outputImpl, и updateImpl методы. Эти методы обрабатывают ненаправленные исходные данные через системный объект.

Большинство системных объектов используют прямое сквозное соединение, где вход объекта нужен, чтобы сгенерировать выход. Для этих прямых сквозных соединений step метод вычисляет выходы и обновляет значения состояний. Однако для nondirect feedthrough, выход объекта зависит от внутренних состояний, а не непосредственно от входов. Входы или подмножество входов используются для обновления состояний объекта. Для этих объектов вычисление выхода отделяется от обновления значений состояния. Это позволяет вам использовать объект в качестве элемента обратной связи в цикле обратной связи.

Этот пример показывает, как реализовать объект задержки с ненаправленным сквозным соединением.

  1. В MATLAB®выберите New > System object > Basic.

  2. Выберите Insert Method и реализуйте outputImpl и updateImpl методы.

    outputImpl вычисляет выходы из состояний и/или входов. updateImpl обновляет значения состояний из входов.

    При реализации outputImpl method, не получайте доступ к входам системного объекта, для которых флаг прямой передачи является ложным.

  3. Если Системный объект поддерживает генерацию кода и не использует распространение, Simulink® может автоматически вывести настройки прямой передачи из кода MATLAB системного объекта. Однако, если Системный объект не поддерживает генерацию кода, значение по умолчанию isInputDirectFeedthroughImpl метод возвращает false (нет прямого сквозного соединения). В этом случае переопределите этот метод, чтобы задать ненаправленное поведение с прямой связью.

Обработка nondirect feedthrough изменяет способ, которым программное обеспечение вызывает методы системного объекта в контексте механизма Simulink.

Похожие примеры

Подробнее о