Динамические и частотные характеристики САУ



Содержание

 

 

Введение

Целью данной курсовой работы было изучение методов теории автоматического  управления на примерах и приобретение навыков применения 

математических программных систем для решения практических задач  в рамках таких дисциплин как  «Теоретические основы автоматического  управления», «Основы теории управления». 

          Современные   вычислительные  средства  позволяют  без  особого труда   и   затрат   времени   решать   сложные   задачи   управления в технических системах не инженерными (адаптированными) методами, а с использованием математических аппаратов любой степени сложности. При этом не требуется помощь программиста для реализации методов и визуализации  проводимых  исследований.  Все  это  выполняет  такая современная математическая система, как MATLAB.

    1. Динамические и частотные характеристики САУ

Исходные данные:

 

Передаточная функция САУ:

>> w=tf([-3 -1 2],[-2 -7 0 -1])

Transfer function:

  3 s^2 + s - 2

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

2 s^3 + 7 s^2 + 1

>> pole(w)

ans =

  -3.5399         

   0.0200 + 0.3753i

   0.0200 - 0.3753i

>> zero(w)

ans =

   -1.0000

    0.6667

>> step(w)

Рисунок 1.1 - Переходная функция

 

>> impulse(w)

Рисунок 1.2 - Импульсная функция

 

 

 

>> bode(w)

Рисунок 1.3 - Диаграмма Боде (ЛАХ)

 

>> nyquist(w)

Рисунок 1.4 - Частотный годограф Найквиста

>> ltiview(w)

 

    1. Анализ и синтез САУ методом корневого годографа

Исходные данные:

Создадим  ZPK-объект,  найдем  полюса  и нули  разомкнутой системы:

>> s=zpk('s'); W=1/(0.0001*(s^2)+0.003*s+1)

Zero/pole/gain:

       10000

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

(s^2 + 30s + 1e004)

>> pole(W)

ans =

-15.0000 +98.8686i

-15.0000 -98.8686i

>> zero(W)

ans =

   Empty matrix: 0-by-1

 

 

 

 

 

Структура zpk-объекта:

При С = 3 корневой годограф:

 

 

 

 

 

 

Корневой годограф с нанесенным значением Ккр:

 

Значение Ккр:

Зададим значения 0.5K кр  и 0.25K кр  и определим значения полюсов.

Корневой годограф при  С = 0,5 Ккр = 0.00010198 и С = 0,25 Ккр = 5.1e-005

 

Рисунок 2.2 - Переходная функция для значения С= Ккр

Видно, что система  устойчива.

В  работе  на  основе  использования  метода  корневого годографа получены области значений коэффициента усиления, в которых система автоматического управления является устойчивой.

    1. Описание систем в пространстве состояний

Даны три линейные стационарные системы:

Структурная схема соединения систем:

Приведем систему 1 к  виду

.

Для этого введем переменные:

 

и, подставив их в исходные уравнения, получим:

;    ;        

Создадим матрицы всех трех систем в MatLab:

>> A1=[0 1;1 -3]

A1 =

     0     1

     1    -3

>> B1=[0;-2]

B1 =

     0

    -2

>> C1=[1 0]

C1 =

     1     0

>> A2=[1 2;3 2]

A2 =

     1     2

     3     2

>> B2=[1 -1 ;2 1]

B2 =

     1    -1

     2     1

>> C2=[-4 3]

C2 =

    -4     3

>> A3=[1 2;3 -2]

A3 =

     1     2

     3    -2

>> B3=[-4;1]

B3 =

    -4

     1

>> C3=[5 -1;3 1]

C3 =

     5    -1

     3     1

 

Создадим ss-объекты:

>> s1=ss(A1,B1,C1,0)

a =

       x1  x2

   x1   0   1

   x2   1  -3

b =

       u1

   x1   0

   x2  -2

c =

       x1  x2

   y1   1   0

d =

       u1

   y1   0

Continuous-time model.

>> s2=ss(A2,B2,C2,0)

a =

       x1  x2

   x1   1  2

   x2   3   2

b =

       u1  u2

   x1   1  -1

   x2   2   1

