Asmin schrieb:
> Genau folgendes verstehe ich nämlich nicht: x[i+1] = Kp*y[i];
> Die Formel für einen P-Regler im Zeitbereich ist doch: x(t) = Kp*y(t).
Kannst du auch machen.
> Wieso rechnest du x[i+1] und nicht x[i]?
Weil ich gerne hätte, dass wenn ich die Daten auswerte ich die lesen
kann als
x Wert der zum Stellglied ging
y Regelabweichung die sich daraus ergeben hat
sprich: in deinem Array - für ein ganz bestimmtes i hab ich in einer
Zeile stehen, den Wert den ich als Stellgröße vorgegeben habe und im y
daneben steht dann der daraus resultierende Fehler. Aus diesem Fehler
ergibt sich der nächste Wert für die Stellgröße usw. usw.
D.h. der Lesefluss in den Arrays ist so
1 | i x y
|
2 | ----------------------------
|
3 |
|
4 | 0 o----------------> o
|
5 | |
|
6 | +------------------+
|
7 | |
|
8 | v
|
9 |
|
10 | 1 o----------------> o
|
11 | |
|
12 | +------------------+
|
13 | |
|
14 | v
|
15 |
|
16 | 2 o----------------> o
|
17 | |
|
Für mich ist es logischer, die Zeile mit dem x anfangen zu lassen. Weil
ich ja zunächst mal eine Stellgröße vorgeben muss, ehe ich überhaupt zu
einem Fehler kommen kann. Für dich mag das anders aussehen.
Ich seh die Sache halt so: Am Anfang eines Zeitintervalls i stelle ich
die Stellgröße ein und am Ende des Zeitintervalls hol ich mir den daraus
resultierenden Ist-Wert um daraus die Stellgröße für das nächste
Zeitintervall zu berechnen. Bei mir vergeht halt die Zeit nachdem ich
die Stellgröße gestellt habe. Also praktisch gesehen im waagrechten
Pfeil.
> Also laut der allgemeinen Formel hätte ich jetzt x[i] = Kp*y[i]
> geschrieben.
Kannst du auch machen.
Du musst nur für dich wissen, wie die Werte zusammenhängen und welcher
Wert sich aus welchem anderen Wert ergibt, wenn du deine Log-Arrays
studierst.
In einem realen PID Regler existieren ja die Arrays sowieso nicht mehr.
Die sind ja jetzt sowieso nur für dich eine Hilfe, damit du im
Nachhinein verfolgen kannst, was deine Regelgleichungen gemacht haben
und wie sie den x-Wert nachgeführt haben.