LaTeX

sábado, 12 de mayo de 2012

JAVA con jEdit (1º PRÁCTICA)

En esta práctica hemos realizado 3 programas:

1º- Hello World.
2º- Suma de dos números.
3º- Applet para trazar una recta entre dos puntos.


Para ellos hemos usado el jEdit para escribir tanto el codigo fuente tanto compilarlo y probar su funcionamiento.

Para instalar jEdit en nuestro ordenador solo tenemos que ir a http://www.jedit.org/index.php?page=download y elegir nuestro sistema operativo. Normalmente nos viene sin ningún plugin, el que nos hará falta es el de "Console", que le encontramos en la sección de plugins http://plugins.jedit.org/list.php

El mecanismo, en lineas generales, se trata de escribir el codigo fuente en Java en la zona de escritura del jEdit y luego compilarlo en Plugins > Console > Compile Current Buffer. Finalmente lo ejecutaremos en Plugins > Console > Run Current Buffer.


HELLO WORLD

PASOS A SEGUIR:

1º Creamos un archivo llamado Hello1.java con el siguiente código:


class Hello1 {
    public static void main (String args[]) {
        System.out.println("Hello World!");
    }
}




2º Una vez escrito el código hay que guardarlo con el mismo nombre con el que se ha publicado añadiendole la extensión "java", es decir, Hello1.java. Si no se realiza este paso correctamente el programa dará error.


3º Hay que compilar el programa a bytecode, para ello tenemos que hacer lo siguiente (ventana superior): Plugins > Console > Compile Current Buffer.


4º Después de haberlo compilado hay que ejecutarlo, para ello acudimos otra vez a la ventana superior y hacemos lo siguiente: Plugins > Console > Run Current Buffer.




Programa 1: Hello World




SUMA DE NÚMEROS

PASOS A SEGUIR:

1º Creamos un archivo llamado SumarNumeros.java con el siguiente código:


//----JAVA SUMA DE DOS VARIABLES.
import javax.swing.JOptionPane;


public class SumarNumeros {


      public static void main ( String args[] )
      {
            String strNumero1;
            String strNumero2;
            int intNumero1;
            int intNumero2;
            int suma;
            strNumero1 = JOptionPane.showInputDialog ( "Ingrese el entero 1" );
            strNumero2 = JOptionPane.showInputDialog ( "Ingrese el entero 2" );
            intNumero1 = Integer.parseInt ( strNumero1 );
            intNumero2 = Integer.parseInt ( strNumero2 );


            suma = intNumero1 + intNumero2;
          
           JOptionPane.showMessageDialog (
                  null, " La suma es " + suma, " Resultado,",
                  JOptionPane.PLAIN_MESSAGE );
           System.exit ( 0 );
      }
}




2º Una vez escrito e código, seguimos los mismo pasos descritos en el ejercicio anterior.



Programa 2: Sumar Números


 JAVA APPLETS

        
Un programa escrito en Java, por ejemplo Ejemplo.java y compilado a bytecode en el archivo Ejemplo.class, se puede ejecutar en un navegador (Mozilla, Exploresr, etc.).
 Esto se hace creando un archivo .html en el cual hay que poner la llamada a la ejecución del programa compilado, de la forma:

<html>
    <head>
        <title> Ejemplo de Applet </title>
    </head>
    <body>
        This is the applet:<P>
        <applet code="Ejemplo.class" width=200 HEIGHT=150>
        </applet>
    </body>
</html> 



SIMPLE LINE

PASOS A SEGUIR:

1º Creamos un archivo llamado SimpleLine.java con el siguiente código:

Archivo Java:

import java.applet.*;
import java.awt.*;
public class SimpleLine extends applet {
       public void paint ( Gaphics g ) {
              g.drawLine ( O, O, this.getSize().width, this.getSize().height);
       }
}

Archivo html:

<html>
<head>  <title>  hello world  </title>  </head>
<body>
        This is the applet:<P>
        <applet code = "SimpleLine.class" width = "150" height ="50">
        </applet>
</body>
</html>



2º Guardamos el archivo con el mismo nombre (sino, dará error) con el que lo hemos publicado añadiendo la extensión "java".


