added comments

This commit is contained in:
pavel 2026-04-16 00:04:26 +03:00
parent 930ea864c7
commit ae83491bd8

134
FOExp.v
View File

@ -467,60 +467,68 @@ else if (CALC_SM_STATE==1)
if (CALC_SM_COUNTER>5) begin CALC_SM_STATE=2; CALC_SM_COUNTER=0; end if (CALC_SM_COUNTER>5) begin CALC_SM_STATE=2; CALC_SM_COUNTER=0; end
end end
else if (CALC_SM_STATE==2) else if (CALC_SM_STATE==2)
begin begin
CALC_SM_COUNTER = CALC_SM_COUNTER + 1; CALC_SM_COUNTER = CALC_SM_COUNTER + 1;
if (CALC_SM_COUNTER==1) if (CALC_SM_COUNTER==1)
begin begin
`ifdef UNIT1 // Калибровка тока чоппера для блока UNIT1:
if (CHOPPER_CURRENT_ADC>=16585) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16585; end //U1=16585 //U2 = 16560 //U3 = 16590 //U4 = 16580 // вычитаем смещение 16585 или берём модуль отклонения относительно этой точки
else begin CHOPPER_CURRENT_ADC = 16585 - CHOPPER_CURRENT_ADC; end `ifdef UNIT1
`endif if (CHOPPER_CURRENT_ADC>=16585) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16585; end //U1=16585 //U2 = 16560 //U3 = 16590 //U4 = 16580
else begin CHOPPER_CURRENT_ADC = 16585 - CHOPPER_CURRENT_ADC; end
`endif
`ifdef UNIT2 `ifdef UNIT2
if (CHOPPER_CURRENT_ADC>=16560) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16560; end if (CHOPPER_CURRENT_ADC>=16560) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16560; end
else begin CHOPPER_CURRENT_ADC = 16560 - CHOPPER_CURRENT_ADC; end else begin CHOPPER_CURRENT_ADC = 16560 - CHOPPER_CURRENT_ADC; end
`endif `endif
`ifdef UNIT3 `ifdef UNIT3
if (CHOPPER_CURRENT_ADC>=16590) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16590; end if (CHOPPER_CURRENT_ADC>=16590) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16590; end
else begin CHOPPER_CURRENT_ADC = 16590 - CHOPPER_CURRENT_ADC; end else begin CHOPPER_CURRENT_ADC = 16590 - CHOPPER_CURRENT_ADC; end
`endif `endif
`ifdef UNIT4 // Калибровка тока чоппера для блока UNIT4:
if (CHOPPER_CURRENT_ADC>=16580) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16580; end // аналогично UNIT1, но используется своё смещение 16580
else begin CHOPPER_CURRENT_ADC = 16580 - CHOPPER_CURRENT_ADC; end `ifdef UNIT4
`endif if (CHOPPER_CURRENT_ADC>=16580) begin CHOPPER_CURRENT_ADC = CHOPPER_CURRENT_ADC - 16580; end
else begin CHOPPER_CURRENT_ADC = 16580 - CHOPPER_CURRENT_ADC; end
`endif
`ifdef UNIT4 // Для UNIT4 тормозной ток BRAKE_CURRENT_ADC полностью игнорируется:
BRAKE_CURRENT_ADC = 0; // принудительно обнуляется перед дальнейшими расчётами
`else `ifdef UNIT4
if (BRAKE_CURRENT_ADC>=16560) begin BRAKE_CURRENT_ADC = BRAKE_CURRENT_ADC - 16560; end BRAKE_CURRENT_ADC = 0;
else begin BRAKE_CURRENT_ADC = 16560 - BRAKE_CURRENT_ADC; end // Для всех остальных блоков (UNIT1, UNIT2, UNIT3) тормозной ток калибруется:
`endif // вычитаем смещение 16560 или берём модуль отклонения относительно этой точки
`else
if (BRAKE_CURRENT_ADC>=16560) begin BRAKE_CURRENT_ADC = BRAKE_CURRENT_ADC - 16560; end
else begin BRAKE_CURRENT_ADC = 16560 - BRAKE_CURRENT_ADC; end
`endif
if (INPUT_VOLTAGE_ADC>=16384) begin INPUT_VOLTAGE_ADC = INPUT_VOLTAGE_ADC - 16384; end if (INPUT_VOLTAGE_ADC>=16384) begin INPUT_VOLTAGE_ADC = INPUT_VOLTAGE_ADC - 16384; end
else begin INPUT_VOLTAGE_ADC = 16384 - INPUT_VOLTAGE_ADC; end else begin INPUT_VOLTAGE_ADC = 16384 - INPUT_VOLTAGE_ADC; end
if (OUTPUT_VOLTAGE_ADC>=16384) begin OUTPUT_VOLTAGE_ADC = OUTPUT_VOLTAGE_ADC - 16384; end if (OUTPUT_VOLTAGE_ADC>=16384) begin OUTPUT_VOLTAGE_ADC = OUTPUT_VOLTAGE_ADC - 16384; end
else begin OUTPUT_VOLTAGE_ADC = 16384 - OUTPUT_VOLTAGE_ADC; end else begin OUTPUT_VOLTAGE_ADC = 16384 - OUTPUT_VOLTAGE_ADC; end
if (SKIIP_CHOPP_CURRENT_ADC>=1707) begin SKIIP_CHOPP_CURRENT_ADC = SKIIP_CHOPP_CURRENT_ADC - 1707; end if (SKIIP_CHOPP_CURRENT_ADC>=1707) begin SKIIP_CHOPP_CURRENT_ADC = SKIIP_CHOPP_CURRENT_ADC - 1707; end
else begin SKIIP_CHOPP_CURRENT_ADC = 1707 - SKIIP_CHOPP_CURRENT_ADC; end else begin SKIIP_CHOPP_CURRENT_ADC = 1707 - SKIIP_CHOPP_CURRENT_ADC; end
if (SKIIP_CHOPP_TEMP_ADC>=1707) begin SKIIP_CHOPP_TEMP_ADC = SKIIP_CHOPP_TEMP_ADC - 1707; end if (SKIIP_CHOPP_TEMP_ADC>=1707) begin SKIIP_CHOPP_TEMP_ADC = SKIIP_CHOPP_TEMP_ADC - 1707; end
else begin SKIIP_CHOPP_TEMP_ADC = 1707 - SKIIP_CHOPP_TEMP_ADC; end else begin SKIIP_CHOPP_TEMP_ADC = 1707 - SKIIP_CHOPP_TEMP_ADC; end
if (SKIIP_BRAKE_CURRENT_ADC>=1707) begin SKIIP_BRAKE_CURRENT_ADC = SKIIP_BRAKE_CURRENT_ADC - 1707; end if (SKIIP_BRAKE_CURRENT_ADC>=1707) begin SKIIP_BRAKE_CURRENT_ADC = SKIIP_BRAKE_CURRENT_ADC - 1707; end
else begin SKIIP_BRAKE_CURRENT_ADC = 1707 - SKIIP_BRAKE_CURRENT_ADC; end else begin SKIIP_BRAKE_CURRENT_ADC = 1707 - SKIIP_BRAKE_CURRENT_ADC; end
if (SKIIP_BRAKE_TEMP_ADC>=1707) begin SKIIP_BRAKE_TEMP_ADC = SKIIP_BRAKE_TEMP_ADC - 1707; end if (SKIIP_BRAKE_TEMP_ADC>=1707) begin SKIIP_BRAKE_TEMP_ADC = SKIIP_BRAKE_TEMP_ADC - 1707; end
else begin SKIIP_BRAKE_TEMP_ADC = 1707 - SKIIP_BRAKE_TEMP_ADC; end else begin SKIIP_BRAKE_TEMP_ADC = 1707 - SKIIP_BRAKE_TEMP_ADC; end
end end
if (CALC_SM_COUNTER>5) begin CALC_SM_STATE=3; CALC_SM_COUNTER=0; end if (CALC_SM_COUNTER>5) begin CALC_SM_STATE=3; CALC_SM_COUNTER=0; end
end end
else if (CALC_SM_STATE==3) else if (CALC_SM_STATE==3)
begin begin
CALC_SM_COUNTER = CALC_SM_COUNTER + 1; CALC_SM_COUNTER = CALC_SM_COUNTER + 1;
@ -714,30 +722,34 @@ end
*/ */
//TEST-------------------------------------------- //TEST--------------------------------------------
CHOPPER_VOLTAGE_SETPOINT = FO_INPUT_VAL1; CHOPPER_VOLTAGE_SETPOINT = FO_INPUT_VAL1;
CHOPPER_CURRENT_LIMIT = FO_INPUT_VAL2; CHOPPER_CURRENT_LIMIT = FO_INPUT_VAL2;
REG_INTEGRATOR_LIMIT = CHOPPER_CURRENT_LIMIT*1024; REG_INTEGRATOR_LIMIT = CHOPPER_CURRENT_LIMIT*1024;
REG_VOLTAGE_INPUT = VOUT_FILTER_OUTPUT; REG_VOLTAGE_INPUT = VOUT_FILTER_OUTPUT;
`ifdef UNIT1 // Настройка ПИ-регулятора для UNIT1:
REG_PROP = 1; //A/V // REG_PROP пропорциональный коэффициент, REG_INT интегральный
REG_INT = 9; //~x0.1 10 = 10 * 10000/1024 = 95 A/V/s = 9500A/100V/s = 950A/100ms `ifdef UNIT1
`endif REG_PROP = 1; //A/V
REG_INT = 9; //~x0.1 10 = 10 * 10000/1024 = 95 A/V/s = 9500A/100V/s = 950A/100ms
`endif
`ifdef UNIT2 `ifdef UNIT2
REG_PROP = 1; //A/V REG_PROP = 1; //A/V
REG_INT = 10; // REG_INT = 10; //
`endif `endif
`ifdef UNIT3 `ifdef UNIT3
REG_PROP = 1; //A/V REG_PROP = 1; //A/V
REG_INT = 11; // REG_INT = 11; //
`endif `endif
`ifdef UNIT4 // Настройка ПИ-регулятора для UNIT4:
REG_PROP = 1; //A/V // немного другое интегральное усиление (12) под конкретный модуль
REG_INT = 12; // `ifdef UNIT4
`endif REG_PROP = 1; //A/V
REG_INT = 12; //
`endif
if (CHOPPER_ENABLE==1 && GlobalError==0) if (CHOPPER_ENABLE==1 && GlobalError==0)