def __set_fuzzy_rules_ui(self): antecedents = ('small', 'medium', 'large') group_box = QGroupBox("Fuzzy Rules Setting") inner_layout = QVBoxLayout() group_box.setStatusTip("Set the rules for the fuzzy system.") self.rules_setting = FuzzyRulesSetting( [p for p in itertools.product(antecedents, repeat=2)]) self.rules_setting.set_consequence_fuzzysets( ('large', 'small', 'small', 'large', 'small', 'small', 'large', 'small', 'small')) inner_layout.addWidget(self.rules_setting) group_box.setLayout(inner_layout) self.__layout.addWidget(group_box)
def __set_fuzzy_variables_ui(self): group_box = QGroupBox("Fuzzy Variables Settings") group_box.setStatusTip("Set the membership functions for each fuzzy " "variable.") inner_layout = QVBoxLayout() self.fuzzyvar_setting_stack = QStackedWidget() self.fuzzyvar_ui_selection = RadioButtonSet([ ("front", QRadioButton("Front Distance Radar")), ("lrdiff", QRadioButton("(Left-Right) Distance Radar")), ("consequence", QRadioButton("Consequence")) ]) self.fuzzyvar_setting_dist_front = FuzzierVarSetting() self.fuzzyvar_setting_dist_front.small.mean.setValue(5) self.fuzzyvar_setting_dist_front.medium.mean.setValue(12) self.fuzzyvar_setting_dist_front.large.mean.setValue(20) self.fuzzyvar_setting_dist_lrdiff = FuzzierVarSetting() self.fuzzyvar_setting_dist_lrdiff.small.mean.setValue(-10) self.fuzzyvar_setting_dist_lrdiff.medium.mean.setValue(0) self.fuzzyvar_setting_dist_lrdiff.large.mean.setValue(10) self.fuzzyvar_setting_consequence = FuzzierVarSetting() self.fuzzyvar_setting_consequence.small.mean.setValue(-12) self.fuzzyvar_setting_consequence.small.sd.setValue(20) self.fuzzyvar_setting_consequence.medium.mean.setValue(0) self.fuzzyvar_setting_consequence.medium.sd.setValue(20) self.fuzzyvar_setting_consequence.large.mean.setValue(12) self.fuzzyvar_setting_consequence.large.sd.setValue(20) inner_layout.addWidget(self.fuzzyvar_ui_selection) inner_layout.addWidget(self.fuzzyvar_setting_stack) group_box.setLayout(inner_layout) self.fuzzyvar_setting_stack.addWidget(self.fuzzyvar_setting_dist_front) self.fuzzyvar_setting_stack.addWidget( self.fuzzyvar_setting_dist_lrdiff) self.fuzzyvar_setting_stack.addWidget( self.fuzzyvar_setting_consequence) self.fuzzyvar_ui_selection.sig_rbtn_changed.connect( self.__change_fuzzyvar_setting_ui_stack) self.__layout.addWidget(group_box)