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