Main Content

set_param

Impostare il valore del parametro di Simulink

Descrizione

esempio

set_param(object,parameter1,value1,...,parameterN,valueN) imposta il parametro di Simulink® parameter specificato sul valore specificato di value 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.

Per impostare più valori di parametri per l'oggetto di destinazione, chiamare la funzione set_param una sola volta con più argomenti nome-valore, anziché chiamare separatamente la funzione per ciascun parametro. L'impostazione di più parametri con una chiamata di funzione è efficiente poiché una chiamata valuta i parametri una sola volta. Se uno qualsiasi dei nomi o dei valori dei parametri non è valido, la funzione non imposta alcun parametro.

Esempi

comprimi tutto

È possibile impostare il valore di un parametro del blocco utilizzando la funzione set_param on 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

  • Nuovo valore che si desidera assegnare al parametro

Per informazioni su come ottenere il percorso del blocco, vedere Get Block Paths and Names.

Per informazioni su come ottenere i nomi dei parametri, vedere Get Block Parameter Names.

In questo esempio, si impostano i coefficienti della funzione di trasferimento specificata da un blocco Transfer Function denominato Alpha-sensor Low-pass Filter.

  • Il blocco si trova nel sottosistema Controller del modello slexAircraftExample.

  • I coefficienti del numeratore della funzione di trasferimento sono memorizzati nel parametro Numerator. I coefficienti del denominatore della funzione di trasferimento sono memorizzati nel parametro Denominator.

  • Il nuovo valore che si desidera assegnare al numeratore è 1.2. Il nuovo valore che si desidera assegnare al denominatore è [0.8*Tal,1], dove Tal è una variabile.

Aprire l'esempio. Quindi, caricare il modello slexAircraftExample.

mdl = 'slexAircraftExample';
load_system(mdl)

Impostare i coefficienti della funzione di trasferimento.

path = [mdl,'/Controller/Alpha-sensor Low-pass Filter'];
set_param(path,'Numerator','1.2','Denominator','[0.8*Tal,1]');

Per verificare i valori dei parametri Numerator e Denominator, utilizzare la funzione get_param.

num = get_param(path,'Numerator')
num = 
'1.2'
denom = get_param(path,'Denominator')
denom = 
'[0.8*Tal,1]'

Quando il percorso del blocco è lungo e si desidera impostare più parametri, si consiglia di utilizzare gli handle del blocco.

È possibile impostare il valore di un parametro del blocco utilizzando la funzione set_param on 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

  • Nuovo valore che si desidera assegnare al parametro

Per informazioni su come ottenere il percorso del blocco, vedere Get Block Paths and Names.

Per informazioni su come ottenere i nomi dei parametri, vedere Get Block Parameter Names.

In questo esempio, si impostano i coefficienti della funzione di trasferimento specificata da un blocco Transfer Function denominato Alpha-sensor Low-pass Filter.

  • Il blocco si trova nel sottosistema Controller del modello slexAircraftExample.

  • I coefficienti del numeratore della funzione di trasferimento sono memorizzati nel parametro Numerator. I coefficienti del denominatore della funzione di trasferimento sono memorizzati nel parametro Denominator.

  • Il nuovo valore che si desidera assegnare al numeratore è 1.2. Il nuovo valore che si desidera assegnare al denominatore è [0.8*Tal,1], dove Tal è una variabile.

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 = 464.0007

Per impostare i valori dei parametri, specificare il blocco utilizzando l'handle. L'handle contiene un doppio. Non tentare di inserire manualmente il numero di un handle, perché potrebbe essere necessario specificare più cifre di quelle visualizzate da MATLAB®. Invece, assegnare l'handle a una variabile e utilizzare il nome della variabile per specificare il blocco.

set_param(h,'Numerator','1.2','Denominator','[0.8*Tal,1]');

È possibile impostare il valore di un parametro del modello utilizzando la funzione set_param on questi argomenti di input:

  • Nome del modello

  • Nome del parametro

  • Nuovo valore che si desidera assegnare al parametro

Per informazioni su come ottenere i nomi dei parametri del modello, vedere Get Model Parameter Names.

