get_param
Ottenere i nomi e i valori dei parametri
Descrizione
restituisce il valore value = get_param(object,parameter)value del parametro specificato parameter per l'oggetto di destinazione specificato da object. L'oggetto di destinazione può essere un modello, un sottosistema, una libreria, un blocco, una riga, una porta o un elemento della porta del bus, specificato come percorso o come handle.
Prima di chiamare questa funzione, aprire o caricare il modello, il sottosistema o la libreria di Simulink®.
Esempi
È possibile ottenere il valore di un parametro del blocco utilizzando la funzione get_param con questi argomenti di input:
Handle del blocco o percorso completo del blocco, compreso il nome del blocco, ad esempio
'myModel/mySubsystem/myblock'Nome del parametro
Per ulteriori informazioni sugli handle del blocco e sui percorsi, vedere Get Handles and Paths.
In questo esempio, si ottengono i coefficienti della funzione di trasferimento specificata da un blocco Transfer Function denominato Alpha-sensor Low-pass Filter.
Il blocco si trova nel sottosistema
Controllerdel modelloslexAircraftExample.I coefficienti del numeratore della funzione di trasferimento sono memorizzati nel parametro
Numerator. I coefficienti del denominatore della funzione di trasferimento sono memorizzati nel parametroDenominator.
Aprire l'esempio. Quindi, caricare il modello slexAircraftExample.
mdl = 'slexAircraftExample';
load_system(mdl)Ottenere i coefficienti della funzione di trasferimento.
path = [mdl,'/Controller/Alpha-sensor Low-pass Filter']; num = get_param(path,'Numerator')
num = '[1]'
denom = get_param(path,'Denominator')denom = '[Tal,1]'
Quando il percorso del blocco è lungo e si desidera ottenere più parametri, si consiglia di utilizzare gli handle del blocco.
È possibile ottenere il valore di un parametro del blocco utilizzando la funzione get_param con questi argomenti di input:
Handle del blocco o percorso completo del blocco, compreso il nome del blocco, ad esempio
'myModel/mySubsystem/myblock'Nome del parametro
In questo esempio, si ottengono i coefficienti della funzione di trasferimento specificata da un blocco Transfer Function denominato Alpha-sensor Low-pass Filter.
Il blocco si trova nel sottosistema
Controllerdel modelloslexAircraftExample.I coefficienti del numeratore della funzione di trasferimento sono memorizzati nel parametro
Numerator. I coefficienti del denominatore della funzione di trasferimento sono memorizzati nel parametroDenominator.
Aprire l'esempio. Quindi, ottenere l'handle del blocco utilizzando la funzione getSimulinkBlockHandle. Per ottenere contemporaneamente l'handle del blocco e caricare il modello, specificare il secondo argomento della funzione getSimulinkBlockHandle come true.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)h = 490.0016
Per ottenere i valori dei parametri, specificare il blocco utilizzando l'handle. Non inserire il valore dell'handle manualmente. Il valore generato dalla funzione getSimulinkBlockHandle nella finestra di comando di MATLAB® potrebbe non corrispondere al valore dell'handle a causa dell'arrotondamento. Assegnare invece l'handle a una variabile, quindi utilizzare il nome della variabile per specificare il blocco. In questo esempio, il valore viene assegnato alla variabile denominata h.
num = get_param(h,'Numerator')num = '[1]'
denom = get_param(h,'Denominator')denom = '[Tal,1]'
È possibile ottenere il valore di un parametro del blocco utilizzando la funzione get_param con questi argomenti di input:
Handle del blocco o percorso completo del blocco, compreso il nome del blocco, ad esempio
'myModel/mySubsystem/myblock'Nome del parametro
Questo esempio mostra come ottenere il nome del parametro.
Si supponga di voler ottenere i coefficienti della funzione di trasferimento del blocco Transfer Function denominato Alpha-sensor Low-pass Filter del modello slexAircraftExample. A tal fine, è necessario ottenere i nomi dei parametri che memorizzano i coefficienti della funzione di trasferimento.
Aprire l'esempio.
Ottenere l'handle del blocco Transfer Function denominato Alpha-sensor Low-pass Filter. Per ottenere contemporaneamente l'handle del blocco e caricare il modello, specificare il secondo argomento della funzione getSimulinkBlockHandle come true.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true);Ottenere i nomi di tutti i parametri del blocco Transfer Function denominato Alpha-sensor Low-pass Filter utilizzando la funzione get_param.
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]
L'output mostra che i coefficienti della funzione di trasferimento sono specificati utilizzando un parametroNumerator e un parametro Denominator. Utilizzare questi nomi di parametri per ottenere i coefficienti al numeratore e al denominatore della funzione di trasferimento.
num = get_param(h,'Numerator'); denom = get_param(h,'Denominator')
denom = '[Tal,1]'
È possibile ottenere il valore di un parametro del blocco utilizzando la funzione get_param con questi argomenti di input:
Handle del blocco o percorso completo del blocco, compreso il nome del blocco, ad esempio
'myModel/mySubsystem/myblock'Nome del parametro
Questo esempio mostra come ottenere il percorso completo di tutti i blocchi di un modello, il cui nome contiene una determinata parola chiave. Per ulteriori informazioni su come ottenere i percorsi del blocco, vedere Get Handles and Paths.
Si supponga di voler ottenere i coefficienti della funzione di trasferimento di tutti i blocchi Transfer Function che agiscono come filtri nel modello slexAircraftExample.
Aprire l'esempio. Quindi, caricare il modello slexAircraftExample.
mdl = 'slexAircraftExample';
load_system(mdl)Ottenere i percorsi di tutti i blocchi nel modello slexAircraftExample il cui nome contiene la parola filter utilizzando la funzione find_system. Utilizzare espressioni regolari, rendere la ricerca indipendente dalla distinzione tra maiuscole e minuscole e limitarla ai blocchi. Per utilizzare espressioni regolari, impostare il valore del parametro Regexp su 'on'. Per rendere la ricerca indipendente dalla distinzione tra maiuscole e minuscole, impostare il valore del parametro CaseSensitive su 'off'. Per limitare la ricerca ai blocchi, impostare il valore del parametro Type su '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' }
Quando non si specifica alcun limite di ricerca, la funzione find_system trova tutti i blocchi nel livello specificato della gerarchia del modello e in tutti i livelli inferiori in esso contenuti. Poiché slexAircraftExample è il livello superiore della gerarchia del modello, il comando restituisce tutti i blocchi di ogni livello della gerarchia del modello.
Utilizzare i percorsi dei blocchi per ottenere i coefficienti della funzione di trasferimento. Ad esempio, utilizzare questi comandi per ottenere i coefficienti della funzione di trasferimento del filtro Alpha-sensor Low-Pass.
num = get_param(paths{1},'Numerator')num = '[1]'
denom = get_param(paths{1},'Denominator')denom = '[Tal,1]'
Ottenere un elenco dei tipi di blocchi del modello vdp.
Aprire l'esempio. Quindi, caricare il modello vdp.
load_system('vdp')Ottenere un elenco dei percorsi e dei nomi dei blocchi del modello vdp.
blockpaths = find_system('vdp','Type','Block');
Per ciascun blocco del modello vdp, ottenere il valore del parametro BlockType.
blocktypes = get_param(blockpaths,'BlockType')blocktypes = 12×1 cell
{'CustomCallbackButton'}
{'Constant' }
{'SubSystem' }
{'Product' }
{'Scope' }
{'Math' }
{'Sum' }
{'Sum' }
{'Integrator' }
{'Integrator' }
{'Outport' }
{'Outport' }
È possibile ottenere il valore di un parametro del modello utilizzando la funzione get_param con questi argomenti di input:
Nome del modello
Nome del parametro del modello
Il valore del parametro IntegerOverflowMsg indica come un modello gestisce l'overflow dei numeri interi. Il modello può non generare alcun messaggio oppure generare un messaggio di avvertimento o di errore.
Si supponga di voler confrontare il valore del parametro IntegerOverflowMsg di due modelli.
Aprire l'esempio. Quindi, caricare i modelli vdp e f14.
load_system({'vdp','f14'})Ottenere il valore del parametro IntegerOverflowMsg dei modelli vdp e f14.
vdpval = get_param('vdp','IntegerOverflowMsg'); f14val = get_param('f14','IntegerOverflowMsg');
Quando si verifica un overflow di numeri interi, il modello vdp genera un avviso, mentre il modello f14 non genera alcun messaggio.
Confrontare i due valori dei parametri utilizzando la funzione strcmp.
strcmp(vdpval,f14val)
ans = logical
0
La funzione strcmp genera 0, che indica che i valori del parametro IntegerOverflowMsg dei due modelli sono diversi.
È possibile ottenere il valore di un parametro del modello utilizzando la funzione get_param con questi argomenti di input:
Nome del modello
Nome del parametro del modello
Si supponga di voler confrontare i valori dei parametri dei messaggi di due modelli per garantire la coerenza in termini di situazioni gestite senza messaggi, con un messaggio di avviso o con un messaggio di errore. Tuttavia, non si conoscono i nomi di tutti i parametri del messaggio.
Aprire l'esempio. Quindi, caricare i modelli vdp e f14.
load_system({'vdp','f14'})Ottenere un elenco di tutti i parametri del modello.
params = get_param('vdp','ObjectParameters');
La funzione restituisce una struttura. Creare un array di celle che contenga i nomi dei parametri del modello.
names = fieldnames(params);
I parametri dei messaggi terminano con l'abbreviazione Msg. Ottenere tutti i nomi dei parametri del modello che contengono l'abbreviazione Msg.
msgnames = names(contains(names,'Msg'));Confrontare i valori dei parametri dei messaggi dei modelli vdp e f14. Generare i nomi dei parametri che presentano valori diversi.
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
Due parametri del messaggio presentano valori diversi.
Per ottenere un elenco di opzioni per uno qualsiasi di questi valori, utilizzare la funzione get_param con la parola chiave options:
Un parametro del blocco
Un parametro del modello
Proprietà dell'oggetto, ad esempio le opzioni di allineamento orizzontale per un'annotazione
Questo esempio mostra come ottenere un elenco di opzioni per un parametro del blocco, un parametro mascherato e un parametro del modello.
Ottenimento dell'elenco delle opzioni per il parametro del blocco
Aprire l'esempio. Quindi, caricare il modello vdp.
load_system('vdp')Ottenere un elenco di opzioni per il parametro Output signal type del blocco Square.
funcoptions = get_param('vdp/Square','options@OutputSignalType')
funcoptions = 1×3 cell
{'auto'} {'real'} {'complex'}
Ottenimento dell'elenco delle opzioni per il parametro del sottosistema mascherato
Ottenere un elenco di opzioni per il parametro Read/Write permissions del blocco Subsystem mascherato, denominato Mu.
get_param('vdp/Mu','options@Permissions')
ans = 1×3 cell
{'ReadWrite'} {'ReadOnly'} {'NoReadOrWrite'}
Ottenimento dell'elenco delle opzioni per il parametro del modello
Ottenere un elenco di opzioni per il parametro del modello denominato AlgebraicLoopMsg.
get_param('vdp','options@AlgebraicLoopMsg')
ans = 1×3 cell
{'none'} {'warning'} {'error'}
Ottenimento dell'elenco delle opzioni per l'annotazione
Identificare le annotazioni nel modello vdp.
h = find_system(gcs,'FindAll','on','Type','annotation');
Generare il testo dell'annotazione corrispondente agli handle nella matrice h.
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' }
Ottenere un elenco di opzioni per l'allineamento orizzontale dell'annotazione del titolo 'Van der Pol Equation'.
get_param(h(2),'options@HorizontalAlignment')ans = 1×3 cell
{'left'} {'center'} {'right'}
È possibile accedere al valore di un parametro di un blocco mascherato utilizzando la funzione get_param con la parola chiave value.
Aprire l'esempio. Quindi, aprire il modello vdp.
open_system('vdp')Ottenere il valore del parametro gain del blocco Subsystem mascherato, denominato Mu.
get_param('vdp/Mu','value@gain')
ans = 2
Nel modello, fare doppio clic sul blocco.
Nella maschera, spostare il cursore che modifica il parametro gain.
Ottenere nuovamente il valore del parametro gain.
get_param('vdp/Mu','value@gain')
ans = 2
Ottenere il nome e il valore di un parametro globale.
Ottenimento dell'elenco dei nomi dei parametri globali
È possibile ottenere un elenco dei nomi dei parametri globali identificando la differenza tra il parametro della radice di Simulink® e i nomi dei parametri del modello.
Aprire l'esempio. Quindi, caricare il modello vdp.
load_system('vdp')Ottenere i nomi di tutti i parametri del modello.
modelparamnames = fieldnames(get_param('vdp','ObjectParameters'));
Ottenere un elenco dei nomi dei parametri della radice di Simulink.
rootparamnames = fieldnames(get_param(0,'ObjectParameters'));Ottenere i nomi dei parametri globali identificando la differenza tra gli elenchi dei nomi dei parametri della radice e del modello.
globalparamnames = setdiff(rootparamnames,modelparamnames);
Ottenimento del valore del parametro globale
Ottenere il valore di un parametro globale.
globalparamval = get_param(0,'CurrentSystem')globalparamval = 'vdp'
Argomenti di input
Nome, percorso o handle dell'oggetto o della radice, specificato come vettore di caratteri, array di celle di vettori di caratteri, array di stringhe, scalare numerico o 0.
Il modo in cui si specifica l'oggetto di destinazione dipende dal tipo di oggetto.
Modello: nome del modello o handle.
Sottosistema: nome del sottosistema o handle.
Libreria: nome della libreria o handle.
Blocco: percorso del blocco o handle.
Riga: handle della riga.
Porta: handle della porta.
Elemento porta: percorso composto dal nome del modello o dal percorso del blocco Subsystem, da una barra obliqua e dal nome della porta o dal percorso dell'elemento bus. Per una porta dell'elemento bus, il percorso dell'elemento bus fornisce la gerarchia dal bus di livello superiore all'elemento di destinazione, separando ogni nome nella gerarchia con un punto.
Per informazioni su come ottenere gli handle e i percorsi, vedere Get Handles and Paths.
Specificare 0 per ottenere i nomi dei parametri della radice, compresi i parametri globali e i parametri del modello per la sessione corrente di Simulink.
I parametri globali comprendono le preferenze dell'Editor e i parametri di Simulink Coder™.
I parametri del modello includono i parametri di configurazione, i parametri di Simulink Coder e i parametri di Simulink Code Inspector™.
Esempio 'vdp/Mu'
Esempio 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'
Suggerimenti
Se si effettuano più chiamate a
get_paramper lo stesso blocco, specificare il blocco con un handle numerico. Questo metodo è più efficiente rispetto all'utilizzo del percorso del blocco completo conget_param. UtilizzaregetSimulinkBlockHandleper ottenere un handle del blocco.Non tentare di specificare manualmente il numero di un handle, ad esempio
5.007, perché di solito è necessario specificare più cifre di quelle visualizzate da MATLAB®. Assegnare l'handle a una variabile e utilizzare il nome della variabile.
Tipi di dati: char | string | double
Nome del parametro, della proprietà o dell'attributo, specificato come vettore di caratteri o scalare di stringhe. Alcuni nomi rispettano la distinzione tra maiuscole e minuscole.
La tabella seguente mostra i casi speciali.
| Parametro specificato | Risultato |
|---|---|
'ObjectParameters' | Nomi dei parametri dell'oggetto specificato come campi separati in un array di strutture. |
'DialogParameters' | Nomi dei parametri della finestra di dialogo del blocco come campi separati in un array di strutture. Se il blocco ha una maschera, la funzione restituisce invece i parametri della maschera. |
'ParameterStruct' | Struttura contenente i nomi dei parametri e i rispettivi valori correnti di qualsiasi blocco mascherato. |
Per informazioni sui parametri, le proprietà o gli attributi, vedere le informazioni sull'uso programmatico nelle pagine di riferimento corrispondenti. Ad esempio:
Modelli: vedere le pagine di riferimento dei parametri di configurazione.
Blocchi: vedere Common Block Properties e le pagine di riferimento dei blocchi.
Porte: vedere la pagina di riferimento dello strumento Signal Properties.
Elementi della porta: vedere le pagine di riferimento dei blocchi In Bus Element e Out Bus Element.
Esempio 'ObjectParameters'
Esempio 'Solver'
Esempio 'SimulationCommand'
Esempio 'Position'
Esempio 'NameLocation'
Tipi di dati: char | string
Argomenti di output
Valore del parametro, restituito nel formato determinato dal tipo di parametro. Se si specificano più oggetti, l'output è un array di celle.
La tabella seguente mostra i casi speciali.
| Parametro specificato | Risultato |
|---|---|
'ObjectParameters' | Nomi dei parametri dell'oggetto specificato come campi separati in un array di strutture. |
'DialogParameters' | Nomi dei parametri della finestra di dialogo del blocco come campi separati in un array di strutture. Se il blocco ha una maschera, la funzione restituisce invece i parametri della maschera. |
Se si ottengono i parametri della radice specificando get_param(0,'ObjectParameters'), l'output value è un array di strutture con i nomi dei parametri della radice come campi separati nella struttura. Ogni campo dei parametri è una struttura contenente questi campi:
Tipo: i valori del tipo di parametro sono
'boolean','string','int','real','point','rectangle','matrix','enum','ports'o'list'.Enumerato: array di celle dei valori del vettore di caratteri di enumerazione che si applica solo ai tipi di parametri
'enum'.Attributi: array di celle di vettori di caratteri che definiscono gli attributi del parametro. I valori sono
'read-write','read-only','read-only-if-compiled','write-only','dont-eval','always-save','never-save','nondirty'o'simulation'.
Cronologia versioni
Introduzione prima di R2006a
Vedi anche
Funzioni
set_param|getSimulinkBlockHandle|find_system|gcb|gcs|bdroot
Strumenti
Blocchi
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.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- 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)