Skelbiu pirmąjį paskaitų skyrių apie automatinio valdymo teoriją, po kurio tavo gyvenimas nebebus toks, koks buvo.
MSTU „Energijos mechanikos inžinerijos“ fakulteto „Branduolinių reaktorių ir elektrinių katedroje“ paskaitas apie kursą „Techninių sistemų valdymas“ skaito Olegas Stepanovičius Kozlovas. N.E. Baumanas. Už ką esu jam labai dėkingas.
Šios paskaitos dar tik ruošiamos publikuoti knygos pavidalu, o kadangi yra TAU specialistų, studentų ir tiesiog šia tema besidominčių, bet kokia kritika laukiama.

1. Pagrindinės techninių sistemų valdymo teorijos sampratos
1.1. Tikslai, valdymo principai, valdymo sistemų tipai, pagrindiniai apibrėžimai, pavyzdžiai
Plėtojant ir tobulinant pramonės gamybą (energetikos, transporto, mechaninės inžinerijos, kosmoso technologijų ir kt.) būtina nuolat didinti mašinų ir agregatų našumą, gerinti gaminių kokybę, mažinti sąnaudas ir, ypač branduolinėje energetikoje, smarkiai didinti sauga (branduolinė, radiacinė ir kt.) .d.) atominių elektrinių ir branduolinių įrenginių eksploatavimas.
Iškeltų tikslų įgyvendinimas neįmanomas neįdiegus modernių valdymo sistemų, apimančių ir automatizuotas (dalyvaujant žmogui operatoriui), ir automatines (nedalyvaujant žmogui) valdymo sistemas (CS).
Apibrėžimas: Valdymas – tai tam tikro technologinio proceso organizavimas, užtikrinantis užsibrėžto tikslo pasiekimą.
Kontrolės teorija yra šiuolaikinio mokslo ir technologijų šaka. Jis remiasi (remiantis) tiek fundamentaliomis (bendrosios mokslo) disciplinomis (pavyzdžiui, matematika, fizika, chemija ir kt.), tiek taikomosiomis disciplinomis (elektronika, mikroprocesorių technologija, programavimas ir kt.).
Bet koks valdymo procesas (automatinis) susideda iš šių pagrindinių etapų (elementų):
- informacijos apie kontrolės užduotį gavimas;
- informacijos apie valdymo rezultatą gavimas;
- gautos informacijos analizė;
- sprendimo įgyvendinimas (poveikis kontrolės objektui).
Kad būtų įgyvendintas valdymo procesas, valdymo sistemoje (CS) turi būti:
- informacijos apie valdymo užduotį šaltiniai;
- informacijos apie kontrolės rezultatus šaltiniai (įvairūs jutikliai, matavimo prietaisai, detektoriai ir kt.);
- prietaisai gautai informacijai analizuoti ir sprendimams kurti;
- Pavaros, veikiančios valdymo objektą, kuriose yra: reguliatorius, varikliai, stiprinimo-konvertavimo įrenginiai ir kt.
Apibrėžimas: Jei valdymo sistemoje (CS) yra visos aukščiau nurodytos dalys, ji uždaryta.
Apibrėžimas: Techninio objekto valdymas naudojant informaciją apie valdymo rezultatus vadinamas grįžtamojo ryšio principu.
Schematiškai tokia valdymo sistema gali būti pavaizduota taip:

Ryžiai. 1.1.1. Valdymo sistemos (MS) struktūra
Jei valdymo sistema (CS) turi blokinę schemą, kurios forma atitinka pav. 1.1.1, o funkcijos (veikia) be žmogaus (operatoriaus) dalyvavimo, tada jis vadinamas automatinė valdymo sistema (ACS).
Jei valdymo sistema veikia dalyvaujant asmeniui (operatoriui), tada ji vadinama automatizuota valdymo sistema.
Jeigu Valdymas pateikia duotą objekto kitimo laike dėsnį, neatsižvelgiant į valdymo rezultatus, tai toks valdymas atliekamas atviru ciklu, o pats valdymas vadinamas valdoma programa.
Atvirojo ciklo sistemos apima pramonines mašinas (konvejerio linijas, rotacines linijas ir kt.), kompiuterinio skaitmeninio valdymo (CNC) mašinas: žr. pavyzdį pav. 1.1.2.

1.1.2 pav. – programos valdymo pavyzdys
Pagrindinis įrenginys gali būti, pavyzdžiui, „kopijuoklis“.
Kadangi šiame pavyzdyje nėra gaminamą detalę stebinčių jutiklių (skaitiklių), tai jeigu, pavyzdžiui, pjaustytuvas buvo sumontuotas neteisingai ar sugedo, tai užsibrėžto tikslo (detalės pagaminimo) pasiekti (realizuoti) nepavyks. Paprastai tokio tipo sistemose reikalingas išėjimo valdymas, kuris tik fiksuos detalės matmenų ir formos nuokrypį nuo pageidaujamo.
Automatinės valdymo sistemos skirstomos į 3 tipus:
- automatinės valdymo sistemos (ACS);
- automatinės valdymo sistemos (ACS);
- sekimo sistemos (SS).
SAR ir SS yra SPG ==> poaibiai
.
Apibrėžimas: Automatinė valdymo sistema, užtikrinanti bet kokio fizinio dydžio (dydžių grupės) pastovumą valdymo objekte, vadinama automatine valdymo sistema (ACS).
Automatinės valdymo sistemos (ACS) yra labiausiai paplitęs automatinio valdymo sistemų tipas.
Pirmasis pasaulyje automatinis reguliatorius (XVIII a.) yra vatų reguliatorius. Šią schemą (žr. 18 pav.) Watt įgyvendino Anglijoje, siekdama palaikyti pastovų garo mašinos rato sukimosi greitį ir atitinkamai palaikyti pastovų transmisijos skriemulio (diržo) sukimosi (judesio) greitį. ).
Šioje schemoje jautrūs elementai (matavimo jutikliai) yra „svoriai“ (sferos). „Svoriai“ (sferos) taip pat „priverčia“ pajudėti svirties svirtį ir vožtuvą. Todėl šią sistemą galima priskirti tiesioginio valdymo sistemai, o reguliatorių – kaip tiesioginio veikimo reguliatorius, nes vienu metu atlieka ir „skaitiklio“, ir „reguliatoriaus“ funkcijas.
Tiesioginio veikimo reguliatoriuose papildomas šaltinis reguliatoriui pajudinti nereikia energijos.

Ryžiai. 1.1.3 – Vatų automatinio reguliavimo grandinė
Netiesioginės valdymo sistemos reikalauja, kad būtų (pavyzdžiui, galios) stiprintuvas, papildoma pavara, kurioje yra, pavyzdžiui, elektros variklis, servovariklis, hidraulinė pavara ir kt.
Automatinės valdymo sistemos (automatinės valdymo sistemos) pavyzdys visa šio apibrėžimo prasme yra valdymo sistema, užtikrinanti raketos paleidimą į orbitą, kur valdomas kintamasis gali būti, pavyzdžiui, kampas tarp raketos. ašis ir normalioji Žemės atžvilgiu ==> žr. 1.1.4.a ir pav. 1.1.4.b

Ryžiai. 1.1.4(a)

Ryžiai. 1.1.4 (b)
1.2. Valdymo sistemų sandara: paprastos ir daugiamatės sistemos
Techninių sistemų valdymo teorijoje bet kuri sistema paprastai skirstoma į jungčių, sujungtų į tinklo struktūras, rinkinį. Paprasčiausiu atveju sistemoje yra viena nuoroda, kurios įėjimas tiekiamas su įvesties veiksmu (input), o sistemos atsakas (išėjimas) gaunamas įėjime.
Techninių sistemų valdymo teorijoje naudojami 2 pagrindiniai valdymo sistemų saitų vaizdavimo būdai:
— „input-output“ kintamuosiuose;
— būsenos kintamuosiuose (plačiau žr. 6...7 skyrelius).
Atvaizdavimas įvesties-išvesties kintamuosiuose paprastai naudojamas apibūdinti gana paprastas sistemas, turinčias vieną „įvestį“ (vieną valdymo veiksmą) ir vieną „išvestį“ (vieną valdomą kintamąjį, žr. 1.2.1 pav.).

Ryžiai. 1.2.1 – Paprastos valdymo sistemos schema
Paprastai šis aprašymas naudojamas techniškai nesudėtingoms automatinio valdymo sistemoms (automatinėms valdymo sistemoms).
Pastaruoju metu vaizdavimas būsenos kintamuosiuose tapo plačiai paplitęs, ypač techniškai sudėtingose sistemose, įskaitant daugiamates automatinio valdymo sistemas. Fig. 1.2.2 pavaizduotas scheminis daugiamatės automatinio valdymo sistemos vaizdas, kur u1(t)…um(t) — kontrolės veiksmai (kontrolės vektorius), y1(t)…yp(t) — reguliuojami ACS parametrai (išvesties vektorius).

Ryžiai. 1.2.2 — Scheminis daugiamatės valdymo sistemos vaizdas
Išsamiau panagrinėkime ACS struktūrą, pavaizduotą „įvesties-išvesties“ kintamaisiais ir turinčią vieną įvestį (įvestis arba pagrindinis, arba valdymo veiksmas) ir vieną išvestį (išvesties veiksmas arba valdomas (arba reguliuojamas) kintamasis).
Tarkime, kad tokio ACS blokinė schema susideda iš tam tikro skaičiaus elementų (nuorodų). Sugrupavus nuorodas pagal funkcinį principą (ką nuorodos daro), ACS struktūrinę diagramą galima sumažinti iki tokios tipinės formos:

Ryžiai. 1.2.3 — Automatinės valdymo sistemos blokinė schema
Simbolis ε(t) arba kintamasis ε(t) rodo nesutapimą (klaidą) lyginamojo įrenginio išvestyje, kuris gali „veikti“ tiek paprastų lyginamųjų aritmetinių operacijų (dažniausiai atimties, rečiau sudėjimo), tiek sudėtingesnių lyginamųjų operacijų (procedūrų) režimu.
Kaip y1(t) = y(t)*k1Kur k1 yra pelnas, tada ==>
ε(t) = x(t) – y1(t) = x(t) – k1*y(t)
Valdymo sistemos užduotis yra (jei ji yra stabili) „dirbti“, kad būtų pašalintas neatitikimas (klaida) ε(t), t.y. ==> ε(t) → 0.
Pažymėtina, kad valdymo sistemą veikia tiek išoriniai poveikiai (valdantys, trikdantys, trukdantys), tiek vidiniai trukdžiai. Interferencija nuo poveikio skiriasi savo egzistavimo stochastiškumu (atsitiktinumu), tuo tarpu poveikis beveik visada yra deterministinis.
Valdikliui (nustatymo veiksmui) nurodyti naudosime bet kurį x (t)Arba u(t).
1.3. Pagrindiniai valdymo dėsniai
Jei grįšime prie paskutinės figūros (1.2.3 pav. ACS blokinė diagrama), tuomet reikia „iššifruoti“ stiprinimo-konvertavimo įrenginio vaidmenį (kokias funkcijas jis atlieka).
Jei stiprinimo-konvertavimo įtaisas (ACD) tik sustiprina (arba susilpnina) neatitikimo signalą ε(t), būtent:
Kur
– proporcingumo koeficientas (konkrečiu atveju
= Const), tada toks uždaro ciklo automatinio valdymo sistemos valdymo režimas vadinamas režimu proporcinga kontrolė (P-kontrolė).
Jeigu valdymo blokas generuoja išėjimo signalą ε1(t), proporcingą paklaidai ε(t) ir ε(t) integralui, t.y.
, tada šis valdymo režimas vadinamas proporcingai integruojantis (PI valdymas). ==>
Kur b – proporcingumo koeficientas (konkrečiu atveju b = Konst).
Paprastai PI valdymas naudojamas valdymo (reguliavimo) tikslumui pagerinti.
Jeigu valdymo blokas generuoja išėjimo signalą ε1(t), proporcingą paklaidai ε(t) ir jos išvestinei, tai šis režimas vadinamas proporcingai diferencijuojantis (PD valdymas): ==> 
Paprastai PD valdymo naudojimas padidina ACS našumą
Jei valdymo blokas generuoja išėjimo signalą ε1(t), proporcingą paklaidai ε(t), jos išvestinei ir klaidos integralui ==>
, tada šis režimas vadinamas tada šis valdymo režimas proporcingas-integralus-diferencijuojantis valdymo režimas (PID valdymas).
PID valdymas dažnai leidžia užtikrinti „gerą“ valdymo tikslumą ir „gerą“ greitį
1.4. Automatinių valdymo sistemų klasifikacija
1.4.1. Klasifikavimas pagal matematinio aprašymo tipą
Pagal matematinio aprašymo tipą (dinamikos ir statikos lygtis) automatinės valdymo sistemos (ACS) skirstomos į linijinis и netiesinis sistemos (savaeigiai pabūklai arba SAR).
Kiekvienas „poklasis“ (tiesinis ir netiesinis) yra padalintas į keletą „poklasių“. Pavyzdžiui, linijinių savaeigių ginklų (SAP) matematinis aprašymas skiriasi.
Kadangi šiame semestre bus nagrinėjamos tik linijinių automatinio valdymo (reguliavimo) sistemų dinaminės savybės, žemiau pateikiame linijinių automatinio valdymo sistemų (ACS) matematinio aprašymo klasifikaciją:
1) Linijinės automatinės valdymo sistemos, aprašytos įvesties-išvesties kintamuosiuose įprastomis diferencialinėmis lygtimis (ODE) su nuolatinis koeficientai:


kur x (t) – įvesties įtaka; y (t) – išėjimo įtaka (reguliuojama vertė).
Jei linijiniam ODE rašymui naudojame operatorių („kompaktišką“), tada (1.4.1) lygtis gali būti pavaizduota tokia forma:

kur, p = d/dt — diferenciacijos operatorius; L (p), N (p) yra atitinkami tiesiniai diferencialiniai operatoriai, kurie yra lygūs:


2) Tiesinės automatinės valdymo sistemos, aprašytos tiesinėmis paprastosiomis diferencialinėmis lygtimis (ODE) su kintamieji (laiko) koeficientai:


Paprastai tokias sistemas galima priskirti prie netiesinių automatinio valdymo sistemų (NSA).
3) Linijinės automatinės valdymo sistemos, aprašytos tiesinių skirtumų lygtimis:


kur f (…) – tiesinė argumentų funkcija; k = 1, 2, 3… - Sveiki skaičiai; Δt – kvantavimo intervalas (sampling interval).
Lygtį (1.4.4) galima pavaizduoti „kompaktišku“ užrašu:

Paprastai šis linijinių automatinių valdymo sistemų (ACS) aprašymas naudojamas skaitmeninėse valdymo sistemose (naudojant kompiuterį).
4) Linijinės automatinės valdymo sistemos su uždelsimu:

kur L (p), N (p) — linijiniai diferencialiniai operatoriai; τ — vėlavimo laikas arba vėlavimo konstanta.
Jei operatoriai L(p) и N(p) išsigimęs (L(p) = 1; N(p) = 1), tada (1.4.6) lygtis atitinka matematinį idealios vėlinimo grandies dinamikos aprašymą:

o jo savybių grafinė iliustracija parodyta fig. 1.4.1

Ryžiai. 1.4.1 – Idealios vėlinimo linijos įvesties ir išvesties grafikai
5) Tiesinės automatinės valdymo sistemos, aprašytos tiesinėmis diferencialinėmis lygtimis daliniai dariniai. Tokie savaeigiai ginklai dažnai vadinami platinami valdymo sistemos. ==> „Abstrakčius“ tokio aprašymo pavyzdys:

Lygčių sistema (1.4.7) apibūdina tiesiškai paskirstytos automatinio valdymo sistemos dinamiką, t.y. valdomas dydis priklauso ne tik nuo laiko, bet ir nuo vienos erdvinės koordinatės.
Jei valdymo sistema yra „erdvinis“ objektas, tada ==>

kur
priklauso nuo laiko ir erdvės koordinačių, kurias nustato spindulio vektorius 
6) Aprašyti savaeigiai ginklai sistemas ODE, arba skirtumų lygčių sistemos, arba dalinių diferencialinių lygčių sistemos ==> ir taip toliau...
Panašią klasifikaciją galima pasiūlyti netiesinėms automatinio valdymo sistemoms (SAP)…
Linijinėms sistemoms tenkinami šie reikalavimai:
- ACS statinių charakteristikų tiesiškumas;
- dinamikos lygties tiesiškumas, t.y. kintamieji įtraukiami į dinamikos lygtį tik linijiniu deriniu.
Statinė charakteristika yra išėjimo priklausomybė nuo įėjimo įtakos dydžio pastovioje būsenoje (kai išnyko visi pereinamieji procesai).
Sistemoms, aprašytoms tiesinėmis paprastosiomis diferencialinėmis lygtimis su pastoviais koeficientais, statinė charakteristika gaunama iš dinaminės lygties (1.4.1), nustatant visus nestacionarius terminus į nulį ==>

1.4.2 paveiksle pateikti automatinio valdymo (reguliavimo) sistemų tiesinių ir netiesinių statinių charakteristikų pavyzdžiai.

Ryžiai. 1.4.2 – Statinių tiesinių ir netiesinių charakteristikų pavyzdžiai
Terminų, turinčių laiko išvestines dinaminėse lygtyse, netiesiškumas gali atsirasti naudojant netiesines matematines operacijas (*, /,
,
, nuodėmė, ln ir kt.). Pavyzdžiui, atsižvelgiant į kai kurių „abstrakčių“ savaeigių ginklų dinamikos lygtį

Atkreipkite dėmesį, kad šioje lygtyje su tiesine statine charakteristika
kairėje lygties pusėje esantis antrasis ir trečiasis dėmenys (dinaminiai terminai). netiesinis, todėl panašia lygtimi aprašytas ACS yra netiesinis in dinamiškas planą.
1.4.2. Klasifikavimas pagal perduodamų signalų pobūdį
Atsižvelgiant į perduodamų signalų pobūdį, automatinio valdymo (arba reguliavimo) sistemos skirstomos į:
- nuolatinės sistemos (nepertraukiamos sistemos);
- relinės sistemos (relių veikimo sistemos);
- diskrečiųjų veiksmų sistemos (impulsinės ir skaitmeninės).
Sistema tęstinis veiksmas vadinamas tokiu ACS, kurio kiekvienoje nuorodoje tęstinis įvesties signalo pasikeitimas laikui bėgant atitinka nuolatinį išėjimo signalo pasikeitimas, o išėjimo signalo kitimo dėsnis gali būti savavališkas. Kad savaeigis pistoletas būtų nuolatinis, būtina, kad visų statinės charakteristikos nuorodos buvo nuolatinės.

Ryžiai. 1.4.3 – Nepertraukiamos sistemos pavyzdys
Sistema estafetė veiksmas vadinamas automatine valdymo sistema, kurioje bent vienoje grandyje, nuolat kintant įėjimo vertei, išėjimo reikšmė tam tikrais valdymo proceso momentais keičiasi „šokinėja“ priklausomai nuo įvesties signalo vertės. Tokios jungties statinė charakteristika turi lūžio taškai arba lūžis su plyšimu.

Ryžiai. 1.4.4 – Relės statinių charakteristikų pavyzdžiai
Sistema diskretus veiksmas yra sistema, kurioje bent vienoje grandyje, nuolat keičiantis įvesties kiekiui, yra išvesties kiekis individualių impulsų tipas, atsirandantis po tam tikro laiko.
Ryšys, paverčiantis nuolatinį signalą į atskirą signalą, vadinamas impulsiniu ryšiu. Panašaus tipo perduodami signalai atsiranda automatinėje valdymo sistemoje su kompiuteriu ar valdikliu.
Dažniausiai naudojami metodai (algoritmai), skirti nuolatiniam įvesties signalui konvertuoti į impulsinį išėjimo signalą:
- impulsų amplitudės moduliacija (PAM);
- Impulso pločio moduliavimas (PWM).
Fig. 1.4.5 paveiksle pateikta grafinė impulsų amplitudės moduliacijos (PAM) algoritmo iliustracija. Fig. viršuje. pateikiama priklausomybė nuo laiko x (t) - signalas prie įėjimo į impulsų skyrių. Impulsinio bloko išvesties signalas (nuoroda) y (t) – stačiakampių impulsų seka, atsirandanti su nuolatinis kvantavimo periodas Δt (žr. apatinę paveikslo dalį). Impulsų trukmė yra tokia pati ir lygi Δ. Impulso amplitudė bloko išėjime yra proporcinga tolydžio signalo x(t) reikšmei šio bloko įėjime.

