Anzeigen des Gesamtinhalts (oder Logo links anklicken) oder des Impressums.

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
analogrechner:vektorlaenge [2017-03-17 14:54]
rainer
analogrechner:vektorlaenge [2021-12-11 13:01] (aktuell)
rainer
Zeile 38: Zeile 38:
 Dies kann jedoch leicht zu Instabilitäten führen. Dies kann jedoch leicht zu Instabilitäten führen.
  
-Alternative Quadratsumme +Zudem werden drei multiplikative Elemente verwendet, die meist knapp sind.
---------------------+
  
-Wegen 
- `x^2+y^2 = (x+y)^2 - 2 x y 
  
-kann man die Quadratsumme auch mit einem zusätzlichen Addierer, +Inverse Methode 
-einem Quadrierer und einem Multiplizierer ​bilden +--------------- 
-und hat dabei größere Zwischenwerte,​ + 
-da manmit `x=y=0.1`, ​die Subtraktion ​`0.04 - 0.02+Verwendet wird die dritte Binomische Formel: 
-anstelle der Addition ​`0.01+0.01verwendet+ `v^2 - x^2 = (v+x)*(v-x) = y^2 
-Dieser Vorteil ist aber für einen weiteren Addierer + 
-nicht ausreichend groß.+und `v` durch einen einzigen offenen Verstärker bestimmt. 
 + 
 +Hierbei wird, zusätzlich zu zwei Addierern und einem offenen Vestärker, lediglich ein Quadrierer und ein Multiplizierer ​benötigt: 
 + 
 +[svg:​analogrechner/​Vektorlaenge2M.svg:​,
 + 
 +Als Beispiel sei `x=y=0.1`, ​ 
 +dann sind `y^2 = 0.01, v=0.141, v+x=0.241, v-x = 0.041, (v+x)*(v-x)=0.0099 ​`. 
 + 
 +Der offene Verstärker muss zwei Werte mit 1% vom Rechenbereich vergleichen (also 100mV bei 10V). 
 + 
 +Für `y=0` oder `x=0` sind keine Stabilitätsprobleme ersichtlich
 + 
 +Es werden nur zwei multiplikative Elemente verwendet; zwar wird gegenüber den folgenden Lösungen mit Division zusätzlich ein offener Verstärker benötigt; dafür entfallen die Instabilitäten bei der Division mit Null. 
  
  
Zeile 95: Zeile 106:
  
 Wird anstelle der integrierten Schaltung eine Schaltung aus vorhandenen Elementen verwendet, so ergibt sich die Schaltung zu: Wird anstelle der integrierten Schaltung eine Schaltung aus vorhandenen Elementen verwendet, so ergibt sich die Schaltung zu:
 +   `v=x + y^2 / (v+x)
 +
  
 [svg:​analogrechner/​VektorlaengeQ.svg:,​] [svg:​analogrechner/​VektorlaengeQ.svg:,​]
Zeile 100: Zeile 113:
 Wegen `v ge |x|` ist auch für `x<0` die Summe `v+x ge 0`, so dass hier Wegen `v ge |x|` ist auch für `x<0` die Summe `v+x ge 0`, so dass hier
 der Divisor nicht negativ ist. der Divisor nicht negativ ist.
 +Auch hier kann allerdings `v+x > 1 ` werden, so dass -- nicht gezeigt -- skaliert werden muss.
  
 Die in der vorigen und dem folgenden Schema gezeigten Addierer sind Die in der vorigen und dem folgenden Schema gezeigten Addierer sind
 **nicht** invertierend,​ weil bei der praktischen Umsetzung ohnehin **nicht** invertierend,​ weil bei der praktischen Umsetzung ohnehin
-Änderungen notwendig sind, da einige Dividierer ​beispielsweise ​invertierte+Änderungen notwendig sind, da einige Dividierer invertierte
 Ergebnisse liefern, u.s.w. Ergebnisse liefern, u.s.w.
  
Zeile 111: Zeile 125:
 Eine bessere Aussteuerung wird erreicht, wenn  anstelle des Quadrierers Eine bessere Aussteuerung wird erreicht, wenn  anstelle des Quadrierers
 ein Multplizierer verwendet wird und die Faktoren vertauscht werden: ein Multplizierer verwendet wird und die Faktoren vertauscht werden:
 +
 +   `v=x + y * (y / (v+x))
 +
  
 [svg:​analogrechner/​Vektorlaenge.svg:,​] [svg:​analogrechner/​Vektorlaenge.svg:,​]
Zeile 121: Zeile 138:
 gebildet wird. gebildet wird.
  
-Inverse Methode 
---------------- 
  
-Man kann auch die zweite Binomische Formel verwenden 
-und durch einen einzigen offenen Verstärker `v` bestimmen: 
- `y^2 = v^2 - x^2 = (v+x)*(v-x) 
  
-Hierbei wird ein Quadrierer und ein Multiplizierer benötigt:+Alternative Quadratsumme 
 +--------------------
  
-[svg:analogrechner/Vektorlaenge2M.svg:,]+Wegen 
 + `x^2+y^2 = (x+y)^2 - 2 x y 
 + 
 +kann man die Quadratsumme auch mit einem zusätzlichen Addierer, 
 +einem Quadrierer und einem Multiplizierer bilden 
 +und hat dabei größere Zwischenwerte,​ 
 +da man, mit `x=y=0.1`, die Subtraktion `0.04 - 0.02` 
 +anstelle der Addition `0.01+0.01` verwendet. 
 +Dieser Vorteil ist aber für einen weiteren Addierer 
 +nicht ausreichend groß. 
 + 
 +Polynom-Approximation 
 +-------------------- 
 + 
 +Wegen 
 + `sqrt(x^2+y^2) >= max(x,y) 
 + 
 +kann man auch durch einen linearen Ausdruck approxmieren:​ 
 +      `sqrt(x^2 + y^2) ~~ alpha x + beta y 
 +       
 +Hierbei ist für `x > y` der Koeffizient `alpha` ungefähr 1;  
 +dies wird als "Alpha max plus beta min" Verfahren bezeichnet (siehe ​[https://en.wikipedia.org/​wiki/​Alpha_max_plus_beta_min_algorithm für Werte von `alpha` und `beta`). 
 + 
 +Damit für `y=0` der Funktionswert nicht kleiner als `x` wird, ist `alpha = 1` vorzuziehen. 
 + 
 +Dies entspricht einer Approximation 
 +      `sqrt(1+x^2) ~~ 1 + 0.38 x if |x| <= 1 
 + 
 +wobei der Wert 0.38 durch Probieren ermittelt wurde. Mit dem Faktor `sqrt(2)-1 ~~ 0.414` wird der Fehler am Bereichsende minimiert.  
 + 
 +Besser ist freilich eine Taylorreihe (für `x<=1`) mit 
 + 
 +    `sqrt(1+x^2) ~~ 1 + 0.41*x^2 if |x| <= 1 
 +     
 +benötigt aber einen Quadrierer (anstelle von dreien). ​     
 +     
 +Mit einem zusätzlichen Multiplizierer ist der Fehler unter 1%:
  
-Als Beispiel sei `x=y=0.1`, dann ist `v=0.14, v+x=0.24, v-x = 0.04`.+     `sqrt(1+x^2) ~~ 1 + (0.47 - 0.06x)*x^2 if |x| <
 +      
 +Die Koeffizienten sind wieder empirisch ermittelt; gegebenenfalls können optimale Koeffizienten über eine 
 +[https://​rclab.de/​analogrechner/​tschebyscheffapproximation Tschebyscheff-Approximation] bestimmt werden.
  
-\ASCIIMATHML ./ASCIIMathML.js+\ASCIIMATHML ​https://​cdnjs.cloudflare.com/​ajax/​libs/​mathjax/​2.7.4/latest.js?​config=AM_CHTML
  
  
  
 </​nimla>​ </​nimla>​

Anmelden