c语言模糊控制编程,单片机 模糊控制 算法 c语言

120         else

121         {

122             fuzzy_out=DEFAULT_VALUE;         // 没有规则被触发

123         }

124     }

125 }

126 /*******************************************************************************

127 Function: fuzzy_engine

128 Description: 实施规则基中的规则

129 Parameters: 无

130 Returns: 无.

131 Side Effects: 无

132 ********************************************************************************/

133 unsigned char bdata clause_val;                        // 保存当前的分支进行快速访问

134 sbit clause_type = clause_val^7;                       // 表示分支是否是条件分支或者是结果分支

135 void fuzzy_engine(uchar input)

136 {

137     bit then;                                       // 当正在分析结果时置位

138     unsigned char if_val,                           // 保存当前规则中条件分支中的值

139                   clause,                           // 规则基中当前的分支

140                       mu,                           // 保存当前分支中的值

141                  label=0;                           // 被条件使用的成员函数

142                   then=0;                           // 设第一个分支是条件分支

143            if_val=MU_MAX;                           // max out mu for the first rule

144     for (clause=0; clause145     {                                               // 遍历每条规则

146         clause_val=rules[clause];                   // 读入当前的分支

147         if (!clause_type)

148         {                                           // 当前的分支是不是条件分支

149             if (then)

150             {                                       // 是否正在分析结果...

151                 then=0;

152                 if_val=MU_MAX;                      // 复位mu

153             }

154             mu=compute_memval(input, label);        // 得到条件分支的值

155             if_val=mu;

156             label++;

157         }

158         else

159         {                                       // 当前分支是结果

160             then=1;            // 置位标志位,如果当前规则的mu比参考的值要大,保存这个值作为新的模糊输出

161             if (outputs[clause_val&0x07] < if_val)

162             {

163                 outputs[clause_val&0x07]=if_val;

164             }

165         }

166     }

167     defuzzify(); // 用COG方法计算模糊输出和反模糊输出

168  }

c2c9ed493cd281aa86d8a6f5178c4c01.gif [1] [2] 610626052e95c7fbe3d254abc769d9ad.gif

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值