c =

       x1  x2

   y1  -4   3

d =

       u1  u2

   y1   0   0

Continuous-time model.

>> s3=ss(A3,B3,C3,0)

a =

       x1  x2

   x1   1   2

   x2   3  -2

b =

       u1

   x1  -4

   x2   1

c =

       x1  x2

   y1   5  -1

   y2   3   1

d =

       u1

   y1   0

   y2   0

Continuous-time model.

 

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

>> rank(ctrb(A1,B1))

ans =

     2

>> rank(obsv(A1,C1))

ans =

     2

>> rank(ctrb(A2,B2))

ans =

     2

>> rank(obsv(A2,C2))

ans =

     2

>> rank(ctrb(A3,B3))

ans =

     2

 

 

>> rank(obsv(A3,C3))

ans =

     2

 

Видно,   что   во   всех   случаях   ранги   матриц   управляемости   и наблюдаемости совпадают с размерностями пространства состояний.

Получим систему, определяемую соединением.

>> sys=append(s1,s2,s3)

a =

       x1  x2  x3  x4  x5  x6

   x1   0   1   0   0   0   0

   x2   1  -3   0   0   0   0

   x3   0   0   1   2   0   0

   x4   0   0   3   2   0   0

   x5   0   0   0   0   1   2

   x6   0   0   0   0   3  -2

b =

       u1  u2  u3  u4

   x1   0   0   0   0

   x2  -2   0   0   0

   x3   0   1 -1   0

   x4   0   2   1   0

   x5   0   0   0  -4

   x6   0   0   0   1

c =

       x1  x2  x3  x4  x5  x6

   y1   1   0   0   0   0   0

   y2   0   0  -4   3   0   0

   y3   0   0   0   0   5  -1

   y4   0   0   0   0   3   1

d =

       u1  u2  u3  u4

   y1   0   0   0   0

   y2   0   0   0   0

   y3   0   0   0   0

   y4   0   0   0   0

Continuous-time model.

>> s_com=connect(sys,[3 1;2 4],[1 3],[2 3])

a =

       x1  x2  x3  x4

   x1   0   1   0   0

   x2   1  -3   0   0

   x3  -1   0   1   2

   x4   1   0   3   2

b =

       u1  u2

   x1   0   0

   x2  -2   0

   x3   0  -1

   x4   0   1

c =

       x1  x2  x3  x4

   y1   0   0  -4   3

   y2   0   0   0   0

d =

       u1  u2

   y1   0   0

   y2   0   0

Continuous-time model.

 

>> A=s_com.A

A =

     0     1     0     0

     1    -3     0     0

    -1     0     1     2

     1     0     3     2

>> B=s_com.B

B =

     0     0

    -2     0

     0    -1

     0     1

>> C=s_com.C

C =

     0     0    -4     3

     0     0     0     0

 

Проверка управляемости  и наблюдаемости системы:

>> rank(ctrb(A,B))

ans =

     3

>> rank(obsv(A,C))

ans =

     4

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

    1. Устойчивость линейных систем

Задана  система  управления,  описываемая  конечно-разностными уравнениями в пространстве состояний и   известна   матрица   K,   определяющая   закон   управления   u   =   Kx.

Зададим матрицы, определяющие систему:

>> A=[1 2;3 -2]

A =

     1     2

     3    -2

>> B=[-4;1]

B =

    -4

     1

>> L=[7 9]

L =

     7     9

 

Определим решение уравнения  Ляпунова:

>> G=dlyap(A, eye(2))

G =

   -0.1551   -0.0764

   -0.0764   -0.1736

 

Произведем расчет главных  миноров:

>> det(G(1:1, 1:1))

ans =

   -0.1551

>> det(G)

ans =

    0.0211

 

Аналогично   можно   определить   свойство  асимптотической устойчивости в управляемой системе:

>> G=dlyap(A+B*L, eye(2))

G =

   -0.0539    0.0440

    0.0440   -0.0367

>> det(G)

ans =

  4.7835e-005

>> det(G(1:1, 1:1))

ans =

   -0.0539

 

