📄 heattank.fbk
字号:
!--------------------------------------------------------
! Water tank heat control simulated feedback
! Assume constant volume (i.e. water in = water out)
!--------------------------------------------------------
FEEDBACK TankTempFdbk
CYCLE_TIME 0.10
! Name MIN MAX
IN Target_temp(32.0, 212.0)
IN Water_out (0.0, 10.0)
IN Gas_valve (0.0, 10.0)
INOUT Temperature(32.0, 212.0)
OUT Temp_error (-90.0, 90.0)
Initialization
Temp_error = 0;
Temperature = 0;
BEGIN
Temp_error = Temperature - Target_temp;
END;
! Name Below Low High Above Truth
Symbol Zero OF Water_out ( 0.0, 0.0, 0.0, 2.0, 1.0)
Symbol Light OF Water_out ( 0.0, 2.0, 3.0, 5.9, 1.0)
Symbol Medium OF Water_out ( 3.0, 5.0, 6.0, 8.0, 1.0)
Symbol Heavy OF Water_out ( 6.0, 8.0, 10.0, 10.0, 1.0)
! Name Below Low High Above Truth Center
Symbol Off OF Gas_valve ( 0.0, 0.0, 0.0, 2.0, 1.0, 0.0)
Symbol VeryLow OF Gas_valve ( 0.0, 2.0, 2.0, 4.0, 1.0)
Symbol Low OF Gas_valve ( 2.0, 4.0, 4.0, 6.0, 1.0)
Symbol High OF Gas_valve ( 4.0, 6.0, 6.0, 8.0, 1.0)
Symbol VeryHigh OF Gas_valve ( 6.0, 8.0, 10.0, 10.0, 1.0, 10.0)
! Name Below Low High Above Truth Center
Symbol NegLarge OF Temperature(-0.5, -0.5, -0.3, -0.2, 1.0, -0.5)
Symbol NegMedium OF Temperature(-0.3, -0.2, -0.2, -0.1, 1.0)
Symbol NegSmall OF Temperature(-0.2, -0.1, -0.1, 0.0, 1.0)
Symbol Zero OF Temperature(-0.1, 0.0, 0.0, 0.1, 1.0)
Symbol PosSmall OF Temperature( 0.0, 0.1, 0.1, 0.2, 1.0)
Symbol PosMedium OF Temperature( 0.1, 0.2, 0.2, 0.3, 1.0)
Symbol PosLarge OF Temperature( 0.2, 0.3, 0.5, 0.5, 1.0, 0.5)
!!!!!!!! Rules for generating temperature
! Heavy Medium Light Zero
!--------------------------------------------
! Off -0.4 -0.3 -0.2 -0.1
! VeryLow -0.3 -0.2 -0.1
! Low -0.2 -0.1 +0.1
! High -0.1 +0.1 +0.2
! VeryHigh +0.1 +0.2 +0.3 +0.4
!
IF Gas_valve IS Off AND Water_out IS Heavy
THEN Temperature - 0.4
IF Gas_valve IS Off AND Water_out IS Medium
THEN Temperature - 0.3
IF Gas_valve IS Off AND Water_out IS Light
THEN Temperature - 0.2
IF Gas_valve IS Off AND Water_out IS Zero
THEN Temperature - 0.1
IF Gas_valve IS VeryLow AND Water_out IS Heavy
THEN Temperature - 0.3
IF Gas_valve IS VeryLow AND Water_out IS Medium
THEN Temperature - 0.2
IF Gas_valve IS VeryLow AND Water_out IS Light
THEN Temperature - 0.1
IF Gas_valve IS Low AND Water_out IS Heavy
THEN Temperature - 0.2
IF Gas_valve IS Low AND Water_out IS Medium
THEN Temperature - 0.1
IF Gas_valve IS Low AND Water_out IS Zero
THEN Temperature + 0.1
IF Gas_valve IS High AND Water_out IS Heavy
THEN Temperature - 0.1
IF Gas_valve IS High AND Water_out IS Light
THEN Temperature + 0.1
IF Gas_valve IS High AND Water_out IS Zero
THEN Temperature + 0.2
IF Gas_valve IS VeryHigh AND Water_out IS Heavy
THEN Temperature + 0.1
IF Gas_valve IS VeryHigh AND Water_out IS Medium
THEN Temperature + 0.2
IF Gas_valve IS VeryHigh AND Water_out IS Light
THEN Temperature + 0.3
IF Gas_valve IS VeryHigh AND Water_out IS Zero
THEN Temperature + 0.4
END TankTempFdbk;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -