Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

set_param

Impostare il valore del parametro di Simulink

Descrizione

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.

esempio

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 ulteriori informazioni sugli handle del blocco e sui percorsi, vedere Get Handles and Paths. Per un esempio su come ottenere il percorso del blocco, vedere Ottenimento dei percorsi del blocco.

Per informazioni su come ottenere i nomi dei parametri, vedere Ottenimento dei nomi dei parametri del blocco.

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 Ottenimento dei percorsi del blocco.

Per informazioni su come ottenere i nomi dei parametri, vedere Ottenimento dei nomi dei parametri del blocco.

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

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 Ottenimento dei nomi dei parametri del modello.

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 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. Per specificare più oggetti con un parametro comune, utilizzare un array di celle di vettori di caratteri, un array di stringhe o un array di handle. Tutti gli oggetti specificati devono avere il parametro specificato, diversamente la funzione restituisce un errore.

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:

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