4 changed files with 104 additions and 41 deletions
@ -0,0 +1,11 @@
|
||||
package com.mh.quartz.domain; |
||||
|
||||
/** |
||||
* @Classname FuzzyLevel |
||||
* Todo: |
||||
* @Date 2025-05-31 14:19 |
||||
* @Created by LJF |
||||
*/ |
||||
public enum FuzzyLevel { |
||||
NB, NM, NS, ZO, PS, PM, PB; // 极小,较小,小,零,稍大,较大,极大
|
||||
} |
@ -0,0 +1,29 @@
|
||||
package com.mh.quartz.util; |
||||
|
||||
import com.mh.quartz.domain.FuzzyLevel; |
||||
|
||||
/** |
||||
* @Classname FuzzyRuleBase |
||||
* Todo: |
||||
* @Date 2025-05-31 14:20 |
||||
* @Created by LJF |
||||
*/ |
||||
public class FuzzyRuleBase { |
||||
|
||||
// ΔKp 规则:根据误差 e 与误差变化 ec 得到修正量
|
||||
private static final FuzzyLevel[][] kpRuleTable = { |
||||
{FuzzyLevel.PB, FuzzyLevel.PM, FuzzyLevel.PS, FuzzyLevel.ZO, FuzzyLevel.NS, FuzzyLevel.NM, FuzzyLevel.NB}, |
||||
{FuzzyLevel.PM, FuzzyLevel.PS, FuzzyLevel.ZO, FuzzyLevel.NS, FuzzyLevel.NM, FuzzyLevel.NB, FuzzyLevel.NB}, |
||||
{FuzzyLevel.PS, FuzzyLevel.ZO, FuzzyLevel.NS, FuzzyLevel.NM, FuzzyLevel.NB, FuzzyLevel.NB, FuzzyLevel.NB}, |
||||
{FuzzyLevel.ZO, FuzzyLevel.ZO, FuzzyLevel.ZO, FuzzyLevel.ZO, FuzzyLevel.ZO, FuzzyLevel.ZO, FuzzyLevel.ZO}, |
||||
{FuzzyLevel.NS, FuzzyLevel.ZO, FuzzyLevel.PS, FuzzyLevel.PM, FuzzyLevel.PB, FuzzyLevel.PB, FuzzyLevel.PB}, |
||||
{FuzzyLevel.NM, FuzzyLevel.NS, FuzzyLevel.ZO, FuzzyLevel.PS, FuzzyLevel.PM, FuzzyLevel.PB, FuzzyLevel.PB}, |
||||
{FuzzyLevel.NB, FuzzyLevel.NB, FuzzyLevel.NS, FuzzyLevel.ZO, FuzzyLevel.PS, FuzzyLevel.PM, FuzzyLevel.PB} |
||||
}; |
||||
|
||||
public static FuzzyLevel getKpAdjust(FuzzyLevel e, FuzzyLevel ec) { |
||||
return kpRuleTable[e.ordinal()][ec.ordinal()]; |
||||
} |
||||
|
||||
// 可扩展为不同规则表:getKiAdjust(), getKdAdjust()
|
||||
} |
Loading…
Reference in new issue