-         

Ergebnis 1 bis 9 von 9

Thema: Hysterese

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329

    Hysterese

    Anzeige

    Hallo Experten,

    wie programmiert man eine hübsche Hysterese?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    do

    Hysterese:

    loop

    Hysterese von was für was?
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Denke mir, allgemein, du verwendest für steigendes und fallendes X verschiedene Grenzwerte bzw. Faktoren für die y=f(x) Funktion.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    47
    Beiträge
    497
    Wenn wir mal davon ausgehen, dass du zB die Hysterese bei Schmitttriggern meinst (wir sind ja schließlich in einem Robotikforum) dann könnte das in Pseudocode so aussehen
    Code:
    if out==1 then
    	if in<min then out = 0;
    	endif
    else 
    	if in>max then out = 1;
    	endif
    endif
    sast

    雅思特史特芬
    开发及研究

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Entschuldigung, ich war ein bisschen Wortkarg...

    Ein ADC mißt eine Spannung ADCSpannung. Mit einem Select-case wird diese ausgewertet. Es tritt jedoch an den Übergängen ein flattern auf, wenn die Spannung leicht um den Grenzwert UGrenze schwankt. Wie bei einem Schmitt-Trigger, wie sast schon erwähnt hat soll die Hysterese das verhindern
    Code:
    ADCSpannung = getadc(0)
    
    select case ADCSpannung
       case is < UGrenze
          'tuwas
       case UGrenze to  UGrenze2
          'tuwas anderes
    
    usw.

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Naja, ZWISCHEN den Grenzen passiert ja genau nix.
    eigentlich:
    Code:
    select case ADCspannung
    case is > LimitHi:       OUT = 1
    case is < LimitLow:    OUT = 0
    end select
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Jetzt fällt der Groschen. Anstatt nur eines Grenzwertes definiere ich 2, die um die Hysterese auseinanderliegen. Dazu definiere ich noch eine Variable "OldValue", die mir die aufsteigende oder abfallende Flanke anzeigt.

    Luftcode


    Code:
    select case ADCSpannung
       case is < UGrenzeUnten
          'tuwas
          OldValue = unten
       case UGrenzeUnten to  UGrenzeOben
          'ich bin die Hysterese
          if OldValue = unten then
              'tu das gleiche wie unten
          else
              'tu das gleiche wie oben
          endif
       case is > UGrenzeOben
          'tuwas
          OldValue = oben
    end select

  8. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    47
    Beiträge
    497
    @Robert
    ja so kurz gehts auch

    Jetzt wird das Ganze etwas klarer. Du musst dir aber im klaren sein, dass du beim Festlegen einer scharfen Grenze (UGrenze) immer mit solchen Schwankungen zu kämpfen hast.
    Entweder du weichst die Grenze auf und nutzt unseren Vorschlag zB mit UGrenze-X und UGrenze+X als min und max, oder du mittelst über mehrere Werte, oder machst einen "wenn geändert dann Vergleich" indem du den Wert mit Wert_old vergleichst und nur änderst wenn eine bestimmte Größenschwelle überschritten wird und dein Case arbeitet dann immer mit Wert_old.
    Das ist im Grunde immer irgendwie das Selbe, nur an verschiedenen Stellen im Code realisiert.

    sast

    Edit:
    mein Post kommt wie immer zu spät. Naja gut wenn du alleine in die richtige Richtung denkst.
    Aber mal im Ernst, seit einigen Wochen ist das RN ziemlich häufig wegen "Überlastung" nicht richtig erreichbar, da macht das Antworten manchmal echt keinen Spass. Liegt das an den neuen Servern, oder ist das RN wirklich so stark frequentiert?

    雅思特史特芬
    开发及研究

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo,

    danke für die Mithilfe, das VORLÄUFIGE Ergebnis unter:

    http://www.gerold-online.de/cms/whee...adegeraet.html

    Günter

Berechtigungen

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