diff --git a/APP/main.c b/APP/main.c index a0554a1..d843185 100644 --- a/APP/main.c +++ b/APP/main.c @@ -390,7 +390,7 @@ void exception_monitor_schedule() { * @brief 监控功率变化情况 * 当频率已经调整到了可调范围的最低时候,功率依然大于期望功率,则触发异常 */ - if (ozone_control_get_ozone_power() > (ozone_control_get_expect_power() + const_expect_power_windonws) && // + if (ozone_control_get_ozone_power() > (ozone_control_get_expect_power() + EXPECT_POWER_WINDONWS) && // ozone_control_get_working_state()->nowfreq == ozone_control_get_working_state()->resonant_frequency) { trigger_exception(kPowerOutOfControl); return; diff --git a/APP/service/ozone_control_service.c b/APP/service/ozone_control_service.c index ef64060..d8a5595 100644 --- a/APP/service/ozone_control_service.c +++ b/APP/service/ozone_control_service.c @@ -91,9 +91,9 @@ static float mf_get_ozone_power() { return kalmanFilter(&KFPConfig, __mf_get_ozo float get_expect_power() { float expectpower = 0; if (thisDevice.level == klevel1) { - expectpower = const_level1_expect_power; + expectpower = LEVEL1_EXPECT_POWER; } else if (thisDevice.level == klevel2) { - expectpower = const_level2_expect_power; + expectpower = LEVEL2_EXPECT_POWER; } return expectpower; } @@ -167,8 +167,8 @@ static state_machine_state_t* processWorkingState(state_machine_t* machine, stat /** * 检查当前功率是否在期望功率窗口之外时候([expertpower+window,expertpower-window]), */ - if (nowpower < (get_expect_power() - const_expect_power_windonws) || // - nowpower > (get_expect_power() + const_expect_power_windonws)) { + if (nowpower < (get_expect_power() - EXPECT_POWER_WINDONWS) || // + nowpower > (get_expect_power() + EXPECT_POWER_WINDONWS)) { s_workingstate.adjustedToTheProperPower = false; printf("change freq [ no ],freq %d, ozonePower %f-->%f fanPower:%f\n", s_workingstate.nowfreq, nowpower, get_expect_power(), fanpower); if (nowpower < get_expect_power()) { @@ -184,7 +184,7 @@ static state_machine_state_t* processWorkingState(state_machine_t* machine, stat if (s_workingstate.changefreqdirection) { if (nowpower < get_expect_power()) { s_workingstate.nowfreq += 25; - if (s_workingstate.nowfreq > const_max_freq) s_workingstate.nowfreq = const_max_freq; + if (s_workingstate.nowfreq > MAX_FREQ) s_workingstate.nowfreq = MAX_FREQ; printf("change freq [ up ],freq %d, ozonePower %f-->%f fanPower:%f\n", s_workingstate.nowfreq, nowpower, get_expect_power(), fanpower); port_ozone_pwm_set_duty(s_workingstate.nowfreq, kconst_pwm_work_dutyns); } else { diff --git a/APP/service/thisdevice.h b/APP/service/thisdevice.h index 78cab5e..3477723 100644 --- a/APP/service/thisdevice.h +++ b/APP/service/thisdevice.h @@ -55,11 +55,12 @@ typedef struct { #define EXCEPTION_CHECK_PERIOD 50 // #define kconst_pwm_work_dutyns 5000 //臭氧模块工作时候高电平时间 -#define const_expect_power_windonws ((float)(0.3)) //允许设备工作在 [level1_expect_power-windows,level1_expect_power+windows]之间 -#define const_level1_expect_power ((float)(3.0)) // -#define const_level2_expect_power ((float)(5.0)) // -#define const_max_freq ((float)(38000)) //设备可提供调整频率的最大频率 +#define EXPECT_POWER_WINDONWS ((float)(0.3)) //允许设备工作在 [level1_expect_power-windows,level1_expect_power+windows]之间 +#define LEVEL1_EXPECT_POWER ((float)(3.0)) // +#define LEVEL2_EXPECT_POWER ((float)(5.0)) // +#define MAX_FREQ ((float)(38000)) //设备可提供调整频率的最大频率 +//卡尔曼滤波器参数 #define KALMAN_FILTER_PARA \ { 0.02, 0, 0, 0, 0.05, 0.543 }