3º Compilamos el archivo como en los ejercicios anteriores.

4º A la hora de ejecutarlo se puede utilizar un navegador, por ejemplo: Mozilla. 
    Por ello creamos el archivo html, para que se pueda ejecutar en un navegador.


Programa 3: Simple Line (Applet)






"MATLAB" (3º PRÁCTICA)

En esta práctica hemos empezado a usar el Matlab como herramienta del Control, haciendo uso de Simulink para elaborar diagramas de bloques y ver mediante una gráfica sus respuestas temporales. También lo haremos de forma mas "manual" usando la transformada de LaPlace.




SISTEMA DE PRIMER ORDEN



Vamos a hacer un diagrama de bloques, haciendo uso de las herramientas de Simulink. 
Para abrir la pantala donde iremos poniendo todos los bloques,tenemos que ir a File/New/Model y se nos abrirá una ventana en blanco donde arrastraremos los elementos de Simulink.




Para añadir ese bloque de función de transferencia hemos tenido que ir al boton de la barra de herramientas que pone "Simulink" y luego en Continuous/Transfer Fcn. Tenemos que arrastrar hasta la ventana que hemos abierto anteriormente. A continuación pinchamos doble click en Transfer Fcn y ponemos entre corchetes los coeficientes del polinomio del numerador y denominador entre corchetes. Por ejemplo:

Para x^2+x+1 tendriamos que poner: [1 1 1]

En nuestro caso queremos G=A/(s+a) donde A=10 y a=2

A continuación vamos a poner delante del bloque de función de transferencia un bloque que contenga la función "step". Para ello vamos en Simulink a Sources y arrastramos el "Step". Y detras del bloque de Transfer Fcn, pondremos un bloque de "Scope", que lo encontramos en Sinks.

Pinchamos doble click en el bloque de step y ponemos los parametros, que en nuestro caso son:

step time=0
initial value=0
final value=5
step time=0

Por último, unimos con flechas los 3 bloques.

Ya estamos en condiciones de ejecutar nuestro diagrama y observar la respuesta temporal del sistema ante una entrada "escalón". Para ello vamos a Simulation/Play y luego pinchamos doble click en el bloque de scope y damos a el botón de los catalejor. Observaremos la gráfica correspondiente.









SISTEMA DE SEGUNDO ORDEN

Ahora haremos lo mismo pero como una función de 2º grado. Los parametros que usaremos son los siguientes:

xi=0.2 (coeficiente de amortiguamiento)
wn=7 (pulsación natural)
A=2

Los bloques serían los mismos, cambiando el numerador y el denominador del bloque de función de transferencia por:

A*(wn)^2/(s^2+2*wn*xi*wn^2)

Habría que escribir los coeficientes:

[A*wn^2]/[1 2*wn*xi wn^2]






Ahora vamos a hacer un diagrama algo mas complejo:


El sumador y el bloque de gain estan en Math Operations.

En este caso el bloque de función de transferencia contiene la función: 1/(a*s^2+bs) y el bloque gain: c

Donde a=2 b=3 c=5





RESPUESTA TEMPORAL A PARTIR DE LA TRANSFORMADA DE LAPLACE


Primero lo haremos con el sistema de primer orden:

G=A/(s+a)

U=1/s (transformada de LaPlace de la función step)

U-->G-->Y

Y(s)=G(s)*U=A/(s*(s+a))

y(t)=L^-1[Y(s)]  (Tranformada inversa de LaPlace de Y(s))

Matlab


A=10
a=2
syms t s
Y=A/((s+a)*s)
y=ilaplace(Y,s,t)
ezplot(y,[0,5]),axis([0,5,0,7])

  
Ahora haremos lo mismo, pero con el sistema de 2º Orden:

Matlab

A=2
wn=7
xi=0,2
syms t s
Y=A*wn^2/(s*(s^2+2*xi*wn*s+wn^2))
y=ilaplace(Y,s,t)
ezplot(y,[0,5]),axis([0,5,0,7])




domingo, 6 de mayo de 2012

"MATLAB" (2º PRÁCTICA)

¿Qué es Matlab?

