get_param
Parameternamen und -Werte abrufen
Beschreibung
gibt den Wert value = get_param(object,parameter)value des angegebenen Parameters parameter für das von object angegebene Zielobjekt zurück. Das Zielobjekt kann ein Modell, ein Subsystem, eine Bibliothek, ein Block, eine Linie, ein Port oder ein Bus-Element-Port-Element sein, das als Pfad oder Handle definiert wurde.
Öffnen oder laden Sie das zugehörige Simulink®-Modell, -Subsystem oder die zugehörige Bibliothek, bevor Sie diese Funktion aufrufen.
Beispiele
Sie können den Wert eines Blockparameters mithilfe der Funktion get_param mit diesen Eingabeargumenten abrufen:
Block-Handle oder vollständiger Blockpfad einschließlich Blockname,
'myModel/mySubsystem/myblock'Parametername
Weitere Informationen zu Block-Handles und -pfaden finden Sie unter Get Handles and Paths.
In diesem Beispiel rufen Sie die Koeffizienten der Übertragungsfunktion ab, die durch einen Übertragungsfunktionsblock mit der Bezeichnung Alpha-sensor Low-pass Filter angegeben wird.
Der Block befindet sich im Subsystem
Controllerdes ModellsslexAircraftExample.Die Koeffizienten des Zählers der Übertragungsfunktion sind im Parameter
Numeratorgespeichert. Die Koeffizienten des Nenners der Übertragungsfunktion sind im ParameterDenominatorgespeichert.
Öffnen Sie das Beispiel. Laden Sie daraufhin das Modell slexAircraftExample.
mdl = 'slexAircraftExample';
load_system(mdl)Rufen Sie die Koeffizienten der Übertragungsfunktion ab.
path = [mdl,'/Controller/Alpha-sensor Low-pass Filter']; num = get_param(path,'Numerator')
num = '[1]'
denom = get_param(path,'Denominator')denom = '[Tal,1]'
Wenn der Blockpfad lang ist und Sie mehrere Parameter abrufen möchten, sollten Sie die Verwendung von Block-Handles in Betracht ziehen.
Sie können den Wert eines Blockparameters mithilfe der Funktion get_param mit diesen Eingabeargumenten abrufen:
Block-Handle oder vollständiger Blockpfad einschließlich Blockname,
'myModel/mySubsystem/myblock'Parametername
In diesem Beispiel rufen Sie die Koeffizienten der Übertragungsfunktion ab, die durch einen Übertragungsfunktionsblock mit der Bezeichnung Alpha-sensor Low-pass Filter angegeben wird.
Der Block befindet sich im Subsystem
Controllerdes ModellsslexAircraftExample.Die Koeffizienten des Zählers der Übertragungsfunktion sind im Parameter
Numeratorgespeichert. Die Koeffizienten des Nenners der Übertragungsfunktion sind im ParameterDenominatorgespeichert.
Öffnen Sie das Beispiel. Rufen Sie dann den Block-Handle mit der Funktion getSimulinkBlockHandle ab. Um gleichzeitig den Block-Handle zu erhalten und das Modell zu laden, geben Sie das zweite Argument für die Funktion getSimulinkBlockHandle als true an.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)h = 490.0016
Um die Parameterwerte abzurufen, geben Sie den Block mithilfe des Handles an. Geben Sie den Wert des Handles nicht manuell ein. Der von der getSimulinkBlockHandle-Funktion im MATLAB®-Befehlsfenster ausgegebene Wert könnte aufgrund von Rundungsfehlern nicht dem Handlewert entsprechen. Weisen Sie stattdessen den Handle einer Variablen zu und verwenden Sie den Variablennamen, um den Block anzugeben. In diesem Beispiel ist der Wert der Variable h zugewiesen.
num = get_param(h,'Numerator')num = '[1]'
denom = get_param(h,'Denominator')denom = '[Tal,1]'
Sie können den Wert eines Blockparameters mithilfe der Funktion get_param mit diesen Eingabeargumenten abrufen:
Block-Handle oder vollständiger Blockpfad einschließlich Blockname,
'myModel/mySubsystem/myblock'Parametername
Dieses Beispiel zeigt, wie Sie den Parameternamen abrufen.
Nehmen wir an, Sie rufen die Koeffizienten der Übertragungsfunktion aus einem Übertragungsfunktion-Block namens Alpha-sensor Low-pass Filter im slexAircraftExample-Model ab. Hierfür müssen Sie die Parameternamen abrufen, in denen die Transferfunktion-Koeffizienten gespeichert sind.
Öffnen Sie das Beispiel.
Rufen Sie den Handle des Transferfunktion-Blocks namens Alpha-sensor Low-pass Filter ab. Um gleichzeitig den Block-Handle zu erhalten und das Modell zu laden, geben Sie das zweite Argument für die Funktion getSimulinkBlockHandle als true an.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true);Rufen Sie die Namen aller Blockparameter des Transferfunktion-Blocks namens Alpha-sensor Low-pass Filter mithilfe der Funktion get_param ab.
get_param(h,'DialogParameters')ans = struct with fields:
Numerator: [1×1 struct]
Denominator: [1×1 struct]
ParameterTunability: [1×1 struct]
AbsoluteTolerance: [1×1 struct]
ContinuousStateAttributes: [1×1 struct]
Die Ausgabe zeigt, dass die Transferfunktion-Koeffizienten mit einem Parameter Numerator und einem Parameter Denominator angegeben sind. Verwenden Sie diese Parameternamen, um die Koeffizienten des Zählers und des Nenners der Transferfunktion abzurufen.
num = get_param(h,'Numerator'); denom = get_param(h,'Denominator')
denom = '[Tal,1]'
Sie können den Wert eines Blockparameters mithilfe der Funktion get_param mit diesen Eingabeargumenten abrufen:
Block-Handle oder vollständiger Blockpfad einschließlich Blockname,
'myModel/mySubsystem/myblock'Parametername
Dieses Beispiel zeigt, wie Sie den vollständigen Blockpfad aller Blöcke in einem Modell mit einem bestimmten Schlüsselwort im Namen abrufen können. Weitere Informationen zum Abrufen von Blockpfaden finden Sie unter Get Handles and Paths.
Nehmen wir an, Sie rufen die Übertragungsfunktion-Koeffizienten aller Transferfunktion-Blöcke, die als Filter im slexAircraftExample-Modell fungieren, ab.
Öffnen Sie das Beispiel. Laden Sie daraufhin das Modell slexAircraftExample.
mdl = 'slexAircraftExample';
load_system(mdl)Rufen Sie mithilfe der find_system-Funktion die Pfade aller Blöcke im Modell slexAircraftExample ab, deren Namen das Wort filter enthalten. Verwenden Sie reguläre Ausdrücke, ignorieren Sie in der Suche Groß- und Kleinschreibung und beschränken Sie die Suche auf Blöcke. Um reguläre Ausdrücke zu verwenden, setzen Sie den Wert des Parameters Regexp auf 'on'. Um Groß- und Kleinschreibung bei der Suche zu ignorieren, setzen Sie den Wert des Parameters CaseSensitive auf 'off'. Um die Suche auf Blöcke zu beschränken, setzen Sie den Wert des Parameters Type auf 'Block'.
paths = find_system(mdl,Regexp='on',CaseSensitive='off',Type='Block',Name='.*filter.*')
paths = 3×1 cell
{'slexAircraftExample/Controller/Alpha-sensor↵Low-pass Filter'}
{'slexAircraftExample/Controller/Pitch Rate↵Lead Filter' }
{'slexAircraftExample/Controller/Stick↵Prefilter' }
Wenn Sie keine Suchtiefe angeben, findet die find_system-Funktion alle Blöcke auf der angegebenen Ebene der Modellhierarchie und in allen darunterliegenden Ebenen, die die angegebene Ebene umfasst. Da slexAircraftExample die oberste Ebene der Modellhierarchie ist, gibt dieser Befehl alle Blöcke aus jeder Ebene der Modellhierarchie zurück.
Verwenden Sie die Blockpfade, um die Übertragungsfunktion-Koeffizienten abzurufen. Verwenden Sie beispielsweise die folgenden Befehle, um die Übertragungsfunktion-Koeffizienten des Alpha-sensor Low-Pass-Filters abzurufen.
num = get_param(paths{1},'Numerator')num = '[1]'
denom = get_param(paths{1},'Denominator')denom = '[Tal,1]'
Rufen Sie eine Liste der Blocktypen im vdp-Modell ab.
Öffnen Sie das Beispiel. Laden Sie daraufhin das Modell vdp.
load_system('vdp')Rufen Sie eine Liste der Blockpfade und -Namen im vdp-Modell ab.
blockpaths = find_system('vdp','Type','Block');
Rufen Sie für jeden Block im vdp-Modell den Wert des BlockType-Parameters ab.
blocktypes = get_param(blockpaths,'BlockType')blocktypes = 12×1 cell
{'CustomCallbackButton'}
{'Constant' }
{'SubSystem' }
{'Product' }
{'Scope' }
{'Math' }
{'Sum' }
{'Sum' }
{'Integrator' }
{'Integrator' }
{'Outport' }
{'Outport' }
Sie können den Wert eines Modellparameters mithilfe der Funktion get_param mit diesen Eingabeargumenten abrufen:
Modellname
Modellparametername
Der Wert des IntegerOverflowMsg-Parameters gibt an, wie ein Modell mit Integer-Überläufen umgeht. Das Modell kann keine Meldung, eine Warnmeldung oder eine Fehlermeldung ausgeben.
Nehmen wir an, Sie möchten den Wert des Parameters IntegerOverflowMsg zweier Modelle vergleichen.
Öffnen Sie das Beispiel. Laden Sie daraufhin die Modelle vdp und f14.
load_system({'vdp','f14'})Rufen Sie den Wert des IntegerOverflowMsg-Parameters für die Modelle vdp und f14 ab.
vdpval = get_param('vdp','IntegerOverflowMsg'); f14val = get_param('f14','IntegerOverflowMsg');
Bei einem Integer-Überlauf gibt das Modell vdp eine Warnmeldung aus; das Modell f14 gibt keine Meldung aus.
Vergleichen Sie die zwei Parameterwerte mithilfe der strcmp-Funktion.
strcmp(vdpval,f14val)
ans = logical
0
Die strcmp-Funktion gibt 0 aus, was darauf hinweist, dass die zwei Modelle verschiedene Werte für den Parameter IntegerOverflowMsg aufweisen.
Sie können den Wert eines Modellparameters mithilfe der Funktion get_param mit diesen Eingabeargumenten abrufen:
Modellname
Modellparametername
Nehmen wir an, Sie möchten die Meldungsparameterwerte von zwei Modellen vergleichen, um konsistent zu gestalten, welche Situationen ohne Meldung, mit einer Warnmeldung und mit einer Fehlermeldung verarbeitet werden. Sie kennen jedoch nicht die Namen aller Meldungsparameter.
Öffnen Sie das Beispiel. Laden Sie daraufhin die Modelle vdp und f14.
load_system({'vdp','f14'})Rufen Sie eine Liste aller Modellparameter ab.
params = get_param('vdp','ObjectParameters');
Die Funktion gibt eine Struktur zurück. Erstellen Sie ein Zellenarray, das die Namen der Modellparameter umfasst.
names = fieldnames(params);
Meldungsparameter enden mit der Abkürzung Msg. Rufen Sie alle Modellparameternamen ab, die die Abkürzung Msg enthalten.
msgnames = names(contains(names,'Msg'));Vergleichen Sie die Meldungsparameterwerte der Modelle vdp und f14. Geben Sie die Namen der Parameter mit unterschiedlichen Werten aus.
vdpval = cell(1,length(msgnames)); f14val = vdpval; for i=1:length(msgnames) vdpVal{i} = get_param('vdp',msgnames{i}); f14Val{i} = get_param('f14',msgnames{i}); if(strcmp(vdpVal{i},f14Val{i})<1) disp(msgnames{i}) end end
IntegerOverflowMsg IntegerSaturationMsg
Zwei Meldungsparameter haben unterschiedliche Werte.
Um eine Liste der Optionen für diese Elemente abzurufen, verwenden Sie die get_param-Funktion mit dem Schlüsselwort options:
Ein Blockparameter
Ein Modellparameter
Objekteigenschaften, beispielsweise die Optionen für die horizontale Ausrichtung einer Anmerkung
Dieses Beispiel zeigt, wie Sie eine Liste der Optionen für einen Blockparameter, einen maskierten Parameter und einen Modellparameter abrufen.
Liste der Optionen für Blockparameter abrufen
Öffnen Sie das Beispiel. Laden Sie daraufhin das Modell vdp.
load_system('vdp')Rufen Sie eine Liste der Optionen für den Parameter Output signal type des Square-Blocks ab.
funcoptions = get_param('vdp/Square','options@OutputSignalType')
funcoptions = 1×3 cell
{'auto'} {'real'} {'complex'}
Liste der Optionen für maskierte Subsystem-Parameter abrufen
Rufen Sie eine Liste der Optionen für den Parameter Read/Write permissions des maskierten Subsystem-Blocks namens Mu ab.
get_param('vdp/Mu','options@Permissions')
ans = 1×3 cell
{'ReadWrite'} {'ReadOnly'} {'NoReadOrWrite'}
Liste der Optionen für Modellparameter abrufen
Rufen Sie eine Liste der Optionen für den Modellparameter namens AlgebraicLoopMsg ab.
get_param('vdp','options@AlgebraicLoopMsg')
ans = 1×3 cell
{'none'} {'warning'} {'error'}
Liste der Optionen für Anmerkungen abrufen
Suchen Sie die Anmerkungen im Modell vdp.
h = find_system(gcs,'FindAll','on','Type','annotation');
Geben Sie den Anmerkungstext entsprechend der Handles in der Matrix h aus.
get_param(h,'PlainText')ans = 3×1 cell
{'Copyright 2004-2024 The MathWorks, Inc.'}
{'Van der Pol Equation' }
{'x_1' =x_2↵↵x_2' =µ(1-x_1^2) x_2 - x_1' }
Rufen Sie eine Liste der Optionen für die horizontale Ausrichtung der Titel-Anmerkung 'Van der Pol Equation' ab.
get_param(h(2),'options@HorizontalAlignment')ans = 1×3 cell
{'left'} {'center'} {'right'}
Sie können den Wert eines maskierten Blockparameters mithilfe der Funktion get_param mit dem Schlüsselwort value abrufen.
Öffnen Sie das Beispiel. Öffnen Sie dann das vdp-Modell.
open_system('vdp')Rufen Sie den Wert des Parameters gain des maskierten Subsystem-Blocks namens Mu ab.
get_param('vdp/Mu','value@gain')
ans = 2
Doppelklicken Sie im Modell auf den Block.
Verschieben Sie auf der Maske den Schieberegler, der den gain-Parameter ändert.
Rufen Sie den Wert des gain-Parameters erneut ab.
get_param('vdp/Mu','value@gain')
ans = 2
Rufen Sie den Namen und Wert eines globalen Parameters ab.
Liste der globalen Parameternamen abrufen
Sie können eine Liste der globale Parameternamen abrufen, indem Sie den Unterschied zwischen dem Simulink®-Root-Parameter und den Modellparameternamen ermitteln.
Öffnen Sie das Beispiel. Laden Sie daraufhin das Modell vdp.
load_system('vdp')Rufen Sie die Namen aller Modellparameter ab.
modelparamnames = fieldnames(get_param('vdp','ObjectParameters'));
Rufen Sie eine Liste der Simulink-Root-Parameternamen ab.
rootparamnames = fieldnames(get_param(0,'ObjectParameters'));Rufen Sie die Namen der globalen Parameter ab, indem Sie den Unterschied zwischen den Listen der Root- und Modellparameternamen ermitteln.
globalparamnames = setdiff(rootparamnames,modelparamnames);
Globalen Parameterwert abrufen
Rufen Sie den Wert eines globalen Parameters ab.
globalparamval = get_param(0,'CurrentSystem')globalparamval = 'vdp'
Eingabeargumente
Name, Pfad oder Handle des Objekts oder Root, angegeben als Zeichenvektor, Zellenarray aus Zeichenvektoren, String Array, numerischer Skalar oder 0.
Wie Sie das Zielobjekt angeben, hängt von dessen Typ ab.
Modell – Name oder Handle des Modells.
Subsystem – Name oder Handle des Subsystems.
Bibliothek – Name oder Handle der Bibliothek.
Block – Pfad oder Handle des Blocks.
Zeile – Handle der Zeile.
Port – Handle des Ports.
Portelement – Pfad, der aus dem Modellnamen oder dem Subsystem-Blockpfad, einem Schrägstrich und dem Portnamen oder dem Bus-Element-Pfad besteht. Bei einem Bus-Element-Port stellt der Bus-Element-Pfad die Hierarchie vom Bus der obersten Ebene zum Zielelement dar, wobei jeder Name in der Hierarchie durch einen Punkt getrennt wird.
Informationen dazu, wie Sie Handles und Pfade erhalten, finden Sie unter Get Handles and Paths.
Geben Sie 0 an, um Root-Parameternamen abzurufen, einschließlich globaler Parameter und Modellparameter der aktuellen Simulink-Sitzung.
Globale Parameter umfassen Editor-Präferenzen und Simulink Coder™-Parameter.
Modellparameter umfassen Konfigurationsparameter, Simulink Coder-Parameter und Simulink Code Inspector™-Parameter.
Beispiel: 'vdp/Mu'
Beispiel: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'
Tipps
Wenn Sie mehrere Anrufe an
get_paramfür denselben Block senden, geben Sie den Block mit einem numerischen Handle an. Diese Methode ist effizienter als die Verwendung des vollständigen Blockpfads mitget_param. Verwenden SiegetSimulinkBlockHandle, um einen Block-Handle zu erhalten.Versuchen Sie nicht, die Nummer eines Handles manuell anzugeben, z. B.
5.007, da Sie in der Regel mehr Ziffern angeben müssen, als MATLAB® anzeigt. Weisen Sie den Handle einer Variablen zu und verwenden Sie diesen Variablennamen.
Datentypen: char | string | double
Parameter-, Eigenschafts- oder Attributname, angegeben als Zeichenvektor oder String-Skalar. Bei einigen Namen wird zwischen Groß- und Kleinschreibung unterschieden.
In dieser Tabelle sind Sonderfälle abgebildet.
| Angegebener Parameter | Ergebnis |
|---|---|
'ObjectParameters' | Parameternamen des angegebenen Objekts als separate Felder in einem Struktur-Array. |
'DialogParameters' | Blockdialogfeld-Parameternamen als separate Felder in einem Struktur-Array. Wenn der Block eine Maske aufweist, gibt die Funktion stattdessen die Maskenparameter zurück. |
'ParameterStruct' | Struktur mit den Parameternamen und deren aktuellen Werten für maskierte Blöcke. |
Informationen zu Parametern, Eigenschaften oder Attributen finden Sie in den Informationen zur programmgesteuerten Verwendung auf den entsprechenden Referenzseiten. Beispiel:
Modelle – Siehe die Referenzseiten für Konfigurationsparameter.
Blöcke – Siehe Common Block Properties und Block-Referenzseiten.
Ports – Siehe Signal Properties-Tool-Referenzseite.
Port-Elemente – Siehe die In Bus Element- und Out Bus Element-Blockreferenzseiten.
Beispiel: 'ObjectParameters'
Beispiel: 'Solver'
Beispiel: 'SimulationCommand'
Beispiel: 'Position'
Beispiel: 'NameLocation'
Datentypen: char | string
Ausgabeargumente
Parameterwert, zurückgegeben in einem vom Parametertyp festgelegten Format. Wenn Sie mehrere Objekte angeben, ist die Ausgabe ein Zellenarray.
In dieser Tabelle sind Sonderfälle abgebildet.
| Angegebener Parameter | Ergebnis |
|---|---|
'ObjectParameters' | Parameternamen des angegebenen Objekts als separate Felder in einem Struktur-Array. |
'DialogParameters' | Blockdialogfeld-Parameternamen als separate Felder in einem Struktur-Array. Wenn der Block eine Maske aufweist, gibt die Funktion stattdessen die Maskenparameter zurück. |
Wenn Sie die Root-Parameter durch Angeben von get_param(0,'ObjectParameters') abrufen, ist die Ausgabe value ein Struktur-Array mit den Rootparameternamen als separate Felder in der Struktur. Jedes Parameterfeld ist eine Struktur mit den folgenden Feldern:
Typ – Parametertyp-Werte sind
'boolean','string','int','real','point','rectangle','matrix','enum','ports'oder'list'.Enum – Zellenarray der Enumerations-Zeichenvektor-Werte, das nur für
'enum'-Parametertypen gilt.Attribute – Zellenarray aus Zeichenvektoren, die die Attribute eines Parameters festlegen. Die Werte sind
'read-write','read-only','read-only-if-compiled','write-only','dont-eval','always-save','never-save','nondirty'oder'simulation'.
Versionsverlauf
Eingeführt vor R2006a
Siehe auch
Funktionen
set_param|getSimulinkBlockHandle|find_system|gcb|gcs|bdroot
Tools
Blöcke
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)