Hysterese programmieren

tasili
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 75
Dabei seit: 02 / 2007
Betreff:

Hysterese programmieren

 · 
Gepostet: 04.09.2011 - 18:10 Uhr  ·  #1
Hallo,
wie programmiere ich eine Hysterese?
Also ich benötige das für eine Akkuausgleichsschaltung.
Also
Wenn Akku 1 > Akku2 dann
Wenn Akku 1 > Akku 3 dann
Wenn Akku 2 > Akku 1 dann
etc...
Das alles benötige ich aber zusätzlich halt noch mit einer Hysterese..also
Wenn Akku 1 > Akku2 +- 0,1V dann
Wenn Akku 1 > Akku 3 +- 0,1V dann
Wenn Akku 2 > Akku 1+- 0,1V dann

Da die Schaltung sonst nie fertig wird was natürlich nicht sehr zweckmäßig ist...
Gunter
Administrator
Avatar
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Hysterese programmieren

 · 
Gepostet: 04.09.2011 - 20:26 Uhr  ·  #2
Hi,
ich vermute Du suchst die Funktion ValueInTolerance
Oder halt zufuss:

if abs(Akku1-Akku2) <= 0,1 then //im Limit

Gunter
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1474
Dabei seit: 03 / 2005
Betreff:

Re: Hysterese programmieren

 · 
Gepostet: 05.09.2011 - 11:26 Uhr  ·  #3
Hi.

If you think about it,

Wenn Akku1 > Akku2 +- 0,1V dann

makes no sense. It should be

If Akku1 > (Akku2 + 0.1) then // (probably, if hysterisis required), with the complementary test

If Akku1 < (Akku2 - 0.1) then

These are probably implied 'reals' with actual values fom the ADC. If si, some care needs to be taken with

if abs( Akku1 - Akku2 ) < ....

This works if Akku1 and Akku2 are signed (such as real, integer, etc) but not necessarily for unsigned. For example, with bytes,

if abs( 0 - 255 ) < 2 then

evaluates to TRUE! (because of wrap around).

Regards

Merlin.
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   61   75 · Page-Gen-Time: 0.02753s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI