You are on page 1of 41

МАШИНСКИ ФАКУЛТЕТ

БАЊА ЛУКА

Дигитална регулациона техника


-Семестрални задатак-

Професор : Михајло Стојчић

Студент: Даријо Дујаковић

Број индекса: 12/11

Бања Лука, 2013


ДИГИТАЛНА РЕГУЛАЦИОНА ТЕХНИКА

ЗАДАТАК ЗА СЕМИНАРСКИ РАД

На слици је приказана систем управљања угаоном брзином DC мотора, и то на слици a )


функционални, а на слици b ) блок-дијаграм система. Брзином мотора се управља преко
контролера промјеном напона u . Стварна брзина мотора се мјери преко тахогенератора чији се
излазни напон мијења линеарно 3V за 1000 obr/min, тако да је његов излазни напон за 1000
obr/min једнак 3V, за 2000 obr/min је 6V, итд. Математички модел мотора није познат, али је
мјерењем установљено да ако се улазни напон u нагло промјени (по одскочној функцији) са 5V на
6V онда се број обртаја мотора мијења према табели која је дата у excel фајлу DarijoD.xls, која је
дата у прилогу. У тој табели у првој колони је број обртаја [rad/sec], у другој колони промјена
напона (1V), а у трећој колони тренуци времена [sec] када су та мјерења извршена. На основу
ових података и користећи MATLAB потребно је урадити сљедеће:

+ R L Go (
s)
+
r kont -
u оптер-
r ol er M ећење
- - w
+ тахоге-
a) нератор
-

r u y =w
C(
s) Go (
s)
+ -
b)
kt

1. извршити идентификацију објекта управљања (мотора са оптерећењем), тј. одредити


Y s s
његову функцију преноса Go  s   
U s U s

1
2. пројектовати контролер C  s  тако да затворен систем испуњава сљедеће захтјеве:
вријеме смирења ts  0.09sec. , прескок pr  1% и позициона грешка e p  1%. Код
пројектовања контролера користити a) ГМК методу, б) фреквентну методу и в) методу
простора стања.
3. ако се као контролер користи индустријски ПИД контролер одабрати конфигурацију и
одредити параметре контролера.
4. користећи Simulink симулацијом провјери да ли затворени систем са контролерима
из тачака 2 и 3 испуњава постављене захтјеве.
5. за сваки контролер из тачака 2 и 3 одреди дискретни модел и симулацијом провјери да
ли систем са тим контролерима испуњава тражене захтјеве.

У Бањалуци 12.11.2012.

Михајло Ј. Стојчић

2
1. Индетификација система ( Помоћу Матлаба )

У наставку је описан поступак идентификације система помоћу алата ident у


MATLAB-у. Нека су подаци експеримента или мјерења, на примјер: вријеме teks,
излаз yeks и улаз ueks смјештени редом у Еxcel фајл DarijoD.xls. У тој табели прва
колона је број обртаја [rad / sec] , друга колона је промјена напона 1V  , а трећа
колона су тренуци времена [sec] кад су мјерења извршена. Наредбом aa=xlsread('
DarijoD ') ови подаци се учитавају у низ аа.
>> aa=xlsread('DarijoD') % учитавање експерименталних података у низ аа

aa =

0 1.0000 0
3.1200 1.0000 0.1000
5.3500 1.0000 0.2000
6.9500 1.0000 0.3000
8.1000 1.0000 0.4000
8.9200 1.0000 0.5000
9.5100 1.0000 0.6000
9.9300 1.0000 0.7000
10.2400 1.0000 0.8000
10.4500 1.0000 0.9000
10.6100 1.0000 1.0000
10.7200 1.0000 1.1000
10.8000 1.0000 1.2000
10.8600 1.0000 1.3000
10.9000 1.0000 1.4000
10.9300 1.0000 1.5000
10.9500 1.0000 1.6000
10.9600 1.0000 1.7000
10.9700 1.0000 1.8000
10.9800 1.0000 1.9000
10.9900 1.0000 2.0000
Из тог низа одређујемо податке експеримента као: yeks=aa(:,1), ueks=aa(:,2),
teks=aa(:,3). Вријеме семпловања Ts се рачуна као Ts=teks(end)-teks(end-1).

>> yeks=aa(:,1); % експериментални одзив


>> ueks=aa(:,2); % побуда
>> teks=aa(:,3); % тренуци мјерења

>> Ts=teks(end)-teks(end-1), % вријеме семпловања (одабирања)

Ts =0.1000

3
Сада се на основу ових података формира модел система:
>> model=iddata(yeks,ueks,Ts)

Time domain data set with 21 samples.

Sampling interval: 0.1

Outputs Unit (if specified)

y1

Inputs Unit (if specified)

u1

Да би одредили преносну функцију објекта издвајамо податке из модела објекта. Може се


издвојити дио података или сви подаци. Ако издвајамо све податке куцамо
>> data=model(1:end);

На основу ових података тражи се модел. За то се користи функција pem. За


претпостављени модел (функција преноса без нула и један реалaн пол) потребна је
команда:
>> sis=pem(data,'P1')

након чега добијамо:


Process model with transfer function

G(s) = ---------- % форма преносне функције

1+Tp1*s

with K = 11.002 % параметри добијене функције преноса

Tp1 = 0.30023

Estimated using PEM using SearchMethod = Auto from data set data

Loss function 5.64837e-006 and FPE 6.72425e-006 % грешка процјене је веома мала

4
На основу горе извршене идентификације система и вриједности параметара
процијењене функције преноса могу се усвојити сљедеће вриједности параметара Kp и Tp1
s=tf('s')
Transfer function:

>> Kp = 11.002 ;
>> Tp1 = 0.30039 ;
>> Go=minreal(Kp/(1+Tp1*s)) %команда за минимизацију форме ф-је преноса
Transfer function:

36.63
Go(s)= --------------- %ф-ја преноса објекта
s + 3.329

>> step(1*Go) % одскочни одзив објекта за референтни улаз u  t 


% у облику одскочне функције амплитуде p=1
% (у табели Еxcel фајл DarijoD.xls средњи ред )
>> hold on
>> grid on
>> plot(teks,yeks,'-g') % цртање експерименталног одзива

Слика 1.0: Графички упоредни приказ одзива процјене (црна линија)


и експеримента (зелена линија)

5
2.
a) СИНТЕЗА КОМПЕНЗАТОРА ГМК МЕТОДОМ

Поступак (алгоритам) синтезе система помоћу ГМК методе приказан је на примјеру


синтезе компензатора за систем из задатка. При томе је за цртање ГМК кориштен
MATLAB , тачније његов алат rltool.

MATLAB -ов алат rltool - %'RootLocusTool' (или sisotool) омогућава веома


једноставно додавање, брисање и измјену нула и полова компензатора и директо праћење
утицаја тих промјена на ГМК, тј. на положај полова затвореног система у региону C.
Након тих промјена се веома лако симулира одзив укупног система за разне референце,
тако да се на тај начин прати и испуњење стационарних захтјева.

Затворени систем из задатка треба да задовољи сљедеће захтјеве:

1. вријеме смирења ts  0.09s ,


2. прескок pr  1% и [1]
3. позициона грешка ep  1%.

При томе је преносна функција објекта, добивена идентификацијом у претходној тачки


задатка, тј. функција преноса која апроксимира понашање реалног система чији смо
одскочни одзив мјерили:

36.63
Go  s  
s + 3.329

Први корак код овог поступка синтезе јесте задавање функције преноса објекта и цртање
ГМК затвореног система помоћу алата rltool. При томе се подразумјева да је изабрана
конфигурација система са слике 2.1, тј. конфигурација са појачалом K и јединичном
повратном везом.

Слика 2.1: Затворени систем са јединичном повратном спрегом

6
>> s=tf('s');
>> Go=minreal(11.002/(1+0.30039*s)) %ф-ја преноса објекта факторизованом
oоблику
Transfer function:

36.63
Go(s)= --------------- %ф-ја преноса објекта
s + 3.329

>> rltool(Go) % наредба за покретање алата rltool

ГМК некомпензованог система који се на овај начин добије приказан је на слици 2.2.
Задавање захтјева које затворени сиcтем треба испунити у прелазном стању приказано је
на слици 2.3 а дозвољено подручје положаја полова (подручје C) некомпензованог система
на слици 2.4.

Слика 2.2: ГМК некомпензованог система

7
Слика 2.3: Задавање захтјева прелазног стања

Слика 2.4: Дозвољено подручје положаја полова (подручје C) некомпензованог система

8
Са слике 2.4 се види да не постоји такво K да би систем задовољио тражене захтјеве.
Зато је нужно мијењати структуру система.
Сљедећи корак је увођење диференцијалног компензатора, који треба да унесе
компензацију у прелазном стању. Његова преносна функција је:

s+a
Cd  s   ,   1, a  0
s +  a
са нулом у zc  - a и полом pc  -  a . Систем сада има сљедећу структуру:

Слика 2.5: Затворени систем са серијски диференцијалним компензатором

