exponenta event banner

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

Предпосылки

Перед выполнением этой задачи необходимо иметь

Использование процесса для оценки моделей процессов

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

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                           

Используйте точечную нотацию для получения значения любого параметра модели. Например, получить значение параметра усиления постоянного тока 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 оцениваются.

См. также

|

Связанные темы