Hallo zusammen, ich habe folgendes Problem. Ich habe eine Übertraungsfunktion in Matlab und ich habe eine Übertragungsfunktion gemessen. Die gemessene ÜF lese ich mit csv-read ein und kann diese ganz normal mit dem befehl plot anzeigen. Die berechnete ÜF aus Matlab zeige ich mit "bodeplot" an. Es gibt meiner Meinung nach 2 Möglichkeiten: 1. Ich schreibe die berechnete ÜF in um: G(s)->G(i*omega) und plotte den Absolutwert. Allerdings weiß ich nicht wie das geht. 2. Ich plotte die Messwerte in das Bodeplot. Auch hier weiß ich nicht wie das geht.. Hat vielleicht jemand einen Tipp für mich? Danke und viele Grüße Matthias
Schon mal das kleine Fragezeichen oben in Matlab angeklickt? Gurgel: Plot Bodediagramm oder Plot Messdaten Bodediagramm ?
ich schrieb: > Schon mal das kleine Fragezeichen oben in Matlab angeklickt? > Gurgel: Plot Bodediagramm oder Plot Messdaten Bodediagramm ? Wie ich die Messwerte mit semilogx Platte weiß ich Ja, aber wie bekomme ich beide in ein Diagramm?
ich schrieb: > Schon mal das kleine Fragezeichen oben in Matlab angeklickt? > Gurgel: Plot Bodediagramm oder Plot Messdaten Bodediagramm ? Mein Gott, absolut unnötig. Du hast denn Sinn eines Forums wohl nicht verstanden. Streno schrieb: > Wie ich die Messwerte mit semilogx Platte weiß ich Ja, aber wie bekomme > ich beide in ein Diagramm? Probiere mal den Befehl:
1 | figure(1); |
2 | [DATEN_1] |
3 | hold on; |
4 | [DATEN_2] |
Vllt würde es aber auch mehr Sinn machen, Deinen Code hier zu posten. Des Weiteren sollte Dir dies helfen: http://daten.schule.at/dl/Uebertragungsfunktionen_unter_MATLAB.pdf Gruß Daniel
:
Bearbeitet durch User
Ich habe es bisher erfolglos so probiert:
1 | figure(1) |
2 | bodeplot(G1,'r',opts) |
3 | grid |
4 | hold on |
5 | subplot(2,1,1) |
6 | semilogx(data1(:,1),data1(:,2)) |
7 | subplot(2,1,2) |
8 | semilogx(data1(:,1),data1(:,3)) |
9 | hold off |
Es wird immer nur das bodediagramm angezeigt nicht meine Daten. Auch mit "plot" anstatt "semilogx" war ich erfolglos
:
Bearbeitet durch User
1 | [mag,phase,wout]=bode(Gs); |
2 | w_Gs=wout/2/pi; |
3 | mag_Gs=20*log10(mag); |
4 | plot(w_Gs,mag_Gs(1,:) |
donvido schrieb: > w_Gs=wout/2/pi; Sehr gefährlich, der hack. Die Division ist nicht assoziativ. (8/4)/2 != 8/(4/2). Cheers Detlef
Du kannst auch den umgekehrten Weg gehen und aus deinen Messdaten ein Matlab LTI-Modell machen:
1 | ltisys = frd(frequencies,complex_response,'FrequencyUnit','Hz'); % convert to MATLAB model |
2 | bode(ltisys, G1); % make Bode plot |
Das hat den Vorteil dass du mit dem Modell dann in Matlab weiterechnen kannst, d.h. es mit Transferfunktionen multiplizieren oder durch sie dividieren um zB Komponenten heraus oder dazu zu rechnen. Außerdem kannst du dann zB das pidtool benutzen um PID-Regler auszulegen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.