WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Signalnamen automitsch ändern

 

Kairos
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 12.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 14:34     Titel: Signalnamen automitsch ändern
  Antworten mit Zitat      
Hallo,

ich suche einen Weg in Abhängigkeit des Eingangsnamens den Ausgangsnamen zu ändern. Ich denke am praktischsten Erscheint mir hier eine embedded Matlab Function, ich bin jedoch für alle Vorschläge offen.

Hintergrund:
Für verschiedene Hardware müssen Signalnamen umbenannt werden. z.B. "Komponente_Abkürzung_Beschreibung_Einheit" in "KABE". Ich dachte eine eine zweispaltige tabelle in der mit "find" jeweils das gegenstück herausgesucht wird.

Ich habe bereits herausgefunden:
Der eigentlich Block kennt nur seinen Ausgangsnamen
Die Pfeile kennen ihren Namen und den Source sowie den Destination Block.

Mein Ansatz mangelns gefundener Befehle:
direct das mdl. File als Text öffnen und dort die Stellen suchen und überschreiben. Allerdings benötigt das den Namen vom Block, den ich wieder nicht bei eienr embedded Matlab Function auslesen kann. get_param und set_param wehren sich behaglich. :-/

Gibt es nicht mit set_param oder setappdata eine bessere Möglichkeit das Problem zu lösen?

Vielen Dank für eure Hilfe
Private Nachricht senden Benutzer-Profile anzeigen


Kairos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 12.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 15:55     Titel:
  Antworten mit Zitat      
get_param('Pfad','ObjectParameters') liefert alle Parameter.

Davon "Name" lesen, "OutputSignalNames" schreiben in Abhängigkeit von "InputSignalNames".

In der embedded matlab function muss man die Befehle mit feval rufen.

Ich schau mal ob man die Befehle in einen gain quetschen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Kairos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 12.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 16:05     Titel:
  Antworten mit Zitat      
'OutputSignalNames' is read-only

kann ich das ändern?
Private Nachricht senden Benutzer-Profile anzeigen
 
Kairos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 12.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2011, 12:49     Titel:
  Antworten mit Zitat      
So, ich habs.

Simulink kann nicht während der Laufzeit oder während der Compilierzeit Änderungen vornehmen. Eine embedded matlab Function kann also nicht zum Ziel führen.

Mein Weg:

In die pre-Save-Function callback des Modells ein m File schrieben. Das file sucht sich alle gains, die Adapter"zahl" heißen und ändert deren Ausgänge entsprechend der Eingänge. Man muss entsprechen saven um den Prozess auszulösen. Damit kann ich leben.

Bin etwas enttäuscht, dass es keine pre_start function gibt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Kairos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 12.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2011, 13:39     Titel:
  Antworten mit Zitat      
Hi,

simulink macht es einem nicht einfach. Wie schon in Post 2 zu lesen ist der Parameter

OutputSignalNames ein read only. Ich denke das kann man nicht änder?! Oder doch?

der Versuch den Namen vom Pfeil an sich zu ändern führte auch nicht zum Erfolg. Pfeile haben nur ein handle, aber keine Paramter oder namen. Und selbst wenn ich diesen ändere, weiß ich nicht wie Simulink das verkraftet....

Ich kann nicht glauben das Simulink das verbietet! Der Befehl "Doppelklick auf den Pfeil -> namen eintragen" muss sich doch irgendwie extern lösen lassen!

Und noch viel wichtiger: Wieso bin ich anscheinend der erste mit dem Problem. Benennt ihr alle eure Signale von Hand?

MfG kairos
Private Nachricht senden Benutzer-Profile anzeigen
 
Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 27.10.2011, 07:09     Titel:
  Antworten mit Zitat      
Hi,

Also ich benenne die Signalen mehr oder weniger von Hand. In den Signal Properties trage ich den Namen ein und der wird dann weitestgehend mitgeschleppt wenn ich das Signal aufteile bzw. weiterleite.

Auserdem arbeite ich persönlich gern mit gemuxten Signalen so dass das einzelne bennen für mich nicht viel aufwand ist.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Kairos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 12.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2011, 11:51     Titel:
  Antworten mit Zitat      
Die Lösung führte doch über die handles. Der Befehl "PortHandles" hatte mir gefehlt.

Mit

PortHandles=get_param('Objektpfad','PortHandles');

bekommt man das handle vom Pfeil. Bei diesem kann man den Namen ändern, was sich praktischer weise auch auf den Source- und Destination Block auswirkt.

set_param(PortHandles.Outport(1),'Name','Signalname');

So kann man Signale automatisch umbenennen. Die Funktion sollte in der PreSaveFcn untergebracht werden.

Das war eine schwere Geburt. Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.