Exemple #1
0
    def __init__(self):

        self.gpio_config = GPIOConfig()

        left_motor_pin_a = PinOut(id=pin.PIN_1_A, value=0)
        left_motor_pin_b = PinOut(id=pin.PIN_1_B, value=0)
        left_motor_pin_e = PinOut(id=pin.PIN_1_ENABLE, value=0)
        left_motor_pin_out = MotorPinOuts(pin_a=left_motor_pin_a,
                                          pin_b=left_motor_pin_b,
                                          pin_e=left_motor_pin_e)
        left_motor = Motor(motor_name="front-left",
                           motor_pin_out=left_motor_pin_out,
                           gpio_config=self.gpio_config)
        self.gpio_config.set_up_gpio_motor(left_motor)

        right_motor_pin_a = PinOut(id=pin.PIN_2_A, value=0)
        right_motor_pin_b = PinOut(id=pin.PIN_2_B, value=0)
        right_motor_pin_e = PinOut(id=pin.PIN_2_ENABLE, value=0)
        right_motor_pin_out = MotorPinOuts(right_motor_pin_a,
                                           right_motor_pin_b,
                                           right_motor_pin_e)
        right_motor = Motor(motor_name="front-right",
                            motor_pin_out=right_motor_pin_out,
                            gpio_config=self.gpio_config)
        self.gpio_config.set_up_gpio_motor(right_motor)

        self.motors = {
            "L": left_motor,
            "R": right_motor,
            "ALL": [left_motor, right_motor]
        }
Exemple #2
0
    def runMatplotlib(self):
        limit_lower = self.limit_lower_spinbox.value()
        limit_upper = self.limit_upper_spinbox.value()
        if limit_upper > limit_lower:
            test_motor = Motor()

            self.prog_bar_widget = ProgressBar()

            self.matplotlib_obj = CalculateMatplotlib(limit_lower, limit_upper,
                                                      test_motor)
            self.matplotlib_obj._signal.connect(
                self.prog_bar_widget.signal_accept)
            self.prog_bar_widget.show()
            self.matplotlib_obj.start()
        else:
            Utils.show_error_box(
                text=
                "Wartość limit min nie może być większa lub równa wartości limit max",
                title="Błędne wartości")
Exemple #3
0
    def runCalculations(self):
        input_vals = self.validateLimitVals()
        if len(input_vals) == 4:
            ks, kr, gs, gr = input_vals

            test_motor = Motor()
            motor_calc = MotorCalc(test_motor,
                                   limit=0,
                                   kls=ks,
                                   klr=kr,
                                   gs=gs,
                                   gr=gr)
            motor_calc.calculate()
            motor_results = MotorResults(motor_calc)

            self.results_tab = CalcResultsWidget(motor_results)
            self.results_tab.show()

            print(motor_results)
        else:
            print("Nie weszło!")
Exemple #4
0
                and self.calculated_rotor_losses):
            txt += f"Straty dodatkowe w zebach wirnika Ps".ljust(
                45) + f" = {self.Ps:10}\n"
            txt += f"Straty dodatkowe w klatce wirnika PAl".ljust(
                45) + f" = {self.PAl:10}\n"
            txt += f"Straty powierzchniowe w zebach stojana Pss".ljust(
                45) + f" = {self.Pss:10}\n"
            txt += f"Straty pulsacyjne w zebach stojana Pp".ljust(
                45) + f" = {self.Pp:10}\n"
        else:
            txt += "OBLICZENIA NIE ZOSTAŁY WYKONANE CAŁOWICIE"
        return txt


if __name__ == "__main__":
    motor = Motor()
    motorCalc = MotorCalc(motor, limit=5)
    motorCalc.calc_construct_params()
    motorCalc.calc_stator_flux_dens()
    motorCalc.print_stator_flux_dens()
    motorCalc.calc_stator_losses()
    motorCalc.print_stator_losses()
    motorCalc.calc_rotor_params()
    motorCalc.print_rotor_params()
    motorCalc.calc_rotor_flux_dens()
    motorCalc.print_rotor_flux_dens()
    motorCalc.calc_rotor_losses()
    motorCalc.print_rotor_losses()

    print("*" * 50)
    print(motorCalc.stator_losses()[0])
