Formel erstellen

Sie können in Vissim in folgenden Anwendungsfällen eine Formel im integrierten Formeleditor erstellen:

Der Formeleditor bietet folgende Funktionen:
Symbol Beschreibung

Operand einfügen (z.B. Attribut): Ein Fenster mit den Attributen des im Feld Objekttyp ausgewählten Netzobjekttyps öffnen und ein Attribut als Term auswählen. Der Term wird blau eingefügt.

 

Symbol Beschreibung

Operator einfügen (z.B. +, -, *, /): Operator auswählen, der den Term mit einem weiteren Term verbindet. Der Operator wird schwarz eingefügt.

 

Symbol Beschreibung

Funktion einfügen (z.B. Min, Max, Exp): Fenster Funktion einfügen öffnen und Funktion für die Formel auswählen. Die Funktion wird grünblau eingefügt.

Mögliche Funktionen:

Abrunden (x)

Gibt die größte ganze Zahl, die kleiner oder gleich x ist. An der Cursorposition wird FLOOR() eingefügt.

Abs (x)

Absolutbetrag von x

Abschneiden (x)

Schneidet die Dezimalstellen von x ab. An der Cursorposition wird TRUNCATE() eingefügt.

ArcSin (x)

Arkussinus von x

ArcCos (x)

Arkuskosinus von x

ArcTan (x)

Arkustangens von x

Aufrunden (x)

Gibt die kleinste ganze Zahl, die größer oder gleich x ist. An der Cursorposition wird CEIL() eingefügt.

Cosinus (x)

Kosinus von x

Div (x; y)

Bildet den ganzzahligen Quotienten aus xund y.

Farbe (a; r; g; b;)

Legt Farbwert fest. a: Alpha-Transparenz, r: Rot, g: Grün, b: Blau

Exp (x)

Bildet die Exponentialfunktion von x. An der Cursorposition wird EXP() eingefügt.

GEH Statistik (x; y)

Berechnet die GEH-Statistik für x und y. An der Cursorposition wird GEH(;) eingefügt. Die GEH-Statistik ist eine in der Verkehrsmodellierung weitverbreitete empirische Formel für die Analyse von Werten. Die Formel hat folgende Form:

wobei:

M: modellierte Werte

C: gezählte Werte

Kehrwert (x)

Entspricht 1/x. An der Cursorposition wird RECIPROCAL() eingefügt.

Ln (x)

Bildet den natürlichen Logarithmus von x. An der Cursorposition wird LN() eingefügt.

Max (x; y)

Bildet das Maximum von x und y

Min (x; y)

Bildet das Minimum von x und y

Modulo (x; y)

x modulo y

Potenz (x; y)

Entspricht x^y. An der Cursorposition wird POW(;) eingefügt.

Prozent (x; y)

Entspricht 100*x/y. An der Cursorposition wird PERCENT(;) eingefügt.

Runden (x; p)

Rundet x auf p Nachkommastellen. p ist optional. An der Cursorposition wird ROUND(;) eingefügt.

Sin (x)

Sinus von x

Text nach Zahl ("x")

Konvertiert eine Zeichenfolge in eine Fließkommazahl. Als Dezimaltrennzeichen geben Sie einem Punkt ein. In der Zeichenfolge sind nicht gültig: Leerzeichen am Anfang und Ende sowie nicht-numerische Zeichen, ausgenommen +, -, e/E. An der Cursorposition wird TEXTTONUM() eingefügt.

Tan (x)

Tangens von x

Wenn (b; w; f)

Bedingte Verzweigung. Gibt w aus, wenn b wahr ist. Gibt f aus, wenn b falsch ist. An der Cursorposition wird IF(;;) eingefügt.

Wurzel (x)

Bildet die Quadratwurzel von x. An der Cursorposition wird SQRT() eingefügt.

Zahl nach Text (x)

Konvertiert eine Fließkommazahl in eine Zeichenfolge. An der Cursorposition wird NUMTOTEXT() eingefügt.

Extrahiere Teilstring("x", "s", n)

Extrahiert aus einem String "x" unter Verwendung des Trennzeichens "s" den "n"-ten Teilstring. Beispielsweise können Sie so die Nummer der zweiten Strecke aus der Streckenfolge einer Fahrzeugroute extrahieren.

 

