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

Необходимые условия

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

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

Можно оценить модели процессов с помощью итеративного метода оценки 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');

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

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

|

Похожие темы