Эта тема показывает, как выполнить онлайновую оценку параметра в командной строке. Онлайновые команды оценки создают Систему 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
— Модель полинома Поля-Jenkins 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, но если вы высвобождаете его средства, вы не можете использовать тот Системный объект снова.
Постобработайте оцененные параметры.
При необходимости можно постобработать предполагаемые параметры. Например, можно использовать фильтр нижних частот, чтобы сгладить шумные оценки параметра. Чтобы смочь сгенерировать C и Код С++, используйте команды, поддержанные MATLAB Coder. Для списка этих команд смотрите Функции и Объекты, Поддержанные для Генерации кода C/C++ — Список Категорий (MATLAB Coder).
Подтвердите онлайновую оценку.
Для получения дополнительной информации о валидации, смотрите, Подтверждают Онлайновую Оценку Параметра в Командной строке. Если вы не удовлетворены оценкой, используйте команду reset
, чтобы установить параметры Системного объекта к их начальному значению.
Используйте предполагаемые параметры для своего приложения.
После проверки онлайновой оценки параметра можно использовать MATLAB Compiler™ или MATLAB Coder, чтобы развернуть код в приложении.
clone
| isLocked
| recursiveAR
| recursiveARMA
| recursiveARMAX
| recursiveARX
| recursiveBJ
| recursiveLS
| recursiveOE
| release
| reset
| step