Changeset 686 for branches/gui/eml/controllers
- Timestamp:
- Nov 20, 2008, 4:30:17 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gui/eml/controllers/pi.mso
r592 r686 2 2 3 3 Model PI_simple 4 4 5 ATTRIBUTES 5 6 Pallete = true; 6 7 Icon = "icon/PI"; 7 8 8 9 Kp as Real(Brief="Controller gain", Default=0.5);10 Ki as Real(Brief="Integral time constant", Unit='s');11 bias as Real(Brief="Previous scaled bias",Default=0.5);9 PARAMETERS 10 Kp as Real (Brief="Controller gain", Default=0.5); 11 Ki as Real (Brief="Integral time constant", Unit='s'); 12 bias as Real (Brief="Previous scaled bias",Default=0.5); 12 13 13 14 MinInput as control_signal(Default=-1000); 14 15 MaxInput as control_signal(Default=1000); 15 16 16 VARIABLES 17 SetPoint as Real (Brief="Scaled setPoint", Lower=0, Upper=1, Default=0.5); 18 in Input as control_signal (Brief="Previous scaled input signal", Default=0.5, PosX=0, PosY=0.5); 19 out Output as control_signal (Brief="Scaled output signal", Default=0, PosX=0.7, PosY=1); 17 VARIABLES 18 in Input as control_signal (Brief="Previous scaled input signal", Default=0.5, PosX=0, PosY=0.5); 19 out Output as control_signal (Brief="Scaled output signal", Default=0, PosX=0.54, PosY=1); 20 SetPoint as Real (Brief="Scaled setPoint", Lower=0, Upper=1, Default=0.5); 21 22 input as Real (Brief="Scaled input variable", Hidden=true); 23 setPoint as Real (Brief="Scaled set point", Hidden=true); 24 intTerm as Real (Brief="Integral term", Default=0, Protected=true); 25 outps as Real (Brief="Variable outp scaled between 0 and 1", Hidden=true); 26 27 EQUATIONS 20 28 21 input as Real (Brief="Scaled input variable", Hidden=true); 22 setPoint as Real (Brief="Scaled set point", Hidden=true); 23 intTerm as Real (Brief="Integral term", Default=0, Protected=true); 24 outps as Real (Brief="Variable outp scaled between 0 and 1", Protected=true); 25 26 EQUATIONS 27 "Calculate integral term" 29 "Calculate integral term" 28 30 Ki*diff(intTerm) = setPoint - input; 29 31 30 32 "Sum of proportional, integral and derivative terms" 31 33 outps = bias + Kp*(setPoint - input) + intTerm; 32 34 33 35 input*(MaxInput-MinInput) = Input-MinInput; 34 36 setPoint*(MaxInput-MinInput) = SetPoint-MinInput; 35 36 37 37 38 if outps > 1 then … … 50 51 51 52 Model PI 53 52 54 ATTRIBUTES 53 55 Pallete = true; 54 56 Icon = "icon/PI"; 55 57 56 PARAMETERS 57 bias as positive (Brief="Previous scaled bias", Lower=0, Upper=1, Default=0.5); 58 beta as positive (Brief="Proportional term setPoint change filter", Default=1); 59 Action as Switcher (Brief="Controller action", Valid=["Direct","Reverse"], Default = "Reverse"); 58 PARAMETERS 59 60 Action as Switcher (Brief="Controller action", Valid=["Direct","Reverse"], Default = "Reverse"); 61 Mode as Switcher (Brief="Controller mode", Valid=["Automatic","Manual"], Default = "Automatic"); 62 bias as positive (Brief="Previous scaled bias", Lower=0, Upper=1, Default=0.5); 63 beta as positive (Brief="Proportional term setPoint change filter", Default=1); 64 gain as positive (Brief="Controller gain", Lower=0, Upper=1, Default=0.5); 65 intTime as Real (Brief="Integral time constant", Unit='s'); 66 MinInput as control_signal (Default=-1000); 67 MaxInput as control_signal (Default=1000); 60 68 61 MinInput as control_signal(Default=-1000); 62 MaxInput as control_signal(Default=1000); 69 VARIABLES 63 70 64 gain as positive (Brief="Controller gain", Lower=0, Upper=1, Default=0.5); 65 intTime as Real (Brief="Integral time constant", Unit='s'); 66 autoMan as Real (Brief="Controller option: (0) Automatic, (1) Manual"); 67 68 VARIABLES 69 SetPoint as Real (Brief="Scaled setPoint", Lower=0, Upper=1, Default=0.5); 70 in Input as control_signal (Brief="Previous scaled input signal", Default=0.5, PosX=0, PosY=0.5); 71 out Output as control_signal (Brief="Scaled output signal", Default=0, PosX=0.7, PosY=1); 71 in Input as control_signal (Brief="Previous scaled input signal", Default=0.5, PosX=0, PosY=0.5, Hidden=true); 72 out Output as control_signal (Brief="Scaled output signal", Default=0, PosX=0.7, PosY=1, Hidden=true); 73 SetPoint as Real (Brief="Scaled setPoint", Lower=0, Upper=1, Default=0.5); 72 74 73 propTerm as Real (Brief="Proportional term", Default=0);74 intTerm as Real (Brief="Integral term", Default=0);75 input as Real(Brief="Scaled input variable", Hidden=true);76 setPoint as Real(Brief="Scaled set point", Hidden=true);77 action as Real(Brief="Controller action: (-1) Direct,(1) Reverse", Default=-1, Hidden=true);78 outp as control_signal (Brief="Sum of proportional, integral and derivative terms");79 error as Real (Brief="Error definition for proportional term");80 outps as Real (Brief="Variable outp scaled between -1 and 1");75 propTerm as Real (Brief="Proportional term", Default=0, Protected=true); 76 intTerm as Real (Brief="Integral term", Default=0, Protected=true); 77 input as Real (Brief="Scaled input variable", Hidden=true); 78 setPoint as Real (Brief="Scaled set point", Hidden=true); 79 action as Real (Brief="Controller action: (-1) Direct,(1) Reverse", Default=-1, Hidden=true); 80 outp as control_signal (Brief="Sum of proportional, integral and derivative terms", Hidden=true); 81 error as Real (Brief="Error definition for proportional term", Hidden=true); 82 outps as Real (Brief="Variable outp scaled between -1 and 1", Hidden=true); 81 83 82 84 EQUATIONS 83 85 84 86 input*(MaxInput-MinInput) = Input-MinInput; 85 87 setPoint*(MaxInput-MinInput) = SetPoint-MinInput; 86 88 87 if autoMan equal 0 then 89 switch Mode 90 case "Automatic": 88 91 "Error definition" 89 92 error = beta*setPoint - input; 90 else93 case "Manual": 91 94 "Error definition" 92 95 error = input*(beta-1.0);
Note: See TracChangeset
for help on using the changeset viewer.