Potenzen rechnen

OP #688785
Hi,
ich messe über einen NTC am AD und bekomme einen Wert (0-1023)
Um daraus die Temperatur zu errechnen habe ich in Excel aus dem 
Datenblatt eine Grafik gemacht und mir die Gleichung rechnen lassen. Das 
klappt auch in Excel sehr gut.

Nur wie kann ich in dem µC mit so "Wilden" zaheln rechnen?
Das Ganze sieht in etwa so aus:

Polynomisch

y= 4,89*10^-19 *ADWERT^6 - 6,57*10^5 * ADWERT + 3,44*10^4 * ADWERT....

Ist das zu heftig für den µC? Ist ein mega169.
Ich dachte eigentlich das es eine recht einfache Lösung wäre aber wohl 
eher doch nicht.

Achja, wie rechnent man denn x^y, WinAVR mag das ^ Zeichen nicht.

mfg
Jabber
#688795
Jabber Wock wrote:
> Hi,

> Achja, wie rechnent man denn x^y, WinAVR mag das ^ Zeichen nicht.

Kein Wunder.
^ ist der XOR Operator. Und bei double wird das dann wohl eher
nicht gehen :-)

Was du suchst, ist die Funktion pow( a, b ), die in math.h
beheimatet ist.

> Das Ganze sieht in etwa so aus:
> Polynomisch
>
> y= 4,89*10^-19 *ADWERT^6 - 6,57*10^5 * ADWERT + 3,44*10^4 * ADWERT....
>
> Ist das zu heftig für den µC? Ist ein mega169.

Das ist allerdings schon etwas heftig.
Mach in Excel noch ein paar Versuche, welche Potenz du weglassen
kannst. 10^19 ist nun wirklich nicht viel. Wenn dieser Term also
wegfallen kann, und der Fehler für dich noch akzeptabel ist, dann
lass ihn weg.

Denk auch daran: Ausrechnen kann man viel. Allerdings, wenn dein
Sensor nicht genau genug für 1 Nachkommastelle ist, dann hat es auch
keinen Sinn, 1 Nachkommastelle auszurechnen.

Weiters würde ich dir noch die Horner Regel ans Herz legen:


  y = a * x^3 + b * x^2 + c * x

kann umgeformt werden zu

  y = ((( a * x ) + b ) * x + c ) * x

-> keine Potenzberechnung mehr. (das x wird einfach herausgehoben)
Gast #688804
Wie hast du denn den NTC angeschlossen? Wahrscheinlich kannst Du da mit 
etwas mehr Aufwand (im einfachsten Fall 1 Widerstand) eine 
Linearisierung hinbekommmen! Schau mal hier in die Artikelsammlung unter 
Temperaturmessung und daraus folgender Link: 
http://www.sprut.de/electronic/temeratur/temp.htm

Wenn du es aber mit einer potenz machen willst: die funtion lautet 
pow(zahl, potenz) und findet sich in "math" (sollte sie jedenfalls)
#688806
Jabber Wock wrote:
> Um daraus die Temperatur zu errechnen habe ich in Excel aus dem
> Datenblatt eine Grafik gemacht und mir die Gleichung rechnen lassen. Das
> klappt auch in Excel sehr gut.

Wie kann man sich aus einer Grafik eine Gleichung errechnen lassen?
War immer der Meinung, das Excel das umgekehrt macht....

Bitte klär mich mal einer auf...

nitraM
OP #688817
Danke für die schnellen Antworten...

Ich denke ich werde das doch mit einer tabelle mache. Das sah nur auf 
den ersten Blick nach viel mehr arbeit aus. Aber wird dann wohl doch um 
eniges schnelle sein. Auch wenn es weder auf die Zeit noch eine 
besondere genauigkeit an kommt. Danke auf jeden fall für die Hilfe.

@ Martin L

Einfach eine Grafik machen und dann auf die Linie Klicken und 
"Trendlinie hinzufügen" klicken. Dort hast du dann verschiedene 
Funktionen zu auswahl unter Optionen das Häkchen bei "Gleichung 
anzeigen" und  fertig.

mfg
Jabber
Gast #688864
Wievielten Grades die Potenz sein muss ? Das haengt von der Genauigkeit 
ab. Du kannst nun einen Plot pro Grad machen, der den absolutwert der 
differenz( Exponential-Poly(GradN)) ueber den Temperaturbereich rechnet 
und dann auswaehlen welche Potenz du willst. Ja, ein polynon 6. Grades 
ist durchaus machbar, vielleicht nicht mehr millionen mal pro sekunde 
aber moeglicherweise genuegend oft.
#688875
Jabber Wock wrote:
> Einfach eine Grafik machen und dann auf die Linie Klicken und
> "Trendlinie hinzufügen" klicken. Dort hast du dann verschiedene
> Funktionen zu auswahl unter Optionen das Häkchen bei "Gleichung
> anzeigen" und  fertig.


Danke, wieder etwas gelernt...

nitraM

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.