Поступак одређивања нуле zc  - a и пола pc  -  a компензатора Cd  s  описан је у


корацима:

1. На основу захтјева у прелазном стању времена смирења ts  0.09s и прескока


pr  1% одређујемо доминантани пар полова s1,2  -n  jn 1 -  2  -46.75  28.97 j
у s - равни. То су уједно и полови кроз које пролази ГМК компензованог објекта.
2. Одабирамо нулу компензатора zc  -a  -3.329 исту као пол функције преноса Go ( s )
из подручја C којег смо одредили претходно помоћу алата rltool.
3. Пол pc  -  a рачунамо из захтјева Cd (s1 )Go (s1)  -180    0 .
4. Кад је a уsвојено и   a израчунато, оsтаје још да одредимо појачање K. Њега
одређујемо из услова модула, тј.  KCd (s1 )Go (s1 )  1 .
Добијена функција преноса компензатора је:

s + 3.329
C  s   K  Cd  s   2.545 ,
s
Cd=(2.545*(s+3.329))/(s)

Transfer function:

2.545 s + 8.472

Cd=------------------

9
>> Gok=Cd*Go % ф-ја преноса отвореног кола

Transfer function:

93.21 s + 310.3
Gok=-------------------
s^2 + 3.329 s

>> Gz=minreal(feedback(Gok,1)) % ф-ја преноса затвореног система


Transfer function:

Transfer function:

93.21 s + 310.3

Gz=---------------------

s^2 + 96.54 s + 310.3

Функција преноса затвореног система је:

93.21s + 310.3
Gyr  s   ,
s + 96.54s + 310.3
2

>> step(Gz) % одскочни одзив затвореног система


>> grid on

На слици 2.6 приказан је одскочни одзив затвореног система, на коме се види да је


задовољен и захтјев у стационарном стању, тј. вриједност позиционе грешке ep  1%.

Слика 2.6: Одскочни одзив затвореног система

10
б) СИНТЕЗА КОМПЕНЗАТОРА У ФРЕКВЕНТНОМ ДОМЕНУ

Функција преноса диференцијалног компензатора у фреквентном подручју је:

j
1+
Kd a ,   1.
Cd ( j) 
 1 + j
a
Појачање диференцијалног компензатора, у dB, у подручју малих фреквенција (   0 ) је
20log Cd ( j 0)  20log Kd - 20log  .Пожељно је да комензатори не уносе никакво додатно
појачање у стационарном стању, јер су жељене особине стационарног стања већ
постигнуте избором одговарајућег појачања. Дакле, то је постигнуто ако је појачање
K d   , тако да фреквентна функција преноса сада постаје:

j
1+
Cd ( j)  a .
j
1+
a
Затворени систем из задатка треба да задовољи захтјеве из услова [1]:

При томе је преносна функција објекта, добивена идентификацијом у претходној тачки


задатка, тј. функција преноса која апроксимира понашање реалног система чији смо
одскочни одзив мјерили:

36.63
Go  s  
s + 3.329

Поступак синтезе диференцијалног компензатора се реализује у сљедећих неколико


корака:

На основу захтјева стационарног стања (позиционе грешке e p ) израчуна се


вриједност позиционе константе Kp , а затим појачање K, које је потребно унијети у систем
да би се тај захтјев испунио.

1
ep   K p  99, K p  lim KGo (s)  K  9
1+ K p s 0

>> s=tf('s');
>> Go=minreal(11.002/(1+0.30039*s))

36.63
Go(s)= --------------- %ф-ја преноса објекта
s + 3.329

11
>> K=9; % појачање K

Након тога, цртају се Бодеови дијаграми система KGo ( j ) , који испуњава захтјеве
стационарног стања, а затим се са тог дијаграма очитају пресјечне фреквенције појачања
10 и фазе 0 и измјери претек фазе  pf0 и претек појачања d0dB .

>> bode(K*Go) % наредба за цртање Бодеових дијаграма амплитуде


и фазе система K*Go
>> grid on
>> hold on

10

 pf0

Слика 2.7: Бодеови дијаграми система KGo ( j)

Са дијаграма се очита: 10  330


 pf0  90.6

Затим се израчуна фазни допринос  који треба да унесе диференцијални


компензатор. Тај допринос је  = захтјевани претек фазе  pf0 -  pf  90.6 - 73.2  17.4 .
Диференцијални компензатор помјера пресјечну фреквенцију појачања удесно, што значи
да се његовим увођењем претек фазе додатно смањује за неки, најчешће мали угао  ,
рецимо   7 . Зато се израчуната вриједност  мора додатно кориговати за тај угао тј.
  17.4 + 7  24.4 , тако да је потребни фазни допринос компензатора,

12
 m  +   24.4 + 30  54.4 .
На основу израчунатог фазног доприноса у претходном кораку, користећи:
1 + sin m 1 + sin 24.4
   2.4078
1 - sin m 1 - sin 24.4
налазимо коефицијент  , тј. однос пола и нуле диференцијалног компензатора.
Амплитудну карактеристику компензатора лоцирамо тако да се ново добијена
пресјечна фреквенција појачања 11 поклапа са фреквенцијом m . Међутим, овај
компензатор у систем уноси додатно појачања које је за ту фреквенцију 10log  , што значи
да компензатор осим што помјера фреквенцију 10 удесно на нову фреквенцију 11 он и
издиже дијаграм појачања KGo ( j ) у околини 11 за додатних 10log  . Да би одредили
пресјечну фреквенцију 11 на дијаграму појачања функције KGo ( j ) повучемо
хоризонталну линију -10log   -3.816 . Фреквенција за коју се ове двије линије сијеку је
нова фреквенција 11 . Измјерена фаза за ту фреквенцију је, рецимо  1pf . Ако је разлика
 pf0 -  1pf   онда се враћамо назад и додатно коригујемо фазни допринос  m .

-10log dB
11

 1pf

Слика 2.8: Одређивање 11 и  1pf

Са дијаграма се очита:
11  512
 1pf  90.6

13
Сљедећи корак је - поставити дијаграм појачања компензатора тако да је m  11 и из
једначине m  a  израчунати нулу компензатора a  1 /   512 / 2.4078  329.959 .
Након тога је познат и пол компензатора  a , тако да је компензатор у цјелини познат.
>> a=329.959
a =

329.9590

>> alfa=2.4078

alfa =

2.4078

>> Cd=(alfa*(s+a))/(s+alfa*a) % ф-ја преноса диференцијалног компензатора

Transfer function:

2.408 s + 794.5
Cd=-------------------
s + 794.5

>> bode(Cd) % Бодеови дијаграми диф. компензатора


>> Gok=K*Cd*Go % ф-ја преноса отвореног кола

Transfer function:

793.7 s + 261900

Gok=--------------------

s^2 + 797.8 s + 2645

>> bode(Gok) % Бодеови дијаграми отвореног кола


>> Gz=feedback(Gok,1) % ф-ја преноса затвореног система
Transfer function:

793.7 s + 261900

Gz=------------------------

s^2 + 1591 s + 264500

>> step(Gz) % Провјеравамо да ли одскочни одзив задовоља задате захтјеве

14
20log 

Слика 2.9: Бодеови дијаграми система KGo ( j) и Gz ( j) и диференцијалног компензатора Cd

Слика 2.91: Одскочни одзив затвореног система

15
c) СИНТЕЗА КОМПЕНЗАТОРА У ПРОСТОРУ СТАЊА

У MATLAB-у постоје готове функције за представљање система. Тако, на примјер, ако


су познати полиноми у бројнику и називнику функције преноса oнда се та функција
преноса у MATLAB-у може представити помоћу функције tf(nn,dd) гдје вектори nn и
dd редом садрже коефицијенте полинома у бројнику и називнику. Ако је функција
преноса задата у факторизованом облику, са векторима нула z и полова p и појачањем k
тада се та функција преноса у MATLAB-у представља као gs=zpk(z,p,k).

Ако је систем дат у простору стања са познатим параметрима: матрицом система А,


