2016-04-18 11 views
1

Ich möchte 2 Aufzählungslisten in Simulink auf eine Weise zuordnen, dass es einfach ist, die Verbindung zwischen den 2 Maps zu sehen, die ihre Namen anstelle ihrer Werte verwenden. Wie kann das gemacht werden?Matlab Simulink Enumerationszuordnung

Vielen Dank!

Beispiel:
Aktionen:

classdef(Enumeration) Actions < Simulink.IntEnumType 
    enumeration 
     Off(1) 
     PowerOn(2) 
     PowerOff(3) 
    end 
end 

Staaten:

classdef(Enumeration) States < Simulink.IntEnumType 
    enumeration 
     START(1000) 
     RUNNING(1002) 
     STOPPED(1003) 
     OFF(1004) 
    end 
end 

Die Anschlüsse so sein würde:

States.START -> Actions.PowerOn 
States.RUNNING -> Actions.PowerOn 
States.STOPPED -> Actions.PowerOff 
States.OFF -> Actions.Off 
+0

Suchen Sie nach einem Simulink-Block für dieses Mapping? –

+0

Es sollte in Simulink-Modell verwendet werden, aber wenn die Lösung aus einem Block mit einigen zusätzlichen Code \ Komponenten besteht, ist es auch in Ordnung. –

Antwort

0

Um dies zu erreichen die gängige Praxis ist, Verwenden Sie eine Multiport Switch. Verwenden Sie die Werte für States als Datenport-Indizes und der Actions als Enumerated Constants wie folgt aus:

enter image description here

Die Einstellungen für die Multischalter sollte wie folgt aussehen:

enter image description here

Ich habe gemacht die Datentypen von Signalen sichtbar, um zu sehen, dass wir ein Signal vom Datentyp States auf ein Signal vom Datentyp Actions abbilden.