Program nie rysuje poprawnych wykresów dla pewnych wartośći

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
strachu01
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 9 lut 2015, o 21:12
Płeć: Mężczyzna
Lokalizacja: Polska

Program nie rysuje poprawnych wykresów dla pewnych wartośći

Post autor: strachu01 »

Witam, mam następujący problem.
Matlab rysuje pięknie wykresy, jednak gdy zmieniam wartość Tmax (max czas analizy) na wiekszą od 1, albo zaczynam za bardzo kombinować z przedziałem czasu analizy, to otrzymuję głupoty, wykres przestaje być sinusoidą i wyrzuca mi w zasadzie linie prostą z dwoma punktami. Przy podanych wartośćiach Tmax i przedziale T wykresy są w porządku, a w pliku tekstowym również otrzymuje sensowne wyniki.

Załączam kod programu, może ktoś potrafi mi pomóc?

global U f psi R X

load 'dane.txt' -ascii
A=dane(1);
B=dane(2);

U=220;
f=100;
psi=30;
R=A;
X=B;

Um = sqrt(2)*U; % amplituda nap. zasilajacego
Z = sqrt(R^2+X^2); % impedancja pozorna obwodu
fi = atan(X/R); % kat impedancji
psi=psi/180*pi; % przeliczenie kata poczatkowego napiecia na radiany
w = 2*pi*f; % czestosc napiecia
L = X/w; % indukcyjnosc obwodu
tau = L/R; % stala zanikania


disp('Parametry obwodu:');
disp(' R= '),disp(R);
disp(' X= '),disp(X);
disp(' Z= '),disp(Z);
disp(' tau='),disp(tau);
disp(' U= '),disp(U);
disp(' psiE= '),disp(psi);
disp(' fi = '),disp(fi);

% WYZNACZANIE PRZEBIEGU PARAMETRÓW
Tmax = 0.1 ; % max czas analizy
T = 0:0.0001:Tmax; % przedzial czasu analizy od 0 do Tmax sekundy
nT=length(T); % liczba punktow

p0 = zeros(1,nT); % oś zerowa

Im = Um/Z; % amplituda pradu
iAC = Um/Z * sin(w.*T + psi - fi); % skladowa okresowa
iDC = - Um/Z*exp(-T./tau)*sin(psi-fi); % skladowa nieokresowa
iRL = iAC + iDC; % całkowite natężenie płynące przez obwód
E = Um * sin(w.*T + psi); % napięcie zasilania
UL = E-R*iRL; % napięcie na cewce z prawa Ohma


% skalowanie wykresu
% axis (xmin, xmax, ymin, ymax);
Imax = 1.1*Im; % skala osi rzednych dla prądu
Umax = 1.1*U;


subplot(2,1,1),plot(T,UL,'-k', T,p0,'-r' ),
title(' Napięcie na cewce ');
xlabel('t[s]');
ylabel('U[V]');
axis([0 Tmax -Umax Umax]);
grid on;

subplot(2,1,2),plot(T,iRL,'-b',T,iAC,'-k',T,iDC,'--g', T,p0,'-r');
xlabel('t[s]');
ylabel('I[A]');
title(' Przebiegi prądów w stanie przejściowym, ustalonym');
axis([0 Tmax -Imax Imax]);
grid on;

fid=fopen('wyniki.txt','w+');
fprintf(fid,'wartosc napiecia\twartosc pradu \r\n');
for i=1:length(T)
fprintf(fid,'%.3f\t\t\t%.3f \r\n',UL(i),iRL(i));
end

fclose(fid);


disp('KONIEC wyprowadzania prądu i napięcia w obwodzie RL na cewce');
disp('Dalej? Enter'); pause; close;

return
ODPOWIEDZ