По  критерию  Сильвестра  решение  не  является  положительно-определенной     матрицей,     следовательно,     система     не     является асимптотически устойчивой.

Определение устойчивости матрицы  Х на основе метода Раусса-Гурвица:

Создаем М-файл с кодом:

%получение  коэффициентов характеристического  полинома 

lm= poly(A); 

%определение  размерности 

[L, N] =size(lm); 

%создание  матрицы с нулевыми значениями 

g=zeros(N, N); 

%заполнение  нечетных строк матрицы Гурвица 

s=0;

for i=1:2:N

    j=1;

    j=j+s;

    r=0;

    for r=2:2:N

        g(i, j)=lm(r);

       j=j+1;

    end

    s=s+1;

end

%заполнение  четных строк матрицы Гурвица 

s=0;

for i=2:2:N

    j=1;

    j=j+s;

    r=0;

    for r=1:2:N

        g(i, j)=lm(r);

       j=j+1;

    end

    s=s+1;

end

g=g(1:N-1, 1:N-1);

%вычисление  главных миноров

minor=1;

for i=1:N-1

   dd = det(g(1:i, 1:i));

   if dd<0 

     minor=0;

   end

end

%вывод результатов

if minor==0 

    disp('СИСТЕМА НЕ УСТОЙЧИВА');

else

    disp('СИСТЕМА УСТОЙЧИВА');

end

 

Вызываем из командного окна MatLab этот файл (rauss.m)

>> rauss

СИСТЕМА НЕ УСТОЙЧИВА

Результат  вычисления  показывает,  что  система  управления  не является асимптотически устойчивой.

График свободного движения системы  при начальных условиях показан на рисунках 4.1 и 4.2:

Рисунок 4.4.1 -

 

Рисунок 4.2 – 

 

График динамики управляемой  системы при начальных условиях показан на рисунках 4.3 и 4.4.

 

Рисунок 3.3 –

 

 

Рисунок 3.4 – 

    1. Синтез оптимального управления с полной обратной связью

Модель системы:

Функционал качества управления:

Текст m-файла, реализующего поиск оптимального управления:

% Параметры  системы 

A=[1 2; 2 1];

B=[-2 -3; -4 -1];

 

% Параметров  критерия качества управления 

Q=[0 0;0 5];

 

R=[7/2 1; 1 7/2];

 

% Время  регулирования 

T=10; 

% Величина  шага 

SS=0.5;

% Количество  шагов 

N=T/SS

 

% Вычисление  параметров регулятора 

[k p e]= dlqr(A, B, Q, R)

 

x = zeros(2, N);

u=  zeros(2, N-1);

 

% Начальные  условия 

x(1,1)=1;

x(2,1)=2;

 

% Построение  графиков динамики системы 

for i=1:N-1,

    u(:, i)= - k*x(:, i);,

    x(:, i+1)=A*x(:, i)+B*u(:, i);

end

 

x1= x(1,:);

x2= x(2,:);

t = 0:SS:T-SS;

 

subplot(4, 1, 1); 

plot(t, x1, 'b'); 

subplot(4, 1, 2);

plot(t, x2, 'g');

 

subplot(4, 1, 3);

plot(SS:SS:T-SS, u(1, :), 'y');

 

subplot(4, 1, 4);

plot(SS:SS:T-SS, u(2, :), 'r');

 

Вызов файла optupr.m из командного окна:

>> optupr

k =

   -0.4805   -0.1724

   -0.0108   -0.3568

p =

    0.8462    0.4802

    0.4802    5.9488

e =

    0.1804

   -0.2202

Рисунок 5.1 - Графики динамики системы

    1. Фильтр Калмана

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

Произведем расчет фильтра  Калмана:

>> sys=ss(tf(1,[(0.01)^2 2*0.01*0.15 1 0]))

a =

           x1      x2      x3

   x1     -30  -78.13       0

   x2     128       0       0

   x3       0       1       0

b =

       u1

   x1   8

   x2   0

   x3   0

c =

          x1     x2     x3

   y1      0      0  9.766

d =

       u1

   y1   0

Continuous-time model.

