exponenta event banner

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

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

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

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

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

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

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

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

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

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

Связанные примеры

Подробнее