Прежде чем можно будет выполнить эту задачу, вы должны иметь
Данные ввода - вывода как объект iddata или данные о частотной характеристике как frd или объекты idfrd. Смотрите Время Представления - и Данные Частотного диапазона Используя Объекты iddata. Для поддерживаемых форматов данных смотрите Данные, Поддержанные Моделями процессов.
Выполняемый любые необходимые операции предварительной обработки данных. При работе с данными об области времени, если необходимо смоделировать ненулевые смещения, такой как тогда, когда модель содержит поведение интегрирования, не детрендируйте данные. В других случаях, чтобы улучшить точность вашей модели, необходимо детрендировать данные. Смотрите Способы Подготовка данных для System Identification.
Можно оценить модели процессов с помощью итеративного метода оценки procest, который минимизирует ошибки прогноза получить оценки наибольшего правдоподобия. Получившиеся модели хранятся как объекты модели idproc.
Можно использовать следующий общий синтаксис, чтобы и сконфигурировать и оценить модели процессов:
m = procest(data,mod_struc,opt)
data является данными об оценке, и mod_struc является одним из следующего:
Вектор символов, который представляет структуру модели процесса, как описано в Спецификации Структуры Модели процесса.
Модель шаблона idproc. opt является набором опции для конфигурирования оценки модели процесса, такой как обработка начальных условий, входное смещение и числовой метод поиска.
Вы не должны создавать объект модели с помощью idproc перед оценкой, если вы не хотите задать начальные предположения параметра, минимальные/максимальные границы или зафиксированные значения параметров, как описано в Оценочных Моделях процессов с Фиксированными Параметрами.
Для получения дополнительной информации о проверке модели процесса, см. Модели Проверки После Оценки.
Можно использовать procest, чтобы совершенствовать оценки параметра существующей модели процесса, как описано в Совершенствовали Линейные Параметрические Модели.
Для получения дальнейшей информации смотрите procest и idproc.
Этот пример показывает, как оценить параметры модели процесса первого порядка:
Этот процесс имеет два входных параметров, и ответ от каждого входа оценивается моделью процесса первого порядка. Все параметры свободны отличаться.
Загрузите данные об оценке.
load co2dataЗадайте известный шаг расчета 0,5 min.
Ts = 0.5;
Разделите набор данных в данные об оценке ze и данные о валидации zv.
ze = iddata(Output_exp1,Input_exp1,Ts,... 'TimeUnit','min'); zv = iddata(Output_exp2,Input_exp2,Ts,... 'TimeUnit','min');
Оценочная модель с одним полюсом, задержкой и компонентом воздействия первого порядка. Данные содержат известные смещения. Задайте их использующий опции OutputOffset и InputOffset.
opt = procestOptions; opt.InputOffset = [170;50]; opt.OutputOffset = -45; opt.Display = 'on'; opt.DisturbanceModel = 'arma1'; m = procest(ze,'p1d',opt)
m =
Process model with 2 inputs: y = G11(s)u1 + G12(s)u2
From input "u1" to output "y1":
Kp
G11(s) = ---------- * exp(-Td*s)
1+Tp1*s
Kp = 2.6553
Tp1 = 0.15515
Td = 2.3175
From input "u2" to output "y1":
Kp
G12(s) = ---------- * exp(-Td*s)
1+Tp1*s
Kp = 9.9756
Tp1 = 2.0653
Td = 4.9195
An additive ARMA disturbance model exists for output "y1":
y = G u + (C/D)e
C(s) = s + 2.676
D(s) = s + 0.6228
Parameterization:
'P1D' 'P1D'
Number of free coefficients: 8
Use "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using PROCEST on time domain data "ze".
Fit to estimation data: 91.07% (prediction focus)
FPE: 2.431, MSE: 2.412
Используйте запись через точку, чтобы получить значение любого параметра модели. Например, получите значение параметра усиления dc Kp.
m.Kp
ans = 1×2
2.6553 9.9756
Этот пример показывает, как оценить модель процесса с фиксированными параметрами.
Когда вы знаете значения определенных параметров в модели и хотите оценить только значения, вы не знаете, необходимо задать фиксированные параметры после создания объекта модели idproc. Используйте следующие команды, чтобы подготовить данные и создать модель процесса с одним полюсом и задержкой:
Загрузите данные об оценке.
load co2dataУкажите, что известный шаг расчета составляет 0,5 минуты.
Ts = 0.5;
Разделите набор данных в данные об оценке ze и данные о валидации zv.
ze = iddata(Output_exp1,Input_exp1,Ts,... 'TimeUnit','min'); zv = iddata(Output_exp2,Input_exp2,Ts,... 'TimeUnit','min'); mod = idproc({'p1d','p1d'},'TimeUnit','min')
mod =
Process model with 2 inputs: y = G11(s)u1 + G12(s)u2
From input 1 to output 1:
Kp
G11(s) = ---------- * exp(-Td*s)
1+Tp1*s
Kp = NaN
Tp1 = NaN
Td = NaN
From input 2 to output 1:
Kp
G12(s) = ---------- * exp(-Td*s)
1+Tp1*s
Kp = NaN
Tp1 = NaN
Td = NaN
Parameterization:
'P1D' 'P1D'
Number of free coefficients: 6
Use "getpvec", "getcov" for parameters and their uncertainties.
Status:
Created by direct construction or transformation. Not estimated.
Kp параметров модели, Tp1 и Td являются присвоенными значениями NaN, что означает, что параметры еще не были оценены от данных.
Используйте свойство модели Structure задать исходные предположения для неизвестных параметров, минимальных/максимальных границ параметра и зафиксировать известные параметры.
Установите значение Kp для второй передаточной функции к 10 и задайте его как фиксированный параметр. Инициализируйте значения задержки для этих двух передаточных функций к 2 и 5 минутам, соответственно. Задайте их как свободные параметры оценки.
mod.Structure(2).Kp.Value = 10; mod.Structure(2).Kp.Free = false; mod.Structure(1).Tp1.Value = 2; mod.Structure(2).Td.Value = 5;
Оцените Tp1 и Td только.
mod_proc = procest(ze,mod)
mod_proc =
Process model with 2 inputs: y = G11(s)u1 + G12(s)u2
From input "u1" to output "y1":
Kp
G11(s) = ---------- * exp(-Td*s)
1+Tp1*s
Kp = -3.2213
Tp1 = 2.1707
Td = 4.44
From input "u2" to output "y1":
Kp
G12(s) = ---------- * exp(-Td*s)
1+Tp1*s
Kp = 10
Tp1 = 2.0764
Td = 4.5205
Parameterization:
'P1D' 'P1D'
Number of free coefficients: 5
Use "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using PROCEST on time domain data "ze".
Fit to estimation data: 77.44%
FPE: 15.5, MSE: 15.39
В этом случае значение Kp фиксируется, но Tp1 и Td оцениваются.