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