Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation

Collection of validation models

Information

This package contains models that validate the blocks in Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.

Package Content

Name Description
Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.Gain Gain Test model for identifying the gain of the control process
Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.TimeConstantDelay TimeConstantDelay Test model for identifying the the time constant and the time delay of the control process

Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.Gain Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.Gain

Test model for identifying the gain of the control process

Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.Gain

Information

Validation test for the block Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Gain.

This testing scenario in this example is the same to that in Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.Validation.ControlProcessModel.

Modelica definition

model Gain "Test model for identifying the gain of the control process" Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Gain gai(yHig=1, yLow=0.5) "Block that calculates the gain of a first-order model"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse u( amplitude=0.5, width=0.125, period=0.8, offset=0.5) "The response of a relay controller"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse tOn( amplitude=-0.1, width=0.1, period=1, offset=0.1) "The length of the on period"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse tOff( amplitude=-0.7, width=0.8, period=1, offset=0.7) "The length of the off period"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse tunSta( width=0.9, period=1, shift=-0.9) "The signal for the tuning period starts"; equation connect(tunSta.y, gai.triSta); connect(tOff.y, gai.tOff); connect(tOn.y, gai.tOn); connect(u.y, gai.u); end Gain;

Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.TimeConstantDelay Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.TimeConstantDelay

Test model for identifying the the time constant and the time delay of the control process

Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.Validation.TimeConstantDelay

Information

Validation test for the block Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.TimeConstantDelay.

The input tOn changes from 0 to 0.1 at 0.1s, input k is constant, input ratioLT changes twice, from 0.3 to 0.4 at 0.32s and from 0.4 to 0.3 at 0.8s.

Modelica definition

model TimeConstantDelay "Test model for identifying the the time constant and the time delay of the control process" Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimeDelay.BaseClasses.TimeConstantDelay timConDel( yHig=0.5, yLow=0.1, deaBan=0.4) "Block that calculates the time constant and the time delay of a first-order model"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant k(k=1) "Gain"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse tOn( amplitude=-0.1, width=0.1, period=1, offset=0.1) "The length of the on period"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse ratioLT( amplitude=-0.1, width=0.4, period=0.8, offset=0.4) "Ratio between the time constant and the time delay"; equation connect(tOn.y, timConDel.tOn); connect(k.y, timConDel.k); connect(ratioLT.y, timConDel.rat); end TimeConstantDelay;