Estimate State-Space Model

Оцените модель в пространстве состояний, использующую время или данные о частоте в Live Editor

Описание

Оценочная задача Модели в пространстве состояний позволяет вам в интерактивном режиме оценить и подтвердить модель в пространстве состояний, использующую данные о частоте или время. Можно задать и варьироваться структура модели и задать дополнительные параметры, такие как начальный метод обработки условия и метод поиска. Задача автоматически генерирует код MATLAB® для вашего live скрипта. Для получения дополнительной информации о задачах Live Editor обычно, смотрите, Добавляют Интерактивные Задачи к Live Script (MATLAB).

Модели в пространстве состояний являются моделями, которые используют переменные состояния, чтобы описать систему набором дифференциальных или разностных уравнений первого порядка, а не согласно одному или нескольким th-порядкам n дифференциальные или разностные уравнения. Переменные состояния могут быть восстановлены из измеренных данных ввода - вывода, но самостоятельно не измеряются во время эксперимента.

Структура модели в пространстве состояний является хорошим выбором для быстрой оценки, потому что это требует, чтобы вы задали только один вход, порядок модели. Для получения дополнительной информации об оценке пространства состояний, смотрите то, Что Модели в пространстве состояний?

Оценочная задача Модели в пространстве состояний независима от более общего приложения System Identification. Используйте приложение System Identification, когда это необходимо, чтобы вычислить и сравнить оценки для структур многоуровневой модели.

Чтобы начать, загрузите данные об эксперименте, которые содержат входные и выходные данные в ваше рабочее пространство MATLAB, и затем импортируйте те данные в задачу. Затем задайте структуру модели, чтобы оценить. Задача дает, вы управляете и графики, которые помогают вам экспериментировать с различными параметрами модели и выдержать сравнение, как хорошо выход каждой модели соответствует измерениям.

Связанные функции

Код, который генерирует Оценочная Модель в пространстве состояний, использует следующие функции.

Задача оценивает idss модель в пространстве состояний.

Откройте задачу

Добавить Оценочную задачу Модели в пространстве состояний в live скрипт в редакторе MATLAB:

  • На вкладке Live Editor выберите Task > Estimate State-Space Model.

  • В блоке кода в вашем скрипте введите соответствующее ключевое слово, такое как state, space, или estimate. Выберите Estimate State Space Model от предложенных завершений команды.

Примеры

развернуть все

Используйте Оценочный Live Editor Модели в пространстве состояний Тэска, чтобы оценить модель в пространстве состояний и сравнить выход модели с данными об измерении.

Откройте этот пример, чтобы видеть, что предварительно сконфигурированный скрипт содержит задачу.

Настройте данные

Загрузите данные об измерении iddata1 в ваше рабочее пространство MATLAB.

load iddata1 z1
z1
z1 =

Time domain data set with 300 samples.
Sample time: 0.1 seconds               
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       

Импортируйте данные в задачу

В Избранном разделе данных, Типе данных набора к Data Object и Объект Оценки набора к z1.

Объект данных содержит имена переменных ввода и вывода, а также шаг расчета, таким образом, вы не должны задавать их.

Оцените модель Используя настройки по умолчанию

Исследуйте структуру модели и дополнительные параметры.

В Задавать разделе структуры модели порядок объекта устанавливается к его значению по умолчанию 4 и модель находится в области непрерывного времени. Уравнения ниже параметров в этом разделе отображают заданную структуру.

В Задавании дополнительного раздела параметров параметры отображают опции по умолчанию для оценки пространства состояний.

Выполните задачу от Запуска использования вкладки Live Editor. График отображает данные об оценке, предполагаемый выход модели и подходящий процент.

Экспериментируйте с установками параметров

Экспериментируйте с установками параметров и смотрите, как они влияют на подгонку.

Например, в Задают структуру модели, Оценочное поле воздействия выбрано, таким образом, матрица K воздействия присутствует в уравнениях. Если вы очищаете поле, термин K исчезает. Запустите обновленную настройку и смотрите, как подгонка изменяется.

Измените настройки Plant Order, чтобы Выбрать оптимальное значение в области значений. Настройкой по умолчанию является 1:10.

Когда вы запускаете модель, график Выбора Порядка Модели отображает вклад каждого состояния к динамическому поведению модели. С начальными настройками задачи для других параметров график отображает рекомендацию 2 для порядка модели.

Примите эту рекомендацию путем нажатия на Apply и смотрите, как это изменение влияет на подгонку.

Сгенерируйте код

Чтобы отобразить код, который генерирует задача, щелкните в нижней части раздела параметра. Код, который вы видите, отражает текущую настройку параметра задачи.