Exemple #5
0
    def __init__(self, xl_file):
        if not xl_file.endswith(".xlsx"):
            xl_file += ".xlsx"
        self.data = pd.read_excel(ROOT_DIR + "/xlsx/" + xl_file,
                                  usecols=["Parametr", "Wartość"],
                                  index_col=None)
        self.data["Parametr"] = self.data["Parametr"].str.strip()

        self.df = pd.DataFrame(self.data,
                               columns=['Parametr', 'Wartość'],
                               index=None)
        self.data_dict = dict(self.df.to_dict(orient="split")['data'])

    @property
    def data_dict(self):
        return self.__data_dict

    @data_dict.setter
    def data_dict(self, val):
        self.__data_dict = val

    def printData(self):
        for k, v in self.data_dict.items():
            print(k, "=", v, " type=", type(v))


if __name__ == "__main__":
    xlParser = ExcelParser("params")
    xlParser.printData()
    motor = Motor(val_dict=xlParser.data_dict)
    print(motor.p)
Exemple #6
0
 def __init__(self, pin_1, pin_2, pin_3, pin_4, pin_5, pin_6, pin_7, pin_8):
     self.motor_f_r = Motor(pin_1, pin_2)
     self.motor_f_l = Motor(pin_3, pin_4)
     self.motor_b_l = Motor(pin_5, pin_6)
     self.motor_b_r = Motor(pin_7, pin_8)
Exemple #7
0
class FourWheelDrive:
    def __init__(self, pin_1, pin_2, pin_3, pin_4, pin_5, pin_6, pin_7, pin_8):
        self.motor_f_r = Motor(pin_1, pin_2)
        self.motor_f_l = Motor(pin_3, pin_4)
        self.motor_b_l = Motor(pin_5, pin_6)
        self.motor_b_r = Motor(pin_7, pin_8)

    def forward(self):
        print('forward')
        self.motor_f_r.forward()
        self.motor_f_l.forward()
        self.motor_b_l.forward()
        self.motor_b_r.forward()

    def backward(self):
        print('backward')
        self.motor_f_r.backward()
        self.motor_f_l.backward()
        self.motor_b_l.backward()
        self.motor_b_r.backward()

    def turn_left(self):
        print('turn left')
        self.motor_f_r.forward()
        self.motor_f_l.backward()
        self.motor_b_l.backward()
        self.motor_b_r.forward()
        
    def turn_right(self):
        print('turn right')
        self.motor_f_r.backward()
        self.motor_f_l.forward()
        self.motor_b_l.forward()
        self.motor_b_r.backward()
        
    def stop(self):
        self.motor_f_r.stop()
        self.motor_f_l.stop()
        self.motor_b_l.stop()
        self.motor_b_r.stop()
Exemple #8
0
            self.__Pp.append(Pp)
            self.__limits.append(i)

            if i == step_range[len(step_range) - 1]:
                self._signal.emit(100)
                print("koniec!")
            else:
                val_to_send = (i / step_range[len(step_range) - 1]) * 100
                self._signal.emit(val_to_send)
                print("wysyłanie ", val_to_send)
        print(self.__limits)

    def plot_losses(self):
        self.fig, self.ax = plt.subplots()
        self.ax.plot(self.__limits, self.__Ps, label="Ps")
        self.ax.plot(self.__limits, self.__PAl, label="PAl")
        self.ax.plot(self.__limits, self.__Pss, label="Pss")
        self.ax.plot(self.__limits, self.__Pp, label="Pp")
        self.ax.set_xlabel("Zakres harmonicznych")
        self.ax.set_ylabel("Straty")
        self.ax.set_title("Straty dodatkowe silnika")
        self.ax.legend()
        plt.show()


if __name__ == "__main__":
    test_motor = Motor()
    t = CalculateMatplotlib(1, 100, test_motor)
    t.run()
    t.plot_losses()
Exemple #9
0
        Load contents from file.
        :param filename: name of file to be loaded.
        :return: str
        """
        if filename is None:
            raise LoadFileError("Filename is empty!")
        with open(filename, 'r') as f:
            f_cont = f.read()
        return f_cont

    def __str__(self):
        return self.__motor_calc.__str__()


if __name__ == "__main__":
    m = Motor()
    m_calc = MotorCalc(m, limit=15)
    m_calc.calculate()
    m_res = MotorResults(m_calc)

    m_res.save_to_json("test_3")

    # limit, Ps, PAl, Pss, Pp, stator_losses, rotor_losses = \
    #     loaded_json = m_res.load_from_json(r'json/testowy_1.json')

    # loaded_json = OrderedDict(loaded_json)
    # for k, v in loaded_json.items():
    #     print(k, v)

    # print(m_res.load_from_file(r'results/results_25-01-21 21.20.29.txt').splitlines())