Ich habe ein analoges System das mir für einen gewissen Wertebereich meines Eingangssignales x, am Ausgang näherungsweise f(x) = a*x^2 + b*x + c liefert. Die Koeffizienten a,b und c habe ich bereits ermittelt und die Näherung funktioniert tadellos. Jetzt möchte ich den Ausgang aber linearisieren, oder auch beliebig ändern. Wenn ich sage mein momentaner Ausgang ist U1 = f(a1,b1,c1,x) und ich berechne mir Koeffizienten a2, b2 und c2 damit ich folgenden Ausgang U erzeuge: U = U1 - (U1 - U2)/2 dann funktioniert dass auch tadellos. Allerdings nur in der Matlab Simulation. Im echten Leben müsste ich das Eingangssignal x so bearbeiten, dass ich am Ausgang eben diese Funktion U = U1 - (U1 - U2)/2 erzeuge. Den Ausgang selbst kann ich ja nicht beeinflussen. Ich stehe dabei gerade voll auf der Leitung. Wie mache ich denn das? Kann ich das überhaupt im Zeitbereich machen oder muss ich alles in den Frequenzbereich transformieren? Beste Grüße, Michael
Michael schrieb: > Ich stehe dabei gerade voll auf der Leitung. Wie mache ich denn das? Am einfachsten mit einer Tabelle, die man mit einem µC ausliest.
Ich weiß einfach nicht genau was ich rechnerisch mit dem Eingangssignal x machen muss?
Du willst ja linearisieren, d.h. du musst das Signal bevor es die Kennlinie f(x) erfährt mit einer Kennlinie f⁻¹(x) beaufschlagen. Die Kennlinie erhältst du durch Spiegeln an der Geraten y=x oder mit Gain halt y=cx. Die Kennlinie kannst du natürlich wie Harald sagt schon als Lookup Table irgendwo ablegen. Gruß
Was lernt ihr in der Schule? LGS lösen, heisst die Aufgabe. "Lineare Regression", fällt mir noch als Stuchwort ein.
Theoretisch möchtest du, wie schon geschrieben wurde auf dein f(x) die Umkehrfunktion f⁻¹(x) anwenden. In Theorie bekommst du damit ein perfekt linearisiertes Signal. Das fiese ist aber, dass die Umkehrfunktion nur bei bijektiven Funktionen eindeutig existiert, sonst musst du den Wertebereich einschränken. Einige Möglichkeiten: - fitten (Regression) der kompletten Umkehrfunktion (also y und x Achse deines f(x) tauschen) - analytische Berechnung der Umkehrfunktion von f(x) (in deinem Fall nicht möglich) - stückweise Regression (z.B. stückweise linear fitten), musst aber die Intervalle vernünftig legen - einfach alles in eine Lookup table packen und zwischen den Stützstellen interpolieren (ist sehr ähnlich zu einem Punkt weiter oben) Das alles sind allerdings auch keine Allheilmittel, da die nicht-Bijektivität ja erhalten bleibt, d.h. du kannst für mehrere x Werten ein und dasselbe y bekommen (das die Surjektivität, eine Voraussetzung der Bijektivität, siehe https://de.wikipedia.org/wiki/Bijektive_Funktion). Möchtest du jetzt die Umkehrfunktion haben, hast du auf einmal zu einem y mehrere x Werte und weißt nicht ohne weitere Einschränkung, welches x du nehmen möchtest. Schöne Grüße
Abgesehen davon, dass ein Grossteil von deinem Beitrag kaum zu verstehen ist, gehe ich mal auf den 3. bzw. 4. Absatz ein: Du hast U1 = f(a1,b1,c1,x) bzw. U2 = f(a2,b2,c2,x) mit gegebenen a1,b1,c1 und unbekannten a2,b2,c2 und dem Ziel U = U1 - (U1-U2)/2 . Das wird am Besten umformuliert in 2*U - U1 = U2. Der llinke Teil kann ja ausgerechnet oÄ werden, d.h. U2 ist damit gegeben. a2,b2 und c2 kann dann z.B. bequem per minim. quadr. Abweichung bestimmt werden. x muss dazu nicht geändert werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.