Этот пример показывает, как оценить ограниченные значения интерполяционной таблицы в Parameter Estimator. Примените монотонно увеличивающиеся ограничения к выходным значениям интерполяционной таблицы и используйте Parameter Estimator для оценки значений таблицы.
В этом примере используйте lookup_increasing.mat
, который содержит измеренные данные ввода-вывода для оценки значений интерполяционной таблицы. MAT-файл включает следующие переменные:
xdata1
- Входные данные, состоящие из 602 равномерно выбранных точек данных в области значений [-5,5]
.
ydata1
- Выходные данные, соответствующие выборкам входных данных.
time1
- Временной вектор.
Используйте данные ввода-вывода, чтобы оценить монотонно увеличивающиеся выходные значения интерполяционной таблицы в lookup_increasing
Simulink® модель.
Откройте модель интерполяционной таблицы, введя следующую команду в MATLAB® приглашение:
lookup_increasing
Эта команда открывает модель Simulink и загружает данные оценки в рабочее пространство MATLAB.
Просмотрите выходные значения таблицы двойным кликом по блоку Lookup Table.
Таблица содержит 11 выходных значений в точках останова [-5:5]
, заданный в диалоговом окне Function Параметры блоков. Дополнительные сведения о том, как задать значения таблицы, см. в разделе Ввод точек по оси Х и данных по таблице.
Поле Table data показывает, что выходные значения таблицы являются совокупной суммой значений, сохраненных в переменной ydelta
. Таким образом, если yn
выходные значения 11 таблицы, ydelta
is (y1, y2 - y1, y3 - y2,..., y11 - y10
). Начальная ydelta
значения загружаются из lookup_increasing.mat
.
Выходные значения начальной таблицы не увеличиваются монотонно. Чтобы гарантировать монотонное увеличение значений выхода таблицы, различие между соседними значениями выхода таблицы должна быть положительной. Для этого оцените ydelta
в Parameter Estimator с использованием измеренных данных оценки ввода-вывода и ограничивают ydelta(2:end)
быть положительным во время оценки.
Откройте сеанс оценки параметра.
В модели Simulink выберите Parameter Estimator на вкладке Apps, в галерее, под Control Systems, чтобы открыть сеанс с именем, lookup_increasing в Parameter Estimator.
Создайте эксперимент и импортируйте данные ввода-вывода.
На вкладке Parameter Estimation нажмите New Experiment. Тип [time1,ydata1]
в Outputs и [time1,xdata1]
в Inputs из диалогового окна Править эксперимент (Edit Experiment). Нажмите OK. Новый эксперимент с именными Exp
создается в Experiments области приложения. Переименуйте эксперимент EstimationData
щелкнув правой кнопкой мыши имя эксперимента по умолчанию, Exp
, и выбор Rename
. Для получения дополнительной информации см. «Импорт данных для оценки параметра».
Запустите начальную симуляцию, чтобы просмотреть измеренные данные, моделируемые значения модели и начальные значения таблицы путем ввода следующих команд в подсказке MATLAB.
sim('lookup_increasing') figure(1); plot(xdata1,ydata1,'m*',xout,yout,'b^') hold on; plot(-5:5,cumsum(ydelta),'k','LineWidth',2) xlabel('Input Data'); ylabel('Output Data'); legend('Measured data','Initial simulated data','Initial table output')
Начальные выходные значения таблицы и моделируемые данные не совпадают с измеренными данными.
Выберите параметр для оценки.
На вкладке Parameter Estimation нажмите Select Parameters. Откроется диалоговое окно Править: Предполагаемые параметры (Edit: Estimated Parameters). На панели Parameters Tuned for all Experiments щелкните Select parameters, чтобы открыть диалоговое окно Выбрать переменные модели (Select Model Variables). Установите флажок рядом с ydelta
, и нажмите OK.
The ydelta
значения по умолчанию выбираются для оценки в диалоговом окне Edit: Estimated Parameters.
Примените монотонно увеличивающееся ограничение к выходным значениям таблицы. Для получения дополнительной информации о таблице см. Раздел Интерполяционная таблица Выхода.
В диалоговом окне Edit: Estimated Parameters щелкните стреле рядом с ydelta
значения. В развернутом меню установите Minimum
ydelta значения в
[-Inf,zeros(1,10)]
. Таким образом, в то время как первое значение в ydelta
может быть любым, последующие значения, которые являются различием между соседними таблицами выхода значениями, должны быть положительными.
Выберите EstimationData
эксперимент для оценки.
На вкладке Parameter Estimation нажмите Select Experiment. По умолчанию EstimationData
выбран для оценки. Если нет, установите флажок под Estimation столбцом и нажмите OK.
Оцените значения таблицы с помощью настроек по умолчанию.
На вкладке Parameter Estimation нажмите Estimate.
График Parameter Trajectory показывает изменение значений параметров при каждой итерации.
Отчет о прогрессе оценки показывает количество итераций, количество раз, когда вычисляется целевая функция, и значение функции затрат в конце каждой итерации.
Предполагаемые параметры сохраняются в новой переменной, EstimatedParams
, в Results области приложения. Чтобы просмотреть предполагаемые параметры, щелкните правой кнопкой мыши EstimatedParams
и выберите Open.
Предполагаемые ydelta(2:end)
значения положительны. Таким образом, выход таблицы, которая является совокупной суммой значений, хранимых в ydelta
, монотонно увеличивается.
После того, как вы оцените значения таблицы, как описано в Оценке монотонно увеличивающихся значений таблицы с помощью настроек по умолчанию, вы используете другой набор измеренных данных, чтобы подтвердить и проверить, что у вас нет сверхподгонки модели. Можно построить и изучить следующие графики, чтобы подтвердить результаты оценки:
График невязок
Измеренные и моделируемые графики данных
Создайте эксперимент, который будет использоваться для валидации и импорта данных ввода-вывода валидации.
На вкладке Parameter Estimation нажмите New Experiment. Тип [time2,ydata2]
в Outputs и [time2,xdata2]
в Inputs из диалогового окна Править эксперимент (Edit Experiment). Назовите эксперимент ValidationData
щелкнув правой кнопкой мыши имя эксперимента по умолчанию, Exp
, в области Experiments приложения и выбора Rename
. Для получения дополнительной информации см. «Импорт данных для оценки параметра».
Выберите эксперимент для валидации.
Щелкните Select Experiments на вкладке Parameter Estimation. The ValidationData
эксперимент выбран для оценки по умолчанию. Очистить Estimation и выбрать поле для Validation.
Выберите результаты для проверки.
На вкладке Validation нажмите Select Results to Validate. Очистить Use current parameter values
, выберите EstimatedParams
, и нажмите OK.
Выберите графики для отображения во время валидации.
По умолчанию в Parameter Estimator отображается график эксперимента после валидации. Добавить график невязок можно путем выбора соответствующего поля на вкладке Validation.
Нажмите Validate.
Исследуйте графики.
График эксперимента показывает данные, моделируемые с использованием оцененных параметров, согласуется с измеренными данными валидации.
Чтобы просмотреть график невязок, перейдите на вкладку Residual plot: ValidationData.
Невязки, которые показывают различие между моделируемыми и измеренными данными, лежат в пределах 15% от максимального изменения выходного сигнала. Это указывает на хорошее соответствие между измеренными и моделируемыми значениями данных таблицы.
Постройте и исследуйте данные валидации, моделируемые данные и оценочные значения таблицы.
sim('lookup_increasing') figure(2); plot(xdata2,ydata2,'m*',xout,yout,'b^') hold on; plot(-5:5,cumsum(ydelta),'k','LineWidth', 2) xlabel('Input Data'); ylabel('Output Data'); legend('Validation data','Simulated data','Table output values');
Выходные значения таблицы совпадают как с измеренными данными, так и с моделируемыми значениями таблицы. Выходные значения таблицы охватывают всюсь область значений входа значений, что указывает на то, что все значения интерполяционной таблицы были оценены.