Autor Beitrag
TimoR
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 31.03.06 13:30 
Hallo an alle.

Ich hab da ein kleines Problem. Ich soll mit Delphi einen PID-Regler für eine Temperatursteuerung programmiern. Hab allerdings kaum Ahnung von Integralrechnung und Differenzielrechnung. Kann da jemand was mit anfangen??
Sind ja keine grossen Integrale und Differentiale, aber ich weiss net, wie ich die Zeit da rein bringen soll, da der I-Regler ja über die Zeit seinen Wert verändert.

Wäre sehr froh, wenn mir da jemand helfen könnte!!
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Fr 31.03.06 13:40 
Musste sowas auch mal machen allerdings mit Labview. Das ist viel einfacher als es sich anhört. PID-proportional-integral-derivative. Ist programm, nur dass das alles für eine temperaturregelung numerisch gelöst werden kann. Also bekommst du die Ableitung indem du die Steigung zwischen zwei benachbarten Messpunkten ausrechnest (y2-y1)/(x2-x1). der proportionalterm ist trivial und der Integralterm ist die Aufsummation der Fläche der Kurve. also Sum über i(yi*const(x2-x1)). Ich denke in diesem Fall spielt ober oder Untersumme der "Riemannschen Summe" keine Rolle. Das wars schon. Viel schwieriger ist es die Gewichtung der drei Terme (am einfachsten über Linearfaktoren) zu finden. Kleiner Tipp: Ableitungsterm dämpft schwingungen, dämpft aber die rasche Annäherung. Integralterm schwingt stark, weil er träge ist (Weniger trägheit durch abschneiden zu stark abweichender Flächen z.B. Startsekunden). Gleichzeitig braucht man ihn aber um den Temperaturabfluss ausgleichen zu können, die anderen beiden können das nicht. proportionalterm: Gut für schnelle annäherung an Zieltemperatur wenn zu stark bei kleinen Temperatuzrdifferenzen eher hinderlich. Deshalb habe ich diesen als ich das gemacht habe für kleine Temperaturdifferenzen gedämpft.
TimoR Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 31.03.06 13:52 
user profile iconAllesquarks hat folgendes geschrieben:
Der Integralterm ist die Aufsummation der Fläche der Kurve. also Sum über i(yi*const(x2-x1)). Ich denke in diesem Fall spielt ober oder Untersumme der "Riemannschen Summe" keine Rolle. Das wars schon. .



Das mit dem Differenzieren ist schon mal klar!! Danke

Das mit dem Integrieren versteh ich von der Theorie her schon, weiss aber überhaupt net, wie das in delphi zu schreiben ist. Hab selber nen Grafikrechner, da schreib ich das Integral-zeichen, den Term und dann die grenzen, wenn benötigt, und dann kommt das Ergebnis. Aber in Delphi fehlt mir schon das Integralzeichen. Suche schon die ganze woche nach dieser formel, aber ichfind nix!!!
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Fr 31.03.06 16:03 
Wär schön weenn Delphi integrale nativ lösen könnte und da selbst Mathematiker bei sowas Probleme haben glaube ich, dass das auch nie der Fall sein wird.
Delphi umsetzung numerisches Integral: Variable myintegral initialisiert mit Null dann Fläche des derzeitigen Messwertes berechnen (hab ich schon oben geschrieben) und anschließend zum Flächenintegral (myintegral) hinzuaddieren. Jetzt müsste aber alles klar sein.
Bunbury
ontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 115



BeitragVerfasst: Fr 31.03.06 16:06 
.

Integrieren kann man mit dem "Integralzeichen" (leider macht es das allein auch nicht) sowieso nur Funktionen, keine Messwerte.

Das was ein Integral Dir zwischen zwei Grenzen ausrechnet ist nichts anderes als die von Allesquarks angesprochene Fläche zwischen Dir aber bekannten Messpunkten auszurechnen.

Du brauchst also keine Integralfunktion, das geht sogar mit Excel obwohl das auch keine Funktionen integrieren kann.
Berechne einfach die Fläche zwischen den Messwerten, also den Zeitabstand (x-Achse) zwischen zwei benachbarten Messpunkten * der Höhe (y-Achse) des kleineren Wertes und Du hast schon fast das Integral. Wenn Du es ganz genau willst (solltest Du) addierst Du Dir noch die Fläche des kleinen Dreiecks dazu, daß oben auf dem Rechteck unberücksichtigt geblieben ist wenn beide Messpunkte nicht die selbe Höhe hatten - also eine Steigung besaßen. Mache Dir einfach eine Skizze - dann siehst Du das schon was zu rechnen ist und dann verstehst Du auch Allesquarks' Formel.

Wie gesagt: ein Integral ist nichts anderes als die Fläche unterhalb des Graphen (bei negativen Werten oberhalb) zwischen zwei Grenzen (Messpunkten) und der Abszisse. Das kann man wörtlich nehmen - da ist nix Mysteriöses dran.

Willst Du über mehrere Werte integrieren brauchst Du die Einzelflächen nur zu addieren. Mit "myintegral" meint Allesquarks nur eine Variable - könnte genauso "gesamtflaeche" heißen.

MfG
Bunbury

.
TimoR Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 02.04.06 17:39 
Alles klar die Herren!! Ich denke, das bring mich schon mal ne ecke weiter!! Vielen Dank für eure Postings!!!
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: So 02.04.06 17:49 
Wieso rechnest du das ganze nicht einfach im Laplace-Bereich? Dann hättest du nur mehr gebrochene Polynome von s (=jw) (einmal im Zähler, einmal im Nenner).
Eine Serienschaltung vereinfacht sich so zu einer Multiplikation - eine Rückkopplung (die du für den Regler zwangsweise brauchen wirst) lässt sich sehr einfach per G/(1+G) rechnen - Formeln dürftest du zur Genüge finden.

AXMD
zemy
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 207

Win XP Prof.
D7
BeitragVerfasst: So 02.04.06 19:11 
Wenn TimoR schon "überfordert" ist mit der numerischen Integration von (äquidistanten?) Messwerten, kannste ihm wohl kaum die Laplace-Transformation empfehlen... Um einfach nur den Regleroutput zu generieren, reicht auch der einfache Messwert. Kann man überhaupt von Messwerten einfach so ne Laplacetransformation machen? Bei den Furien (Fourier) hat man ja die FFT, aber bei Laplace? Bin ich mir nicht so sicher (bin erst 2. Semester, kommt aber noch in Systemtheorie^^)

@TimoR: Bleib bei i:=i + y*(x1-x0) ;)

MfG

_________________
LifeIsToShortToThinkAboutTheShortness
Andy090778
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 13.05.06 23:52