压缩机转速范围和公式修正

pid
Zeng wei (曾威) 2 years ago
parent 7d28a4331f
commit 6c75fb9d00

@ -82,8 +82,8 @@ void set_heater_power(int percent) {
/** /**
* heater power calc * heater power calc
*/ */
int calc_hp(float t_t, float t_c, float Error_calc, int p_hb, float pid_hp, float pid_hi) { int calc_hp(float delta_t, float Error_calc, int p_hb, float pid_hp, float pid_hi) {
int p_h = p_hb + pid_hp * (t_t - t_c) + pid_hi * Error_calc; int p_h = p_hb + pid_hp * delta_t + pid_hi * Error_calc;
if (p_h > 100) { if (p_h > 100) {
return 100; return 100;
} }
@ -96,8 +96,8 @@ int calc_hp(float t_t, float t_c, float Error_calc, int p_hb, float pid_hp, floa
/** /**
* compressor power percent calc * compressor power percent calc
*/ */
int calc_cp(float t_t, float t_c, int p_cb, float pid_cp) { int calc_cp(float delta_t, int p_cb, float pid_cp) {
int percent = p_cb + pid_cp * (t_c - t_t); int percent = p_cb - pid_cp * delta_t;
if (percent > 100) { if (percent > 100) {
return 100; return 100;
} }
@ -123,12 +123,13 @@ int calc_compressor_speed(int percent, int v_min, int v_max) {
void PID_Calc() // pid calc void PID_Calc() // pid calc
{ {
int min_speed_count = 1500; int min_speed_count = 1800;
int max_speed_count = 4500; int max_speed_count = 4800;
float pid_hp = 19.2; float pid_hp = 9.6;
float pid_cp = 14.4; float pid_cp = 9.6;
float pid_hi = 0.08; float pid_hi = 0.08;
int p_hb = 52; int p_hb = 52;
int p_cb = 33;
float DelEk; // The difference between the last two deviations float DelEk; // The difference between the last two deviations
// float td; // float td;
float out; float out;
@ -140,7 +141,7 @@ void PID_Calc() // pid calc
float delta_t = pid.set_tem - pid.now_tem; float delta_t = pid.set_tem - pid.now_tem;
int p_c = calc_cp(pid.set_tem, pid.now_tem, 32, pid_cp); int p_c = calc_cp(delta_t, p_cb, pid_cp);
int speed_count = calc_compressor_speed(p_c, min_speed_count, max_speed_count); int speed_count = calc_compressor_speed(p_c, min_speed_count, max_speed_count);
pid.Ek = pid.set_tem - pid.now_tem; pid.Ek = pid.set_tem - pid.now_tem;
@ -198,7 +199,7 @@ void PID_Calc() // pid calc
pid.C1ms = 0; pid.C1ms = 0;
// heater percent // heater percent
int heater_percent = calc_hp(pid.set_tem, pid.now_tem, Error_calc, p_hb, pid_hp, pid_hi); int heater_percent = calc_hp(delta_t, Error_calc, p_hb, pid_hp, pid_hi);
// close heater when compressor is running in full state // close heater when compressor is running in full state
if (speed_count == max_speed_count) { if (speed_count == max_speed_count) {
heater_percent = 0; heater_percent = 0;

@ -77,8 +77,8 @@
<flags>2</flags> <flags>2</flags>
<showCmd>3</showCmd> <showCmd>3</showCmd>
<MinPosition> <MinPosition>
<xPos>-32000</xPos> <xPos>-1</xPos>
<yPos>-32000</yPos> <yPos>-1</yPos>
</MinPosition> </MinPosition>
<MaxPosition> <MaxPosition>
<xPos>-1</xPos> <xPos>-1</xPos>
@ -1690,7 +1690,7 @@
<Name>File</Name> <Name>File</Name>
<Buttons> <Buttons>
<Len>2021</Len> <Len>2021</Len>
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000773656E64627566960000000000000001000773656E6462756600000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data> <Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000773656E64627566960000000000000001000773656E6462756600000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
</Buttons> </Buttons>
<OriginalItems> <OriginalItems>
<Len>1423</Len> <Len>1423</Len>
@ -1767,9 +1767,9 @@
</Doc> </Doc>
<Doc> <Doc>
<Name>../HARDWARE/PID.c</Name> <Name>../HARDWARE/PID.c</Name>
<ColumnNumber>3</ColumnNumber> <ColumnNumber>37</ColumnNumber>
<TopLine>157</TopLine> <TopLine>115</TopLine>
<CurrentLine>178</CurrentLine> <CurrentLine>147</CurrentLine>
<Folding>1</Folding> <Folding>1</Folding>
<ContractedFolders></ContractedFolders> <ContractedFolders></ContractedFolders>
<PaneID>0</PaneID> <PaneID>0</PaneID>

Loading…
Cancel
Save