|
|
Knick in Graphik mit logarithmischen Achsen |
|
randymarsh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.03.2011, 10:45
Titel: Knick in Graphik mit logarithmischen Achsen
|
 |
|
 |
|
Hallo zusammen,
Ich habe folgendes Problem und hoffe mir kann hier jemand helfen:
Ich möchte den Frequenzgang des Betrags der Stromstärke durch eine Parallelschaltung aus einem Wiederstand und einem Kondensator grafisch darstellen. Das ganze bei einer Spannung von 160V. Ich schreibe also erstmal eine Funktion für den Imaginärteil des Stromes, da der Realteil mit i =U/R ja frequenzunabhängig ist. Also ein m-file mit folgendem Text:
function i = I(f)
C = 1e-9
i = 160*C*2*pi*f
end
wenn ich dann im Editor auf Run drücke kommt im Command window bereits die erste Fehlermeldung:
??? Input argument "f" is undefined.
Error in ==> I at 3
i = 160*C*2*pi*f
Warum? Es sollte doch der Sinn einer Funktion sein, dass die Variable undefiniert ist. Und warum dieser Fehler bei I at 3?
Jedenfalls habe ich dann für den Betrag des Stromes ein weiteres m-file mit folgendem Text erstellt:
function b = B(f)
R = 1e9
b = sqrt((160/R)^2 + (K(f))^2)
end
auf Run gedrückt und gleiche Fehlermeldung wie oben.
Grafiken lassen sich dennoch erstellen.
Ich gebe also im Command window folgenden Befehl ein:
fplot ('B(f)',[100e-6,1000])
um also den Wert im Frequenzbereich zwischen 100mikroHz und 1000 Hz darzustellen. Ich bekomme dann auch eine Grafik. Zunächst mit linearen Achsen, welche ich dann bei Axes Properties auf logarithmische Achsen umstelle. Mein Problem ist nun, dass der Graph bei exakt 2 Hz einen Knick macht, den er bei einer solchen Funktion eigentlich nicht machen dürfte. Er verändert also seine Steigung sprungförmig.
Woran könnte das liegen und wie kann ich den Fehler beheben
Vielen Dank für Antworten.
|
|
|
|
|
randymarsh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.03.2011, 10:53
Titel:
|
 |
Pardon ich meinte bei der zweiten Funktion natürlich I(f) anstatt K(f)
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 31.03.2011, 13:57
Titel: Re: Knick in Graphik mit logarithmischen Achsen
|
 |
Hallo randymarsh,
"Error in ==> I at 3" bedeutet, dass der Fehler in Zeile 3 der Funktion "I" auftritt. Die Variable "f" muss aber definiert sein, wenn
"160*C*2*pi*f" einen Wert liefern soll.
[quote]auf Run gedrückt und gleiche Fehlermeldung wie oben.
Grafiken lassen sich dennoch erstellen.[/code]
Die Berechnung der Werte klappt nicht, aber Grafiken lassen sich trotzdem erstellen?! Das ist mystisch. Solange die Berechnung nicht klappt, hast Du aber keine Ahnung, was Du eigentlich zeichnest, oder? Dann hilft es wenig, dabei einen Fehler zu suchen. Also erst die obigen Fehler bereinigen und danach weiter probieren.
Gruß, Jan
|
|
|
randymarsh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.03.2011, 16:45
Titel:
|
 |
Hallo Jan.
Erstmal danke für deine Antwort
"Die Variable "f" muss aber definiert sein, wenn
"160*C*2*pi*f" einen Wert liefern soll. "
Wieso? Ich möchte ja die Funktion in Abhängigkeit dieser Variablen aufzeichnen. Wenn ich sie definiere habe ich ja nur einen Wert und keine Kurve. Die obere und untere Grenze von f lege ich ja mit dem fplot Befehl fest. Oder versteh ich da irgendwas falsch?
Wenn ich übrigens versuche mir einen diskretes f in den Funktionen zu definieren kommt bei der Funktion
b = sqrt((160/R)^2 + (K(f))^2)
die Fehlermeldung
??? Error using ==> mpower
Inputs must be a scalar and a square matrix.
Wie habe ich das zu verstehen?
Habe diese Meldung schon mal gegoogelt aber keine nützliche Antwort gefunden.
Weiterhin vielen Dank für Antworten!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 01.04.2011, 16:20
Titel:
|
 |
|
 |
|
Hallo randymarsh,
Zitat: |
Zitat: |
Die Variable "f" muss aber definiert sein, wenn
"160*C*2*pi*f" einen Wert liefern soll. |
Wieso? Ich möchte ja die Funktion in Abhängigkeit dieser Variablen aufzeichnen. |
Wenn Du im Editor auf den Run-Button drückst, wird "f" nicht definiert. Matlab kann also beim besten Willen nicht wissen, welchen Wert es dafür einsetzen soll.
Es reicht auch nicht eine obere und untere Grenze festzulegen. Ein Funktionsaufruf benötigt eine numerische Eingabe. Um das zu ergründen, gib doch mal im CommandWindow ein:
Das kann Matlab nicht berechnen!
Zitat: |
b = sqrt((160/R)^2 + (K(f))^2)
die Fehlermeldung
??? Error using ==> mpower
Inputs must be a scalar and a square matrix. |
Statt zu googeln kannst Du einfach die Fehlermeldung lesen. Die sagt nämlich ziemlich genau, wo das Problem liegt: "mpower" ist die Function die intern für den "^"-Operator aufgerufen wird, wenn die Inputs Arrays sind. Und "help mpower" erklärt, dass das Multiplizieren natürlich nur möglich ist, wenn das Array eine quadratische Matrix ist.
Du brauchst also nicht "K(f)^2", was gleichbedeutende mit "K(f) * K(f)" ist, sondern "K(f).^2", also die Quadrierung jedes einzelnen Elementes.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|