Ryžiai. 1.4.5 — Impulsų amplitudės moduliavimo įgyvendinimas
Šis impulsų moduliavimo būdas buvo labai paplitęs praėjusio amžiaus 70...80-aisiais atominių elektrinių (AE) valdymo ir apsaugos sistemų (CPS) elektroninėje matavimo įrangoje.
Fig. 1.4.6 paveiksle parodyta grafinė impulsų pločio moduliavimo (PWM) algoritmo iliustracija. Fig. viršuje. 1.14 rodo priklausomybę nuo laiko x (t) – signalas impulsinės jungties įėjime. Impulsinio bloko išvesties signalas (nuoroda) y (t) – stačiakampių impulsų seka, atsirandanti su pastoviu kvantavimo periodu Δt (žr. 1.14 pav. apačioje). Visų impulsų amplitudė yra vienoda. Pulso trukmė Δt bloko išėjime yra proporcinga atitinkamai nuolatinio signalo reikšmei x (t) impulsų bloko įėjime.

Ryžiai. 1.4.6 — Impulso pločio moduliavimo įgyvendinimas
Šis impulsų moduliavimo būdas šiuo metu yra labiausiai paplitęs atominių elektrinių (AE) valdymo ir apsaugos sistemų (CPS) ir kitų techninių sistemų ACS elektroninėje matavimo įrangoje.
Baigdamas šį poskyrį, reikia pažymėti, kad jei būdingos laiko konstantos kitose savaeigių pistoletų (SAP) grandyse žymiai daugiau Δt (pagal dydžius), tada impulsų sistema gali būti laikoma nuolatine automatine valdymo sistema (kai naudojama tiek AIM, tiek PWM).
1.4.3. Klasifikavimas pagal kontrolės pobūdį
Atsižvelgiant į valdymo procesų pobūdį, automatinės valdymo sistemos skirstomos į šiuos tipus:
- deterministinio automatinio valdymo sistemos, kuriose įvesties signalas gali būti unikaliai susietas su išėjimo signalu (ir atvirkščiai);
- stochastinis ACS (statistinis, tikimybinis), kuriame ACS „atsako“ į tam tikrą įvesties signalą atsitiktinis (stochastinis) išėjimo signalas.
Išėjimo stochastinis signalas apibūdinamas taip:
- paskirstymo dėsnis;
- matematinis lūkestis (vidutinė reikšmė);
- dispersija (standartinis nuokrypis).
Paprastai stebimas stochastinis valdymo proceso pobūdis iš esmės netiesinis ACS tiek statinių charakteristikų požiūriu, tiek (net ir didesniu mastu) dinaminių lygčių dinaminių dėmenų netiesiškumo požiūriu.

Ryžiai. 1.4.7 — Stochastinės automatinės valdymo sistemos išėjimo vertės paskirstymas
Be pirmiau minėtų pagrindinių valdymo sistemų klasifikavimo tipų, yra ir kitų klasifikacijų. Pavyzdžiui, klasifikavimas gali būti atliekamas pagal valdymo metodą ir gali būti pagrįstas sąveika su išorine aplinka ir galimybe pritaikyti ACS prie aplinkos parametrų pokyčių. Sistemos skirstomos į dvi dideles klases:
1) Įprastos (savaime nesireguliuojančios) valdymo sistemos be adaptacijos; Šios sistemos priskiriamos paprastų, nekeičiančių savo struktūros valdymo proceso metu, kategorijai. Jie yra labiausiai išvystyti ir plačiai naudojami. Įprastos valdymo sistemos skirstomos į tris poklasius: atvirojo ciklo, uždaro ciklo ir kombinuoto valdymo sistemas.
2) Savaime besireguliuojančios (adaptyviosios) valdymo sistemos. Šiose sistemose, pasikeitus valdomo objekto išorinėms sąlygoms ar charakteristikoms, įvyksta automatinis (ne iš anksto nustatytas) valdymo įrenginio parametrų pokytis dėl valdymo sistemos koeficientų, valdymo sistemos struktūros pasikeitimų ar net naujų elementų įvedimo. .
Kitas klasifikavimo pavyzdys: pagal hierarchinį pagrindą (vieno lygio, dviejų lygių, kelių lygių).
Apklausoje gali dalyvauti tik registruoti vartotojai. , Prašau.
Ir toliau skelbti paskaitas apie UTS?
88,7%Taip 118
7,5%Nr.10
3,8%Aš nežinau 5
Balsavo 133 vartotojai. 10 vartotojų susilaikė.
Šaltinis: www.habr.com
