Используйте основанные на кадрах данные для рекурсивной оценки в Simulink

Этот пример показывает, как использовать основанные на кадрах сигналы с блоком Recursive Last Squares Estimator в Simulink ®. Интерфейсы машины часто обеспечивают данные датчика в системах координат, содержащих несколько выборок, а не в отдельных выбороках.

Рекурсивные блоки оценки в System Identification Toolbox™ принимать эти системы координат непосредственно, когда вы устанавливаете Input Processing на Frame-based.

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

Этот пример является основанной на кадрах версией основанного на выборке примера в Estimate Parameters of System Using Simulink Recursive Estimator Block. Ссылка на функцию для recursiveLS В приведен эквивалентный пример командной строки на основе сэмпла.

Описание системы

Система имеет два параметра и представлена как:

$y(t) = a_1u(t) + a_2u(t-1)$

Вот,

  • $u$ и$y$ являются выборками входных и выходных данных в реальном времени, соответственно

  • $a_1$ и$a_2$ являются ли параметры.$\theta$

  • $u(t)$ и$u(t-1)$ являются выборками регрессора. Массив регрессора$H_s$ является вектором-строкой.$${H_s} = \left[ {\matrix{ {u(t)} & {u(t - 1)} \cr } } \right]$

Основанные на кадрах входы

Системы координат данных содержат несколько выборок данных, сложенных в строки, причем последняя строка содержит самые последние данные. В данном примере каждая система координат содержит 10 выборок. Поэтому наблюдаемые входные и выходные параметры приходят как$[u(1) ... u(10)]^T$ и, $[y(1) ... y(10)]^T$где$u(i)$ и являются$y(i)$ положениями в системе координат в течение заданного времени и $t$эквивалентны и.$u(t-10+i)$$y(t-10+i)$

Система координат регрессора$H_f$ также использует это сложение. Элемент$u(0)$ в правом верхнем углу является последней выборкой из предыдущего входного кадра.

$${H_f} = \left[ {\matrix{
 {{u(1)}} & {{u(0)}} \cr
 {{u(2)}} & {{u(1)}} \cr
 \vdots & \vdots \cr
 {{u(10)}} & {{u(9)}} \cr
} } \right]$$

Откройте предварительно сконфигурированную модель Simulink, основанную на блоке Recursive Last Squares Estimator.

rlsfb = 'ex_RLS_Estimator_Block_fb';
open_system(rlsfb)

Наблюдаемые входы и выходы

Загрузите основанные на кадрах входные и выходные сигналы в рабочую область. Каждый сигнал состоит из 30 систем координат, каждая система координат содержит десять отдельных временных выборок. В этой реализации шаг расчета составляет 1 секунду, а время системы координат составляет 10 секунд.

load iddata3_frames input_sig_frame output_sig_frame

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

Регрессоры

Модель создает систему координат Regressors Hframe в Подсистеме Регрессоров Конструкций, использование input_sig_frame.

open_system([rlsfb '/Construct Regressors'])

Как описано в Frame-Based Inputs, сигнал регрессора на основе кадра состоит из всех элементов текущей системы координат наблюдаемых входов, наряду с последней выборкой из предыдущей системы координат. Блок Selector извлекает последнюю выборку из наблюдаемой системы координат входов, и блок Delay сохраняет это значение для следующего шага системы координат.

Создайте регрессоры, блок MATLAB Function, создает сигнал Hframe. Первый столбец Hframe содержит текущий входной кадр. Второй столбец содержит текущую систему координат, смещенный на одно положение. Первый элемент второго столбца, представляющий самую старую выборку, из предыдущей наблюдаемой системы координат входов.

Рекурсивный блок оценки методом наименьших квадратов

Строение блока включает в себя основанную на кадре входную обработку со шаг расчета 10.

Визуализация ошибок

Порт Error обеспечивает ошибки предсказания в векторной системе координат, $[e(1) ... e(10)]^T$где$e(i)$ является положением в системе координат в заданное время$t$ и эквивалентно. $e(t-10+i)$Эти ошибки предсказания могут сравниваться с наблюдаемыми выходами системы координат$[y(1) ... y(10)]^T$ несколькими способами. Этот пример сравнивает 2-нормы этих векторов. Вектор ошибки с малой нормой относительно нормы наблюдаемых выходов предполагает успешную оценку. Область возможностей отображает график сравнения.

Результаты

Запустите симуляцию. Область возможностей параметры показывает прогрессию$a_1(t)$$a_2(t)$ оценок параметра and. Смежное отображение параметров отображает текущие значения$a_1(t)$ и. $a_2(t)$Возможности Эффективность строят графики 2-норм наблюдаемых выходов и систем координат ошибки предсказания, как описано в ошибке, так как он сравнивается с исходным сигналом измерения, как описано в Визуализации Ошибок.

sim(rlsfb)
open_system([rlsfb '/Parameters'])
open_system([rlsfb '/Performance'])

График Parameters показывает, что оценки параметров сходятся приблизительно T = 150. График эффективности показывает, что ошибки предсказания малы по сравнению с наблюдаемыми выходами. Эти результаты свидетельствуют об успешной оценке. Окончательные оценки параметров на отображении Parameter идентичны оценкам в командной строке и примерах Simulink, основанных на выборке, связанных в начале этого примера.

См. также

| |

Похожие темы