Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Идентификация систем управления учебное пособие

..pdf
Скачиваний:
98
Добавлен:
15.11.2022
Размер:
3.33 Mб
Скачать

'mdl' – возвращается структура, обеспечивающая минимум критерия Риссанена минимальной длины описания (Rissanen's Minimum Description Lеngth):

vmod =

 

v

 

 

;

 

+log(N)(d

 

))

(1

N

 

 

 

 

 

 

при строковой переменной, равной некоторому численному значению а, выбирается структура, которая минимизирует:

vmod =

 

v

 

 

.

 

+a(d

 

))

(1

N

 

 

 

 

 

 

Выбор наилучшей структуры порядков полиномов можно осуществить и с помощью более простой команды:

>>nn=selstruc(v,0)

MatLab возвращает

nn=7 9 1.

С учетом выбранной структуры модели определим вид модели ARX, выполнив функцию arx:

>>darx=arx(zdanv,nn).

Возвращается матрица из 100 столбцов и 4 строк со значениями различных критериев:

vmod=…………. .

Возвращается дискретная модель, представленная в тета-формате (внутренний вид матричных моделей).

Discrete-time IDPOLY model: А(q)у(t)=B(q)u(t)+e(t)

A(q)=1- 0.9601q^-1+0.03384q^-2-0.1035 q^-3+0.089q^-4- 0.02827^q-5+

+0.1383q^-6-0.06615q^-7 B(q)=0.0009708q^-1+0.003863q^-2+0.06428q^-3+0.06245q^-4+ +0.01997q^-5-0.007896q^-6-0.01869q^-7-0.01931 q^-8-0.007944q^-9 Estimated using ARX from data set zdanv

Loss function 0.00139284 and FPE 0.00148493 Sampling interval: 0.08.

101

Функция armax оценивает параметры ARMAX-модели: >>darmax=armax(zdanv,[2 2 2 1]).

Аргументы функции:

zdanv – вектор экспериментальных данных;

[nа nb nc nk] – степени полиномов и величина задержки. Возвращается дискретная модель в тета-формате:

Discrete-time IDPOLY model: A(q)y(t=B(q)u(t)+C(q)e(t) A(q=1-1.648q^-1+0.7054q^'-2 B(q)=0.005017q^-1+0.04556q^-2 C(q)=1-0.278q^-1-0.4333q^-2

Estimated using ARMAX from data set zdanv Loss function 0.00723841 and FPE 0,00741677 Sampling interval: 0.08.

Функция ое оценивает параметры ОЕ-модели: >>zoe=oe(zdanv,[2 2 I]).

Возвращается дискретная модель, представленная в тета-формате:

Discrete time IDPOLY model: y(t)=[B(q)/F(q)]u(t)+e(t) B(q)=-0.04799q^-1+0.1169q^-2 F(q)=1-1.513q^-1+0.5894^q-2

Estimated using ОЕ from data set zdanv 1.oss function 0.0180258 and FPE 0.0183195 Sampling interval: 0.08.

Функция bj оценивает параметры модели Бокса-Дженкинса: >>zbj=bj(zdanv,[2 2 2 2 1]).

Возвращается дискретная модель, представленная в тета-формате:

Discrete time IDPOLY model: y(t)=[B(q)F(q)]u(t)+[C(q)/D(q)]e(t) В(q)=0.01242q^-1+0.03574q^-2 C(q)=1+0.5362q^-1+0.1415q^-2

D(q)=1-0.9029q^-1+ 0.2424q^-2 F(q)=1-1.657q^-1-0.7119q^-2 Estimated using BJ from data set zdanv

Loss function 0.00672765 and FPE 0.00695098 Sampling interval: 0.08.

Функция n4sid используется для оценивания параметров моделей переменных состояния в канонической форме при произвольном числе входов и выходов:

102

[zn4s,АO] = n4sid(z,order,ny,auxord),

где z – матрица экспериментальных данных; order – задает порядок модели. Если данный аргумент вводится как вектор-строка, то предварительные расчеты выполняются по моделям всех заданных порядков (по умолчанию от первого по десятый) с выводом графика, позволяющего выбрать оптимальный порядок. Если order = 'best' (по умолчанию), то выбирается модель наилучшего порядка; ny – количество выходов (по умолчанию ny = 1); auxord – дополнительный порядок, используемый алгоритмом оценивания. Данный порядок должен быть больше, чем порядок, задаваемый параметром order (по умолчанию дополнительный порядок равен (1.2*order+3)). Если данный аргумент вводится как вектор-строка, то выбирается модельнаилучшегопорядка.

Для рассматриваемого примера Project имеем: >>zn4s= n4sid(zdanv,[1:10],11:10]),

где в первых квадратных скобках задается интервал порядков модели order, предварительные расчеты выполняются по моделям всех заданных порядков от 1 до 10 с выводом графика, позволяющего выбрать оптимальный порядок. После этого необходимо в командной строке MatLab набрать этот порядок и продолжить вычисление коэффициентов модели, нажав клавишу Enter (рис. 2.10).

Рис. 2.10. График для выбора оптимального порядка модели

103

Во вторых квадратных скобках задается дополнительный порядок, используемый алгоритмом оценивания (по умолчанию дополнительный порядок равен (1.2*order+3)). При этом выбирается оптимальный порядок без вывода соответствующего графика.

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

Warning: Input arguments must be scalar. >In n4sid>transf at 1027

Iп n4sid at 134

Select model order:('Return' gives default).

При нажатии In n4sid>transf at 1027, In n4sid at 134 появится окно редактора М-файла программы.

При нажатии Enter появится Order chosen to 3. State-space model: x(t +Ts) = Ax(t) + Bu(t) + Ke(t),

y(t) = Cx(t) + Du(t) +e(t).

 

 

A =

 

 

x1

x2

x3

x1

0.96014

0.21598

0.062944

x2

0.24873

0.66536

0.2574

x3

0.036067 0.64612

0.14772

 

 

B =

 

 

расход газа

 

 

x1

0.00029117

 

 

x2

0.012463

 

 

x3

0.032588

 

 

 

C =

 

 

температура

 

 

x1

x2

x3

 

18.093 0.078884 0.1539

D =

расход газатемпература

0

104

К = температура

x1

0.026294

x2

0.00982

x3

0.032588

 

x(0) =

x1

0.0073071

x2

0.012254

x3

0.05598

Estimated using N4SID from data set zdanv Loss function 0.0020154 and FPE 0.00211451 Sampling interval: 0.08.

Функция pem оценивает параметры обобщенной многомерной линейной модели:

>>zpem=pem(zdanv).

State-space model:

 

x(t +Ts) = Ax(t) + Bu(t) + Ke(t),

 

y(t) = Cx(t) + Du(t) +e(t).

 

 

 

A =

 

 

x1

x2

x3

x1

0.9525

0.20939

0.049221

x2

0.25496

0.65832

0.2538

x3

0.038767

0.64818

0.14259

B =

расход газа x1 0.0002445 x2 0.011953 x3 0.041018

C =

температура

x1

x2

x3

18.093

0.078583

0.15352

105

D =

расход газатемпература

0

К = температура x1 0.05191 x2 0.006843 x3 0.067671 x(0) =

x1 0 x2 0 x3 0

Estimated using PEM from data set zdanv Loss function 0.00157651 and FPE 0.0016343 Sampling interval: 0.08.

2.3.3.4. Функции преобразования моделей

Для дальнейшего использования полученных моделей при анализе и синтезе систем в пакете System Identification ToolBox имеются специальные функции, позволяющие выполнить преобразование этих моделей из тета-формата (внутреннего вида матричных моделей, являющегося дискретным) в другие виды, и в частности, из дискретной в непрерывную модель в виде передаточной функции.

Функция th2arx преобразует модель тета-формата в ARX-модель. Функция имеет синтаксис

>> [А,B]=th2arx(darx),

где darx – модель тета-формата:

А=

Columns 1 through 7

1.0000 -0.9601 0.0338 -0.1035 0.0890 -0.0283 0.1383 Соlumn 8

-0.0661

В=

106

Columns 1 through 7

0 0.0010 0.0039 0.0643 0.0625 0.0200 -0.0079 Columns 8 through 10

-0,0187 -0.0193 -0.0079

Функция th2ff вычисляет частотные характеристики и соответствующие стандартные отклонения по модели в тета-формате. В качестве аргумента функции может выступать любая из рассмотренных ранее моделей, например darx:

>>[g,рhiv]=th2ff(dаrx)

IDFRD model g.

Contains Frequency Response Data for 1 output and 1 input and SpectrumData for disturbances at 1

output at 140 frequency points, ranging from 0.1 rad/s to 39.27 rad/s. Output Channels: температура

Input Channels: расход газа Sampling time: 0.08

Estimated from data set zdanv using АRХ. IDFRD model phiv.

Contains SpectrumData for 1 signal

at 105 frequency points, ranging from 0.1 rad/s to 39.27 rad/s/ Output Channels: температура

Sampling time: 0.08

Estimated from data set zdanv using ARX.

Функция th2poly преобразует матрицу модели тета-формата в матрицы обобщенной (многомерной) линейной модели:

>>[А,В,С,D,К,lan,T]=th2poly(zpem)

А= 1.0000 -1.7534 1.0765 -0.2489 В= 0 0.0009 0.0012 0.0688 С= 1.0000 -0.8043 0,2732 0.1086 D=1

К= l

lan= .0016 Т= 0.0800.

Здесь параметр lan определяет интенсивность шума наблюдений.

107

Функция th2ss преобразует тета-модель в модель для переменных состояния. В качестве аргумента функции может выступать любая из рассмотренных ранее моделей, например darmax:

>>[А,В,С,D,К,х0]=th2ss(zn4s)

А= 1.6483 1.0000 -0.7054 0 В= 0.0050 0.0456

С= l 0 D=0

К= 1.3703 -1.1387 х0= 0 0.

Функция th2tf преобразует модель тета-формата многомерного объекта в вектор передаточных функций, связанных с выбранным входом:

>>[num,den]= th2tf(zn4s)

num= 0 -0.0012 0.0069 0.0632 den= 1.0000 -1,7732 1.1013 -0,2554,

Команда tf служит для представления передаточной функции в виде отношения

>>zzn4s=tf(num,den,0.08)

Transfer function: -0.001236z^2+0,006901z+0.06318

------------------------------------------

z^3-1.773z^2+1.101z-0.2554 Sampling time: 0.08.

Функция thd2thc преобразуетдискретнуюмодель в непрерывную. Например: преобразовать дискретную модель тета-формата zn4s (модель переменных состояния в канонической форме при произвольном числе входов и выходов) в непрерывную модель и представить ее в виде передаточной функции. Для этого необходимо сначала выполнить функцию thd2thc, преобразующую дискретную модель в непрерывную, затем выполнить функцию th2tf, преобразующую модель те- та-формата многомерного объекта в вектор передаточных функций, связанных с выбранным входом, а затем команду tf для представления

передаточной функции в виде отношения:

108

>>sn4s=thd2thc(zn4s);

>>[num,den]=th2tf(zn4s); >>sysn4s=tf(num,den).

Transfer function: 0.7165s^2-22.12s+264.4

-------------------------------------

s^3+17.06s^2+134.4s+279.1.

Для обратного преобразования непрерывной модели в дискретную модель существует функция thc2thd.

Функция th2zp рассчитывает нули, полюса и статические коэффициенты передачи (коэффициенты усиления) модели тета-формата zn4s многомерного объекта:

>>[zepo,k]=th2zp(zn4s)

zepo =

 

 

 

1.000

61.0000

21.0000

81.0000

10.4622

8.7202

0.7842

0.0085

-4.8834

3.3276

0.4945+0.2848i

0.0095+0.0176i

Inf

Inf

0.4945-0.2848i

0.6312

k=

1.0000

0.9476

0.0145.

Информацию о нулях и полюсах модели zn4s можно получить с помощью команды

>>[zero,polus]=getzp(zepo)

zero = 10.4662 -4.8834

polus =0.7842 0.4945+0.2848i 0.4945 – 0.2848i.

С помощью команды zpplot можно построить график нулей и полюсов модели zn4s:

>>zpplot(zpform(zepo)).

На рис. 2.11 представлен график нулей (обозначены кружком) и полюсов (обозначены крестиком) модели zn4s, который получен с помощью команды zpplot.

109

Риc. 2.11. Графики нулей и полюсов модели zn4s

Данные графика показывают, что модель является устойчивой: полюса модели находятся внутри окружности с радиусом, равным 1, проходящей через точку с координатами (–1; j0).

2.3.3.5. Проверка адекватности модели

Одним из важных этапов идентификации объектов автоматизации является проверка качества модели по выбранному критерию близости выхода модели и объекта, т.е. проверка ес адекватности. В пакете System Identification Toolbox в качестве такого критерия принята оценка адекватности модели fit, которая рассчитывается по формуле

fit = norm( yh) / N ,

где norm – норма вектора; уh и у – выходы модели и объекта соответственно; N – количество элементов массива данных.

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

>>compare(zdane,zn4s,zpem,zoe,zbj,darx,darmax),

где zdane – выход объекта; zn4s, zpem, zoe, zbj, darx, darmax – выходы моделей zn4s, zpem, zое, zbj, darx, darmax.

Результатом выполнения команды является вывод графика выходов объекта и построенных моделей (рис. 2.12).

110