Contenido principal

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.

variables

Declarar variables de dominio o componente

Sección principal: component | domain

Sintaxis

variables
    v1 = {value,'unit'};
end

Descripción

variables inicia una sección de declaración de variables que termina con una palabra clave end:

  • En un archivo de componente, esta sección contiene declaraciones de las variables asociadas con el componente.

  • En un archivo de dominio, esta sección contiene declaraciones de las variables Across asociadas con el dominio. Además, los archivos de dominio deben tener una sección separada de declaración de variables, con el atributo Balancing establecido en true, que contiene declaraciones de las variables Through asociadas con el dominio.

Variables de componente

En un archivo de componente, la sintaxis siguiente define una variable Across, Through o interna, comp_var1, como un valor con unidad. value es el valor inicial. unit es una cadena de unidad válida, definida en el registro de unidades.

variables
    comp_var1 = {value,'unit'};
end

Para las variables de componente, puede especificar adicionalmente la prioridad de inicialización, el rango de inicialización aceptable, y el valor nominal y la unidad declarando la variable como un arreglo de campo.

variables
    comp_var2 = {value = {value,'unit'},
                 priority = priority.value,
                 imin={value,'unit'},imax={value,'unit'},
                 nominal = {value,'unit'}};
end

El primer campo del arreglo es value (valor con unidad). Los otros campos son opcionales y pueden presentarse en cualquier orden.

El campo priority puede tener uno de los tres valores que se enumeran en la tabla siguiente:

Campo de propiedad en lenguaje de Simscape™Prioridad predeterminada resultante en el cuadro de diálogo del bloque
priority = priority.highHigh
priority = priority.lowLow
priority = priority.none (esta es la opción predeterminada)None

Nota

Se recomienda utilizar el atributo priority con moderación. El valor de prioridad predeterminado, priority.none (que es equivalente a no incluir el parámetro priority), es adecuado en la mayoría de los casos. El usuario del bloque puede modificar el valor de prioridad de las variables según sea necesario, en la pestaña Variables del cuadro de diálogo del bloque, antes de la simulación.

Los campos imin y imax permiten especificar los valores mínimo y máximo aceptables de la inicialización de variables, por ejemplo:

variables
  x = {value={0,'deg'},imin={0,'deg'},imax={360,'deg'}};
end

Cuando existen varias soluciones de inicialización, esta sintaxis permite guiar el solver hacia la solución preferida. Para obtener más información, consulte Block-Level Variable Initialization. Si el rango especificado no se puede satisfacer durante la inicialización, el solver genera un mensaje de error. El solver intenta satisfacer el rango de inicialización de una variable independientemente de si su prioridad de inicialización es alta, baja o ninguna.

El rango de inicialización predeterminado es (-inf,inf). Por tanto, no es preciso especificar ambos valores para definir el rango; basta con especificar imin o imax. Por ejemplo, utilice esta sintaxis para limitar la temperatura a valores positivos:

variables
  T = {value={293.15,'K'},imin={0,'K'}};
end

Cuando especifica imin o imax, estos valores definen un rango abierto.

Nota

El usuario del bloque no tiene control sobre el rango de inicialización de la variable. Solo el autor del bloque puede especificar los valores mínimo y máximo aceptables para la inicialización de variables en el archivo de componente, tanto para variables continuas como para variables de evento.

El campo nominal debe ser un valor con unidad, donde value es el valor nominal, es decir, la magnitud esperada de la variable. unit es una cadena de unidad válida, definida en el registro de unidades.

Nota

Se recomienda utilizar el atributo nominal con moderación. Los valores nominales predeterminados, que se toman de la tabla de valores-unidades del modelo, son adecuados en la mayoría de los casos. El usuario del bloque puede modificar también los valores nominales y unidades de bloques individuales utilizando el cuadro de diálogo de bloque o las funciones set_param y get_param, en caso necesario. Para obtener más información, consulte Modify Nominal Values for a Block Variable.

También puede especificar el nombre de la variable como quiera que aparezca en la sección Initial Targets del cuadro de diálogo del bloque, como un comentario:

variables
    comp_var1 = {value,'unit'}; % Variable name
end

Variables de dominio

En un archivo de dominio, la sintaxis siguiente define una variable Across, domain_across_var1, como un valor con unidad. value es el valor inicial. unit es una cadena de unidad válida, definida en el registro de unidades.

variables
    domain_across_var1 = {value,'unit'};
end

Puede especificar rangos de inicialización para variables Across de dominio, por ejemplo, para excluir los valores negativos para la presión o la temperatura. La sintaxis es la misma que para las variables de componente:

variables
    domain_across_var1 = {value={value,'unit'},imin={value,'unit'},imax={value,'unit'}};
end

En un archivo de dominio, la sintaxis siguiente define una variable Through, domain_through_var1, como un valor con unidad. value es el valor inicial. unit es una cadena de unidad válida, definida en el registro de unidades.

variables(Balancing = true)
    domain_through_var1 = {value,'unit'};
end

Ejemplos

expandir todo

En este ejemplo, se inicializa la variable w como 0 rad/s:

variables
    w = {0,'rad/s'}; % Angular velocity
end

En la sección Initial Targets del cuadro de diálogo de bloque, esta variable se denomina Angular velocity y tendrá la prioridad de inicialización predeterminada de ninguna. El usuario del bloque podrá cambiar esta prioridad de inicialización según sea necesario.

En este ejemplo, se inicializa la variable x como 0 mm, con alta prioridad:

variables
    x = {value = {0,'mm'},priority = priority.high}; % Spring deformation
end

En la sección Initial Targets del cuadro de diálogo de bloque, esta variable se denomina Spring deformation y tendrá la prioridad de inicialización alta de forma predeterminada. El usuario del bloque podrá cambiar esta prioridad de inicialización según sea necesario.

En este ejemplo, se inicializa la variable Through t (par motor) del dominio como 1 N*m:

variables(Balancing = true)
    t = {1,'N*m'};
end

Historial de versiones

Introducido en R2008b