Documente Academic
Documente Profesional
Documente Cultură
nref
nm
sc
cr
Dispozitiv
de
reglare
EE
nm
TT
Fig. 1
Turaia prescris nref este comparat cu valoarea nm , msurat de traductorul de turaie
TT. Dispozitivul de reglare furnizeaz doi bii de comand care indic sensul n care trebuie
modificat turaia : scdere (sc) sau cretere (cr) i un cuvnt de comand (u) care indic
intensitatea aciunii de modificare a turaiei. n aplicaia de fa se consider un reglaj de tip P
(proporional) cu factor de proporionalitate unitar, astfel nct cuvntul de comand u
reprezint chiar eroarea de reglare, n valoare absolut :
u = | nref - nm |
Aceste mrimi de command acioneaz asupra unui element de execuie ( EE), care
furnizeaz motorului semnalele necesare modificrii turaiei, n sensul i cu intensitatea
necesare.
n Fig.2 se prezint schema-bloc a dispozitivului de reglare. Turaia prescris nref i turaia
msurat nm, reprezentate pe cte 4 bii, sunt ncrcate n registrele latch Reg_1 i Reg_2,
fiind livrate de acestea sub denumirile nr, respectiv n1. Valorile lor sunt comparate de un
bloc comparator (Comp) furniznd cuvntul c de 2 bii, care indic relaia dintre turaia de
referin i turaia msurat. Bitul c2 comand multiplexoarele MUX_1, MUX_2, care
Reg_1
nref
d
nr
q
load
Reg_2
0
h 1
c1
sel
y2
4+
p1
sel
mux_2
g 0
j
1
h
load
Reg_3
c2
mux_1
n1
d q
e v2
f v1
y2
nm
01, e > f
10, e < f
00, e = f
v=
Comp
p2
q5
d4
q4
sc
EE
1
cr
1
Dif
er
df
d5
d(3:0) q(3:0)
TT
load
y1
y1
y2
clk
automat
init
Fig. 2
aduc n mod adecvat operanzii nr i n1 la intrarea de desczut (+), respectiv de scztor (-)
ale dispozitivului de scdere Dif. La ieirea acestuia se obine eroarea de reglare er, n
valoare absolut. Mrimile rezultate ( c2, c1, er ), sunt ncrcate n registrul latch de ieire
init = 1
(asincron)
ncarc
c2, c1, er
ncarc
nref, nm
S2
S1
y = 10
y = 01
Fig. 3
[Target library]
fiierul
biblioteca de componente :
----------------------------------------------------------------------------------------------------------------library ieee;
use ieee.std_logic_1164.all;
--registru generalizat
package pkg_registru is
component registru
generic ( n : integer ) ;
port ( d : in std_logic_vector(n downto 0) ;
q : out std_logic_vector(n downto 0) ;
load : in std_logic);
end component;
end pkg_registru;
library ieee;
use ieee.std_logic_1164.all;
entity registru is
generic ( n : integer );
port (d : in std_logic_vector(n downto 0);
3
use ieee.std_logic_1164.all;
package pkg_comparator is
component comparator
port (e,f : in std_logic_vector(3 downto 0);
v : out std_logic_vector(2 downto 1));
end component;
end pkg_comparator;
library ieee;
use ieee.std_logic_1164.all;
entity comparator is
port (e,f : in std_logic_vector(3 downto 0);
v : out std_logic_vector(2 downto 1));
end comparator;
architecture arch_comparator of comparator is
begin
v <= "01" when e > f else
"10" when e < f else
"00" ;
end arch_comparator;
--multiplexor
4
library ieee;
use ieee.std_logic_1164.all;
package pkg_multiplexor is
component multiplexor
port (g,h : in std_logic_vector(3 downto 0);
j : out std_logic_vector(3 downto 0);
sel : in std_logic);
end component;
end pkg_multiplexor;
library ieee;
use ieee.std_logic_1164.all;
entity multiplexor is
port (g,h : in std_logic_vector(3 downto 0);
j : out std_logic_vector(3 downto 0);
sel : in std_logic);
end multiplexor;
architecture arch_multiplexor of multiplexor is
begin
j <= g when sel = '0' else
h;
end arch_multiplexor;
--Dispozitiv de scadere
library ieee;
use ieee.std_logic_1164.all;
use work.std_arith.all;
package pkg_dif is
component dif
port (a,b : in std_logic_vector(3 downto 0);
df : out std_logic_vector(3 downto 0));
end component;
end pkg_dif;
library ieee;
use ieee.std_logic_1164.all;
use work.std_arith.all;
entity dif is
port (a,b : in std_logic_vector(3 downto 0);
df : out std_logic_vector(3 downto 0));
end dif;
architecture arch_dif of dif is
begin
df <= a b ;
end arch_dif;
---------------------------------------------------------------------------------------------------------------Se salveaz i se compileaz sursa :
Prin aceasta s-a creat o bibliotec personal denumit : nume_library, definit prin fiierul
componente.vhd i compus din pachetele
pkg_registru ,
pkg_comparator ,
registru,
comparator, multiplexor i dif. Aceste componente pot fi apelate i folosite n orice proiect
ulterior. Structura bibliotecii este prezentat n Fig.4.
bibliotec
nume_library
package
pkg_registru
package
pkg_comparator
component
registru
component
comparator
package
packaget
pkg_dif
pkg_multiplexor
component
component
multiplexor
dif
Fig. 4
Descrierea structural a dispozitivului de reglare a turaiei (Fig.2)
6
[Target device]
1.16. Finish
1.17. File => New => Text files =>
=> Save as : reglare.vhd
-- se denumete fiierul
care va conine sursa VHDL
-- se ataeazsursa la proiect
use ieee.std_logic_1164.all;
use work.std_arith.all;
library nume_library;
signal s : stare;
begin
if init = '1' then s <= s1;
elsif rising_edge(clk) then
case s is
when s1 => s <= s2;
when s2 => s <= s1;
end case;
end if;
end process automat;
y <= "01" when s = s1 else
"10" ;
--instantierea componentelor
reg_1: registru generic map(3)
registru de 4 biti
registru de 4 biti
registru de 6 biti
1.20
OK => OK
Compilarea sursei
1.21. Project => Compiler Options =>
=> Timing Model => 1164/VHDL => OK
-- opiunea de compilare
pentru simulare
--iniializare ( t = 0 )
1.16. Waveform => Add Signals => Name => clk =>Add
-- se selecteaz semnalele
dorite a fi tratate
de simulator
clk
f = 1 MHz
init
1 000 000
nref(3)
nref(2)
nref(1)
nref(0)
nm(3)
nm(2)
nm(1)
nm(0)
t
0
10 000 000
40 000 000
50 000 000
[ ps ]
Fig. 5
1.18. Se simuleaz funcionarea dispozitivului pe un interval de timp acoperitor fa de
stimulii definii n Fig.5 :
nm1
nref
nm1
Dispozitiv
de
reglare 1
Dispozitiv
de
reglare 2
nm2
sc1
cr1
u1
sc2
cr2
u2
TT1
EE1
m1
EE2
m2
nm2
TT2
Fig. 6
Turaia motorului m1 este meninut constant la valoarea nm1 = nref de dispozitivul de
reglare 1, asa cum s-a artat n paragraful anterior. Dispozitivul de reglare 2 folosete ca
valoare de referin turaia nm1 a primului motor, meninnd turaia nm2 a motorului m2 n
sincronism cu aceasta : nm2 = nm1 .
Structura sistemului de reglare i sincronizare a turaiilor este prezentat n Fig. 7. Blocurile
funcionale fiind similare cu cele din dispozitivul proiectat anterior se recomand folosirea
bibliotecii de componente nume_library deja creat . Proiectarea schemei const doar n
redactarea sursei VHDL coninnd descrierea structural a schemei din Fig.7.
Automatul care coordoneaz funcionarea schemei are aceeai structur i acelai mod de
operare ca n cazul precedent. Automatul se va descrie comportamental n sursa VHDL.
Pentru ca bibliteca de componete existent s fie vizibil pentru noul proiect, este obligatoriu
ca acesta s fie localizat n acelai director ca i biblioteca nume_library.
11
Reg_1
nref
4
nr1
q
lload
e v2
f v1
y2
nm1
c1
0
h 1
n1
d q
sel
sel
mux_2
g 0
j
1
h
load
y2
Reg_3
c2
mux_
1
g
Reg_2
01, e > f
10, e < f
00, e = f
v=
Comp1
4+
p1
4
q5
d4
q4
er1
df
d(3:0) q(3:0)
M1
TT1
y1
clk
y1
y2
y2
lload
nm1
nr2
q
y2
nm2
e v2
f v1
Reg_4
d q
Reg_5
c3
0
h 1
n2
c4
1
sel
p3
sel
mux_4
4
g 0
j
1
h
p4
Dif2
er2
df
init
lload
mux_3
load
automat
y1
01, e > f
10, e < f
00, e = f
v=
Comp2
EE1
1
cr1
lload
p2
sc1
u1
Dif1
d5
d5
q5
d4
q4
d(3:0) q(3:0)
sc2
1
cr2
1
EE2
TT2
M2
u2
4
Reg_6
Fig. 7
Se parcurg succesiv etapele urmtoare :
Descrierea structural a dispozitivului de reglare i sincronizare (Fig.7)
2.1. Start Programs => WARP5.1 => Galaxy
2.2. File => New => Project
[Target device]
-- se denumete fiierul
care va conine sursa VHDL
2.10
OK => OK
Compilarea sursei
2.11. Project => Compiler Options =>
=> Timing Model => 1164/VHDL => OK
-- opiunea de compilare
pentru simulare
--iniializare ( t = 0 )
13
2.17. Waveform => Add Signals => Name => clk =>Add
-- se selecteaz semnalele
dorite a fi tratate
de simulator
14
clk
f = 1 MHz
init
1 000 000
nref(3)
nref(2)
nref(1)
nref(0)
nm1(3)
nm1(2)
nm1(1)
nm1(0)
nm2(3)
nm2(2)
nm2(1)
nm2(0)
t
0
10 000 000
Fig. 8
15
40 000 000
50 000 000
[ ps ]