POLITECHNIKA KRAKOWSKA Wydział Inżynierii Elektrycznej i Komputerowej |
|
---|---|
Modelowanie obwodowe | |
Temat ćwiczenia: Serwonapęd z silnikiem prądu stałego zasilanym przekształtnikowo przy elastycznym układzie przeniesienia napędu. |
|
Skład zespołu: Millan Krzysztof |
Data wykonania: |
Rok: I 2012/2013 |
Wstęp:
Wykonywane zadanie: Serwonapęd z silnikiem prądu stałego zasilanym przekształtnikowo przy elastycznym układzie przeniesienia napędu.
Układ modelowy od regulacji prędkości:
Program domyślny:
Program dostarczony przez prowadzącego:
DCchop1G:
% Dynamika ukladu mechanicznego
% Silnik DC zasilany z przerywacza
clear
global A B Uo Io Omo Ra La Psi D2 Tp OmTH Iamax KRi TRi Tc taupom...
Omz1 Omz2
% Parametry symulacji
tfin=2; Maxstep=1e-4;
Tp=1.0; %czas przelaczenia predkosci zadanej
N = fix(tfin/Maxstep); % Liczba punktow obliczeniowych i wynikowych
tt=0:tfin/N:tfin; %wektor czasu (zmienna niezalezna)
%pi=4*atan(1);
% Parametry ukladu mech.
J1=0.05; J2=0.05; %momenty bezwladnosci
k1=100000 ; %wsp. sprezystosci
D2=0.2; % wspolczynniki tlumienia
J0=J1*J2/(J1+J2);
kD=0.01; D12=kD*sqrt(2*k1*J0); %tlumienie przeniesienia napedu
tau0=2*J0/D12; fw=1/2/pi*sqrt(k1/J0-1/tau0^2);
f0=1/(2*pi)*sqrt(k1/J0-2/tau0^2);
% Parametry silnika DC
PN=6200; UN=440; etaN=0.92; p=2; nN=3000;
IN=PN/etaN/UN;
Ra=0.5*PN*(1/etaN-1)/IN^2; Psi=9.55*(UN-Ra*IN)/nN;
La=1/2/p*Psi/IN; Ta=La/Ra;
taupom=0.05;
% Parametry przerywacza
Ud=300;
%fc=5*f0;
fc=200;
Tc=1/fc;
tauE=Tc;
% Parametry wzgledne
Uo=Ud; Io=IN; Psio=Psi; Omo=Uo/Psio; To=Psio*Io; Ro=Uo/Io;
Rar=Ra/Ro;
TJ=(J1+J2)*Ro/Psio^2;
% Paremetry Ralfa
n2z=1;
n2TH=0.1;
i2=10;
% Parametry Romega
Omz1=80; Omz2=-40;%predkosci zadane
OmTH=3; %Wart.progowa regulatora Psat
Iamax=4; %prad zadany maksymalny
KRom=0.5*TJ/(2*tauE);
TRom=4*tauE;
% Parametry Ri (PI)
TRi=Ta;
kkR=1; KRi=kkR*Rar/2*Ta/tauE;
% Parametry rownan ukladu mech.
% Macierz stanu
A=[-D12/J1 , D12/J1 ,-k1/J1 , k1/J1 ;
D12/J2 , -D12/J2 , k1/J2 , -k1/J2 ;
1 , 0 , 0 , 0 ;
0 , 1 , 0 , 0 ];
% Macierz wymuszenia
B=diag([1/J1,1/J2,0,0],0);
%------------ PROCEDURA ROZWIAZANIA ROWNAN ROZNICZKOWYCH --
%Warunki poczatkowe
x0=[0;0;0;0;0;0;0];
opt=odeset('RelTol',1e-5,'AbsTol',1e-8);
%[t,x]=ode23t('dcchop1f',tt,x0,opt);
[t,x]=ode23tb('DCchop1F',tt,x0,opt);
%[t,x]=ode23s('dcchop1f',tt,x0,opt);
%Maxstep=0.1*abs(t0-tf) w danym przedziale czasu
%------------ KONIEC PROCEDURY ROZWIAZANIA --------------------
% Wyprowadzenie wynikow symulacyjnych
om1=x(:,1);
om2=x(:,2);
fi1=x(:,3);
fi2=x(:,4);
ia=x(:,5);
uai=x(:,6);
ua0=x(:,7);
T1=Psi*ia;
%Katy skrecenia
fi12=fi1-fi2;
om=om1;%Sprzezenie zwrotne
%Roznice predkosci
om12=om1-om2;
om1r=om1/Omo;%Predkosc wzgledna silnika
om2r=om2/Omo;%Predkosc wzgledna maszyny roboczej
%--------------------------------------------------------
%Procedura odtworzenia napiecia przerywacza -------------
%Regulator polozenia
iarz=zeros(N+1,1);
for k=1:N+1
%Zadajnik predk.
if t(k)<Tp
omz(k,1)=Omz1;
else
omz(k,1)=Omz2;
end
%PIsat
%Rom: Psat
Dom=omz(k,1)-om(k,1);
if Dom>OmTH
iarz(k,1)=Iamax;
elseif Dom<-OmTH
iarz(k,1)=-Iamax;
else
iarz(k,1)=Iamax/OmTH*Dom;
end
end
Diar=iarz-ia/Io;
uar=KRi*Diar+uai; %Regulator pradu PI
%Przerywacz
pila1=mod(t,Tc)/Tc; %Pila dodatnia
pila2=2*(pila1-0.5); %Pila przemienna
trojkat1=abs(pila2); %Trojkat dodatni
trojkat2=2*(trojkat1-0.5); %Trojkat przemienny
QU1=sign(uar-trojkat2);
QU2=sign(-uar-trojkat2);
ua=(QU1-QU2)/2*Uo; uar=ua/Uo;
erot=Psi*om1; % napiecie rotacji
%-------------- Wykresy ---------------------------------------------
figure(1);
clf;
subplot(411)
plot(t,om1);grid;
subplot(412)
plot(t,om2);grid;
subplot(413)
plot(t,ia);grid;
subplot(414)
plot(t,ua,'y',t,ua0,t,erot);grid;
figure(2)
clf
subplot(2,1,1)
plot(t,om1,t,om2);grid
subplot(2,1,2)
plot(t,T1);grid
figure(3)
subplot(211)
plot(t,fi12)
DCchop1F:
function xd=DCchop1F(t,x);
global A B Uo Io Omo Ra La Psi D2 Tp OmTH Iamax KRi TRi Tc taupom ...
Omz1 Omz2
om1=x(1);
om2=x(2);
fi1=x(3);
fi2=x(4);
ia=x(5);
uai=x(6);
ua0=x(7);
% Moment napedzajacy (elektromagnetyczny silnika)
T1=Psi*ia;
% Moment oporowy
T2=-D2*om2; % generatorowy
% Wektor wymuszenia ukl. mech.
u=[T1;T2;0;0];
%-----uklad sterowania-----------------------------------
%Predkosc zadana
if t<Tp
omz=Omz1;
else
omz=Omz2;
end
%Regulator predkosci
om=om1;% sprzezenie zwrotne
Dom=omz-om;
%Rom Psat
if Dom>OmTH
iarz=Iamax;
elseif Dom<-OmTH
iarz=-Iamax;
else
iarz=Dom*Iamax/OmTH;
end
% Regulator pradu
iar=ia/Io; %Prad wzgledny
Diar=iarz-iar; %Uchyb regulacji pradu
uar=KRi*Diar+uai; %Regulator pradu PI
%Przerywacz
pila1=mod(t,Tc)/Tc; %Pila dodatnia
pila2=2*(pila1-0.5); %Pila przemienna
trojkat1=abs(pila2); %Trojkat dodatni
trojkat2=2*(trojkat1-0.5); %Trojkat przemienny
QU1=sign(uar-trojkat2);
QU2=sign(-uar-trojkat2);
ua=(QU1-QU2)/2*Uo;
%-----Uklad rownan rozniczkowych w postaci normalnej-----
%Regulator pradu
duai=KRi/TRi*Diar;
%-----------Silnik
%-Twornik
dia=1/La*(ua-Ra*ia-Psi*om1);
%-Uklad mechaniczny
xd1=A*x(1:4)+B*u;
%Pomiar napiecia usrednionego
dua0=(ua-ua0)/taupom;
%Wektor pochodnych zmiennych stanu
xd=[xd1;dia;duai;dua0];
Przebiegi domyślne dla programu dostarczonego przez prowadzącego:
Wykresy: om1, om2, ia, ua
Wykresy: (om1, om2), T1
Wykres: fi12
Dokonać badania pracy napędu w oparciu o program komputerowy w matlabie. Regulator prędkości typu Psat.
Nastawić częstotliwość nośną na wielokrotność częstotliwości rezonansowej:
Zmieniona wartość: fc=5*f0 = 1591Hz
Sprawdzić działanie układu przy różnych wartościach nastaw Ri odbiegających od optymalnych.
Aby zmienić parametry Ri (PI) można wykołysać zmianę wartości stałej czasowej:
Ta = La/Ra, wartości te są wyliczane na podstawie danych silnika. Możemy dokonać włączenia rezystora szeregowo z Ra oraz dławika La.
Zwiększenie Ra dwa razy:
Zmiana w kodzie:
Ra = 2 * Ra = 2 * 1.1491 = 2.2982
Zwiększenie La dwa razy:
La = 2 * La = 2 * 0.0219 = 0.0439
Sprawdzić działanie układu przy współczynniku k12 dziesięciokrotnie większym i dziesięciokrotnie mniejszym:
Współczynnik dziesięciokrotnie większy:
Zmiana w kodzie:
k1 = k1 * 10 = 1 000 000
Współczynnik dziesięciokrotnie mniejszy:
Zmiana w kodzie:
k1 = k1 / 10 = 10 000
Zmienić model regulatora na PIsat i dobrać jego nastawy. Sprawdzić działanie układu. Regulacja prędkości.
Regulator PIsat:
if Dom>OmTH
iarz=Iamax;
elseif Dom<-OmTH
iarz=-Iamax;
elseif Dom>0
iarz(k,1)=1/2 *(Iamax/OmTH*Dom+Iamax);
else
iarz(k,1)=1/2 *(Iamax/OmTH*Dom-Iamax);
end
Działanie regulatora typu PIsat:
``
Optymalny dobór parametrów regulatora PIsat:
OmTH=4.5;
Iamax=4;
Przebiegi dla zamodelowanego regulatora:
Układ regulacji położenia:
Uzupełniony program o regulator położenia:
DCchop1G:
% Dynamika ukladu mechanicznego
% Silnik DC zasilany z przerywacza
clear
global A B Uo Io Omo Ra La Psi D2 Tp OmTH Iamax KRi TRi Tc taupom...
Omz1 Omz2 i2 n2z n2TH KRom TRom Uchn2 IARZ
% Parametry symulacji
tfin=2; Maxstep=1e-4;
Tp=1.0; %czas przelaczenia predkosci zadanej
N = fix(tfin/Maxstep); % Liczba punktow obliczeniowych i wynikowych
tt=0:tfin/N:tfin; %wektor czasu (zmienna niezalezna)
%pi=4*atan(1);
% Parametry ukladu mech.
J1=0.05; J2=0.05; %momenty bezwladnosci
k1=100000 ; %wsp. sprezystosci
D2=0.2; % wspolczynniki tlumienia
J0=J1*J2/(J1+J2);
kD=0.01; D12=kD*sqrt(2*k1*J0); %tlumienie przeniesienia napedu
tau0=2*J0/D12; fw=1/2/pi*sqrt(k1/J0-1/tau0^2);
f0=1/(2*pi)*sqrt(k1/J0-2/tau0^2);
% Parametry silnika DC
PN=6200; UN=440; etaN=0.92; p=2; nN=3000;
IN=PN/etaN/UN;
Ra=0.5*PN*(1/etaN-1)/IN^2; Psi=9.55*(UN-Ra*IN)/nN;
La=1/2/p*Psi/IN; Ta=La/Ra;
taupom=0.05;
% Parametry przerywacza
Ud=300;
%fc=2*f0;
fc=200;
Tc=1/fc;
tauE=Tc;
% Parametry wzgledne
Uo=Ud; Io=IN; Psio=Psi; Omo=Uo/Psio; To=Psio*Io; Ro=Uo/Io;
Rar=Ra/Ro;
TJ=(J1+J2)*Ro/Psio^2;
% Paremetry Ralfa
n2z=1;
n2TH=0.1;
i2=10;
% Parametry Romega
Omz1=80; Omz2=-40;%predkosci zadane
OmTH=3; %Wart.progowa regulatora Psat
Iamax=4; %prad zadany maksymalny
KRom=0.5*TJ/(2*tauE);
K1Rom=0.5*TJ/(2*tauE);
TRom=4*tauE;
% Parametry Ri (PI)
TRi=Ta;
kkR=1; KRi=kkR*Rar/2*Ta/tauE;
% Parametry rownan ukladu mech.
% Macierz stanu
A=[-D12/J1 , D12/J1 ,-k1/J1 , k1/J1 ;
D12/J2 , -D12/J2 , k1/J2 , -k1/J2 ;
1 , 0 , 0 , 0 ;
0 , 1 , 0 , 0 ];
% Macierz wymuszenia
B=diag([1/J1,1/J2,0,0],0);
%------------ PROCEDURA ROZWIAZANIA ROWNAN ROZNICZKOWYCH --
%Warunki poczatkowe
x0=[0;0;0;0;0;0;0;0];
opt=odeset('RelTol',1e-5,'AbsTol',1e-8);
%[t,x]=ode23t('dcchop1f',tt,x0,opt);
[t,x]=ode23tb('DCchop1F2',tt,x0,opt);
%[t,x]=ode23s('dcchop1f',tt,x0,opt);
%Maxstep=0.1*abs(t0-tf) w danym przedziale czasu
%------------ KONIEC PROCEDURY ROZWIAZANIA --------------------
% Wyprowadzenie wynikow symulacyjnych
om1=x(:,1);
om2=x(:,2);
fi1=x(:,3);
fi2=x(:,4);
ia=x(:,5);
uai=x(:,6);
ua0=x(:,7);
uiar=x(:,8);
T1=Psi*ia;
%Katy skrecenia
fi12=fi1-fi2;
om=om1;%Sprzezenie zwrotne
%Roznice predkosci
om12=om1-om2;
om1r=om1/Omo;%Predkosc wzgledna silnika
om2r=om2/Omo;%Predkosc wzgledna maszyny roboczej
%--------------------------------------------------------
%Procedura odtworzenia napiecia przerywacza -------------
%Regulator polozenia
iarz=zeros(N+1,1);
% for k=1:N+1
% %Zadajnik predk.
% if t(k)<Tp
% omz(k,1)=Omz1;
% else
% omz(k,1)=Omz2;
% end
%
% %PIsat
%
%
% %Rom: Psat
% Dom=omz(k,1)-om(k,1);
% if Dom>OmTH
% iarz(k,1)=Iamax;
% elseif Dom<-OmTH
% iarz(k,1)=-Iamax;
% else
% iarz(k,1)=Iamax/OmTH*Dom;
% end
% end
for k=1:N+1
%Zadajnik położenia.
if Uchn2>n2TH
omz(k,1)=Omz1;
elseif Uchn2<-n2TH
omz(k,1)=-Omz1;
else
omz(k,1)=Uchn2*Omz1/n2TH;
end
%PIsat
Dom=(omz(k,1)-om(k,1))*Omo;
if IARZ>Iamax
iarz(k,1)=Iamax;
K1Rom=0;
elseif IARZ<-Iamax
iarz(k,1)=-Iamax;
K1Rom=0;
else
iarz(k,1)=IARZ;
K1Rom=1;
end
end
Diar=iarz-ia/Io;
uar=KRi*Diar+uai; %Regulator pradu PI
%Przerywacz
pila1=mod(t,Tc)/Tc; %Pila dodatnia
pila2=2*(pila1-0.5); %Pila przemienna
trojkat1=abs(pila2); %Trojkat dodatni
trojkat2=2*(trojkat1-0.5); %Trojkat przemienny
QU1=sign(uar-trojkat2);
QU2=sign(-uar-trojkat2);
ua=(QU1-QU2)/2*Uo; uar=ua/Uo;
erot=Psi*om1; % napiecie rotacji
%-------------- Wykresy ---------------------------------------------
figure(4);
clf;
subplot(411)
plot(t,om1);
xlabel('t')
ylabel('om2')
grid
subplot(412)
plot(t,om2);
xlabel('t')
ylabel('om2')
grid
subplot(413)
plot(t,ia);
xlabel('t')
ylabel('ia')
grid
subplot(414)
plot(t,ua,'y',t,ua0,t,erot);
xlabel('t')
ylabel('ua ua0 erot')
grid
figure(5)
clf
subplot(2,1,1)
plot(t,om1,t,om2);
xlabel('t')
ylabel('om1 om2')
grid
subplot(2,1,2)
plot(t,T1);grid
xlabel('t')
ylabel('T1')
figure(6)
subplot(211)
plot(t,fi12)
xlabel('t')
ylabel('fi1-fi2')
grid
DCchop1F:
function xd=DCchop1F2(t,x);
global A B Uo Io Omo Ra La Psi D2 Tp OmTH Iamax KRi TRi Tc taupom ...
Omz1 Omz2 i2 n2z n2TH KRom TRom Uchn2 IARZ
om1=x(1);
om2=x(2);
fi1=x(3);
fi2=x(4);
ia=x(5);
uai=x(6);
ua0=x(7);
uiar=x(8);
% Moment napedzajacy (elektromagnetyczny silnika)
T1=Psi*ia;
% Moment oporowy
T2=-D2*om2; % generatorowy
% Wektor wymuszenia ukl. mech.
u=[T1;T2;0;0];
%-----uklad sterowania-----------------------------------
%Predkosc zadana
% if t<Tp
% omz=Omz1;
% else
% omz=Omz2;
% end
%Regulator położenia
n2=fi2/i2/(2*pi); % położenie chwilowe
Uchn2=n2z-n2; % Uchyb pożenia
if Uchn2>n2TH
omz=Omz1;
elseif Uchn2<-n2TH
omz=-Omz1;
else
omz=Uchn2*Omz1/n2TH;
end
%Regulator predkosci PIsat
om=om1;% sprzezenie zwrotne
Dom=(omz-om)*Omo;
IARZ=KRom*Dom+uiar;
if IARZ>Iamax
iarz=Iamax;
K1Rom=0;
elseif IARZ<-Iamax
iarz=-Iamax;
K1Rom=0;
else
iarz=IARZ;
K1Rom=1;
end
%Rom Psat
% if Dom>OmTH
% iarz=Iamax;
% elseif Dom<-OmTH
% iarz=-Iamax;
% else
% iarz=Dom*Iamax/OmTH;
% end
% Regulator pradu
iar=ia/Io; %Prad wzgledny
Diar=iarz-iar; %Uchyb regulacji pradu
uar=KRi*Diar+uai; %Regulator pradu PI
%Przerywacz
pila1=mod(t,Tc)/Tc; %Pila dodatnia
pila2=2*(pila1-0.5); %Pila przemienna
trojkat1=abs(pila2); %Trojkat dodatni
trojkat2=2*(trojkat1-0.5); %Trojkat przemienny
QU1=sign(uar-trojkat2);
QU2=sign(-uar-trojkat2);
ua=(QU1-QU2)/2*Uo;
%-----Uklad rownan rozniczkowych w postaci normalnej-----
%Regulator pradu
duai=KRi/TRi*Diar;
%-----------Silnik
%-Twornik
dia=1/La*(ua-Ra*ia-Psi*om1);
%-Uklad mechaniczny
xd1=A*x(1:4)+B*u;
%Pomiar napiecia usrednionego
dua0=(ua-ua0)/taupom;
%Regulator prędkości PI
duiar=K1Rom*KRom/TRom*Dom;
%Wektor pochodnych zmiennych stanu
xd=[xd1;dia;duai;dua0;duiar];
Sprawdzić działanie układu przy różnych wartościach wzmocnienia regulatora położenia:
Dla wartości domyślnej:
Wartość 2 razy mniejsza:
Wartość 2 razy większa:
Sprawdzić wpływ elastyczności wału na dokładność pozycjonowania:
Wał z zmniejszonym współczynnikiem sprężystości 10x:
Wał z zwiększonym współczynnikiem sprężystości 10x:
Jak należy sterować przekształtnik jeśli zamienimy falownik na prostownik sterowany
Musimy pozbyć się bloku generującego przebiegi PWM dla falownika prądu.
Zmniejszyć częstotliwość pracy układu sterowania dla zachowania mocy w układach.
Wnioski:
Parametry wału wpływają znacząco na dokładność pozycjonowania – mniej bardziej sztywny wał może być wykorzystywany w przypadku, kiedy potrzebujemy uzyskania większych dokładności na końcu roboczym wału bądź masie roboczej. Powszechnie są stosowane w przemyśle wyżej symulowane sposoby sterowania układów napędowych. Napędy z sterowaniem na zadaną prędkość obrotową. Gdy potrzebne jest kontrolowanie wartości kąta na końcu wału silnika/wału przeniesienia niezbędne jest sterowanie symulowane jako drugie.