Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: einfach Formel in Twincat schreiben

  1. #1
    Registriert seit
    09.10.2013
    Ort
    Bern
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Abend Leute!

    Ich muss in Twincat 2.11 eine Kraftregelung implementieren. Ich habe mir die Controller Toolbox besorgt, darf diese aber noch nicht gebrauchen (Studentenprojekt). Bis jetzt habe ich das System identifiziert und damit einen Regler ausgelegt, welchen ich dann mit Matlab in einen diskreten Regler umgewandelt habe, sodass man ihn dann in Twincat implementieren könnte. Die Frage ist eigentlich ziemlich klein und für Euch wahrscheinlich einfach --> Das Fett gedruckte ganz unten

    Der Regler sieht wie folgt aus:

    5.293 z + 89.79
    ---------------
    z^2 + 72.58 z

    Ich habe ihn dann wiederum so umgeformt, dass ich ihn in Twincat implementieren könnte.

    a*z+b a*z^-1+b*z^2
    C(z) = ----------- = -----------------
    z^2+c*z+d 1+c*z^-1+d*z^2

    u(t) = Stellgrösse
    e(t) = Regelfehler
    y(t) = aktuelle Kraft (Kraftsensor)

    a*z^-1+b*z^2
    u(t) = C(z)*e(t) = ----------------- *e(t)
    1+c*z^-1+d*z^2

    (1+c*z^-1+d*z^2)* u(t) = (a*z^-1+b*z^2)*e(t)

    u(t)+c*u(t-1)+d*u(t-2) = a*e(t-1)+b*e(t-2)

    u(t) = -c*u(t-1)-d*u(t-2)+a*e(t-1)+b*e(t-2)

    Mein Lösungsvorschlag wäre folgender:

    u(t-1), u(t-2) sind vorige Werte der Stellgrösse (Motorstrome Linearantrieb LinMot)
    e(t-1), e(t-1) sind vorige Werte des Regelfehlers (Differenz zwischen Kraftsensor und gewünschter Kraft)

    das soll dann in TwinCat irgendwie so aussehen:

    u(t) = -c*u(t-1)-d*u(t-2)+a*e(t-1)+b*e(t-2)
    e(t) = r(t)-y(t)
    u(t-2) = u(t-1)
    u(t-1) = u(t)
    e(t-2) = e(t-1)
    e(t-1) = e(t)

    Wie Ihre sehen könnt, geht es darum die die älteren Werte mit den neueren zu überschreiben...

    Kann mir jemand helfen?! Ich schaffe es einfach nicht, das in Twincat zu realisieren:/

    Dank schon mal im Voraus
    Zitieren Zitieren einfach Formel in Twincat schreiben  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Das kannst du in Twincat in ST fast genauso hinschreiben.

    Entweder du nimmst für die vorigen Werte eigene Variablennamen wie:
    u_t, u_t1, u_t2 : REAL;

    u_t2 := u_t1;
    usw.

    oder verwendest Arrays:
    u : ARRAY [0..2] OF REAL;
    u[2] := u[1];
    usw.

  3. #3
    kungp1 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.10.2013
    Ort
    Bern
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für Deinen Tipp, probiere es morgen gleich aus!

Ähnliche Themen

  1. in Datei schreiben TwinCat 3
    Von rafox im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 10.09.2013, 12:30
  2. Antworten: 0
    Letzter Beitrag: 21.01.2013, 19:11
  3. Antworten: 6
    Letzter Beitrag: 09.11.2011, 12:40
  4. Twincat NCI Sollwerte in Datei schreiben
    Von odonata im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 29.09.2011, 10:44
  5. C#-Variablen in TwinCAT lesen und Schreiben
    Von kcirtap im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 29.11.2010, 10:18

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •