Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

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



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Inne języki
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
strachu01



Dołączył: 21 Sty 2016
Posty: 1

PostWysłany: Czw Sty 21, 2016 12:56 am  OP    Temat postu: [Matlab] Program nie rysuje poprawnych wykresów dla pewnych wartośći Odpowiedz z cytatem Pisownia

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?

Kod:
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
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Inne języki Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.16501 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |