S P R Á V A Z L A B O R A T Ó R N E H O C V I Č E N I A
│ │
│ NÁZOV ÚLOHY: Meranie a riadenie otáčok elektrického motora │
│ metódou inkrementácie v čase medzery medzi dvoma │
│ impulzami zo snímača. │ ZADANIE ÚLOHY: │
│ 1.Osvojiť si poznatky o princípoch merania otáčokelektr.moto- │
│ rov. │
│ 2.Naučiť sa základným princípom riadenia otáčok,činnosti daného │
│ programu,určenia regulačnej odchýlky,.. │
│ │
│ │
│ │
└───────────────────────────────────────────────────────────────────────────┘
MERANIE A RIADENIE OTÁČOK MOTORA METÓDOU INKREMENTÁCIE V ČASE
MEDZERY MEDZI DVOMA IMPULZAMI ZO SNÍMAČA
Časový diagram priebehu zo snímača otáčok.
1.synchr.slučka
────────────────────
2.synchr.slučka Inkrement.
slučka
──────────────── ──────────────────
│
│<────>├──┤<──────────────────────────>│
│ │ │ │
│ │ │ │
1 │------┌──┐----------------------------┌──┐--------------
Log.│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
0 ─┼──────┘ └────────────────────────────┘ └──────────────»
│ │t2│ tm │ t
──>├──┤<──────────────────────────>├────
PROGRAM MOTOR21;
uses crt,printer;
var otacky1 : word;
label n1;
begin asm
n1: mov dx,302h
mov bx,00h
@1: in al,dx Čakacia slučka na začiatok impulzu,koniec
rcr al,1 log.0 je testovaný pomocou CY bitu. Výstup
jnc @1 snímača je pripojený na 0.bit vst. portu
@2: in al,dx Čakacia slučka na log.0 (medzeru). Koniec
jc @2 log.1 je testovaný pomocou CY bitu.
@3: in al,dx Inkrementačná slučka,inkrementuje sa počas
inc bx trvania medzery bx register a trvanie úrov-
rcr al,1 ne log.0 sa testuje využitím CY bitu.
jnc @3
mov word ptr otacky1,bx Zapísanie obsahu bx do M s adr.
end; v ukazovateli - ptr
begin
write(otacky1);delay(400);write(' ');
goto n1; Vypisovanie hodnoty otacky1,je to vlastne
end;end. nainkrementované číslo v bx registri. Pre
vypísanie skutočných otáčok musime previesť
aproximáciu.
Úlohy pre praktické cvičenie :
1.Zapojte pracovisko s prídavnými panelmi: fotoelektrický sní-
mač,panel s motorčekom a V/V panel.Prekontrolujte správnosť
pripojenia napájacích zdrojov a po ich zapnutí overte funk- nosť daných programov (program pre meranie otáčok metódou na- čítania impulzov počas časovacieho impulzu a program pre na- tanie nainkrementovaných impulzov v medzere).
2.Pri ustálených otáčkach namerajte otáčky motorčeka metódou s časovacím generátorom,potom inicializujte program pre mačí- tanie nainkrementovaných impulzov v medzere a namerané hodnoty
zapíšte do tabuľky.Meranie preveďte min.v 10 bodoch pri rôz- ných hodnotách otáčok v meranom rozsahu.
3.Preveďte lineárnu aproximáciu početnou a graficko-početnou
metódou.
│
Tabuľka nameraných veličin:
┌───────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│Č.M.
│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 10 │ 11 │
├───────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
│Naikr. │ │ │ │ │ │ │ │ │ │ │ │
│číslo: │ │ │ │ │ │ │ │ │ │ │ │
├───────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
│Otáčky │ │ │ │ │ │ │ │ │ │ │ │
│za min.│ │ │ │ │ │ │ │ │ │ │ │
└───────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
Aproximácia je matematické vyjadrenie funkčnej závislost
napr.
z nameraných veličín,ktorá môže byť lineárna alebo nelineárna.Umožňuje nam vlastne transformovať funkčné závislosti
V našom príklade závislosť nainkrementovaného čísla v bx registri
(číslo v bx reg.je označené slovom otacky,viď program) na otáčky.
Potom otackys=A0+otacky*A1 kde A0 a A1 sú koeficienty lineárnej
aproximácie a otackys skutočné otáčky.
Aproximácia výpočtom :
Aproximácia graficko-početnou metódou :
Ot/min.┌─
├─
├─
│ ├─
│ ├─
├─
├─
├─
├─
├─
├─┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
0
───────> Číslo v BX reg.
Meranie otáčok - overovanie činnosti programu po prevedení
aproximácie :
Úlohy pre praktické cvičenie :
1.Výsledky z prevedenej aproximácie doplnte do programu a over-
te jeho funkčnosť.
2.Premerajte v zvolenom rozsahu min. pri 10.rôzných otáčkách
motorčeka a namerané hodnoty zapíšte do tabuľky.
3.Porovnajte dosiahnuté výsledky a pojednajte o praktickom vy-
užití tejto meracej metódy.
Tabuľka nameraných a vypočítaných hodnôt :
┌─────────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ Č.M. │ │ │ │ │ │ │ │ │ │ │
├─────────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
│ Ot/min. │ │ │ │ │ │ │ │ │ │ │
│ počít. │ │ │ │ │ │ │ │ │ │ │
├─────────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
│ Ot/min.
│ │ │ │ │ │ │ │ │ │ │
│ otačkom.│ │ │ │ │ │ │ │ │ │ │
├─────────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
│ Ot/min.
│ │ │ │ │ │ │ │ │ │ │
│ rozdiel │ │ │ │ │ │ │ │ │ │ │
└─────────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
program motor22;
uses crt,printer,graph;
var otacky : word;
var otackys : real;
gd,gm : integer;
function stri(i:integer): string;
var a: string;
begin str(i,a);stri:=a;end;
label n1; begin gd:=0;initgraph(gd,gm,'');
settextstyle(0,0,3);setcolor(white);
begin asm
n1: mov bx,00h Popis činnosti programu ako v pre-
mov dx,302h došlom programe
@1: in al,dx
rcr al,1
jnc @1
@2: in al,dx
rcr al,1
jc @2
@3: in al,dx
inc bx
rcr al,1
jnc @3
mov word ptr otacky,bx end;
begin delay(500);
otackys:=4079.6-0.22765*otacky; Aproximácia funkč-
setfillstyle(0,black); nej závislosti
outtextxy(50,40,'pocet otacok za min.');
bar(0,80,450,400);
outtextxy(200,140,stri(round(otackys)));goto n1;
end;end;end.
Riadenie otáčok motorčeka podľa zadanej hodnoty
Pre riadenie otáčok použijeme D/A prevodník.Výstup z pre- vodníka pripojíme na vstup zosilňovača pomocou ktorého regulujeme
otáčky motora.Predom si premeriame regulačnú charakteristiku ak- čného člena s motorom a potom charakteristiku zmeny výstupného napätia prevodníka v závislosti od vsupnej digitálnejhodnoty.Obi- dve charakteristiky porovname.Optimálne podmienky pre reguláciu
nastanu pri zhodných charakteristikách.
Výpočet dynamickej regulačnej odchylky
Porovnaním žiadných otáčok s nameranými otáčkami môžu nastať tri stavy:otačky sú väčšie,menšie alebo zhodné so žiadaný- mi.V prípade rozdielných otáčok musíme vyslať na prevodník regu- lačnú odchylku,ktorá môže byť statická alebo dynamická.Pri sta- tickej regulačnej odchylke budeme vysielané číslo na prevodnýk meniť pripočítaním alebo odpočítaním konštantnej hodnoty v regu- lačnom cykle.Nevyhodou tejto metódy neprúžny niekedy až nevyhovu-
júci regulačný proces (regulačný proces sa odohráva v technolo- gicky nereálnom čase).
Z uvedených dôvodov sa čstejšie v obslužných programoch po- užíva metóda dynamickej regulačnej odchylky.Pe jej určenie potrebujeme poznať regulačnú charakteristiku,ktorú sme si predom namerali.S tejto nameranej charakteristiky odčítame nasledovné veličiny:dolné medzné otáčky regulačného rozsahu (OTdm)
horné medzné otáčky regulačného rozsahu (OThm)
číslo vysielané na prevodník pri OTdm (Čdot)
číslo vysielané na prevodník pri OThm (Čhot).
Potom dynamickú regulačnú odchylku (DRO) vyúpočítame zo vzťahu :
OThm-OTdm
DRO= k*------------ kde k je koeficient pre dosia-
Čhot-Čdot hnutie satbilného regulačného
procesu, k<1 !
Úlohy pre meracie cvičenie
1.Premerajte regulačné charakteristiky z ktorých odčítajte veli- činy :OTdm,OThm,Čdot,Čhot.
2.Zostavte vzťah pre výpočet dynamickej regulačnej odchylky,za- pište ho do programu a overte jeho funkčnosť.
Regulačná charakteristika prevodníka
─────────────────────> -U (V)
1 2 3 4 5 6 7 8
│ │ │ │ │ │ │ │
┌──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴
│
20 ─┤
│
40 ─┤
│
60 ─┤
│
80 ─┤
│
100 ─┤
│
120 ─┤
│
140 ─┤
│
160 ─┤
│
180 ─┤
│
200 ─┤
│
220 ─┤
│
240 ─┤
│
260 ─┤
Nameraná regulačná charakteristika prevodníka.
Regulačná charakteristika zosilňovača
─────────────────> -U (V)
Otačky/min. 1 2 3 4 5 6 7 8
│ │ │ │ │ │ │ │
┌──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤
│
│
─┤ Nameraná regulačná charakteristika zosilňovača
│ pre reguláciu elektr.motora.
Pojedanie o dosiahnutých výsledkoch a praktickom využití apli-
kovanej meracej metódy :
Program Riadenie_Otacok; motreg2}
Uses Crt,graph,printer;
Var otacky : word; x :char; gd,gm : integer;
PA,regotch,otackys,otnom,tol:longint;
function stri(i:integer):string;
var a:string; begin str(i,a);stri:=a; end;
begin closegraph;clrscr;
writeln('Zadajte otacky za minutu,ktore chcete konstantne udrzovat!');
writeln('Pre dany typ motora doporuc.
rozsah od 500 do 3000 ot./min');
write('chcem udrzovat otacky : '); read(otnom);
writeln('Zadajte presnost udrzovanych otacok,(+-;otacky/min.)');
read(tol); closegraph;clrscr;
gd:=0;initgraph(gd,gm,'C:TPBGI');
settextstyle(0,0,3);setcolor(white);
port[$243]:=$89; PA:=120; port[$240]:=PA;
repeat asm
xor bx,bx
mov dx,242h
@1: in al,dx
rcr al,1
jnc @1
@2: in al,dx
rcr al,1
jc @2
@3: in al,dx
inc bx
rcr al,1
jnc @3
mov word ptr otacky,bx
end;
Vypocet skutocnych otacok po aproximacii charakt.z namer.bodov ;
otackys:=round(2420-0.1021*otacky);
regotch:=round((abs(otnom-otackys)/10));
if (otackys-tol) if (otackys+tol)>otnom then PA:=PA+regotch else PA:=PA;
if PA<1 then PA:=1;
if PA>255 then PA:=255;
port[$240]:=PA; setfillstyle(0,white);
outtextxy(50,40,'pocet otacok za min.');
bar(200,160,492,100);line(10,10,getmaxx,10);
line(getmaxx,10,getmaxx,getmaxy-50);
line(getmaxx,getmaxy-50,10,getmaxy-50);
line(10,getmaxy-50,10,10);
outtextxy(250,100,stri(round(otackys)));
outtextxy(60,180,'Cislo na D/A prevodnik');
outtextxy(60,400,'Reg.odchylka je');
outtextxy(450,400,stri(regotch));
bar(60,220,450,320); bar(450,400,550,420);
outtextxy(250,220,stri(round(PA)));
until keypressed; end.
.