Оцените модели процессов в командной строке

Предпосылки

Прежде чем можно будет выполнить эту задачу, вы должны иметь

Используя пропояс, чтобы Оценить Модели процессов

Можно оценить модели процессов с помощью итеративного метода оценки procest, который минимизирует ошибки прогноза получить оценки наибольшего правдоподобия. Получившиеся модели хранятся как объекты модели idproc.

Можно использовать следующий общий синтаксис, чтобы и сконфигурировать и оценить модели процессов:

m = procest(data,mod_struc,opt)

data является данными об оценке, и mod_struc является одним из следующего:

  • Вектор символов, который представляет структуру модели процесса, как описано в Спецификации Структуры Модели процесса.

  • Модель шаблона idproc. opt является набором опции для конфигурирования оценки модели процесса, такой как обработка начальных условий, входное смещение и числовой метод поиска.

Совет

Вы не должны создавать объект модели с помощью idproc перед оценкой, если вы не хотите задать начальные предположения параметра, минимальные/максимальные границы или зафиксированные значения параметров, как описано в Оценочных Моделях процессов с Фиксированными Параметрами.

Для получения дополнительной информации о проверке модели процесса, см. Модели Проверки После Оценки.

Можно использовать procest, чтобы совершенствовать оценки параметра существующей модели процесса, как описано в Совершенствовали Линейные Параметрические Модели.

Для получения дальнейшей информации смотрите procest и idproc.

Оцените модели процессов со свободными параметрами

Этот пример показывает, как оценить параметры модели процесса первого порядка:

G(s)=Kp1+sTp1e-sTd

Этот процесс имеет два входных параметров, и ответ от каждого входа оценивается моделью процесса первого порядка. Все параметры свободны отличаться.

Загрузите данные об оценке.

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 оцениваются.

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте