Estimate State-Space Model

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

Описание

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

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

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

Задача Estimate State-Space Model не зависит от более общего System Identification. Используйте приложение System Identification, когда вы хотите вычислить и сравнить оценки для нескольких структур модели.

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

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

Код, который генерирует Estimate State-Space Model, использует следующие функции.

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

Estimate State-Space Model task in Live Editor

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

Чтобы добавить задачу Estimate State-Space Model к live скрипту в редакторе MATLAB:

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

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

Примеры

расширить все

Используйте задачу 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                                  
                                       

Импорт данных в задачу

В разделе Select data установите значение Data Type Data Object и установите значение объекта оценки z1.

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

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

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

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

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

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

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

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

Например, в структуре модели, выбирается поле Estimate disturbance, поэтому матрица нарушения порядка K присутствует в уравнениях. Если вы очистите поле, термин K исчезнет. Запустите обновлённое строение и посмотрите, как изменяется подгонка.

Измените значение параметра Порядок на Pick best value in range. Настройкой по умолчанию является 1:10.

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

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

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

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

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

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

Настройка данных

Загрузите данные измерения 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);

Импорт данных в задачу

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

Оценка и валидация модели

Пример Estimate State-Space Model with Live Editor Task рекомендует порядок модели 2. Используйте это значение для порядка объекта. Оставьте другие параметры на своих значениях по умолчанию. Обратите внимание, что Входной Канал относится не к набору входных данных, а к индексу канала в входном наборе данных, который для системы с одним входом всегда u1.

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

Подгонка к данным оценки несколько хуже, чем в Estimate State-Space Model with Live Editor Task. Оценка в текущем примере имеет только половину данных, с помощью которых можно оценить модель. Подгонка к данным валидации, которая представляет качество модели в целом, лучше, чем подгонка к данным оценки.

Параметры

Выбор данных

Задача принимает числовые значения измерения, которые равномерно дискретизированы по времени. Входной и выходной сигналы могут содержать несколько каналов. Данные могут быть упакованы как числовые массивы (для 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-м каналом входного u.

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

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

Задайте необязательные параметры

Fit особого внимания задает, какую ошибку минимизировать в функции потерь во время оценки.

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

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

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

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

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

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

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

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

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

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

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

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

  • Levenberg-Marquardt - поиск методом наименьших квадратов Левенберга-Марквардта.

  • Adaptive Gauss-Newton - Адаптивный подпространство Gauss-Newton search.

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

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

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

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

Предварительный фильтр взвешиванияОбласть данныхИнформация о фильтре
No FilterВремя и частота 
PassbandsВремя и частотаОбласти значений полосы пропускания, заданные как вектор-строка 1 на 2 или матрица n -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