universelle Funktion mit 3 Variablen

28/11/2008 - 09:51 von Michael Koch | Report spam
Hallo Leute,

ich weiss dass die folgende Frage hier nicht ganz on-Topic ist, aber ich
gehe davon aus dass es hier einige helle Köpfe gibt die etwas Sinnvolles
dazu sagen können.

In einer Mikrocontroller-Schaltung kommt eine Berechnung vor, wo eine
Grösse y in Abhàngigkeit von drei Grössen a, b und c berechnet werden
soll. Also y = f(a,b,c)

Das Problem ist, dass ich jetzt noch nicht weiss wie diese Funktion
aussieht. Erst spàter, wenn sich die Schaltung bereits beim Kunden
befindet, wird die Funktion bekannt sein. Das Programm muss aber jetzt
geschriebnen werden und soll spàter nicht mehr veràndert werden.

Ich sehe im Moment zwei Lösungsansàtze:

1. In das Programm muss ein kompletter Formel-Interpreter mit rein, die
Funktion wird spàter im NV-Ram abgelegt und dann abgearbeitet. Relativ
hoher Programmieraufwand.

2. Die Funktion wird so dargestellt, dass sie durch eine Reihe von
Konstanten an alle denkbaren Fàlle angepasst werden kann. Die Konstanten
können im NV-Ram abgelegt werden. Zum Beispiel:

h1 = c1 * a^c2 + c3 * a^c4 + c^5 * a^c6 + c7
h2 = c8 * b^c9 + c10 * b^c11 + c^12 * b^c13 + c14
h3 = c15 * c^c16 + c17 * c^c18 + c^19 * c^c20 + c21

h4 = c22 * h1 + c23 * h2 + c24 * h3 +
c25 * h1 * h2 + c26 * h1 * h3 + c27 * h2 * h3 +
c28 * h1 * h2 * h3

y = c29 * h4^c30 + c31 * h4^c32 + c^33 * h4^c34 + c35

Dabei sind c1...c35 die Konstanten, und h1...h4 sind Hilfgrössen.

Mit den ersten 3 Formeln werden die Eingangsgrössen linearisiert, die
vierte Formel beschreibt wie stark welche Eingangsgrössen in das
Ergebnis eingehen, und die letzte Formel ist nochmal eine universelle
Reihenentwicklung.

Die Frage ist nun, wie man so eine universelle Funktion am besten
gestaltet. Einerseits sollte sie alle denkbaren Funktionen möglichst gut
nachbilden können, andererseits sollte die Anzahl der Konstanten und die
Anzahl der Fliesskomma-Operationen nicht zu gross werden. Das oben
gezeigte Beispiel ist in dieser Hinsicht sicherlich noch weit vom
Optimum entfernt.

Wie die Funktion spàter aussehen wird, ist noch nicht bekannt. Zum
jetzigen Zeitpunkt kann ich aber schon einiges ausschliessen: Es werden
keine periodischen Funktionen (sin, cos) benötigt, und nichtstetige
Funktionen (sgn) oder Fallunterscheidungen wird es ebenfalls nicht geben.

Nun meine Frage: Ich bin doch bestimmt nicht der Erste, der vor dem
Problem steht so eine universelle Funktion zu entwerfen. Gibt es dazu
schon irgendwelche Beispiele?

Gruss
Michael
 

Lesen sie die antworten

#1 Lutz Schulze
28/11/2008 - 10:17 | Warnen spam
Am Fri, 28 Nov 2008 09:51:43 +0100 schrieb Michael Koch:

Hallo Leute,

ich weiss dass die folgende Frage hier nicht ganz on-Topic ist, aber ich
gehe davon aus dass es hier einige helle Köpfe gibt die etwas Sinnvolles
dazu sagen können.

In einer Mikrocontroller-Schaltung kommt eine Berechnung vor, wo eine
Grösse y in Abhàngigkeit von drei Grössen a, b und c berechnet werden
soll. Also y = f(a,b,c)

Das Problem ist, dass ich jetzt noch nicht weiss wie diese Funktion
aussieht. Erst spàter, wenn sich die Schaltung bereits beim Kunden
befindet, wird die Funktion bekannt sein. Das Programm muss aber jetzt
geschriebnen werden und soll spàter nicht mehr veràndert werden.



Kann man nicht Teile spàter veràndern, indem man diese im NV-RAM hinterlegt
und vor der Abarbeitung z.B. in den RAM kopiert?

Das ist natürlich von der Architektur des Controllers abhàngig.

Ich sehe im Moment zwei Lösungsansàtze:

1. In das Programm muss ein kompletter Formel-Interpreter mit rein, die
Funktion wird spàter im NV-Ram abgelegt und dann abgearbeitet. Relativ
hoher Programmieraufwand.



Ich habe einen sehr guten Formelparser als DLL für eigene Projekte erworben;

http://www.messpc.de/messpc_formeleditor.php

Allzu gross ist der auch nicht (18kB), das liesse sich bestimmt auch mit
einem geeigneten MC implementieren. Allerdings wird der auch wieder auf
Bibliotheken aufsetzen, die leicht den Rahmen sprengen könnten.

Lutz

Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im
Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin
auch für Nagios - Nachricht per e-mail,SMS und SNMP: http://www.messpc.de
Neu: Ethernetbox jetzt auch im 19 Zoll Gehàuse mit 12 Ports für Sensoren

Ähnliche fragen