Используйте отдельные данные об оценке и валидации так, чтобы можно было подтвердить предполагаемую модель в пространстве состояний.

Откройте этот пример, чтобы видеть, что предварительно сконфигурированный скрипт содержит задачу.

Настройте данные

Загрузите данные об измерении iddata1 в ваше рабочее пространство MATLAB и исследуют его содержимое.

load iddata1 z1
z1
z1 =

Time domain data set with 300 samples.
Sample time: 0.1 seconds               
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       

Извлеките измерения ввода и вывода.

u = z1.u;
y = z1.y;

Разделите данные в два набора с одной половиной для оценки и одной половиной для валидации. Исходный набор данных имеет 300 выборок, таким образом, каждый новый набор данных имеет 150 выборок.

u_est = u(1:150);
u_val = u(151:300);
y_est = y(1:150);
y_val = y(151:300);

Импортируйте данные в задачу

В Избранном разделе данных, Типе данных набора к Time. Установите шаг расчета на 0.1 секунды, который является шагом расчета в исходном iddata объект z1. Выберите соответствующие наборы данных для оценки и валидации.

Оцените и подтвердите модель

Оценочная Модель в пространстве состояний в качестве примера с Live Editor Тэском рекомендует порядок модели 2. Используйте то значение в Порядке Объекта. Оставьте другие параметры в их значениях по умолчанию. Обратите внимание на то, что Входной Канал относится не к набору входных данных, но к индексу канала в наборе входных данных, который для системы одно входа всегда является u1.

Выполните задачу от Запуска использования вкладки Live Editor. Выполнение задачи создает два графика. Первый график показывает результаты оценки, и второй график показывает результаты валидации.

Подгонка к данным об оценке несколько хуже, чем в Оценочной Модели в пространстве состояний с Live Editor Тэском. Оценка текущий пример имеет только половину данных, с которыми можно оценить модель. Подгонка к данным о валидации, которые представляют совершенство модели в более общем плане, лучше, чем подгонка к данным об оценке.

Параметры

Выберите Data

Задача принимает числовые значения измерения, которые однородно производятся вовремя. Сигналы ввода и вывода могут содержать несколько каналов. Данные могут быть группированы как числовые массивы (для Time или Frequency) или в объекте данных, таком как iddata или idfrd объект.

Тип данных, который вы выбираете, определяет, необходимо ли задать дополнительные параметры.

  • Time — Задайте Sample Time и Start Time в единицах измерения времени, которые вы выбираете.

  • Frequency — Задайте Frequency путем выбора имени переменной вектора частоты в рабочем пространстве MATLAB. Задайте модули для этого вектора частоты. Задайте Sample Time в секундах.

  • Data Object — Не задайте дополнительные параметры, потому что объект данных уже содержит информацию вовремя или выборку частоты.

Выберите имена переменных ввода и вывода из выбора рабочего пространства MATLAB. Используйте эти параметры, когда Data Type будет Time или Frequency.

Выберите имя переменной объекта данных из выбора рабочего пространства MATLAB. Используйте этот параметр, когда Data Type будет Data Object.

Выберите имена переменных ввода и вывода из выбора рабочей области. Используйте эти параметры, когда Data Type будет Time или Frequency. Определение данных о валидации является дополнительным, но рекомендовано.

Выберите имя переменной объекта данных из выбора рабочего пространства MATLAB. Используйте этот параметр, когда Data Type будет Data Object. Определение данных о валидации является дополнительным, но рекомендовано.

Задайте структуру модели

Задача позволяет вам задавать одно значение или область значений значений для порядка модели оценить.

  • Specify value — Задайте порядок модели явным образом.

  • Pick best value in range — Укажите диапазон значений, таких как 1:10. Когда вы запускаете задачу, график сингулярного значения Ганкеля визуализирует относительный энергетический вклад каждого состояния в предполагаемой модели и рекомендует самое низкоуровневое, которое воспроизводит критическое динамическое поведение. Возобновите эту рекомендацию или выберите другой порядок в Chosen Order. Нажмите Apply, чтобы принять порядок модели и продолжить.

Выберите модель непрерывного времени или дискретного времени.

Выберите эту опцию, чтобы оценить возмущение. Когда вы выбираете эту опцию, уравнения модели обновляются, чтобы показать матрицу K и термин e.

