Gleichung lösen

Gast #274720
Guten Tag!

Ich habe eine Schaltung bzw einen Sensor entwickelt. Die Kennlinie des
Sensors ist leider nicht linear und deswegen möchte ich sie nun
linearisieren. Die Kennlinie habe ich nun aufgenommen und mit Hilfe von
Excel habe ich mir ein Polynom aproximieren lassen. Jetzt möchte ich
dieses Polynom mit einem µC lösen.
Zur Verfügung habe ich ein Entwicklungsboard von Atmel. Ich habe ein
Spannungssignal 0-5V (von meinem Sensor)welches ich A/D-Wandeln muß,
danach soll der µC diesen Wert in meine Polynomgleichung einsetzen und
anschließend den Ausgabewert wieder D/A-Wandeln und mir ein 0-5V Signal
liefern, welches dann linearisiert ist.
Da Ich so gut wie keine Ahnung von µC habe und auch nur berenzte
Kenntnisse in Sachen C programmierung währe ich für jede Hilfe Dankbar.
Desweiteren brauche ich eine Schnelle Lösung die auch was kosten darf.
Wie gesagt die eigentlich Aufgabe ist einen analogen Wert in ein
Polynom einzusetzen und wieder einen analogen Wert auszugeben.

Mit freundlichen Grüßen

André
Gast
Eine Knickkennlinie wäre vielleicht einfacher als eine
Polynomapproximation. Oder eine Tabelle anlegen, in der nur
nachgeschaut und evtl. linear interpoliert wird.
Gast
Danke für die schnellen Antworten.

Mein Problem liegt erst mal darin welchen µC sollte ich verwenden?
Brauche ich einen D/A-Wandler? Oder einen A/D-Wandler? Wenn ja welchen
Typ würdet ihr mir vorschlagen. Wie gesagt ich habe keine Ahnung von
der programmierung eines µC. Werde morgen oder übermorgen mein Board
und die ganze Software in Betrieb nehmen. Mein Polynom sieht
folgendermaßen aus: y = x + x² + x³ vor den x-en stehen noch komma
Zahlen. Meinen x-Wert bekomme ich Analog vom Sensor und möchte dann
meinen y-Wert auch wieder Analog ausgeben. Da ich wie gesagt wenig
Ahnung habe währe mir eine Antwort mit möglichst vielen Erklärungen und
Schritten was ich beachten sollte besondern lieb.

Gruß André
Gast
Ehe Du über die Realisierung nachdenkst, mußt Du erstmal die benötigte
Genauigkeit ermitteln.

Also welche minimale Schrittweite brauchst Du am Ausgang und welche am
Eingang.

Erst dann kann man loslegen.

Und bitte keine Mondzahlen, sonderen reale Anforderungen.


Peter
Gast
Wenn ich das richtig verstehe willst du bloss einen Wert einlesen, y
nach genannter Formel berechnen und Analog wieder ausgeben. Dazu
brauchst du einen uC mit AD-Wandler und einen DA-Wandler. Je nach dem
was du unter "schneller Lösung" verstehst (meinst du, dass das Gerät
schnell sein muss, oder willst du möglichst schnell zum Ziel kommen?)
gestalten sich die Ansprüche an den uC ein wenig unterschiedlich.
Desweiteren ist die Genauigkeit des Ausgabewertes und vor allem das,
was du mit dem Ausgabewert anfangen willst entscheidend. Wenn du z. B.
eine hohe Ausgangsleistung benötigst (wozu auch immer) brauchst du auch
noch einen Ausgangsverstärker, der dein Signal verstärkt.

Die Gleichung hast du ja zum Glück schon auf ein Polynom aufgelöst,
somit ist es überhaupt kein Problem die eigentliche Berechnung
anzustellen.

Grundsätzlich ist die Problemstellung nicht allzu komplex. Du kommst
wahrscheinlich schon mit einem ATMega8 zu deinem Ziel (der hat einen
10-Bit AD-Wandler). Mit 8MHz wirst du wohl auch schnell genug sein, das
kommt ein wenig auf die gewünschte Reaktionszeit draufan.
Gast
Rechenzeitmässig am schnellsten: Tabelle (von Excel berechnen lassen).
Zu jedem A/D-Wert den gewünschten Wert speichern. Ist allerdings auch
von der Programmspeichergrösse die schlechteste Lösung.
Gast
Wenn ich mal davon ausgehen kann, dass dein Sensor nicht genauer als
0,5% ist, dann reicht eine 8-bit AD-Wandlung locker aus. Die von Peter
genannte Map wuerde dann 256 Byte gross sein und das ganze koennte
locker von einem ATTiny12 abgefackelt werden.
Gast
AD-Wandler mit Parallelausgang, auf die Adresseingänge eines Eprom oder
Flash, Datenausgänge auf parallelen DA-Wandler, fertig, alles ohne
Mikrocontroller. Die Glitches noch etwas bedämpfen mit einem Tiefpass.
Gast
oder höher aufgelöst, mit fast demselben Aufwand: nur die Abweichung von
der Geradengleichung ins Eprom, und als Korrektur mit OP zur Gerade
addieren

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.