Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Consulta] Utilización de matrices de variables de estado en MATLAB
Autor Mensaje
nanohueso Sin conexión
Campeon del cubo Rubik
Thats what she said
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 187
Agradecimientos dados: 132
Agradecimientos: 14 en 10 posts
Registro en: Feb 2012
Mensaje: #1
[Consulta] Utilización de matrices de variables de estado en MATLAB Trabajo practico Teoría de Circuitos I
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
30-08-2013 19:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.984
Agradecimientos dados: 9
Agradecimientos: 148 en 64 posts
Registro en: Apr 2008
Mensaje: #2
RE: [Consulta] Utilización de matrices de variables de estado en MATLAB
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
(Este mensaje fue modificado por última vez en: 30-08-2013 21:33 por Dem0.)
30-08-2013 21:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Dem0 recibio 1 Gracias por este post
nanohueso (02-09-2013)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.