Aprire l'esempio. Quindi, caricare il modello f14.

load_system('f14')

Impostare il risolutore del modello f14 su ode15s e il tempo di arresto su 3000 secondi.

set_param('f14','Solver','ode15s','StopTime','3000')

Per verificare i valori dei parametri Solver e StopTime, utilizzare la funzione get_param.

solver = get_param('f14','Solver')
solver = 
'ode15s'
stoptime = get_param('f14','StopTime')
stoptime = 
'3000'

Aprire l'esempio. Quindi, aprire il modello f14.

open_system('f14')

Ottenere l'handle del blocco Signal Generator denominato Pilot.

h = getSimulinkBlockHandle('f14/Pilot');

Ottenere la posizione del blocco.

pos = get_param(h,'Position')
pos = 1×4

    15    18    55    42

La funzione restituisce la posizione del blocco, specificata come vettore di coordinate misurate in pixel: [left top right bottom].

Spostate il blocco a destra.

pos = [pos(1)+20 pos(2) pos(3)+20 pos(4)];
set_param(h,'Position',pos);

Spostare il blocco verso l'alto.

pos = [pos(1) pos(2)-20 pos(3) pos(4)-20];
set_param(h,'Position',pos);

Allungare il blocco in orizzontale.

pos = [pos(1)/4 pos(2) pos(3) pos(4)];
set_param(h,'Position',pos);

Aprire l'esempio. Quindi, aprire il modello f14.

open_system('f14')

Il modello ha un blocco Signal Generator denominato Pilot. Spostare il nome del blocco all'inizio del blocco stesso.

set_param('f14/Pilot','NameLocation','top')

Argomenti di input

comprimi tutto

Nome, percorso o handle dell'oggetto, specificato come vettore di caratteri, scalare di stringhe o scalare numerico.

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 della porta dell'elemento bus: percorso del blocco del componente del modello con etichetta dell'elemento. L'elemento può essere qualsiasi elemento della porta, come un bus di primo livello, un bus annidato, un segnale o un messaggio.

Esempio 'vdp/Mu'

Esempio 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'

Suggerimenti

  • Se si effettuano più chiamate a set_param per lo stesso blocco, specificare il blocco con un handle numerico. Questo metodo è più efficiente rispetto all'utilizzo del percorso del blocco completo con set_param. Utilizzare getSimulinkBlockHandle per 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.

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 (Proprietà del segnale).

  • Elementi della porta dell'elemento bus: vedere le pagine di riferimento dei blocchi In Bus Element e Out Bus Element.

Per ottenere tutti i parametri di un oggetto di destinazione, utilizzare la funzione get_param con l'opzione 'ObjectParameters'. Alcuni dei parametri restituiti possono essere solo per uso interno.

Esempio 'Solver'

Esempio 'SimulationCommand'

Esempio 'Position'

Esempio 'NameLocation'

Tipi di dati: char | string

Valore del parametro, specificato nel formato determinato dal tipo di parametro. Alcuni valori dei parametri rispettano la distinzione tra maiuscole e minuscole. I valori sono spesso vettori di caratteri o scalari di stringhe, ma possono anche essere scalari numerici, array e di altro tipo.

Molti valori dei parametri del blocco sono specificati come vettori di caratteri o scalari di stringhe. Le due eccezioni sono Position che è specificato come vettore e UserData che può essere di qualsiasi tipo di dati.

Limitazioni

  • Se si utilizza matlab -nodisplay per avviare una sessione, non è possibile utilizzare set_param per eseguire una simulazione. La modalità -nodisplay non supporta la simulazione utilizzando set_param. Utilizzare invece la funzione sim.

  • Quando si utilizza la funzione set_param per rinominare un blocco o un segnale, i seguenti nomi non sono validi: nomi vuoti, nomi che contengono solo caratteri di nuova riga e nomi che iniziano o terminano con /.

Suggerimenti

Dopo aver impostato i parametri nel workspace di MATLAB, aggiornare il diagramma per vedere le modifiche in un modello.

set_param(model,'SimulationCommand','Update')

Cronologia versioni

Introduzione prima di R2006a