Matlab es un paquete de software orientado hacia el cálculo numérico científico e ingenieril. Integra cálculo numérico, computación de matrices y gráficos en un entorno de trabajo cómodo para el usuario. 

. El método que debe seguirse para procesar los datos es muy simple: 

1) El usuario escribe expresiones en la ventana de comandos, o bien en un archivo de
texto apropiado (archivo.m).
2) Tras la orden de ejecución enter (o escribir el nombre del fichero), Matlab procesa
la información.
3) Matlab Escribe los resultados en la ventana de comandos y los gráficos (si los hubiere)
en otras ventanas gráficas.

Desde http://www.sites.google.com/site/euivitoriaayc/ se puede descargar un manual de Matlab elaborado por el profesor.


2º PRÁCTICA



OPERACIONES CON NÚMEROS REALES Y CON NÚMEROS COMPLEJOS

Para hacer operaciones con números reales simplemente hay que escribir la operacion deseada con los operadores +, -, /, * (suma, resta, división y multiplicación)

Para hacer operaciones con números complejos

Con los mismos operadores que con los números reales. La forma binómica se escribe: z=a+bi y para sacar el módulo del número complejo se escribe:

abs(z)

y para sacar el ángulo

angle(z)

Para volver a pasarlo a forma binómica:

x=m*cos(ángulo)
y=m*sin(ángulo)

z=x+iy

El número pi se escribe tal cual: pi

Si escribimos en el Matlab sin(pi), no nos da 0, sino que sale 1,2246exp-16, es decir, un valor que tiende a 0, pero no llega a 0. Esto es porque el calculo númerico casi nunca es exacto.








OPERACIONES CON MATRICES

Para meter una matriz: A=[1 2 3: 1 0 1; 4 5 8]
Es decir, entre números de fila, espacios y para pasar a una fila nueva, punto y coma.
Si queremos hacer la matriz traspuesta: x=[1 0 1]' (apostrofe al final del segundo corchete)
Si queremos generar una matriz aleatoria: B=rand(3,3) indicando, seprando entre comas, las dimensiones (filas por columnas)
Si queremos calcular el rango de una matriz: rank(B)

Y asi tenemos un montón de comandos para matrices como calcular el determinante que estan figuarados en la web antes mencionada del profesor.


























CÁLCULO SIMBÓLICO

Para calcular derivadas usaremos el comando: r=diff(p,x) Con p se indica la expresión que queremos derivar y con x se indica la variable respecto a la cual derivamos.
Para calcular integrales: u=int(p,x) La p y la x significan lo mismo que en las derivadas.
Para calcular integrales definidas: u=int(p,x,a,b) La p y la x, significan lo mismo que en las anteriores y la a y b son los límites de integración.

Con syms a b c ... le decimos al programa que vas a trabajar con esas variables simbólicas.

Podemos escribir polinomios como por ejemplo:

p=(x^2+3*x+12)*(x+1) y luego lo podemos expandir con todos sus términos con el comando:

q=expand(p)

Para poner "elevado a" hay que presionar Mayus+^+espacio y luego el exponente, ya que si no nos saldra error.

En la práctica hemos intentado calcular una integral definida mas o menos compleja y el programa no a sido capaz de resolverla, ya que nos la hemos inventado y casi ninguna integral se puede resolver de una forma relativamente directa.

Para meter raiz cuadrada de algo se usa: sqrt()






GRÁFICAS

Hay que "ayudar" al programa para que dibuje la gráfica. Se escribe primero el intervalo de valores en los que queremos que dibuje la grafica y de cuanto en cuanto va calcular los valores:

x=[-2:0.1:2] En este caso la gráfica la dibujara desde -2 hasta 2 calculando los valores de y cada 0,1
y=x.^2 (El punto hace que vaya elemento por elemento)

Y para que la dibuje: plot(x,y)





"m files"

Puedo escribir las cosas que escrivo en matlab en el editor de texto y guardarlo en .m. El propio matlab tiene un editor que se abre en File/New/Script

Cuando ya tenemos el código escrito en el editor podemos ejecutarlo directamente desde Matlab poniendo por ejemplo, si un archivo se llama ej.m

>>ej1 y luego ENTER