heattank.fbk
来自「用VC++编写的遗传算法源程序」· FBK 代码 · 共 109 行
FBK
109 行
!--------------------------------------------------------
! 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 + =
减小字号Ctrl + -
显示快捷键?