UTNianos

Versión completa: [Consulta] Utilización de matrices de variables de estado en MATLAB
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Para los que ya sepan utilizar MATLAB:

Alguien tiene algún claro ejemplo de MATLAB para simular circuitos con matrices de variables de estado.

Spoiler: Mostrar
function Xp=Ec_Dif_Pasa_Bajos_Butt_Ej_4(t,X)

vi=10;
R=1e3;
L=100e-6;
C=100e-9;

A=[0 1;-1/(L*C) -1/(R*C)];
B=[0 1/(L*C)]';

Xp=A*X+B*vi;
Ahi encontre un ejemplo, que a ver, se entiende que utiliza variables de estado, lo que no me cierra son las matrices X y Xp , como es que las declara? Tengo entendido que en MATLAB no podes declarar matrices con palabras,variables sin llenar
Eso es una definición de función.

La función se llama "Ec_Dif_Pasa_Bajos_Butt_Ej_4". Recibe como parámetros una variable "t" y una "X", y retorna "Xp".


http://www-gsi.dec.usc.es/~alberto/lsc/m...iones1.htm

Cita:La creación de funciones en MATLAB presenta algunas diferencias respecto de la elaboración de programas. La más relevante es la siguiente:

Una función incluye en la primera línea del fichero una cabecera donde se especifica su nombre, cuáles y cuántos argumentos tiene, y cuáles y cuántos valores devuelve. Dicha cabecera se identifica, además, por la palabra function, tal y como se muestra en el siguiente ejemplo:

function a=producto(x,y)

donde se define una función de nombre producto, que tiene dos argumentos (x e y) y devuelve un valor.

El cuerpo de la función contiene las sentencias que sean necesarias para calcular los valores que la función va a devolver. Para calcular dichos valores se utilizarán tanto los argumentos de la función como todas aquellas otras variables auxiliares que sean precisas. Hay que tener en cuenta que las variables que no sean argumentos son locales a la función (es decir, no toman valores desde el espacio de trabajo de MATLAB), y por tanto deberán ser inicializadas en ésta.

Una función que realiza el producto de variables podría ser la siguiente (NOTA: esta es una función de ejemplo, ya que sabemos que el producto puede hacerse simplemente con el operador '*'):

function z=producto(x,y)

z=x*y;

end

una vez guardada la función (en un fichero de nombre producto.m) podremos utilizarla tanto desde la línea de comandos de MATLAB como desde cualquier programa o desde otra función. Para ello hay que tener en cuenta lo siguiente:

- Debemos llamar a la función utilizando tantos argumentos como tenga ésta (dos en el caso del ejemplo

- Los argumentos que se utilizan en la llamada a la función deben ser expresiones válidas, que tengan un valor conocido (argumentos verdaderos). Su nombre no tiene por qué coincidir con el que se ha puesto en la función.

- La llamada a la función es, a todos los efectos, una expresión, por lo cual se puede incluir como operando en una expresión más amplia, como parte de una sentencia de asignación. Veámoslo a continuación.

Ejemplos de llamada a la función desde la línea de comandos

* Con argumentos escalares

>>s=4;

>>t=9;

>>producto(s, t)


ans =

36



* Con argumentos matrices



>>s=[0 2; 4 5];

>>t=[9 8; 6 7];

>>producto(s, t)


ans =

12 14
66 67



* Llamada en una sentencia de asignación

>>r=producto(s,t)


r =

12 14
66 67



* Llamada dentro de otra expresión

>>det(producto(s,t))

ans =

-120
URLs de referencia