2016-05-29 14 views
0

Ich verwende eine endliche Zustandsmaschine, um die Spannung der Stromversorgung zu steuern.Verwenden von Verzögerungen in einer Zustandsmaschine

Ich habe drei Zustände programmiert:

OFF
ON
Stopp

enter image description here

AUS-Zustand: die Ausgangsspannung 0 V ist der Mikrocontroller für eine Eingabe wartet, wenn es keine Eingabe bleibt es im selben Zustand.

Ein-Zustand: In diesem Zustand wird die Ausgangsspannung progressiv erhöht, bis sie einen voreingestellten Wert erreicht. Wenn dieser Wert erreicht wird, schaltet sich die Stromversorgung aus. Aus diesem Zustand kann die Stromversorgung auch auf Stop oder auf OFF umschalten, wenn das richtige Signal empfangen wird.

Stop: In diesem Zustand wird die Ausgangsspannung konstant auf dem zuletzt erreichten Wert im EIN-Zustand. In diesem Zustand kann die Stromversorgung wieder auf EIN gestellt werden und den Ausgang weiter erhöhen oder auf AUS schalten.

Mein Anliegen ist das Folgende, während im ON-Zustand, wenn die Spannungsgrenze erreicht ist, wird der Zustand nicht sofort ändern, wird der Ausgang für eine Zeit delta_t konstant bleiben, und dann wird es auf OFF bin ich schon Wenn ich dieses Verhalten im ON-Zustand implementiere, sollte ich für diesen Übergang einen anderen Zustand für diese Zeit hinzufügen, wenn die Spannung nicht ansteigt? oder ist es richtig, die Verzögerung innerhalb des Staates zu haben? Dieser neue Zustand wird im Grunde nur eine Verzögerung sein.

enter image description here

bearbeiten.

Dies ist der ideale Ausgang, wenn das Netzteil im EIN-Zustand ist. Es beginnt bei 0, der Anstieg bis zu einem voreingestellten Wert, bleibt für eine bestimmte Zeit in diesem Wert und geht in den AUS-Zustand.

Ich habe Strom anstelle von Spannung in diesem Bild, aber da die Belastung ist rein resistiv macht es keinen Unterschied.

enter image description here

+0

Sie eine PID-Regelschleife wollen. – pneumatics

+0

@pneumatics Nicht wirklich, Die Spannung wird nur einer Rampe folgen und nach einer Verzögerung ausgeschaltet werden. Ich aktualisiere die Frage. Ich verwende nur Feedback, um zu wissen, wann die Spannungsgrenze erreicht ist. –

Antwort

1

Wenn das Spannungsplateau ein beabsichtigtes Verhalten ist (dh Sie haben sofortige Kontrolle über die Spannung und Ihre Zustandsmaschine absichtlich hält es hoch): es Sinn machen, könnte den ‚ON‘ Zustand in aufzuspalten separate "RAMP" - und "HOLD" -Zustände.

Wenn das Spannungsplateau eine Folge von externer Hardware ist (z. B. stoppt Ihre Zustandsmaschine das "Ein" -Signal, aber es gibt eine Verzögerung, bevor das tatsächliche Verhalten des Systems aufhört: Es könnte sinnvoll sein, ein separates hinzuzufügen) WAIT 'Zustand, der entweder auf eine feste Zeit wartet (wenn die Verzögerung sehr wiederholbar ist) oder in geschlossener Schleife arbeitet (z. B. die Spannung messen, in' WAIT 'bleiben, während es ungleich Null ist, dann Übergang zu' AUS ').

In jedem Fall scheint es, wie das System etwas zu tun, anders als während der Spannungsanstiegsphase, so ein eigener Staat Sinn macht.