Для каждого входного канала присвойте значения для Input Delay и Feedthrough.

  • Input Channel — Выберите входной канал. Входной канал всегда имеет форму ui, где i является i th канал входа u.

  • Input Delay — Введите входную задержку количества выборок (модель дискретного времени) или количества единиц измерения времени (модель непрерывного времени) для канала. Например, чтобы задать 0,2 вторых входа задерживаются для системы непрерывного времени, для которой единицей измерения времени является milliseconds, введите 200.

  • Feedthrough — Выберите эту опцию, чтобы оценить, что сквозное соединение канала от входа выводит. Когда вы выбираете эту опцию, уравнения модели обновляются, чтобы показать термин Du.

Задайте дополнительные параметры

Подходящее особое внимание задает что ошибку минимизировать в функции потерь во время оценки.

  • Prediction — Минимизируйте ошибку предсказания "один шаг вперед" между измеренными и предсказанными выходными параметрами. Этот подход оценки фокусируется на создании хорошей модели предиктора для вводов и выводов оценки. Особое внимание предсказания обычно приводит к лучшим результатам оценки, потому что оно использует оба измерения ввода и вывода, таким образом составляя воздействия.

  • Simulation — Минимизируйте ошибку между измеренными и симулированными выходными параметрами. Этот подход оценки фокусируется на создании симулированного ответа модели, который имеет подходящий вариант для вводов и выводов оценки. Особое внимание симуляции является обычно лучшим для валидации, особенно с наборами данных, не используемыми в исходной оценке.

Установите эту опцию, когда это необходимо, выбирать определенный метод для инициализации состояний модели. С настройкой по умолчанию Auto, программное обеспечение выбирает метод на основе данных об оценке. Выбор:

  • Zero — Начальное состояние обнуляется.

  • Estimate — Начальное состояние обработано как независимый параметр оценки.

  • Backcast — Начальное состояние оценивается с помощью лучшей подгонки наименьших квадратов.

Входная межвыборка является свойством входных данных. Задача использует это свойство при оценке непрерывных моделей. Задайте Input Intersampling, когда вашим типом данных будет Time или Frequency. Если вы используете iddata объект, объект уже содержит информацию о межвыборке. Выбор для этого свойства:

  • Zero-order hold — Кусочно-постоянный входной сигнал между выборками

  • Triangle approximation — Кусочно-линейный входной сигнал между выборками, также известными как хранение первого порядка

  • Band-limited — Входной сигнал имеет нулевую силу выше частоты Найквиста

  • Auto — Для каждой итерации программное обеспечение циклически повторяется через методы, пока это не находит первый спуск направления, который приводит к сокращению стоимости оценки.

  • Gauss-Newton — Поиск наименьших квадратов Ньютона Гаусса подпространства.

  • Levenberg-Marquardt — Поиск наименьших квадратов Levenberg-Marquardt.

  • Adaptive Gauss-Newton — Адаптивный поиск Ньютона Гаусса подпространства.

  • Gradient Search — Поиск наименьших квадратов наискорейшего спуска.

Определите максимальный номер итераций во время ошибочной минимизации. Итерации останавливаются, когда Max. Iterations достигнут, или другому критерию остановки удовлетворяют, такие как Tolerance.

Когда процент ожидаемого улучшения меньше Tolerance, остановки итераций.

Установите эту опцию, когда это необходимо, применять предварительный фильтр взвешивания к функции потерь, которую минимизирует задача, когда вы оцениваете модель. Когда вы выбираете опцию, необходимо также выбрать связанную переменную в рабочей области, которая содержит информацию о фильтре. Доступные параметры зависят от области данных.

Взвешивание предварительного фильтраОбласть данныхОтфильтруйте информацию
No FilterВремя и частота 
PassbandsВремя и частотаПолоса пропускания располагается в виде 1 2 вектора-строки или n-by-2 матрица, где n является количеством полос пропускания.
LTI FilterВремя и частотаМодель SISO LTI.
Frequency Weights VectorЧастотаВеса частоты в виде вектор-столбца с той же длиной как вектор частоты.
Inverse of magnitude of the frequency responseЧастотная характеристикаФильтр взвешивания1/|G(ω)|, где G (ω) является комплексными данными частотной характеристики. SISO и системы SIMO только.
Inverse of square root of magnitude of the frequency responseЧастотная характеристикаФильтр взвешивания 1/|G(ω)|. SISO и системы SIMO только.

Например, предположите, что вы выполняете оценку с данными частотного диапазона SISO и что в вашем рабочем пространстве MATLAB, у вас есть вектор-столбец W это содержит веса частоты для предварительного фильтра. В задаче выберите Weighting prefilter > Frequency weights vector и переменную W.

Визуализация результатов

Постройте сравнение выхода модели и исходных результатов измерений, наряду с подходящим процентом. Если у вас есть отдельные данные о валидации, второй график сравнивает ответ модели на входные данные валидации с измеренным выходом от набора данных валидации.

Введенный в R2019b