本程序分为界面和控制器核心两部分 一、界面部分功能主要有: (1)显示控制器核心数据和参数 (2)与用户交互,可以调节初始输入温度值,并将温度变化率清零以便进行新一轮的模拟。 界面使用了定时器。开启模拟时候,每隔一秒,触发一次计时器消息,完成下列工作: 1. 将界面上的当前温度映射为模糊控制器的输入温度 2. 输出当前温度,当前温度变化率 3. 调用模糊控制,得到控制器输出值,将其乘以m_fFuelEffect (燃料输出对温度变化率的影响率,目前设置为0.3),得到变化率的变化,加到当前温度变化率上,得到新的变化率。 4. 更新变化率,更新温度。将结果映射到界面上。 5. 记录相关数据并以图形、数字方式输出。 二、控制器核心用到的类有 (1)Rule_Func_Single 将简单的函数包装成类,方便后面使用。实现了 NB, NS, ZO, PS, PB 等梯形函数,以及常值函数。 (2)Grading_Func 继承自Rule_Func_Single类,比基类增加一个输入参数,指明梯形函数属于Input, Delta或者Output 。 (3)Rule_Function 将两个Grading_Func结合在一起,进行模糊与或模糊或等模糊逻辑操作,并输出结果。