Прежде чем можно будет выполнить эту задачу, вы должны иметь
Данные ввода - вывода как 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');
Оценочная модель с одним полюсом, задержкой и компонентом воздействия первого порядка. Данные содержат известные смещения. Задайте их использующий InputOffset и OutputOffset опции.
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 оцениваются.