NICHT linearer Spannungsaufbau / -abbau (S-Kurve)
Verfasst: Donnerstag 30. Januar 2014, 14:28
Hallo an alle,
inspiriert von maluprog's linearem Projekt (Rampe), habe ich mich mit einer 'realistischeren' Variante auseinandergesetzt.
Entstanden ist dabei 'SpeedCTRL.Mak' welches über eine S-förmige Kurven-Form Beschleunigung/Bremse implementiert (Korrektur-Tabelle in Makro). Eigabewerte können +/-, 0 .. max. oder min. .. 0 sein. Zeitvorgabe (eine): dies kann jedoch, wie im Test-Prj. gezeigt, einfach auf zwei (oder mehrere) erweitert werden. Über den Up/Dn-Input kann die Richtung (hoch/runter oder beschleunigen/bremsen) eingestellt werden (Y/t Plot veranschaulicht die erreichte Kurve).
Warum realistisch:
Im täglichen Leben werden auch solche Schaltungen eingesetzt. Diese verhindern das 'Rucken' beim Anfahren und beim Bremsen (z.B.: im Lift, Strassenbahn etc., reduziert auch die mech. Belastung auf die Lager usw.).
Technisches:
Übergabe der Kontrolle an Makro = mit ~50mS Verzögerung (Dies, um die Start-Spannung zu gewährleisten, da diese beim Start [/RST auf 'tief/low'] genau 'verkehrt' vorliegt, da ich davon ausgehe, dass die vorherige Aktion in die andere Richtung gearbeitet hat.).
Übergabe der Kontrolle an Hauptschaltung = sobald bsy-Ausgang (digital) auf 'tief/low' ist.
Minimale Zeit-Vorgabewerte nach meinen Tests sind ca. 2/3 bei 'rauf' und 4/5 bei 'runter', dies bezieht sich auf die 'Höhe' = Volt-Differenz (min. .. max.), siehe Beispiel unten.
Sicherheitsaspekte (Not-Aus, Limitter etc.) sind in dem Makro selber NICHT vorhanden, müssen also 'extern' implementiert werden.
Tests zeigen jedoch, dass Über-/Unterwerte wenn überhaupt, gering sind.
Die voreingestellte Zeit (in Sec.) wird nicht erreicht: Teff. < Treq..
Beispiel:
Von 0 .. 12 V = diff. 12(Einheiten) dies ergibt folgende Zeiten:
min. 'rauf' = 8 Sec.
min. 'runter' = 9.6 Sec.
Diese Werte ergeben 'noch' eine vertretbare S-Kurve (nicht zu steil). Eigene Tests sind hier angesagt, diese ergeben möglicherweise 'andere' Werte. Die Projekt-Datei kann dazu eingesetzt werden.
Bemerkung:
Das Makro alleine hier zu 'posten' macht nicht wirklich Sinn, desshalb lasse ich das ...
Ich gehe davon aus, dass alle in der Lage sind, ein Makro zu speichern.
Sollte dies nicht der Fall sein: PL/PLE-HILFE lesen & verstehen - was da geschrieben steht (ist NICHT dasselbe!, lesen kann wohl jede(r) hier ...).
Genug des 'grausamen Romane' schreibens.
PS: Feedback ist willkommen, erwünscht etc..
inspiriert von maluprog's linearem Projekt (Rampe), habe ich mich mit einer 'realistischeren' Variante auseinandergesetzt.
Entstanden ist dabei 'SpeedCTRL.Mak' welches über eine S-förmige Kurven-Form Beschleunigung/Bremse implementiert (Korrektur-Tabelle in Makro). Eigabewerte können +/-, 0 .. max. oder min. .. 0 sein. Zeitvorgabe (eine): dies kann jedoch, wie im Test-Prj. gezeigt, einfach auf zwei (oder mehrere) erweitert werden. Über den Up/Dn-Input kann die Richtung (hoch/runter oder beschleunigen/bremsen) eingestellt werden (Y/t Plot veranschaulicht die erreichte Kurve).
Warum realistisch:
Im täglichen Leben werden auch solche Schaltungen eingesetzt. Diese verhindern das 'Rucken' beim Anfahren und beim Bremsen (z.B.: im Lift, Strassenbahn etc., reduziert auch die mech. Belastung auf die Lager usw.).
Technisches:
Übergabe der Kontrolle an Makro = mit ~50mS Verzögerung (Dies, um die Start-Spannung zu gewährleisten, da diese beim Start [/RST auf 'tief/low'] genau 'verkehrt' vorliegt, da ich davon ausgehe, dass die vorherige Aktion in die andere Richtung gearbeitet hat.).
Übergabe der Kontrolle an Hauptschaltung = sobald bsy-Ausgang (digital) auf 'tief/low' ist.
Minimale Zeit-Vorgabewerte nach meinen Tests sind ca. 2/3 bei 'rauf' und 4/5 bei 'runter', dies bezieht sich auf die 'Höhe' = Volt-Differenz (min. .. max.), siehe Beispiel unten.
Sicherheitsaspekte (Not-Aus, Limitter etc.) sind in dem Makro selber NICHT vorhanden, müssen also 'extern' implementiert werden.
Tests zeigen jedoch, dass Über-/Unterwerte wenn überhaupt, gering sind.
Die voreingestellte Zeit (in Sec.) wird nicht erreicht: Teff. < Treq..
Beispiel:
Von 0 .. 12 V = diff. 12(Einheiten) dies ergibt folgende Zeiten:
min. 'rauf' = 8 Sec.
min. 'runter' = 9.6 Sec.
Diese Werte ergeben 'noch' eine vertretbare S-Kurve (nicht zu steil). Eigene Tests sind hier angesagt, diese ergeben möglicherweise 'andere' Werte. Die Projekt-Datei kann dazu eingesetzt werden.
Bemerkung:
Das Makro alleine hier zu 'posten' macht nicht wirklich Sinn, desshalb lasse ich das ...
Ich gehe davon aus, dass alle in der Lage sind, ein Makro zu speichern.
Sollte dies nicht der Fall sein: PL/PLE-HILFE lesen & verstehen - was da geschrieben steht (ist NICHT dasselbe!, lesen kann wohl jede(r) hier ...).
Genug des 'grausamen Romane' schreibens.
PS: Feedback ist willkommen, erwünscht etc..