и векторима b и c и скаларом d (d=0), онда се тај систем у MATLAB-у представља као
gs=ss(A,b,c',d). Знак ' у MATLAB -у означава транспоновање.

MATLAB је опремљен и функцијама за конверзију система из једног облика у


други, као и за конверзију континуалног система у дискретни и обрнуто. На примјер, нека
је систем задан у облику функције преноса у нефакторизованом облику код којег су
вектори полинома у бројнику nn и називнику dd, а треба га трансформисати у
факторизовани облик и у простор стања. Тада би редом унијели команде
[zz,pp,kk]=tf2zp(nn,dd) и [A,b,c,d]=tf2ss(nn,dd). При томе вектори zz и
pp и скалар kk садрже нуле, полове и појачање следствено, док су матрица А, вектори b и
c и скалар d параметри система у простору стања и дати су у управљивој форми. Треба
знати да MATLAB враћа вектор c као вектор врсту, јер очекује једначину излаза облика
у = сх + d. Могуће су и остале комбинације команди, као: ss2tf, zp2ss, zp2tf, ...

Затворени систем из задатка треба да задовољи захтјеве из услова [1]:

При томе је преносна функција објекта, добивена поновном идентификацијом, тј.


функција преноса (функција преноса без нула и два реалaна пола) која апроксимира
понашање реалног система чији смо одскочни одзив мјерили:

36630
Go  s  
s + 1003s + 3329
2

Први корак поступка синтезе система у простору стања у овом случају јесте конверзија
система из комплексног домена у простор стања помоћу функције tf2zp у MATLAB -у:
>> s=tf('s');
>> Go=minreal(11.002/((1+0.30039*s)*(1+0.001*s)))

36630

Go(s)= ------------------- % ф-ја преноса објекта


s^2 + 1003 s + 3329

16
>> nn=[36630] % вектор који садржи коефицијенте
полинома у бројнику
nn =

36630

>> dd=[1 1003 3329] % вектор који садржи коефицијенте

полинома у називнику
dd =

1 1003 3329

>> [A,b,c,d]=tf2ss(nn,dd) % конверзија ф-је преноса у простор


стања-одређивање матрице А,вектора
b и c и скалара d

A =

-1003 -3329

1 0

b = 1

c =

0 36630

d =

Слиједи испитивање управљивости система, односно пара (A,b), рачунањем матрице


управљивости Q c  b Ab ... An-1b  . Рачунање можемо извести ручно или преко
MATLAB-а и функције ctrb, Qc=ctrb(A,b). Ранг ове матрице можемо провјерити преко
функције rank(Qc). Ако је ранг исти као ред система, систем је управљив.
>> Qc=ctrb(A,b) % матрица управљивости
Qc =

1 -1003

0 1

>> rank(Qc) % ранг матрице Qc


ans =

17
rang(Qc) = 2 = n, дакле систем је управљив.

На основу захтјева о понашању система у прелазном режиму и алата rltool одређују се


полови:

s1,2  -44.45  27.55 j

који ће задовољити захтјеве с обзиром на вријеме смирења и прескок.

>> p=[-44.45+27.55j,-44.45-27.55j] % жељени полови


p =

-44.4500 +27.5500i -44.4500 -27.5500i

Ако је систем управљив, онда формално математички посматрано рачунање вектора h


се своди на сљедећи проблем. Дата је nхn матрица A и nх1 вектор b. Треба одредити 1xn
вектор h тако да сопствене вриједности матрице (A - bh) буду унапријед задате
вриједности: s1, s2, s3... У MATLAB-у постоје два начина рјешавања овог проблема.

Први, уз кориштење функције place(A,b,p), са параметрима: A,b и p. Параметри A и b су


матрица система A и вектор управљања b општег облика система.
Вектор p (димензије 1xn) је вектор чији су елементи жељени полови s; затвореног система,
р = [s1, s2, s3... sn]. Функција h=place(A,b,p) враћа тражени вектор појачања h.

Други начин рачунања вектора појачања h преко MATLAB-a је помоћу функције


h=acker(A,b,p), са истим параметрима као и функција place.

>> h=place(A,b,p) % појачање стања у повратној вези h


h =

-914.1000 -594.1950

>> sys=ss(A-b*h, b, c, d) % систем након затварања повратне везе

a = b =

x1 x2 u1

x1 -88.9 -2735 x1 1

x2 1 0 x2 0

c = d =
x1 x2 u1
y1 0 36630 y1 0
Continuous-time model.

18
Појачање референце hr , преко којег се обезбијеђује нулта позициона грешка, одређујемо
преко функције rscale, која рачуна hr из

-1
hr  [1]
 A - bh 
T -1
c b
>> hr=rscale(A,b,c,d,h) % предпојачање
hr =

0.0747

На тај начин су одређени сви параметри контролера.

>> t=0:.01:1; % вријеме симулације


>> u=hr*stepfun(t,0); % референтни улаз
>> y=lsim(sys,u,t); % симулација система sys, са улазом u за
вријеме t
>> plot(t,y) % цртање графика
>> grid on

Слика 2.92: Одзив система након затварања повратне везе по стању

19
3 СИНТЕЗА ПИД КОМПЕНЗАТОРА
3.1 Подешавање у отвореној спрези
Ову методу су оригинално разрадили Зиглер и Николс, а базирана је на одскочном
одзиву стабилног објекта. Примјењује се углавном за објекте чији одскочни одзив је
апериодског карактера, као и на објекте са транспортним кашњењем. Објекат се на улазу
побуђује одскочним сигналом и снима његов одзив, слика 3.1.а. На тако снимљеном
одзиву повуче се тангента у превојној тачки (тачка инфлексије, тј. тачка гдје кривина од
конкавне постаје конвексна или обрнуто), тачка М на слици. Пресјек ове тангенте са
апсцисом и ординатом даје редом одсјечке  и а. На основу тих вриједности, а помоћу
табеле 1, рачунају се параметри П, ПИ и ПИД контролера.

Слика 3.1: Одскочни одзив објекта

Ако је у питању објекат са транспортним кашњењем, онда је њихова функција преноса


K - s
облика Go  s   e
Ts + 1
са одскочним одзивом као на слици 3.1.б. Ако се у превојној тачки овог одзива повуче
тангента, онда се одзив овог објекта угрубо може апроксимирати са три испрекидане
линије као на слици 3.1.б. На овој слици су означене вриједности  , Т и K. Лако је уочити
a K K
да постоји зависност tg    a  . Са овако одређеним а и измјереним  , даље се
 T T
из табеле 1 рачунају параметри П, ПИ и ПИД регулатора.

табела 1

20
K

G(s) = ---------- % форма преносне функције

1+Tp1*s

with K = 11.002 % параметри добијене функције преноса

Tp1 = 0.30023

11.002

G(s) = ------------- % форма преносне функције

1+0.30023*s

Kp*s+Ki
Cpi= Kp + Ki*s = ---------- % преносне функције ПИ контролера
s

Преносна функција затвореног система је :

kps + ki
Go (s)
C (s)Go (s)
GZ  s   PI  s
1 + CPI (s)Go (s) 1 + kps + ki G (s)
o
s
Након сређивања имамо :

36.64(Kp  s + Ki)
GZ  s  
(1 + 11.002 Kp)
s2 + s + 36.64 Ki
0.30023

гдје је :
(1 + 11.002Kp)
f( s )  s 2 + s + 36.64Ki
0.30023

На основу жељних полова s1,2  -100  5i


тј. p s   (s - s1)  (s - s2 )  (s +100 - 5)  (s + 100 + 5)  s 2 + 200s + 9975
Изједначавањем полинома p(s)=f(s) , имамо :

1 + 11.002Kp
 200  Kp  5.4
0.30023
36.64 Ki  9975  Ki  272.25

21
Овако добијен контролер се назива ПДФ контролер ( Pseudo Derivative Feddback).
Његова функција преноса затвореног система је :
CPI (s)Go (s) ki  P( s) P
GZ pdf  s    , Go s   ( s)
1 + CPI (s)Go (s) s  Q s  + kp  s  P( s) + ki  P( s) Q( s)

Слика 3.2: ПДФ контролер

Па ,функција преноса затвореног система има облик:

36.64ki
GZ  s  
1 + 11.002kp
s2 + s + 36.64ki
0.30023
>> kp=5.4
kp =
5.4000

>> ki=272.25
ki =
272.2500
>> Gz=36.64*ki/(s^2+((1+11.002*kp)*s/0.30023)+36.64*ki)

Transfer function:
9975
Gz=--------------------
s^2 + 201.2 s + 9975
>> Gzz=feedback(Gz,0) ali je dobro!!!

Transfer function:
9975
Gzz=--------------------
s^2 + 201.2 s + 9975

22
>> step(Gz)

Слика 3.3: Одскочни одзив затвореног система

23
4 СИМУЛАЦИЈА СИСТЕМА СА УСВОЈЕНИМ
КОМПЕНЗАТОРИМА
У оквиру ове тачке извршена је симулација система добијених у тачкама 2 и 3
помоћу алата simulink.

Simulink је софтверски пакет у оквиру MATLAB-а за моделирање, симулацију и


анализу динамичких система. Подржава линеарне и нелинеарне системе, континуалне и
дискретне моделе.

4.1 ГМК метода

Слика 4.1.а:Simulink модел система са компензатором добијеним ГМК методом

Odziv y (t) Upravljanje u(t)

Слика 4.1.б:Одзив и управљање система са компензатором добијеним ГМК методом

24
4.2 Фреквентни домен

Слика 4.2.а:Simulink модел система са компензатором добијеним синтезом у фреквентном


домену
Odziv y (t)

Слика 4.2.б:Одзив система са компензатором добијеним синтезом у фреквентном домену

25
Upravljanje u(t)

Слика 4.2.ц: Управљање система са компензатором добијеним синтезом у фреквентном домену

4.3 Простор стања

Слика 4.3а:Simulink модел система са компензатором добијеним синтезом у простору стања

26
Слика 4.3б:Одзив система са компензатором добијеним синтезом у простору стања

4.4 ПИД контролер

Слика 4.4.а:Simulink модел система са ПИД компензатором

27
Odziv y (t)

Слика 4.4.б:Одзив система са ПИД компензатором

Upravljanje u(t)

Слика 4.4.ц:Управљање система са ПИД компензатором

28
5. ДИСКРЕТИЗАЦИЈА

Сви сигнали, као материјални носиоци информација, се могу подијелити на


временски непрекидне – континуалне и временски прекидне - дискретне. Континуални су
дефинисани у сваком тренутку. За разлику од њих дискретни су дефинисани само у
одређеним тренутцима – дискретним тренутцима, а вријеме између два дискретна
тренутка је вријеме семпловања (узорковања, одабирања). На сличан начин, зависно од
присутних сигнала, системи се могу подијелити на континуалне и дискретне.

Слика 5.1: Дискретни систем

Због интензивног развоја електронике и информатике данас се управљање


процесима (овдје се претпоставља да су ти процеси - објекти континуални) углавном
рјешава преко дигиталних управљачких система - рачунара.

Код синтезе ових система постоје два основна приступа. Код првог, укупан систем
се посматра као континуалан. Затим се кориштењем метода (раније споменутих)
пројектује континуалан контролер који заједно са објектом и у усвојеној конфигурацији
дају систем који испуњава постављене захтјеве. Након тога се тражи дискретни модел тог
контролера (дискретизација), који се преко посебних склопова - интерфејса (A/D i D/A
претварача) повезује у укупан систем. Код овог приступа укупан поступак пројектовања је
у континуалном домену, али је техничка реализација (остварење) и имплементација
(извршење) контролера у дискретном домену. Код другог приступа, континуални објекат
се одмах на почетку трансформише у одговарајући дискретни модел (дискретизује), тако
да се на тај начин укупан поступак синтезе „сели“ у дискретни домен. У овом домену су
разрађене методе синтезе које су сличне већ раније споменутим континуалним, али
постоје и неке потпуно нове, које немају свог "двојника" међу континуалним методама.

За трансформацију континуалног система у дискретни користи се функција


c2d(sys,Ts,'zoh'), гдје је са sys у MATLAB -у дефинисан полазни континуални систем, Ts -

29
вријеме одабирања (семпловања) и ' zoh ' означава да је на улазу коло задршке нултог реда
(Zero Order Hold).

5.1 Избор периоде одабирања

Јасно је да ако се континуални сигнал узоркује периодом која је краћа од најкраћег


времена за који се он мијења, онда ће врло мало или нимало информација о том сигналу
бити изгубљене. О томе нам говори Шенон-Котељникова теорема , по којој се захтијева да
је фреквенција узорковања  s бар два пута већа од максималне фреквенције сигнала
унутар спектра  o , тј.

s  2o .
Међутим, није код свих сигнала увијек могуће одредити највећу фреквенцију  o (или она
може бити бесконачна), па се поменута теорема не може примијенити. У тим случајевима,
један од начина одређивања периоде одабирања заснива се на бази процјењеног времена
смирења при чему је периода одабирања десети дио тог времена. Дакле

ts
T
10
Ако је при том најмања временска константа у систему мања од тако одабране периоде,
онда се усваја периода одабирања која је двоструко мања од најмање временске константе.

5.2 Дискретизација контролера добијеног синтезом помоћу


ГМК методе
>> s=tf('s')

Transfer function:
s

Cd=(2.545*(s+3.329))/s % функција преноса диференцијалног


компензатора одређена ГМК методом
Transfer function:
2.545 s + 8.472

Cd=------------------
s
Усвајам периоду одабирања :

ts 0.09
T   0.009
10 10

30
>> Cdd=c2d(Cd,0.009,'zoh') % дискретизација компензатора,са периодом
одабирања Ts=0.009
Transfer function:

2.545 z - 2.469

Cdd=---------------

z - 1

Sampling time: 0.009


а)

б)

Слика 5.2: а) Симулација у simulink-u б) и одскочни одзив затвореног система

31
5.3 Дискретизација контролера добијеног синтезом у
фреквентном домену

Најмања временска константа преносне функције контролера је:

1 t
  s
794.5 10
ts
Пошто је најмања временска константа у систему мања од усваја се периода
10
одабирања која је двоструко мања од најмање временске константе  .

1
T  794.5  0.00065s
2

>> Cf=9*(2.408*s+794.5)/(s+794.5) % функција преноса диференцијалног


компензатора одређена фреквентном
методом

Transfer function:

Transfer function:

21.67 s + 7151

Cf=------------------

s + 794.5

>> Cdd=c2d(Cf,0.00065,'zoh') % дискретизација компензатора

Transfer function:

21.67 z - 18.04

Cdd=---------------

z - 0.5966

Sampling time: 0.00065

32
а)

б)

Слика 5.3: а) Симулација у simulink-u б) и одскочни одзив затвореног система

33
5.4 Дискретизација контролера добијеног синтезом у
простору стања

>> s=tf('s');
>> nn=[36630]

nn =

36630

>> dd=[1 1003 3329]

dd =

1 1003 3329

>> [A,b,c,d]=tf2ss(nn,dd) % превођење ф-је пренса у простор стања

