PID modeling equation

<p>The following is a sample program in Visual Basic for Cimplicity Plant Edition that can give you a hint. Hope this can help.

<p>Saludos.

<p>Celso Montalvo
<pre>
Sub Main()
'*** Programa de Simulación del Sistema de Control.
' Programado el 20 de Junio del 2002.

Dim TF As New Point
Dim F As New Point
Dim TC As New Point
Dim V As New Point
Dim KC As New Point
Dim TI As New Point
Dim TD As New Point
Dim AB As New Point

Set TF.ID = "TF"
Set F.ID = "F"
Set TC.ID = "TC"
Set V.ID = "V"
Set KC.ID = "KC"
Set TI.ID = "TI"
Set TD.ID = "TD"
Set AB.ID = "AB"

Dim t As Long, t0 As Long, dt As Single, tp As Long
Dim DTC As Single

t0 = Timer
M = 400. : TR = 80. : V0 = 7.21 : P0 = 36.0 : TauV = 0.0667 : EP = 0.
L = 555. : KV = 0.2 : TM = 80. : I = 0. : TauM = 0.0333

Do While True

t = Timer - t0
dt = (t - tp)/60. : tp = t
DTC = (L*V.Getvalue + F.Getvalue*(TF.Getvalue - TC.Getvalue))/M
TC.Setvalue = TC.Getvalue + DTC*dt
DTM = (TC.Getvalue - TM)/TauM
TM = TM + DTM*dt
E = TR - TM : If dt <> 0 Then dE = (E - EP)/dt
EP = E
I = I + E*dt
P = KC.Getvalue*(E + I/TI.Getvalue + TD.Getvalue*dE)
If P > 100. Then P = 100.
If P < 0. Then P = 0.
dV = (Kv*(P - P0) - (V.Getvalue - V0))/TauV
VV = V.Getvalue + dV*dt
If VV > 20. Then VV = 20.
If VV < 0. Then VV = 0.
V.Setvalue = VV
AB.Setvalue = P

Loop

End Sub
</pre>
 
Top