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.

set_param

Establece el valor del parámetro de Simulink

Descripción

ejemplo

set_param(object,parameter1,value1,...,parameterN,valueN) establece el parámetro especificado parameter de Simulink® en el valor especificado value para el objeto objetivo especificado por object. El objetivo puede ser un modelo, subsistema, biblioteca, bloque, línea, puerto o un elemento del puerto de elementos de bus.

Para establecer múltiples valores de parámetros para el objetivo, llame a la función set_param una vez con varios argumentos nombre-valor en lugar de llamar a la función por separado para cada parámetro. Establecer varios parámetros con una llamada a función es eficiente porque una llamada evalúa los parámetros solo una vez. Si algún nombre o valor de parámetro no es válido, la función no establece ningún parámetro.

Ejemplos

contraer todo

Puede establecer el valor de un parámetro de bloque utilizando la función set_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

  • Valor nuevo que desea asignar al parámetro

Para obtener información sobre cómo obtener la ruta del bloque, consulte Obtener nombres y rutas de bloque.

Para obtener información sobre cómo obtener los nombres de los parámetros, consulte Obtener nombres de parámetros de bloque.

En este ejemplo, establezca 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.

  • El nuevo valor que desea asignar al numerador es 1.2. El nuevo valor que desea asignar al denominador es [0.8*Tal,1], donde Tal es una variable.

Abra el ejemplo. Luego, cargue el modelo slexAircraftExample.

mdl = 'slexAircraftExample';
load_system(mdl)

Establezca los coeficientes de la función de transferencia.

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

Para comprobar los valores de los parámetros Numerator y Denominator, utilice la función get_param.

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

Cuando la ruta del bloque es larga y desea establecer varios parámetros, considere utilizar identificadores de bloque.

Puede establecer el valor de un parámetro de bloque utilizando la función set_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

  • Valor nuevo que desea asignar al parámetro

Para obtener información sobre cómo obtener la ruta del bloque, consulte Obtener nombres y rutas de bloque.

Para obtener información sobre cómo obtener los nombres de los parámetros, consulte Obtener nombres de parámetros de bloque.

En este ejemplo, establezca 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.

  • El nuevo valor que desea asignar al numerador es 1.2. El nuevo valor que desea asignar al denominador es [0.8*Tal,1], donde Tal es una variable.

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.0027

Para establecer los valores del parámetro, especifique el bloque que usa el identificador. El identificador contiene un doble. No intente introducir manualmente el número de un identificador porque puede ser necesario especificar más dígitos de los que muestra MATLAB®. En su lugar, asigne el identificador a una variable y utilice el nombre de variable para especificar el bloque.

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

Puede establecer el valor de un parámetro de un modelo utilizando la función set_param con estos argumentos de entrada:

  • Nombre del modelo

  • Nombre del parámetro

  • Valor nuevo que desea asignar al parámetro

Para obtener información sobre cómo obtener nombres de parámetros de modelo, consulte Obtener los nombres de los parámetros de un modelo.

Abra el ejemplo. Luego, cargue el modelo f14.

load_system('f14')

Establezca el solver del modelo f14 en ode15s y el tiempo de detención en 3000 segundos.

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

Para comprobar los valores de los parámetros Solver y StopTime, utilice la función get_param.

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

Abra el ejemplo. Luego, abra el modelo f14.

open_system('f14')

Obtenga el identificador del bloque Signal Generator denominado Pilot.

h = getSimulinkBlockHandle('f14/Pilot');

Obtenga la posición del bloque.

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

    15    18    55    42

La función devuelve la posición del bloque, especificada como un vector de coordenadas medido en píxeles: [left top right bottom].

Mueva el bloque a la derecha.

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

Mueva el bloque hacia arriba.

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

Alargue el bloque horizontalmente.

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

Abra el ejemplo. Luego, abra el modelo f14.

open_system('f14')

El modelo tiene un bloque Signal Generator denominado Pilot. Mueva el nombre del bloque por encima del bloque.

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

Argumentos de entrada

contraer todo

Nombre, ruta o identificador del objeto, especificado como vector de caracteres, escalar de cadena o escalar numérico.

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.

Ejemplo: 'vdp/Mu'

Ejemplo: 'mymodel/Subsystem1/Out1.nonsinusoidal.saw'

Sugerencias

  • Si realiza varias llamadas a set_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 set_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.

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.

Para obtener todos los parámetros de un objetivo, utilice la función get_param con la opción 'ObjectParameters'. Es posible que algunos de los parámetros devueltos sean únicamente para uso interno.

Ejemplo: 'Solver'

Ejemplo: 'SimulationCommand'

Ejemplo: 'Position'

Ejemplo: 'NameLocation'

Tipos de datos: char | string

Valor del parámetro, especificado en el formato determinado por el tipo de parámetro. Algunos valores de los parámetros distinguen entre mayúsculas y minúsculas. Los valores suelen son vectores de caracteres o escalares de cadena, pero también pueden ser escalares numéricos, arreglos y de otros tipo.

Muchos valores de los parámetros de bloques están especificados como vectores de caracteres o escalares de cadena. Dos excepciones son Position, que está especificado como un vector y UserData, que puede ser cualquier tipo de datos.

Limitaciones

  • Si utiliza matlab -nodisplay para iniciar una sesión, no puede utilizar set_param para ejecutar una simulación. El modo -nodisplay no admite la simulación con set_param. Use la función sim en su lugar.

  • Cuando use la función set_param para modificar el nombre de un bloque o señal, estos nombres no son válidos: nombres vacíos, nombres que contienen únicamente caracteres y nombres que comienzan o terminan con /.

Sugerencias

Después de establecer parámetros en el área de trabajo de MATLAB actualice el diagrama para ver los cambios en un modelo.

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

Historial de versiones

Introducido antes de R2006a