Hallo, ich soll das Bode-Diagramm eines Tiefpasses darstellen. Hab mich mal in Scilab versucht und weiß auch, wie die Diagramme aussehen sollen. So sieht das bei mir aber leider nicht aus. Das hab ich bis jetzt geschrieben: clear clf() xdel R = 470; C = 3,3E-7; freq = logspace (0,6,60); Amplitude = 1/sqrt(1+(2*%pi*freq*R*C)^2); Amplitude_dB = 10 *log10(abs(Amplitude)); Phase = (-atan(2*%pi*freq *R*C)); subplot(2,1,1); plot2d(freq,Amplitude_dB, logflag ="ln", style =5) xgrid(3) xtitle("Das Bodediagramm eines Tiefpasses 1.Ordnung", "Frequenz in Hz", "Amplitude in dB") subplot(2,1,2) plot2d(freq, Phase, logflag ="ln", style =5) xgrid(3) ylabel("Phase in Grad"); Dargestellt werden soll der Bereich von 1 Hz bis 1 MHz. Sieht vielleicht jemand auf den ersten Blick, was da genau der Fehler ist? Wenn es geht soll alles so einfach wie möglich bleiben, da ich absoluter Scilab-Neuling bin. Noch was. Wie kann ich die Skalierung des ersten Plots der y-Achse ändern? Die ist viel zu hoch gegriffen. Freue mich über jede hilfreiche Antwort!
http://www.mikrocontroller.net/articles/Digitalfilter_mit_ATmega#Literatur In "Signal.pdf" steht vielleicht auch dazu ein Beispiel. Es gibt leider wenig Literatur zu Scilab-DSP
Hallo, spontan finde ich 2 Fehler: 1. Scilab verwendet standarmäßig den Punkt als Dezimalzeichen. Das heißt C=3,3E-7 sind 3Farad und nicht 330nF. Dadurch ist deine Grenzfrequenz sehr, sehr niedrig. 2. Scilab arbeitet immer mit Vektoren. Wenn man ein Elementweise Multiplikation oder Division durchführen will muss mein ein . vor den Operator setzen. Das gilt auch für Amplitude = 1/sqrt(1+(2*%pi*freq*R*C)^2); Damit Scilab das ausrechnet was du meinst, müsste es heißen: Amplitude = 1 ./sqrt(1+(2*%pi*freq*R*C)^2); Dabei das Leerzeichen nach der 1 beachten, da Scilab ein 1. als 1.0 interpretiert und damit dein Fehler erhalten bleiben würde wenn man es wegließe. Daher würde ich an der Stelle in der Regel das so schreiben: Amplitude = (sqrt(1+(2*%pi*freq*R*C)^2)).^(-1); Der Variablenname freq ist ungünstig, da es in Scilab eine Funktion gleichen Namens bereits gibt. Grüße, Björn
Hallo Björn, wow, mit einmal sieht der ganze Plot so richtig aus! Mein einziges Problem ist noch, dass die Skalierung bei der Phase nicht hinkommt. Die y-Achste geht dabei von 0 bis -1,6, obwohl 0 - 90° passender wäre. Kann ich das ändern oder warum geschieht das automatisch?
Deine Phase ist im Bogenmaß. Grad gibt es durch multiplizieren mit 180/%pi Hier auf Seite 10 ein Beispiel unter Verwendung der Funktion bode(). Da ist die Anzeige in Grad. http://www.fh-kl.de/~kubitzki/scilab/scilab_sysdyn.pdf // Name: sysbode1.sce // WK, 20.06.2004 // for SciLab-Tutorial // Data P-T2, second order lag T=0.5; //T in s d=0.6; // Damping Kp=1.5; // Transferfunction p=poly(0,'p'); Fs1=syslin('c',(Kp/(T^2*p^2+2*d*T*p+1))); // frequency range from 0,01Hz to 100Hz fmin=0.01; fmax=100; title='Bodeplot of a second order system'; bode(Fs1,fmin,fmax,title);
Ich hätt mal noch mal ne kurze Frage an Björn. Brauche das ganze Ding natürlich auch noch für einen Hochpass und irgendwie klappt das mit Formeländerung, glaub ich mal, nicht so richtig. Formel hab ich mit angehängt. Geschrieben hab ich das in Scilab folgendermaßen Amplitude = 1 ./1 +(1 ./2*%pi*frequ*R*C)^2; Sieht aber verkehrt aus laut Plot.
Tatjana J. schrieb: > Amplitude = 1 ./1 +(1 ./2*%pi*frequ*R*C)^2; Da fehlt die Wurzel? Übrigends, wenn das Schaltungen sind, deren Übertagungsfunktion du wissen willst, warum simulierst du nicht direkt die Schaltung z.B. mit LT-Spice? Dann sparst du dir das Formelaufstellen und hast direkt das Bodediagramm mit einer Frequenzanalyse.
> Da fehlt die Wurzel?
Nicht nur die, sondern auch die Klammern.
1/1+... So nicht! Also da würde ich sagen hundert mal schreiben
1/(1+...) :-)
Eigentlich muss es heißen: 1/sqrt(...)
frequ*frequ geht da nicht, wenn das ein Vektor ist.
frequ.*frequ
Ich hatte so viele Varianten versucht, dass ich versehentlich die ohne Wurzel reinkopiert habe. Also das ist mein aktueller Stand Amplitude = 1 ./sqrt(1 +(1 ./2*%pi*frequ*R*C)^2); Da ist die Wurzel und Klammer. Noch was verkehrt? @Floh: Ja, sind Schaltungen. LTSpice habe ich auch schon in Erwägung gezogen aber das hab ich nich mal auf dem Rechner und demzufolge auch noch kein einziges Mal mit gearbeitet...
Hab die Klammern verkehrt gesetzt. Jetzt funktioniert es. Vielen Dank erstmal!
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.