CONTROL PID PARA LAMPARA DE CUARZO Y INFRAROJA ERROR EN CURV

Cerrado
alessandrop
Hot Gun
Mensajes: 5
Registrado: Sab Oct 30, 2010 4:49 am

HOLA AMIGOS, ESTOY CONSTRUYENDO UNA MAQUINA DE REBALLING Y YA PRACTICAMENTE LA TENGO LISTA LO QUE ME HACE FALTA ES MEJORAR LA CURVA DE TEMPERATURA, ESTOY IMPLEMENTANDO EL ALGORITMO PID EN MI SOFTWARE DISEÑADO EN VISUAL BASIC 6, SIN EMBARGO NO LOGRO DAR CON LA CONFIGURACION NECESARIA (O EL ALGORITMO PID MIO ESTA MALO YA QUE NO SOY MUY DIESTRO EN ESAS FORMULAS MATEMATICAS).

QUE ESTARE HACIENDO MAL?
ALGUIEN TENDRA ALGUN CODIGO HECHO EN VISUAL BASIC QUE CONTROLE MEDIANTE PID EL CALENTANDOR INFERIOR Y SUPERIOR PARA SIMULAR LA CURVA.

EL ENCENDIDO ESTA FUNCIONANDO CON UN RELE QUE PRENDO Y APAGO POR UN TIEMPO DETERMINADO ASI QUE EL MODELO ES ON/ OFF Y NO VARIABLES, HE VISTO QUE LA FORMULA DEL PID U(T) DETERMINA LA POTENCIA A APLICAR Y YO CLARO UTILIZO 0% O 100% SERA ESE EL PROBLEMA?
SOLUCION??

GRACIAS DE ANTEMANO POR EL TIEMPO PRESTADO.

CODIGO DEL PID EN VISUAL BASIC

Private Sub PID()
Dim i As Integer
e(0) = R - Y(0)
ER = e(0) / (R - yo)
ErrorActual = ER
If ER > 0.99999 Then
KP = 0.05: KIP = 0.0018: KDP = 1#
'Kp = 2.76: Kip = 0.0018: Kdp = 1.25
'Kp = 2.6: Kip = 0.0021: Kdp = 3#
ElseIf ER > 0.88 Then 'encender
KP = 0.05: KIP = 0.009: KDP = 1#
'Kp = 18.75: Kip = 0.009: Kdp = 1.25
'Kp = 4.55: Kip = 0.001: Kdp = 3#
Else
KP = 0.05: KIP = 0.04: KDP = 1#
'Kp = 0.11: Kip = 0.04: Kdp = 1.25
'Kp = 0.11: Kip = 0.007: Kdp = 3#
End If
u(0) = u(1) + KP * ((e(0) - e(1)) + KIP * e(0) + KDP * (e(0) - 2 * e(1) + e(2)))
Label27.Caption = "U: " & Format(u(0), "###0.0000") & " / ER: " & Format(ER, "###0.0000")
ErrorActual = ER
If e(0) <= 0.004 Then flag = flag + 1 'i.e. y(0) >= r
For i = 0 To 50
u(51 - i) = u(50 - i)
Next i
For i = 0 To 1
e(2 - i) = e(1 - i)
Next i
End Sub
Cerrado