Ignore:
Timestamp:
Feb 19, 2010, 7:08:11 PM (13 years ago)
Author:
Argimiro Resende Secchi
Message:

Starting checking new EML.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/gui/sample/controllers/CSTR_noniso_pid.mso

    r735 r909  
    1818* Author: Argimiro R. Secchi
    1919* $Id$
    20 *--------------------------------------------------------------------#
     20*--------------------------------------------------------------------*#
    2121
    2222using "controllers/PIDs";
     
    113113 
    114114        VARIABLES
    115         L_ad as Real;
    116         Lmin as length;
    117         Lmax as length;
    118         T_ad as Real;
    119         Tmin as temperature;
    120         Tmax as temperature;
    121115        Lsp as length;
    122116        Tsp as temperature;
    123        
     117out     LI as control_signal (Brief="Level Indicator");
     118out     TI as control_signal (Brief="Temperature Indicator");
     119
    124120        CONNECTIONS
    125121        FEED to CSTR1.Inlet;
     122        LI to PIDL.Input;
     123        TI to PIDT.Input;
    126124       
    127125        SET
     
    140138        PIDT.PID_Select = "Ideal_AWBT";
    141139       
     140#   Level control: PID parameters
     141        PIDL.bias=0;
     142        PIDL.alpha=0.1;
     143        PIDL.Action="Direct";
     144        PIDL.gamma=1;
     145        PIDL.beta=1;
     146        PIDL.Clip="Clipped";
     147        PIDL.Mode="Automatic";
     148        PIDL.gain=1;
     149        PIDL.intTime=2.5*'h';
     150        PIDL.derivTime=0*'s';
     151        PIDL.tau=1*'s';
     152        PIDL.tauSet=1*'s';
     153
     154#   Temperature control: PID parameters
     155        PIDT.bias = 0;
     156        PIDT.alpha=0.1;
     157        PIDT.Action="Reverse";
     158        PIDT.gamma=1;
     159        PIDT.beta=1;
     160        PIDT.Clip="Clipped";
     161        PIDT.Mode="Automatic";
     162        PIDT.gain=1;
     163        PIDT.intTime=2.5*'h';
     164        PIDT.derivTime=1*'h';
     165        PIDT.tau=1*'s';
     166        PIDT.tauSet=1*'s';     
     167       
     168#       Operating range for control variables
     169        PIDL.MaxInput=5;
     170        PIDL.MinInput=0;
     171        PIDT.MaxInput=700;
     172        PIDT.MinInput=230;     
     173        PIDT.MaxOutput=700;
     174        PIDT.MinOutput=230;     
     175
    142176        EQUATIONS
    143177
    144         "Dimensionless level to connect PID"
    145         L_ad*(Lmax-Lmin)=CSTR1.h-Lmin;
    146         PIDL.Ports.input=L_ad;
    147 
    148         "Dimensionless temperature to connect PID"
    149         T_ad*(Tmax-Tmin)=CSTR1.T-Tmin;
    150         PIDT.Ports.input=T_ad;
    151        
     178        "Level sensor"
     179        LI * 'm' = CSTR1.h;
     180
     181        "Temperature sensor"
     182        TI * 'K' = CSTR1.T;
     183
     184        "Setpoints"
     185        PIDL.SetPoint * 'm' = Lsp;
     186        PIDT.SetPoint * 'K' = Tsp;
     187
    152188        "Manipulated Variables"
    153         CSTR1.x  = PIDL.Ports.output;
    154         CSTR1.Tw  = PIDT.Ports.output*(Tmax-Tmin)+Tmin;
    155        
    156 #   Level control: PID parameters
    157         PIDL.Parameters.bias=0;
    158         PIDL.Parameters.alpha=0.1;
    159         PIDL.Options.action=-1;
    160         PIDL.Parameters.gamma=1;
    161         PIDL.Parameters.beta=1;
    162         PIDL.Options.clip=1;
    163         PIDL.Options.autoMan=0;
    164         PIDL.Parameters.gain=1;
    165         PIDL.Parameters.intTime=2.5*'h';
    166         PIDL.Parameters.derivTime=0*'s';
    167         PIDL.Ports.setPoint=(Lsp - Lmin)/(Lmax - Lmin);
    168         PIDL.Parameters.tau=1*'s';
    169         PIDL.Parameters.tauSet=1*'s';
    170 
    171 #   Temperature control: PID parameters
    172         PIDT.Parameters.bias = 0;
    173         PIDT.Parameters.alpha=0.1;
    174         PIDT.Options.action=1;
    175         PIDT.Parameters.gamma=1;
    176         PIDT.Parameters.beta=1;
    177         PIDT.Options.clip=1;
    178         PIDT.Options.autoMan=0;
    179         PIDT.Parameters.gain=1;
    180         PIDT.Parameters.intTime=2.5*'h';
    181         PIDT.Parameters.derivTime=1*'h';
    182         PIDT.Ports.setPoint=(Tsp - Tmin)/(Tmax - Tmin);
    183         PIDT.Parameters.tau=1*'s';
    184         PIDT.Parameters.tauSet=1*'s';   
    185        
    186         "Operating range for control variables"
    187         Lmax=5*'m';
    188         Lmin=0*'m';
    189         Tmax=700*'K';
    190         Tmin=230*'K';   
     189        CSTR1.x = PIDL.Output;
     190        CSTR1.Tw = PIDT.Output * 'K';
    191191
    192192        "Feed Stream"
Note: See TracChangeset for help on using the changeset viewer.