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] }
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")
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!")
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])
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)
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)
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()
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()
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())