Порядок виконання. 1.Оцінка керованості і спостережуваності об’єкта, заданого матрицями A, B, C,D

1.Оцінка керованості і спостережуваності об’єкта, заданого матрицями A, B, C,D.

Вводимо вхідні дані, для чого у вікні управління набираємо:

a = [0 0 0 1; -9.7 0 2.2 -7.1; 6.1*exp(-3) 0 -0.12 0.99;0 0 -0.25 -0.96 ];

 

b = [0; 0; 0; -0.5];

 

c = [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1];

d = [0];

 

Лінійна стаціонарна система є цілком керованою за станом тоді і тільки тоді, якщо матриця К = [В АВ А2В .. ] має ранг п (де п - кількість рядків матриці А {п х n)) і не є виродженою.

Одержимо матрицю К для об’єкта. Для цього у вікні управління набираємо:

k = ctrb (a, b)

 

k =

0 -0.5000 0.4800 -0.3370

0 3.5500 0.3530 -1.4209

0 -0.4950 0.3827 -0.2338

-0.5000 0.4800 -0.3370 0.2279

 

Перевіримо, чи є матриця К виродженою. Для цього набираємо:

dk = det(k)

 

dk =

-0.0057

 

Ця команда виконується тільки для симетричної матриці.

Знайдемо ранг матриць K Для цього у вікні управління набираємо:

rang_k = rank(k)

 

rang_k =

 

Отримане значення rang_k повинно дорівнювати розмірності матриці А. Лінійна стаціонарна система є цілком спостережуваною тоді і тільки тоді, коли матриця

G = [СТ CTТ)2СТ ... має ранг, що дорівнює . кількості рядків матриці А (тобто п), і не є виродженою.

Одержимо матрицю G для системи. Для цього у вікні управління набираємо:

 

S1 = ss(a, b, c, d); ,

 

obsv(S1)

 

ans =

1.0000 0 0 0

0 1.0000 0 0

0 0 1.0000 0

0 0 0 1.0000

0 0 0 1.0000

-9.7000 0 2.2000 -7.1000

0.3037 0 -0.1200 0.9900

0 0 -0.2500 -0.9600

0 0 -0.2500 -0.9600

0.6681 0 1.5110 -0.7060

-0.0364 0 -0.2331 -0.7655

-0.0759 0 0.2700 0.6741

-0.0759 0 0.2700 0.6741

0.4589 0 -0.0048 2.8418

-0.0708 0 0.2193 0.4677

0.0820 0 -0.2009 -0.4558

 

g = obsv(a, c)

 

g =

1.0000 0 0 0

0 1.0000 0 0

0 0 1.0000 0

0 0 0 1.0000

0 0 0 1.0000

-9.7000 0 2.2000 -7.1000

0.3037 0 -0.1200 0.9900

0 0 -0.2500 -0.9600

0 0 -0.2500 -0.9600

0.6681 0 1.5110 -0.7060

-0.0364 0 -0.2331 -0.7655

-0.0759 0 0.2700 0.6741

-0.0759 0 0.2700 0.6741

0.4589 0 -0.0048 2.8418

-0.0708 0 0.2193 0.4677

0.0820 0 -0.2009 -0.4558

 

Перевіримо, чи є матриця G виродженою. Для цього набираємо:

dg = det(g)

 

Ця команда виконується тільки для симетричної матриці.

Знайдемо ранг матриць G. Для цього у вікні управління набираємо:

Rahg_g = rank(g)

 

Rahg_g =

 

Отримане значення rang_g повинно дорівнювати розмірності матриці А.

2. Оцінка керованості і спостережуваності об’єкта і незмінної частини системи «об’єкт + сервопривод».

Одержимо передатну функцію системи «об’єкт + сервопривод» з приводом, передатна, функція якого . Для цього у вікні управління набираємо:

 

Wob=tf ([0.5 0.6], [1 1.08 0.3627 0.001525])

 

 

Transfer function:

0.5 s + 0.6

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

s^3 + 1.08 s^2 + 0.3627 s + 0.001525

 

 

Wsp1=tf (1, [0.1 1])

 

 

Transfer function:

---------

0.1 s + 1

 

Wraz1= Wob * Wsp1 ,

 

 

Transfer function:

0.5 s + 0.6

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

0.1 s^4 + 1.108 s^3 + 1.116 s^2 + 0.3629 s + 0.001525

 

 

де Wraz1 - передатна функція системи «об’єкт + сервопривод».

 

Одержимо матриці , , для об’єкта (i=1) і системи «об’єкт + сер­вопривод» (i=2). Для цього у вікні управління набираємо:

[a1, b1, c1, d1]= ssdata(Wob)

 

a1 =

-1.0800 -0.3627 -0.0015

1.0000 0 0

0 1.0000 0

b1 =

c1 =

0 0.5000 0.6000

d1 =

 

[a2, b2, c2, d2]= ssdata(Wraz1)

 

a2 =

-11.0800 -1.3953 -0.0283 -0.0001

8.0000 0 0 0

0 16.0000 0 0

0 0 2.0000 0

b2 =

0.2500

c2 =

0 0 0.1563 0.0937

d2 =

 

 

Одержимо матриці для об’єкта (і = 1) і системи «об’єкт + сервопривод» (i= 2). Для цього у вікні управління набираємо:

k1 =ctrb(a1, b1)

 

k1 =

1.0000 -1.0800 0.8037

0 1.0000 -1.0800

0 0 1.0000

 

k2 = ctrb(a2, b2)

 

k2 =

0.2500 -2.7700 27.9009 -279.1287

0 2.0000 -22.1600 223.2074

0 0 32.0000 -354.5600

0 0 0 64.0000

 

Перевіримо, чи є матриці виродженими. Для цього набираємо:

dk1= det (k1)

 

dk1 =

 

dk2= det (k2)

 

dk2 =

 

Знайдемо ранг матриць Для цього у вікні управління набираємо:

rang_k1=rank(k1)

 

rang_k1 =

 

rang_k2 = rank(k2)

 

rang_k2 =

 

Значення rang_ повинно дорівнювати кількості рядків відповідних матриць .

Одержимо матриці , для об’єкта (і =1) і системи «об’єкт + сервопривод»(i=2). Для цього у вікні управління набираємо:

g1= obsv (a1, c1)

 

g1 =

0 0.5000 0.6000

0.5000 0.6000 0

0.0600 -0.1814 -0.0008

 

g2 =obsv(a2, c2)

 

g2 =

0 0 0.1563 0.0937

0 2.5000 0.1875 0

20.0000 3.0000 0 0

-197.6000 -27.9068 -0.5670 -0.0012

 

Перевіримо, чи є матриці виродженими. Для цього набираємо:

dg1=det (g1)

 

dg1 =

-0.0758

 

dg2=det (g2)

 

dg2 =

-3.2576

 

 

Знайдемо ранг матриць . Для цього у вікні управління набираємо:

rang_g1 = rank(g1)

 

rang_g1 =

 

 

rang_g2 = rank(g2)

 

rang_g2 =

 

 

Значення rang_ повинні дорівнювати розмірності відповідних матриць .

3.Пункт 2 виконати з передатною функцією