Forum: Analoge Elektronik und Schaltungstechnik Bodediagramm für 2Pol aktiv Hoch und Tiefpass


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christof Rieger (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ihr Lieben,
ich wollte aus der Übertragungsfunktion ein Bodediagramm erstellen.
H(s)= A + Bs + Cs^2 / D + Es + Fs^2
Die aufgelöste Formel steht in der function CalcH.
Das sieht auch alles klasse aus nur ist mein Graph um den Faktor 5 
gestaucht und ich verstehe nicht warum.
Ich hab da jetzt erstmal in meiner Skalierfunktion geschummelt.
Da wohl keine sich in den Code reinlesen möchte, bitte nur mal schauen,
ob ich mich bei der Umsetzung der Übertragungsfunktion vertan habe 
(function CalcH) Om1 ist klein Omega und ABCDEF sind wie Oben.

1
      function mkH(Type,GGain,XSize,XOffset,YGOffset,XStep,YGStep,XUr,YGUr,XFakt,YGFakt,GPhase,YPOffset,YPStep,YPUr,YPFakt){
2
        var posx;
3
        var Gpoints = '';
4
        var Ppoints = '';
5
        var Log10 = YGStep/YGFakt/Math.log(10);      
6
        for(posx=0;posx<(XSize+1);posx++){
7
          var Om = 2*Math.PI*Math.pow(10,((posx-XOffset)*XFakt/XStep)+XUr);
8
          Calc(Type,Om);
9
          var yG = Math.log(QBetrag)*Log10*5;<--HIER HABE ICH GESCHUMMELT
10
          Gpoints += posx.toString()+','+(YGOffset+(YGUr*YGStep) - yG).toString()+' ';
11
          var yP = Phase*YPStep/YPFakt;
12
          Ppoints += posx.toString()+','+(YPOffset+(YPUr*YPStep) - yP).toString()+' ';
13
        }
14
        document.getElementById(GGain).setAttribute('points', Gpoints);
15
        document.getElementById(GPhase).setAttribute('points', Ppoints);
16
      }
17
      function Calc(Type,Om){
18
        var Z1=document.getElementById('Z1').value/1000;
19
        var Z2=document.getElementById('Z2').value/1000;
20
        var Z3=document.getElementById('Z3').value/1000;
21
        var Z4=document.getElementById('Z4').value/1000;
22
        //document.getElementById('Debug').innerHTML+=Z1+'|';
23
        if (Type=='LP')CalcH(1,0,0,1,Z4*(Z1+Z2),Z1*Z2*Z3*Z4,Om);//Tiefpass
24
        if (Type=='HP')CalcH(0,0,Z1*Z2*Z3*Z4,1,Z1*(Z3+Z4),Z1*Z2*Z3*Z4,Om);//Tiefpass
25
      }
26
      function CalcH(A,B,C,D,E,F,Om1){
27
        var Om2=Om1*Om1;
28
        var Om3=Om2*Om1;
29
        var Om4=Om2*Om2;
30
        var Nenner = D*D + Om2*(E*E-2*D*F) + Om4*F*F;
31
        var ZRe = A*D + Om2*(B*E-A*F-C*D) + Om4*C*F;
32
        var ZIm = Om1*(B*D-A*E) + Om3*(C*E-B*F);
33
        var Re = ZRe/Nenner;
34
        var Im = ZIm/Nenner;
35
        QBetrag = Re*Re + Im*Im;
36
        //document.getElementById('Debug').innerHTML+=temp+'|';
37
        Phase = (Math.acos(Re/Math.sqrt(QBetrag))*180/Math.PI);
38
        if (Im<0)Phase *= -1;
39
      }

Vielen Dank
Christof

von Christof Rieger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke Leute,
ich bin doof. Ich liege sogar um den Faktor 10 daneben. Die dB sind ja 
zum 10 Logarithmus mit dem Faktor 10 skaliert. log(2) ist ja 0,3 und 
nicht 3.

Sorry

von Christof Rieger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
da ich hier gegagert habe möchte ich euch noch mitteilen, das die erste 
Version des Tools fertig ist.
Es kann über http://r-tron.via-hub.de/bode.htm aufgerufen werden.

LG Christof

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.