wiki:SpecialTask

Version 2 (modified by rempel, 16 years ago) (diff)

--

Special Task

Aufgabe: Es soll der Wert einer Variablen aus einem Slot über mehrere Ebenen "nach oben" und eine Ebene "nach unten" gegeben werden.
Das ganze soll möglichst ohne Adapter und "visuelle" Links passieren

Beispiel: Klasse b enthält die Slots a und c. Klasse a enthält ein "Storage", welches ein Terminal mit der Variablen c0 enthält. c0 soll in Klasse c verfügbar gemacht werden.
Vorschlag:

(define-module
  :class "class_a"
  :super-classes ("dynamic-model")
  :modules
  (("storage_intra"
    :is-a "storage-intra")
   ("trans1a_fi1"
    :is-a "trans1a-fi1"))
  :links
  (("storage_intracf_trans1a_fi1a"
    :terminals ("storage_intra.cf" "trans1a_fi1.a")))
  :variables
  (("c"
    :is-a "var-state-concentration-out"))
  :equations
  (("test"
    :relation "c == storage_intra.cf.c")))


(define-module
  :class "class_c"
  :super-classes ("dynamic-model")
  :variables
  (("c"
    :is-eq-to "parent.c")
   ("e"
    :is-a "var-state-concentration-out"))
  :equations
  (("testc"
    :relation "e == c")))


(define-module
  :class "class_b"
  :super-classes ("dynamic-model")
  :modules
  (("class_a"
    :is-a "class_a")
   ("class_c"
    :is-a "class_c"))
  :variables
  (("c"
    :is-a "var-state-concentration-out"))
  :equations
  (("test"
    :relation "c == class_a.c")))

Problem: Es entsteht ein überbestimmtes System.. müsste mit den richtigen system-theoretic Typen behebbar sein..