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
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
Para obtener más información sobre los identificadores de bloque y las rutas, consulte Get Handles and Paths.
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
Controllerdel 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.
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
Controllerdel 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 = 490.0016
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]'
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: [1×1 struct]
Denominator: [1×1 struct]
ParameterTunability: [1×1 struct]
AbsoluteTolerance: [1×1 struct]
ContinuousStateAttributes: [1×1 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]'
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 una ruta completa de bloque de un modelo con una palabra clave determinada en el nombre. Para más información sobre cómo obtener rutas de bloque, consulte Get Handles and Paths.
Supongamos que desea obtener los coeficientes de la función de transferencia de todos los bloques Transfer Function que actúan como filtros en el modelo slexAircraftExample.
Abra el ejemplo. Luego, cargue el modelo slexAircraftExample.
mdl = 'slexAircraftExample';
load_system(mdl)Obtenga las rutas de todos los bloques del modelo slexAircraftExample cuyo nombre contenga la palabra filter utilizando la función find_system. Utilice expresiones regulares, configure la búsqueda para que no distinga entre mayúsculas y minúsculas, y limítela a bloques. Para utilizar expresiones regulares, establezca el valor del parámetro Regexp en 'on'. Para configurar la búsqueda para que no distinga entre mayúsculas y minúsculas, establezca el valor del parámetro CaseSensitive en 'off'. Para limitar la búsqueda a bloques, establezca el valor del parámetro Type en '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' }
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 dicho nivel contenga. 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.
Utilice las rutas 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(paths{1},'Numerator')num = '[1]'
denom = get_param(paths{1},'Denominator')denom = '[Tal,1]'
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 = 12×1 cell
{'CustomCallbackButton'}
{'Constant' }
{'SubSystem' }
{'Product' }
{'Scope' }
{'Math' }
{'Sum' }
{'Sum' }
{'Integrator' }
{'Integrator' }
{'Outport' }
{'Outport' }
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.
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.
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 = 1×3 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 = 1×3 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 = 1×3 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 = 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' }
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 = 1×3 cell
{'left'} {'center'} {'right'}
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 = 2
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 = 2
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
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 de puerto: ruta compuesta por el nombre del modelo o la ruta del bloque del subsistema, una barra diagonal y el nombre del puerto o la ruta del elemento de bus. En el caso de un puerto de elementos de bus, la ruta de elementos de bus proporciona la jerarquía desde el bus de nivel superior hasta el elemento objetivo, y separa cada nombre de la jerarquía con un punto.
Para más información sobre cómo obtener identificadores y rutas, consulte Get Handles and Paths.
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_parampara 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. UtilicegetSimulinkBlockHandlepara 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 ilustra MATLAB®. Asigne el identificador a una variable y utilice ese nombre de variable.
Tipos de datos: char | string | double
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. |
'ParameterStruct' | Estructura que contiene nombres de parámetros y sus valores actuales para cualquier bloque enmascarado. |
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 de puerto: consulte las páginas de referencia de los 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
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
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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- 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)