Numer ćw.: | Nazwa wydziału: | Ocena: |
---|---|---|
3 | Wydział Inżynierii Elektrycznej i Komputerowej | |
Grupa stud. / grupa lab. | ||
MDM A | Nazwa przedmiotu: | |
Data oddania sprawozdania: | Inżynieria sterowania | |
10.06.2013 | Szyndler Agnieszka | Podpis: |
Wstęp.
Parametry sterowania zostały przyjęte dla przypadku nr 59.
Sterowanie silnikiem prądu stałego.
MK – mikrokontroler; PR – prostowmik; SPS – silnik prądu stałego; TG – tachogenerator.
Równania silnika
, .
Równanie kondensatora
,
Równania tachogeneratora
Mikrokontroler
Sygnał wyjściowy prostownika
Parametry systemu sterowania:
LA = 5.35
LAF = 0.09
LFA = 0.05
LFF = 96
kg = 0.9
Tg = 0.05
rA = 19
rF = 118
rP = 2.3
c = 59
C = 0.05
Mo = 12
J = 1
Do obliczeń wykorzystano metodę Rungego-Kutty numer 5:
Wykonanie obliczeń w środowisku Matlab.
Kod programu :
Plikgłówny:
clc
clear all
global u1 n w fim um J Mo uA rP rA c C LA LAF LFA LFF rF kg Tg
w = 314.1593;
n = 1000;
uA = 300;
u1 = 10;
fim = 2*pi;
um = 10;
LA = 5.35;
LAF = 0.09;
LFA = 0.05;
LFF = 96;
kg = 0.9;
Tg = 0.05;
rA = 19;
rF = 118;
rP = 2.3;
c = 59;
C = 0.05;
Mo =12;
J = 1;
%% obliczanie pochodnej
tspan=[0 2];
iA0=0;
iF0=0;
w0=0;
uC0=0;
ug0=0;
y0=[iA0 iF0 w0 uC0 ug0];
[t,y]=mrk(@f1, tspan,y0);
iA=y(1,:);
iF=y(2,:);
omega=y(3,:);
uC=y(4,:);
ug=y(5,:);
%% wykresy
clf
figure(1)
plot(t,iA)
title('Prąd główny silnika ia')
figure(2)
plot(t,iF)
title('Prąd obwodu wzbudzenia if')
figure(3)
plot(t,omega)
title('Prędkość')
figure(4)
plot(t,uC)
title('Napięcie na kondensatorze uc')
figure(5)
plot(t,ug)
title('Napięcie z tachogeneratora ug')
Pliki funkcyjne:
function[dy] = f1(t, y)
global u1 w fim um J Mo PSI uA rP rA c C LA LAF LFA LFF rF kg Tg
uz=300*sin(w*t);
Uz=300*w*cos(w*t);
u2=u1-y(5);
SA=1/(LA+LAF*LFA/LFF);
TA=-SA*LAF/LFF;
TF=-SA*LFA/LFF;
EA=SA*((LAF*rF*y(2)/LFF)-c*y(3)-rA*y(1));
EF=-(LFA*EA+rF*y(2))/LFF;
SF=(1-LFA*TA)/LFF;
PSI=0.04*y(2);
if u2<=um
fi0=fim*(1-u2/um);
else
fi0=0;
end
fi=u2*fi0;
if Uz>0 & fi<fi0;
up=0;
else
up=abs(uz);
end
%% równania różniczkowe
dy=zeros(5,1);
dy(1)=SA*uA+TA*y(4)+EA;
dy(2)=TF*uA+SF*y(4)+EF;
if c*PSI*y(1)>Mo
dy(3)=(c*PSI*y(1)-Mo)/J;
else
dy(3)=0;
end
dy(4)=C^-1*(((up-y(4))/rP)-y(1));
dy(5)=(kg*y(3)-y(5))/Tg ;
end
Plik funkcyjny z 5 metodą Rungego-Kutty :
function [t y] = mrk(f1, tspan, y0)
global n
b = tspan(2);
a = tspan(1);
h = (b-a)/n;
t = (a:h:b);
y(:,1) = y0;
for q = 1 : n
n1 = h * f1(t(q), y(:,q));
n2 = h * f1(t(q) + h/2, y(:,q) + n1/2);
n3 = h * f1(t(q) + h/2, y(:,q) + (sqrt(2)-1)*n1/2+(sqrt(2)-1)*n2/sqrt(2));
n4 = h * f1(t(q) + h, y(:,q) - n2/sqrt(2)+(1+sqrt(2))*n3/sqrt(2));
y(:,q+1) = y(:,q) + (n1+(2-sqrt(2))*n2+(2+sqrt(2))*n3+n4)/6;
end
Wykresy.