Grundwelle mit Mablab berechnen

OP #4834589
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.