Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

get_param

Obtener nombres y valores de parámetros

Descripción

ejemplo

value = get_param(object,parameter) devuelve el valor 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

contraer todo

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 modelo slexAircraftExample.

  • 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ámetro Denominator.

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 Controller del modelo slexAircraftExample.

  • 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ámetro Denominator.

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

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: [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]'

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]'

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'             }

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 = 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'}

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

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

contraer todo

Nombre, ruta o identificador del objeto o de la raíz, especificados como vector de caracteres, arreglo de celdas de vectores de caracteres, escalar de cadena, 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 cadena, 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 con get_param. Utilice getSimulinkBlockHandle 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

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 especificadoResultado
'ObjectParameters'

Nombres de los parámetros del objeto especificado como campos separados en un arreglo de estructura.

'DialogParameters'

Nombres de los parámetros de cuadros de diálogo de bloques como campos separados en un arreglo de estructura. 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 herramientas 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

contraer todo

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 especificadoResultado
'ObjectParameters'

Nombres de los parámetros del objeto especificado como campos separados en un arreglo de estructura.

'DialogParameters'

Nombres de los parámetros de cuadros de diálogo de bloques como campos separados en un arreglo de estructura. 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 estructura 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