algoritmo enlace visual basic 6.0 con matlab

6

Click here to load reader

Upload: fidel-tomas-monteza-zevallos

Post on 19-Jan-2016

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Algoritmo Enlace Visual Basic 6.0 Con Matlab

Las siguientes líneas corresponden a la programación en VISUAL BASIC 6.0 de una interface que se comunica directamente con MATLAB. Realiza

la apertura de MATLAB y luego controla en forma AUTOMATICA o en forma MANUAL el manejo de una superficie tri dimensional, tan solo debe

copiar y pegar todas las líneas de programación en el respectivo formulario de Visual, además debe tener cuidado en dar los valores

correspondientes de cada herramienta en la Ventana de Propiedades. Por ejemple deberá cambiar los nombres de cada Command de acuerdo

las líneas programadas, el intervalo del Timer1 será 50 y el intervalo del Timer2 será 250. Para esto se anexan las respectivas figuras

demostrando su aplicación paso a paso.

Como mencione antes, la potencialidad de esta aplicación está en el proceso digital de imágenes, bastaría con instalar sensores en cada

articulación de un usuario llevarlas a Visual y luego estas ser llevadas a MATLAB para que por medio de la Cinemática Inversa poder graficarlos. El

tiempo que se pueda dedicar a este proyecto es muy importante, tengo la idea de cómo hacerlo y espero que sirva para ayudar a otros

investigadores.

Posteriormente estaré publicando líneas de programación en MATLAB de diversas aplicaciones como Sistema Gravitacional, Interacción de

partículas, Cinemática Directa y Cinemática Inversa para robótica, Comunicación RS232 con microcontroladores, etc.

En la siguiente publicación estaré comentando acerca de la comunicación RS232 en Visual Basic 6.0 con un microcontrolador para controlar un

sistema de conteo en display siete segmentos de cuatro dígitos, estar atentos.

'PROGRAMA DE INTERFACE ENTRE VISUAL BASIC Y MATLAB PARA EL CONTROL DE UNA SUPERFICIE EN 3D DENOMINADA "VOLCAN"

'Option Explicit 'SE DESHABILITA ESTA LINEA PARA OBSERVAR EL MENSAJE EN LA ESQUINA IZQUIERDA DEL FORMULARIO

Dim ml As Object

Dim f As Integer

Dim R1 As Integer

Dim xx As Boolean

'Dim c1 As Integer

Private Sub Form_Load()

Form1.WindowState = 0

Form1.Caption = " ENLACE DE MATLAB CON VISUAL BASIC - GRAFICO DEL VOLCAN "

Set ml = CreateObject("matlab.application")

ml.execute "[x,y]=meshgrid(-8:0.5:8)"

xx = True 'xx empieza en la condicion boolena de True

End Sub

Private Sub Cmdautomatico_Click()

f = hsbF.Value

ml.execute "[x,y]=meshgrid(-8:0.5:8)"

ml.execute "r=sqrt(x.^2+y.^2)+eps"

Page 2: Algoritmo Enlace Visual Basic 6.0 Con Matlab

ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)"

ml.execute "surf(x,y,z)"

ml.execute "axis on" 'Presentar los ejes en cada plano

Timer1.Enabled = True

hsbF.Enabled = False

Cmddetener.Enabled = True

End Sub

Private Sub Cmdmanual_Click()

Timer1.Enabled = False

hsbF.Enabled = True

Cmddetener.Enabled = False

End Sub

Private Sub Cmddetener_Click()

Timer1.Enabled = False

hsbF.Enabled = False

End Sub

Private Sub hsbF_Change()

f = hsbF.Value

Text1.Text = f

ml.execute "[x,y]=meshgrid(-8:0.5:8)"

ml.execute "r=sqrt(x.^2+y.^2)+eps"

ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)"

ml.execute "surf(x,y,z)"

End Sub

Private Sub hsbF_Scroll()

hsbF_Change

End Sub

Private Sub Timer2_Timer()

c1 = Left(Form1.Caption, 1)

Form1.Caption = Mid(Form1.Caption, 2) & c1

End Sub

Private Sub Timer1_Timer()

If xx = True Then ' Como xx empezo en True en la linea del Form_Load se considera la ejecucion de las siguientes lineas

f = f + 1 ' f inicia un conteo en pasos de uno

Page 3: Algoritmo Enlace Visual Basic 6.0 Con Matlab

Text1.Text = f

ml.execute "[x,y]=meshgrid(-8:0.5:8)"

ml.execute "r=sqrt(x.^2+y.^2)+eps"

ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)" ' f es variable en la ecuacion del grafico

ml.execute "surf(x,y,z)"

If f = 100 Then xx = False

Else

f = f - 1

Text1.Text = f

If f = 1 Then xx = True

ml.execute "[x,y]=meshgrid(-8:0.5:8)"

ml.execute "r=sqrt(x.^2+y.^2)+eps"

ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)"

ml.execute "surf(x,y,z)"

End If

End Sub

Private Sub Cmdsalir_Click()

R1 = MsgBox("¿Desea salir del Programa?", 4 + 32, " V.J.M.J. ")

If R1 = 6 Then End

End Sub

En las siguientes figuras se observara paso a paso el desarrollo del proceso de simulación del enlace en tiempo real

Se puede apreciar en el fondo la ventana de Proyecto1 Form1(Codigo) y en primer plano la ventana Proyecto1 Form1(Form), estos serán todas

las herramientas a ser utilizadas

Page 4: Algoritmo Enlace Visual Basic 6.0 Con Matlab

Se aprecia el momento en que comienza la simulacion del proceso, aparece un pequeño mensaje en la parte superior de la ventana de interface

Aquí se muestra que MATLAB ha sido aperturado para comenzar el control AUTOMATICO o MANUAL

Page 5: Algoritmo Enlace Visual Basic 6.0 Con Matlab

Se inicia el control AUTOMATICO la superficie en tres dimensiones.

Continuacion del proceso de control AUTOMATICO

Page 6: Algoritmo Enlace Visual Basic 6.0 Con Matlab

Continuacion del proceso de control AUTOMATICO. Observe los diferentes valores decimales que toma la ventana adjunta

Continuacion inversa del proceso de control AUTOMATICO

Espero que esta aplicación sea de mucha utilidad y de seguro debera tener mejoras, las que posteriormente estare publicando. Gracias

Ingeniero Electronico Monteza Zevallos Fidel Tomas

V.J.M.J.