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 entrue
, 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.high | High |
priority = priority.low | Low |
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
Historial de versiones
Introducido en R2008b