Прежде чем можно будет выполнить эту задачу, вы должны иметь
Данные ввода - вывода как 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
оцениваются.