Symbol Beschreibung

TableLookup einfügen: Fenster TableLookup einfügen öffnen und eine Funktion des Typs TableLookup in die Formel einfügen. Sie wählen einen Attributwert eines Netzobjekttyps aus und bearbeiten diesen in der Formel weiter. Die TableLookup-Funktion wird grünblau eingefügt.

  • Netzobjekttyp: Wählen Sie in der Auswahlliste den Objekttyp aus, der die Basis für die Funktion darstellt. Alle darauffolgenden Bedingungen der Funktion beziehen sich auf den ausgewählten Objekttyp.

Neben den Netzobjekttypen können Sie weitere Objekttypen auswählen. Beispielsweise Netzeinstellungen (NETPARA), der einen benutzerdefinierten Wert enthält. Dabei verwenden Sie für die Bedingung der TableLookup-Funktion beispielsweise den Wert 1 für WAHR.

  • Variablenname: Geben Sie einen Variablennamen ein, der mit einem Buchstaben beginnt. Dieser Name ist die sogenannte Schleifenvariable, sie repräsentiert in jeder Schleife ein anderes Netzobjekt des Typs, über das iteriert wird.
  • Erklärende Kommentare einfügen: fügt ein Beispiel für Bedingung und Ergebnis in das Eingabefeld ein, das Sie überschreiben können.
 

Die Funktion TableLookup muss im Eingabefeld folgendem Schema entsprechen:

TableLookup(<Objekttyp> <Variablenname>;(<Bedingung>);(<Ergebnis>)

Die Elemente setzen sich zusammen aus:

TableLookup(<Objekttyp: englischer Name in Großbuchstaben> <eingegebener Variablenname>; (<Bedingung beispielsweise <eingegebener Variablenname>[<englischer Attribut-Kurzname>]=<Eigenschaft>>);(<Ergebnis beispielsweise <Bezeichner>[<Attribut-Kurzname>]>))

siehe (Beispiel für ein benutzerdefiniertes Attribut)

 

Symbol Beschreibung

Klammern einfügen: Öffnende und schließende Klammer einfügen:

  • Um den markierten Teil der Formel einfügen
  • kein Teil der Formel ist markiert: an der Position des Cursors einfügen
Simulationslauf kann formelbasierte Daten beeinflussen

Wenn für die Formel ausgewählte Attribute auf dynamischen Daten basieren, die sich während eines Simulationslaufs ändern können, können sich auch die Werte des benutzerdefinierten Attributs ändern, wenn diese während eines Simulationslaufs in einer Ergebnisliste oder Attributliste angezeigt werden.

Formeln in irrelevant gekennzeichneten Feldern bearbeiten

Irrelevante Attribute können beispielsweise durch COM-Funktionen während eines Simulationslaufs relevant werden. Deshalb können Sie Formeln auch in irrelevant gekennzeichneten Feldern bearbeiten.

Zeilenumbruch einfügen
  • ►  Innerhalb einer Zeichenkette fügen Sie an der gewünschten Position \n ein.
  • ►  Außerhalb einer Zeichenkette drücken Sie an der gewünschten Position die Eingabetaste.
Syntaxfehler sind rot gekennzeichnet

Vissim markiert Syntaxfehler in einer Formel rot. Eine Meldung unter dem Eingabefeld für die Formel gibt Hinweise zur möglichen Ursache des Syntaxfehlers.

Verhalten bei aufeinanderfolgenden Vergleichen in Formeln

Berücksichtigen Sie bei der Erstellung einer Formel, die aufeinanderfolgende Vergleiche enthalten soll, dass diese in Formeln nach Boolscher Algebra nicht assoziativ sind, sondern in Zweier-Gruppen zusammengefasst und ausgewertet werden:

Beispiel:

1 < 4 < 2 wird zusammengefasst und ausgewertet als (1 < 4) < 2:

Dabei ist (1 < 4) = wahr

wahr = 1

Es gilt in der Formel:

1 < 2

Unterschiedlicher Datentyp in Formel und Attribut

Falls die Formel eine Zahl ergibt, das Zielattribut jedoch eine Zeichenkette ist, konvertiert Vissim die Zahl in eine Zeichenkette.