Grundwelle mit Mablab berechnen

#4834589
Lesenswert?

Hallo an Alle

Ich habe ein Problem um bitte deswegen um eure Hilfe.

Ich habe mir mit Ansys-Maxwell die Luftspaltflussdichte eines 
Synchronmotors plotten lassen und will mit Matlab die Grundwelle 
berechnen und zusammen mit dem originalen Signal plotten lassen. Dafür 
habe ich den folgende Code geschrieben:


fs=1000;
T=1/fs;
m = length(B);
d = (0:m-1)*T*2;

n = 2^nextpow2(m);
y = (fft(B,n))/m;
f = (0:n-1)*(fs/n);
   figure(1)

plot(f,abs(y))
xlabel('Frequency (Hz)')
ylabel('Power')
title('{\bf Amplitude_U1}')
y0 = fftshift(y);
f0 = (-n/2:n/2-1)*(fs/n);

power0 = y0.*conj(y0)/m;
figure (2)
plot(f0,abs(y0))
xlabel('Frequency (Hz)')
ylabel('Power')
title('{\bf Amplitude_U1_zentriert}')
phase = unwrap(angle(y0));
figure(3)

plot(f0,phase*180/pi)
xlabel('Frequency (Hz)')
ylabel('Phase_U1 (Degrees)')
grid on

for e=1:1:length(B)
    ulgs(e) =B(e)*exp(-i*(2*pi*(e/length(B))));

end;

    Betrag=2*abs(ulgs(1));
    phi=2*angle(ulgs(1));


gs =Betrag.*cos(2*pi*33*d+phi);
figure (4)
plot(d,B)
hold on
plot(d,gs,'r')

Leider entsprechen die aufgrung des oben stehenden Codes nicht was ich 
als Ergebnis erwarte (Als Anhang die entsprechend Ergebnisse 
(Spectrum,Phase und Grundwelle)).


Ich würde mich freuen, wenn ihr mir weiter helfen könnte

PS: Ich habe zuvor nie mit Matlab programmiert.

mfg
#4834613
Lesenswert?

Jens M. schrieb:
> Leider entsprechen die aufgrung des oben stehenden Codes nicht was ich
> als Ergebnis erwarte (Als Anhang die entsprechend Ergebnisse
> (Spectrum,Phase und Grundwelle)).

Jo.

Sinnvoller:

Sinus-Ansatz mit drei Parametern (Frequenz, Amplitude, Phasenlage) und 
dann eine Fehlerquadratmethode auf sämtliche Funktionswerte ansetzen.

Kein FFT nötig. Nur ein nichtlineares Gleichungssystem.
Gast #4837808
Lesenswert?

Hallo Detlef

wenn ich die Daten, die ich dir geschickt habe, in Matlab importieren 
und plotte, dann bekomme ich ein Sinusformiger Verlauf der 
Luptspaltflussdichte (Sehe Bild Flussdichte).

Die erste Spalte ist der Luftspaltumfang (die ich immer als d unbenne) 
und die zweite ist die Flussdichte (die ich immer als B unbenne)und dann 
den Befehl plot(d,B)angebe. Als Ergebnis bekomme ich das Bild, das ich 
als Flussdichte in Anhang getauft habe.

Könntest du vielleicht hier dein Code hochladen?, dann würde ich damit 
versuchen, die Grundwelle rauszuziehen.

Ich bedanke mich für dein Hilfe und wünsche dir frohe Weihnahten

mfg Jens
Angehängte Dateien:
Gast #4850329
Lesenswert?

Hi und frohes neues Jahr Detlef

ja, das ist die Grundwelle.

Ich werde mir dein Matlab-skript kopieren und selber probieren und dir 
bescheid geben.

Ich bedanke mich für deine Hilfe und entschuldige mich für die spaätere 
Antwort, bin erst heute wieder zurück zu Uni.

mfg
Jens

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren