/// <summary> /// Deffuzificates the specified value. /// </summary> /// <param name="value">The value.</param> /// <param name="deffuzification">The deffuzification.</param> /// <returns> /// Deffuzzificated value. /// </returns> public float Deffuzificate(float value, Deffuzification deffuzification) { float left, right, middle; left = right = middle = 0f; if (deffuzification == Deffuzification.LM) { left = value * (this.Middle - this.Left) + this.Left; return(left); } if (deffuzification == Deffuzification.RM) { right = -value * (this.Right - this.Middle) + this.Right; return(right); } if (deffuzification == Deffuzification.MM) { left = value * (this.Middle - this.Left) + this.Left; right = -value * (this.Right - this.Middle) + this.Right; middle = (left + right) / 2; return(middle); } return(0f); }
/// <summary> /// Deffuzificates the specified value. /// </summary> /// <param name="value">The value.</param> /// <param name="deffuzification">The deffuzification.</param> /// <returns> /// Deffuzzificated value. /// </returns> public float Deffuzificate(float value, Deffuzification deffuzification) { float left, right, middle; left = right = middle = 0f; float step = 0.5f; if (deffuzification == Deffuzification.LM) { left = this.GetLeftXValue((float)this.Min, value, step, (float)this.Max); return(left); } if (deffuzification == Deffuzification.RM) { right = this.GetRightXValue((float)this.Max, value, -step, (float)this.Min); return(right); } if (deffuzification == Deffuzification.MM) { right = this.GetRightXValue((float)this.Max, value, -step, (float)this.Min); left = this.GetLeftXValue((float)this.Min, value, step, (float)this.Max); middle = (left + right) / 2; return(middle); } return(0); }
/// <summary> /// Initializes a new instance of the <see cref="RuleBlockModel"/> class. /// </summary> /// <param name="name">The name.</param> /// <param name="inputFuzzyVariables">The input fuzzy variables.</param> /// <param name="outputFuzzyVariables">The output fuzzy variables.</param> /// <param name="normOperator">The norm operator.</param> public RuleBlockModel(string name, ObservableCollection <FuzzyVariableModel> inputFuzzyVariables, ObservableCollection <FuzzyVariableModel> outputFuzzyVariables, NormOperator normOperator, Deffuzification deffuzification) { this.Name = name; this.InputFuzzyVariables = inputFuzzyVariables; this.OutputFuzzyVariables = outputFuzzyVariables; this.NormOperator = normOperator; this.DeffuzificationMethod = deffuzification; }
private void SetDeffuzzificationMethod(Deffuzification deffuzification) { this.comboBoxDeffuzzificationMethod.SelectedItem = deffuzification.ToString(); }