>> [A,B,C,D]=ssdata(sys)

A =

  -30.0000  -78.1250         0

  128.0000         0         0

         0    1.0000         0

B =

     8

     0

     0

C =

         0         0    9.7656

D =

     0

>> P=ss(A, [B B], C, [D D])

a =

           x1      x2      x3

   x1     -30  -78.13       0

   x2     128      0       0

   x3       0       1       0

b =

       u1  u2

   x1   8   8

   x2   0   0

   x3   0   0

c =

          x1     x2     x3

   y1      0      0  9.766

d =

       u1  u2

   y1   0   0

Continuous-time model.

>> Kest=kalman(P,1,0.01)

a =

           x1_e    x2_e    x3_e

   x1_e     -30  -78.13   121.5

   x2_e     128       0  -64.55

   x3_e       0       1  -11.36

b =

             u1      y1

   x1_e       8  -12.44

   x2_e       0   6.609

   x3_e       0   1.163

c =

          x1_e   x2_e   x3_e

  y1_e      0      0  9.766

   x1_e      1      0      0

   x2_e      0      1      0

   x3_e      0      0      1

d =

         u1  y1

   y1_e   0   0

   x1_e   0   0

   x2_e   0   0

   x3_e   0   0

Input groups:                

       Name        Channels  

    KnownInput        1      

    Measurement       2                     

Output groups:               

         Name         Channels

    OutputEstimate       1   

    StateEstimate      2,3,4                 

Continuous-time model.

 

Выполним       моделирование       системы       управления       с наблюдателем. Для этого с учетом , введем следующие матрицы:

>> A1=[-1 -6.25 0 0; 16 0 0 0; 0 54 1 -60.2; 0 41.5 16 -41.5]

A1 =

   -1.0000   -6.2500         0         0

   16.0000         0        0         0

         0   54.0000    1.0000  -60.2000

         0   41.5000   16.0000  -41.5000

 

>>  B1= [2 2 0; 0 0 0; 2 0 17.3; 0 0 13.3]

B1 =

    2.0000    2.0000         0

         0         0         0

    2.0000         0   17.3000

         0        0   13.3000

>>  C1=[0 3.125 0 0; 0 0 0 3.125]

C1 =

         0    3.1250         0         0

         0         0         0    3.1250

Входом  системы  управления  с  наблюдателем  является  вектор u1=[u; w; v], выходом – y1 = [y; ]. Здесь y = 3.125y2,  = 3.125y4. Ниже приведен фрагмент программы моделирования и результаты:

 

t=0:0.001:5;

u=ones(size(t));

w=randn(size(t))*1000^0.5;

v=randn(size(t))*10^0.5;

S=ss(A1, B1, C1, 0);

u1=[u; w; v];

[y1 y4]= lsim(S, u1', t);

plot(t, y1(:,1),'-b',t,y1(:,2),':b')

plot(t, v'+y1(:,1), ':g', t,y1(:,2),'-b')

 

 

Рисунок 6.1 - Сравнение измеренного и точного выходных сигналов

 

Рисунок 6.2 - Сравнение зашумленного и точного значения выхода системы

 

Заключение

В ходе выполнения данной курсовой работы были приобретены навыки моделирования  и анализа систем автоматического  управления в среде MatLab, а также навыки поиска оптимального управления и построения наблюдателя Калмана.

Список литературы

1.    Андриевский   Б.Р.,   Фрадков   А.Л.   Избранные   главы   теории автоматического  управления с примерами в системе  MATLAB. – СПб.: Наука, 1999

2.    Медведев В.С., Потемкин  В.Г. Control System Toolbox. MATLAB 5  для  студентов  /Под  общ.  ред.  Потемкина  В.Г.  –  М.:  Диалог-МИФИ, 1999

3.    Семенов      В.В.,      Пантелеев      А.В.,      Бортаковский      А.С. Математическая теория управления  в примерах и задачах. –  М.: МАИ, 1997

4.    Сю    Д.,    Мейер    А.    Современная    теория    автоматического управления и ее применение. - М.: Машиностроение, 1972




Динамические и частотные характеристики САУ