A =

-1003 -3329

1 0

b =

c =

0 36630

d =

>> T=0.00065; % периода одабирања

>> [Ad,bd,c,d]=c2dm(A,b,c,d,T,'zoh') % добијање дискретног система у


простору стања гдје је већ дат
континуални систем у простору стања
Ad =

0.5206 -1.5894

0.0005 0.9994

bd =

34
0.0004774

0.0000002

c =

0 36630

d =

>> ps=[-44.45+27.55j,-44.45-27.55j] % полови који одређују понашање


система
ps =

-44.4500 +27.5500i -44.4500 -27.5500i

>> pz=exp(ps*T) % полови који одређују понашање


система у дискретном домену са
временом семпловања Т
pz =

0.9714 + 0.0174i 0.9714 - 0.0174i

>> h=place(Ad,bd,pz) % вектор појачања стања система

h =

-885.5465 288.0335

I=[1,0;0,1] % јединична матрица неопходна за


одређивање скалара појачања
референце
I =

1 0

0 1

>> hr=1/(c*(I-Ad+bd*h)^(-1)*bd) % одређивање скалара појачања


референце
hr =

0.0987

>> t=0:0.00065:1; % вријеме цртања одзива


>> rd=ones(size(t));

Ако се тражи кретање дискретног система онда се користи функција dlsim као
dlsim(A,b,c',d,u) или као dlsim(num,den,u).

35
>> yd=dlsim(Ad-bd*h,hr*bd,c,d,rd)

0
0.0006
0.0023
0.0051
.
.
.
1.0000
1.0000
>> plot(t,yd)
>> grid on

Слика 5.4: Одскочни одзив затвореног система

36
5.5 Дискретизација ПИД контролера

Дигитални ПИД контролер се може добити тако што се интегрални дио аналогног
2 z -1 
контролера дискретизује трапезном апроксимацијом  s   а деривацијски дио
 T z +1 
z -1 
апроксимацијом уназад  s   . Овај поступак дискретизације се на крају своди на
 zT 
увођење смјене s  1 - z -1
 , и замјеном појачања k p , ki и kd са k pd , kid и kdd , гдје су:

k pT
k pd  k p - ,
2Ti
k pT
kid  и
Ti
k pTd
kdd 
T

>> s=tf('s')

Transfer function:
s
>> T=1/1000; % периода одабирања

>> z=tf('z',T)

Transfer function:
z
Sampling time: 0.001

>> kd=0
% деривацијско појачање
kd =

0
>> kp=5.4 % пропорционално појачање

kp =

5.4000

>> ki=272.25 % интегрално појачање

ki =

272.2500
>> Ti=kp/ki % интегрално вријеме

Ti = 0.0198

37
>> Td=kd/kp % деривацијско вријеме

Td =

>> kpd=kp-2*kp*T/(2*Ti) % пропорционално појачање

kpd =

5.1278

>> kid=kp*T/Ti % интегрално појачање

kid =

0.2722

>> kdd=kp*Td/T % деривацијско појачање

kdd =

>> Cpd=kpd % ф-ја преноса дигиталног П контролера

Cpd =

5.1278

>> Cid=kid*z/(z-1) % ф-ја преноса дигиталног И контролера

Transfer function:

0.2722 z
Cid=----------
z - 1

Sampling time: 0.001

38
а)

б)

Слика 5.5: а) Симулација у simulink-u б) и одскочни одзив затвореног система

39
Литература

[1] М. Стојчић: Основе аутоматског управљања, Универзитет у Бањој Луци, Машински


факултет Бања Лука, Бања Лука, 2012.
[2] М. Стојчић: Синтеза линеарних система аутоматског управљања, Универзитет у Бањој
Луци, Машински факултет Бања Лука, Бања Лука, 2009.

40

You might also like