Эта тема показывает, как выполнить онлайновую оценку параметра в командной строке. Онлайновые команды оценки создают Систему object™ для вашей структуры модели.
Системным объектом является специализированный MATLAB® объект, специально разработанный для реализации и симуляции динамических систем с входными параметрами то изменение в зависимости от времени. Системные объекты используют внутренние состояния, чтобы сохранить прошлое поведение, которое используется на следующем вычислительном шаге.
После того, как вы создадите Системный объект, вы используете команды, чтобы обработать данные или получить информацию из или об объекте. Системные объекты используют минимум двух команд, чтобы обработать данные — конструктор, чтобы создать объект и step
команда, чтобы обновить параметры объекта с помощью данных реального времени. Это разделение объявления от выполнения позволяет вам создать несколько, персистентные, допускающие повторное использование объекты, каждого с различными настройками.
Можно использовать следующие команды с онлайновыми Системными объектами оценки в System Identification Toolbox™:
Команда | Описание |
---|---|
step | Обновите оценки параметра модели с помощью рекурсивных алгоритмов оценки и данных реального времени.
|
release | Разблокируйте Системный объект. Используйте эту команду, чтобы позволить установить ненастраиваемых параметров. |
reset | Сбросьте внутренние состояния заблокированного Системного объекта к начальным значениям и оставьте объект заблокированным. |
clone | Создайте другой Системный объект с теми же значениями свойства объекта. Не создавайте дополнительные объекты с помощью синтаксиса |
isLocked | Запросите заблокированное состояние для входных атрибутов и ненастраиваемых свойств Системного объекта. |
Примечание
Если все данные, необходимые для оценки, доступны целиком, и вы оцениваете независимую от времени модель, используете оффлайновые команды оценки для оценки параметра модели. Например, использовать arx
вместо recursiveARX
.
Выберите структуру модели для своего приложения.
Идеально, вы хотите самую простую структуру модели, которая соответственно получает системную динамику. Для факторов, чтобы иметь в виду, смотрите Структуру модели.
Создайте онлайновый Системный объект оценки для своей структуры модели при помощи одной из следующих команд:
recursiveAR
— Модель AR timeseries
recursiveARMA
— Модель ARMA timeseries
recursiveARX
— Модель SISO или MISO ARX
recursiveARMAX
— Модель SISO ARMAX
recursiveOE
— Полиномиальная модель ошибки на выходе SISO
recursiveBJ
— Полиномиальная модель Бокса-Дженкинса SISO
recursiveLS
— Система одно выхода, которая линейна в предполагаемых параметрах
obj = recursiveARX;
Можно задать дополнительные свойства объектов, такие как рекурсивный алгоритм оценки и начальные предположения параметра. Для получения информации об используемых алгоритмах смотрите Рекурсивные алгоритмы для Онлайновой Оценки Параметра.
Получите данные ввода - вывода в режиме реального времени.
Задайте выходные данные оценки, y
, как действительный скаляр, и входные данные, u
, как действительный скаляр или вектор. Данные, заданные как iddata
объект не поддерживается для онлайновой оценки.
Предварительно обработайте данные об оценке.
Данные об оценке, которые содержат дефициты, могут привести к плохим результатам оценки. Дефициты данных включают дрейф, возмещают, недостающие выборки, поведение равновесия, сезонность и выбросы. Предварительно обработайте данные об оценке по мере необходимости. Для факторов, чтобы иметь в виду, смотрите Данные об Оценке.
Для онлайновой оценки параметра в командной строке вы не можете использовать инструменты предварительной обработки в System Identification Toolbox. Эти инструменты поддерживают только данные, заданные как iddata
объекты. Реализуйте код предварительной обработки как требуется вашим приложением. Чтобы смочь сгенерировать C и Код С++, используйте команды, поддержанные MATLAB Coder™. Для списка этих команд смотрите Функции и Объекты, Поддержанные для Генерации кода C/C++ (MATLAB Coder).
Обновите параметры использования модели входящие данные ввода - вывода.
Используйте step
команда, чтобы выполнить заданный рекурсивный алгоритм по каждому измерению данных ввода - вывода.
[A,B,yhat] = step(obj,y,u);
Выход step
команда дает предполагаемые параметры (A
и B
), и оцененный выход модели (yhat
), в каждом наборе данных ввода - вывода.
Вызов step
на объекте помещает тот объект в заблокированное состояние. Можно проверять заблокированное состояние использования Системного объекта isLocked
. Когда объект заблокирован, вы не можете изменить ненастраиваемые свойства или ввести технические требования, такие как порядок модели, тип данных или алгоритм оценки. Чтобы изменить ненастраиваемое свойство, используйте release
команда, чтобы разблокировать Системный объект. Можно использовать release
на Системном объекте в коде, сгенерированном из MATLAB, но если вы высвобождаете его средства, вы не можете использовать тот Системный объект снова.
Постобработайте оцененные параметры.
При необходимости можно постобработать предполагаемые параметры. Например, можно использовать фильтр lowpass, чтобы сгладить шумные оценки параметра. Чтобы смочь сгенерировать C и Код С++, используйте команды, поддержанные MATLAB Coder. Для списка этих команд смотрите Функции и Объекты, Поддержанные для Генерации кода C/C++ (MATLAB Coder).
Подтвердите онлайновую оценку.
Для получения дополнительной информации о валидации, смотрите, Подтверждают Онлайновую Оценку Параметра в Командной строке. Если вы не удовлетворены оценкой, используйте reset
команда, чтобы установить параметры Системного объекта к их начальному значению.
Используйте предполагаемые параметры для своего приложения.
После проверки онлайновой оценки параметра можно использовать MATLAB Compiler™ или MATLAB Coder, чтобы развернуть код в приложении.
recursiveAR
| recursiveARMA
| recursiveARX
| recursiveARMAX
| recursiveOE
| recursiveBJ
| recursiveLS
| step
| reset
| release
| isLocked
| clone