get_param
Obtener nombres y valores de parámetros
Descripción
devuelve el valor value
= get_param(object
,parameter
)value
del parámetro especificado parameter
para el objetivo, especificado como object
. El objetivo puede ser un modelo, subsistema, biblioteca, bloque, línea, puerto o un elemento del puerto de elementos de bus, especificado como una ruta o un identificador.
Abra o cargue el modelo, subsistema o biblioteca relacionados de Simulink® antes de llamar a esta función.
Ejemplos
Obtener valores de parámetro de bloque utilizando rutas de bloque
Puede obtener el valor de un parámetro de bloque utilizando la función get_param
con estos argumentos de entrada:
Identificador de bloque o ruta completa del bloque, incluido el nombre del bloque; por ejemplo,
'myModel/mySubsystem/myblock'
Nombre del parámetro
En este ejemplo, se obtienen los coeficientes de la función de transferencia especificada por un bloque Transfer Function denominado Alpha-sensor Low-pass Filter
.
El bloque está ubicado en el subsistema
Controller
del modeloslexAircraftExample
.Los coeficientes del numerador de la función de transferencia se almacenan en el parámetro
Numerator
. Los coeficientes del denominador de la función de transferencia se almacenan en el parámetroDenominator
.
Abra el ejemplo. Luego, cargue el modelo slexAircraftExample
.
mdl = 'slexAircraftExample';
load_system(mdl)
Obtenga los coeficientes de la función de transferencia.
path = [mdl,'/Controller/Alpha-sensor Low-pass Filter']; num = get_param(path,'Numerator')
num = '[1]'
denom = get_param(path,'Denominator')
denom = '[Tal,1]'
Si la ruta del bloque es larga y desea obtener varios parámetros, considere usar identificadores de bloque.
Obtener valores de parámetro de bloque utilizando identificadores de bloque
Puede obtener el valor de un parámetro de bloque utilizando la función get_param
con estos argumentos de entrada:
Identificador de bloque o ruta completa del bloque, incluido el nombre del bloque; por ejemplo,
'myModel/mySubsystem/myblock'
Nombre del parámetro
En este ejemplo, se obtienen los coeficientes de la función de transferencia especificada por un bloque Transfer Function denominado Alpha-sensor Low-pass Filter
.
El bloque está ubicado en el subsistema
Controller
del modeloslexAircraftExample
.Los coeficientes del numerador de la función de transferencia se almacenan en el parámetro
Numerator
. Los coeficientes del denominador de la función de transferencia se almacenan en el parámetroDenominator
.
Abra el ejemplo. Luego, obtenga el identificador de bloque utilizando la función getSimulinkBlockHandle
. Para obtener el identificador de bloque y cargar el modelo de forma simultánea, especifique el segundo argumento para la función getSimulinkBlockHandle
como true
.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true)
h = 489.0011
Para obtener los valores del parámetro, especifique el bloque que usa el identificador. No introduzca el valor del identificador manualmente. Es posible que el valor de salida de la función getSimulinkBlockHandle
en la ventana de comandos de MATLAB® no coincida con el valor del identificador debido al redondeo. En su lugar, asigne el identificador a una variable y, luego, utilice el nombre de la variable para especificar el bloque. En este ejemplo, el valor está asignado a la variable denominada h
.
num = get_param(h,'Numerator')
num = '[1]'
denom = get_param(h,'Denominator')
denom = '[Tal,1]'
Obtener nombres de parámetros de bloque
Puede obtener el valor de un parámetro de bloque utilizando la función get_param
con estos argumentos de entrada:
Identificador de bloque o ruta completa del bloque, incluido el nombre del bloque; por ejemplo,
'myModel/mySubsystem/myblock'
Nombre del parámetro
Este ejemplo muestra cómo obtener el nombre de un parámetro.
Supongamos que desea obtener los coeficientes de la función de transferencia del bloque Transfer Function denominado Alpha-sensor Low-pass Filter
en el modelo slexAircraftExample
. Para ello, debe obtener los nombres de los parámetros que almacenan los coeficientes de la función de transferencia.
Abra el ejemplo.
Obtenga el identificador del bloque Transfer Function denominado Alpha-sensor Low-pass Filter
. Para obtener el identificador de bloque y cargar el modelo de forma simultánea, especifique el segundo argumento para la función getSimulinkBlockHandle
como true
.
path = 'slexAircraftExample/Controller/Alpha-sensor Low-pass Filter';
h = getSimulinkBlockHandle(path,true);
Obtenga los nombres de todos los parámetros de bloque del bloque Transfer Function denominado Alpha-sensor Low-pass Filter
utilizando la función get_param
.
get_param(h,'DialogParameters')
ans = struct with fields:
Numerator: [1x1 struct]
Denominator: [1x1 struct]
ParameterTunability: [1x1 struct]
AbsoluteTolerance: [1x1 struct]
ContinuousStateAttributes: [1x1 struct]
La salida muestra que los coeficientes de la función de transferencia están especificados utilizando un parámetro Numerator
o un parámetro Denominator
. Utilice estos nombres de parámetro para obtener los coeficientes del numerador y denominador de la función de transferencia.
num = get_param(h,'Numerator'); denom = get_param(h,'Denominator')
denom = '[Tal,1]'
Obtener nombres y rutas de bloque
Puede obtener el valor de un parámetro de bloque utilizando la función get_param
con estos argumentos de entrada:
Identificador de bloque o ruta completa del bloque, incluido el nombre del bloque; por ejemplo,
'myModel/mySubsystem/myblock'
Nombre del parámetro
Este ejemplo muestra cómo obtener el nombre y la ruta de un bloque completo.
Obtener rutas y nombres
Supongamos que desea obtener los coeficientes de la función de transferencia de todos los bloques Transfer Function en el modelo slexAircraftExample
que actúan como filtros. Para ello, se deben obtener los nombres y las rutas de todos los bloques Transfer Function en el modelo que actúan como filtros.
Abra el ejemplo. Luego, cargue el modelo slexAircraftExample
.
mdl = 'slexAircraftExample';
load_system(mdl)
Obtenga las rutas de todos los bloques del modelo slexAircraftExample
utilizando la función find_system
.
paths = find_system(mdl,'Type','Block');
Cuando no se especifica la profundidad de búsqueda, la función find_system
encuentra todos los bloques del nivel especificado de la jerarquía del modelo y todos los niveles inferiores que el nivel concreto contiene. Dado que slexAircraftExample
es el nivel superior de la jerarquía del modelo, el comando devuelve todos los bloques de cada nivel de la jerarquía del modelo.
De forma alternativa, si conoce el subsistema en el que están los filtros, utilice la función get_param
. La función get_param
solo devuelve las rutas de los bloques que se encuentran en el nivel especificado de la jerarquía del modelo, no en cualquiera de los subsistemas que contiene el nivel concreto. En este ejemplo, los filtros se encuentran en el nivel superior del subsistema Controller
.
paths=get_param(mdl+'/Controller','blocks');
Filtrar rutas y nombres por palabra clave
En el modelo slexAircraftExample
, los bloques Transfer Function que actúan como filtros tienen la palabra filter
o Filter
en el nombre de bloque. Una vez tenga la lista de rutas de bloques, obtenga los que contienen la palabra filter
o Filter
.
filterpaths = paths(contains(paths,{'Filter','filter'}));
Obtener los valores de los parámetros de bloque
Utilice los nombres de bloque para obtener los coeficientes de la función de transferencia. Por ejemplo, utilice estos comandos para obtener los coeficientes de la función de transferencia para el filtro Alpha-sensor Low-Pass
.
num = get_param(filterpaths{1},'Numerator'); denom = get_param(filterpaths{1},'Denominator')
denom = '[Tal,1]'
Mostrar los tipos de bloques
Obtenga una lista de los tipos de bloques en el modelo vdp
.
Abra el ejemplo. Luego, cargue el modelo vdp
.
load_system('vdp')
Obtenga una lista de nombres y rutas de bloque para el modelo vdp
.
blockpaths = find_system('vdp','Type','Block');
Para cada bloque del modelo vdp
, obtenga el valor del parámetro BlockType
.
blocktypes = get_param(blockpaths,'BlockType')
blocktypes = 12x1 cell
{'CustomCallbackButton'}
{'Constant' }
{'SubSystem' }
{'Product' }
{'Scope' }
{'Math' }
{'Sum' }
{'Sum' }
{'Integrator' }
{'Integrator' }
{'Outport' }
{'Outport' }
Obtener los valores de parámetros de un modelo
Puede obtener el valor de un parámetro de un modelo utilizando la función get_param
con estos argumentos de entrada:
Nombre del modelo
Nombre de parámetro del modelo
El valor del parámetro IntegerOverflowMsg
indica cómo un modelo gestiona el desbordamiento de enteros. El modelo puede generar un mensaje de advertencia, un mensaje de error o ningún mensaje.
Supongamos que desea comparar el valor del parámetro IntegerOverflowMsg
de dos modelos.
Abra el ejemplo. Luego, cargue los modelos vdp
y f14
.
load_system({'vdp','f14'})
Obtenga el valor del parámetro IntegerOverflowMsg
para los modelos vdp
y f14
.
vdpval = get_param('vdp','IntegerOverflowMsg'); f14val = get_param('f14','IntegerOverflowMsg');
Cuando se produce un desbordamiento de enteros, el modelo vdp
genera una advertencia como salida, mientras que el modelo f14
no genera ningún mensaje.
Compare los valores de los dos parámetros utilizando la función strcmp
.
strcmp(vdpval,f14val)
ans = logical
0
La función strcmp
genera 0
como salida, lo que indica que los dos modelos tienen valores diferentes para el parámetro IntegerOverflowMsg
.
Obtener los nombres de los parámetros de un modelo
Puede obtener el valor de un parámetro de un modelo utilizando la función get_param
con estos argumentos de entrada:
Nombre del modelo
Nombre de parámetro del modelo
Supongamos que desea comparar los valores de parámetros de mensaje de dos modelos para garantizar la congruencia en cuanto a qué situaciones se gestionan sin mensaje, con mensaje de advertencia y con mensaje de error. Sin embargo, no conoce los nombres de todos los parámetros de mensajes.
Abra el ejemplo. Luego, cargue los modelos vdp
y f14
.
load_system({'vdp','f14'})
Obtenga una lista de todos los parámetros del modelo.
params = get_param('vdp','ObjectParameters');
La función devuelve una estructura. Cree un arreglo de celdas que contenga los nombres de los parámetros del modelo.
names = fieldnames(params);
Los parámetros de mensajes terminan con la abreviatura Msg
. Obtenga los nombres de todos los parámetros de modelo que contengan la abreviatura Msg
.
msgnames = names(contains(names,'Msg'));
Compare los valores de los parámetros de mensajes de los modelos vdp
y f14
. Obtenga como salida los nombres de los parámetros que tengan valores distintos.
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
Dos parámetros de mensajes tienen valores distintos.
Obtener opciones para los valores de parámetros y los valores de propiedad de objeto
Para obtener una lista de opciones para cualquiera de estos valores, utilice la función get_param
con la palabra clave options
:
Un parámetro de un bloque
Un parámetro de un modelo
Propiedades de objeto como las opciones de alineación horizontal para una anotación
Este ejemplo muestra cómo obtener una lista de opciones para un parámetro de bloque, un parámetro enmascarado y un parámetro de modelo.
Obtener la lista de opciones para un parámetro de bloque
Abra el ejemplo. Luego, cargue el modelo vdp
.
load_system('vdp')
Obtenga una lista de opciones para el parámetro Output signal type
del bloque Square.
funcoptions = get_param('vdp/Square','options@OutputSignalType')
funcoptions = 1x3 cell
{'auto'} {'real'} {'complex'}
Obtener la lista de opciones para un parámetro enmascarado de un subsistema
Obtenga una lista de opciones para el parámetro Read/Write permissions
del bloque Subsystem enmascarado denominado Mu
.
get_param('vdp/Mu','options@Permissions')
ans = 1x3 cell
{'ReadWrite'} {'ReadOnly'} {'NoReadOrWrite'}
Obtener la lista de opciones para un parámetro de modelo
Obtenga una lista de opciones para el parámetro de modelo denominado AlgebraicLoopMsg
.
get_param('vdp','options@AlgebraicLoopMsg')
ans = 1x3 cell
{'none'} {'warning'} {'error'}
Obtener la lista de opciones para una anotación
Encuentre las anotaciones en el modelo vdp
.
h = find_system(gcs,'FindAll','on','Type','annotation');
Obtenga como salida el texto de la anotación correspondiente a los identificadores de la matriz h
.
get_param(h,'PlainText')
ans = 3x1 cell
{'Copyright 2004-2022 The MathWorks, Inc.'}
{'Van der Pol Equation' }
{'x'' - µ(1-x^2) x' + x = 0' }
Obtenga una lista de opciones para la alineación horizontal de la anotación del título, 'Van der Pol Equation'
.
get_param(h(2),'options@HorizontalAlignment')
ans = 1x3 cell
{'left'} {'center'} {'right'}
Obtener el valor del parámetro enmascarado
Puede acceder al valor de un parámetro enmascarado de un bloque usando la función get_param
con la palabra clave value
.
Abra el ejemplo. Luego, abra el modelo vdp
.
open_system('vdp')
Obtenga el valor del parámetro gain
del bloque Subsystem enmascarado denominado Mu
.
get_param('vdp/Mu','value@gain')
ans = 1
En el modelo, haga doble clic en el bloque.
En la máscara, mueva el control deslizante que cambia el parámetro gain
.
Obtenga el valor del parámetro gain
de nuevo.
get_param('vdp/Mu','value@gain')
ans = 1
Obtener valores y nombres de parámetros de raíz
Obtenga el nombre y el valor de un parámetro global.
Obtener una lista de nombres de parámetros globales
Puede obtener una lista de nombres de los parámetros globales encontrando la diferencia entre los parámetros de raíz de Simulink® y los nombres de los parámetros de modelo.
Abra el ejemplo. Luego, cargue el modelo vdp
.
load_system('vdp')
Obtenga los nombres de todos los parámetros del modelo.
modelparamnames = fieldnames(get_param('vdp','ObjectParameters'));
Obtenga una lista de los nombres de los parámetros de raíz de Simulink.
rootparamnames = fieldnames(get_param(0,'ObjectParameters'));
Obtenga los nombres de los parámetros globales encontrando la diferencia entre las listas de los nombres de los parámetros de raíz y de los parámetros de modelo.
globalparamnames = setdiff(rootparamnames,modelparamnames);
Obtener el valor de un parámetro global
Obtenga el valor de un parámetro global.
globalparamval = get_param(0,'CurrentSystem')
globalparamval = 'vdp'
Argumentos de entrada
object
— Nombre, ruta o identificador del objeto o de la raíz
vector de caracteres | arreglo de celdas de vectores de caracteres | arreglo de cadenas | escalar numérico | 0
Nombre, ruta o identificador del objeto o de la raíz, especificados como vector de caracteres, arreglo de celdas de vectores de caracteres, arreglo de cadenas, escalar numérico o 0
.
La forma de especificar el objetivo depende de su tipo.
Modelo: nombre o identificador del modelo.
Subsistema: nombre o identificador del subsistema.
Biblioteca: nombre o identificador de la biblioteca.
Bloque: ruta o identificador del bloque.
Línea: identificador de la línea.
Puerto: identificador del puerto.
Elemento del puerto de elementos de bus: ruta del bloque del componente de modelo con etiqueta de elemento. El elemento puede ser cualquier elemento de puerto, como un bus de nivel superior, un bus anidado, una señal o un mensaje.
Para especificar varios objetos con un parámetro común, use un arreglo de celdas de vectores de caracteres, un arreglo de cadenas, o un arreglo de identificadores. Todos los objetos especificados deben tener el parámetro especificado, de lo contrario, la función devuelve un error.
Especifique 0
para obtener nombres de los parámetros de raíz, incluidos los parámetros globales y los parámetros modelo para la sesión actual de Simulink.
Los parámetros globales incluyen preferencias del editor y parámetros de Simulink Coder™.
Los parámetros de modelo incluyen parámetros de configuración, parámetros de Simulink Coder y parámetros de Simulink Code Inspector™.
Ejemplo: 'vdp/Mu'
Ejemplo: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'
Sugerencias
Si realiza varias llamadas a
get_param
para el mismo bloque, especifique el bloque con un identificador numérico. Este método es más eficiente que utilizar la ruta completa del bloque conget_param
. UtilicegetSimulinkBlockHandle
para obtener un identificador de bloque.No intente especificar manualmente el número de un identificador; por ejemplo
5.007
, porque normalmente necesita especificar más dígitos de los que muestra MATLAB®. Asigne el identificador a una variable y utilice ese nombre de variable.
Tipos de datos: char
| string
| double
parameter
— Nombre de parámetro, propiedad o atributo
vector de caracteres | escalar de cadena
Nombre de parámetro, propiedad o atributo, especificados como vector de caracteres o escalar de cadena. Algunos nombres distinguen entre mayúsculas y minúsculas.
Esta tabla muestra casos especiales.
Parámetro especificado | Resultado |
---|---|
'ObjectParameters' | Nombres de los parámetros del objeto especificado como campos separados en un arreglo de estructuras. |
'DialogParameters' | Nombres de los parámetros de cuadros de diálogo de bloques como campos separados en un arreglo de estructuras. Si el bloque tiene una máscara, la función devuelve los parámetros de máscara en su lugar. |
Para obtener información sobre parámetros, propiedades o atributos, consulte la información de uso programático de las correspondientes páginas de referencia. Por ejemplo:
Modelos: consulte las páginas de referencia del parámetro de configuración.
Bloques: consulte Common Block Properties y las páginas de referencia de bloques.
Puertos: consulte la página de referencia de la herramienta Signal Properties.
Elementos del puerto de elementos de bus: consulte las páginas de referencia de bloques In Bus Element y Out Bus Element.
Ejemplo: 'ObjectParameters'
Ejemplo: 'Solver'
Ejemplo: 'SimulationCommand'
Ejemplo: 'Position'
Ejemplo: 'NameLocation'
Tipos de datos: char
| string
Argumentos de salida
value
— Valor del parámetro
formato determinado por el tipo de parámetro
Valor del parámetro, devuelto en el formato determinado por el tipo de parámetro. Si especifica varios objetos, la salida es un arreglo de celdas.
Esta tabla muestra casos especiales.
Parámetro especificado | Resultado |
---|---|
'ObjectParameters' | Nombres de los parámetros del objeto especificado como campos separados en un arreglo de estructuras. |
'DialogParameters' | Nombres de los parámetros de cuadros de diálogo de bloques como campos separados en un arreglo de estructuras. Si el bloque tiene una máscara, la función devuelve los parámetros de máscara en su lugar. |
Si obtiene los parámetros de raíz especificando get_param(0,'ObjectParameters')
, la salida value
es un arreglo de estructuras con los nombres de los parámetros de raíz como campos separados en la estructura. Cada campo de parámetro es una estructura que contiene estos campos:
Tipo: los valores de tipo parámetro son
'boolean'
,'string'
,'int'
,'real'
,'point'
,'rectangle'
,'matrix'
,'enum'
,'ports'
o'list'
.Enum: arreglo de celdas de valores de vector de caracteres de una enumeración que solo se aplica a tipos de parámetros
'enum'
.Atributos: arreglo de celdas de vectores de caracteres que definen los atributos del parámetro. Los valores son
'read-write'
,'read-only'
,'read-only-if-compiled'
,'write-only'
,'dont-eval'
,'always-save'
,'never-save'
,'nondirty'
o'simulation'
.
Historial de versiones
Introducido antes de R2006a
Consulte también
Funciones
set_param
|getSimulinkBlockHandle
|find_system
|gcb
|gcs
|bdroot
Herramientas
Bloques
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)