def create_csv(name_file_csv: str, path: str, folder_name: str) -> None: print(f'Выбран файл: {path}') get = GettingParameter() for point in range(POINT_START, POINT_END): RASTR.ReadPnt(point) list_ = [] count = RASTR.Tables("area2").Count for index in range(0, count - 1): na = get.get_cell_row(table="area2", column="npa", row_id=index) name = get.get_cell_row(table="area2", column="name", row_id=index) pn = get.get_cell_row(table="area2", column="pn", row_id=index) pg = get.get_cell_row(table="area2", column="pg", row_id=index) create_table_area(list_, na, name, pn, pg) data = pandas.DataFrame(list_) try: if not os.path.exists(folder_name): mkdir(folder_name) except FileExistsError: print("Каталог уже существует!") except PermissionError: print("Отсутствуют права на доступ к каталогу!") fullname = f'{path}/{folder_name}/{name_file_csv}_{point}.csv' # print(fullname) data.to_csv(fullname, sep=';') list_.clear()
def equivalent_gen(viborka_gen): ekv_obj = Equivalent(rastr_win=RASTR, switch_command_line=False) sel_remove = RemoveSelObjects(rastr_win=RASTR) sel_remove.remove_sel_vetv() sel_remove.remove_sel_node() list_na = [102, 103, 104, 105, 106, 107, 108, 109] get_ = GettingParameter() variable_ = Variable() for i in range(0, 26558): na_vetv = get_.get_cell(table=vetv_table, column=vetv.na, row_id=i) v_ip = get_.get_cell(table=vetv_table, column=vetv.v_ip, row_id=i) v_iq = get_.get_cell(table=vetv_table, column=vetv.v_iq, row_id=i) for na in list_na: if na == na_vetv: if 160 > v_iq and 160 > v_ip: variable_.make_changes_row(table=vetv_table, column=vetv.sel, row_id=i, value=1)
def filling_list_of_data(table, column, rastr_win): list_ = [] getting_parameter_obj = GettingParameter(rastr_win=rastr_win) count = getting_parameter_obj.get_count_table(table) print(f'count={count}') print(f"Количество строк в таблице {table}: {count}") for i in range(count): char = getting_parameter_obj.get_cell_row(table=table, column=column, row_id=i) list_.append(char) return list_
def __init__(self, rastr_win=RASTR, table=Node.table, switch_command_line=False): f""" Класс включает и отключает заданный узел. :param rastr_win: {Tools.RastrDoc}; :param table: название таблицы; :param switch_command_line: {Tools.switch_command_line_doc}; """ self.rastr_win = rastr_win self.table = table self.variable_ = Variable() self.get_ = GettingParameter() self.switch_command_line = switch_command_line
# load - BARS wb_skuns = load_workbook( filename=r'C:\Users\Ohrimenko_AG\Desktop\BARS\ВетвиСкунс.xlsx') ws_skuns = wb_skuns["Ветви"] vetv_list_bars = [] for i in range(3, 1430): create_data_list(list_vetv=vetv_list_bars, work_sheet=ws_skuns, index=i) # load - SMZU load_file(rastr_win=RASTR, file_path=r'C:\Users\Ohrimenko_AG\Desktop\BARS\smzu_mega.mptsmz', shabl=Shabl.without_shabl, switch_command_line=True) vetv_list_smzu = [] getting_parameter_obj = GettingParameter(rastr_win=RASTR) count_smzu_vetv = getting_parameter_obj.get_count_table(Vetv.table) for i in range(count_smzu_vetv): create_data_smzu(list_vetv=vetv_list_smzu, i=i) count_bars_vetv = len(vetv_list_bars) for i in range(count_bars_vetv - 3): name_bars = vetv_list_bars[i]['name'] tip_bars = vetv_list_bars[i]['tip'] ip_bars = vetv_list_bars[i]['ip'] iq_bars = vetv_list_bars[i]['iq'] np_bars = vetv_list_bars[i]['np'] r_bars = vetv_list_bars[i]['r'] x_bars = vetv_list_bars[i]['x'] b_bars = vetv_list_bars[i]['b'] ktr_bars = vetv_list_bars[i]['ktr']
# -*- coding: utf-8 -*- from RastrWinLib.operation.get import GettingParameter from RastrWinLib.Load import load_file from RastrWinLib.Load.save import save_file from RastrWinLib.Load.shablon import Shabl from RastrWinLib.Tables.tables_attributes import vetv_table, node_table from RastrWinLib.operation.Variable import Variable load_file( file_path= r'C:\Users\Ohrimenko_AG\Desktop\Test_equiPy\02-БРМ Зима максимум [уст].rg2', shabl=Shabl.shablon_file_regime, switch_command_line=True) get_ = GettingParameter() variable_ = Variable() for i in range(0, 26558): ip = get_.get_cell(table=vetv_table, column='ip', row_id=i) iq = get_.get_cell(table=vetv_table, column='iq', row_id=i) row_ny_ip = get_.get_row_node(node_ny=ip) row_ny_iq = get_.get_row_node(node_ny=iq) na_ip = get_.get_cell(table=node_table, column='na', row_id=row_ny_ip) na_iq = get_.get_cell(table=node_table, column='na', row_id=row_ny_iq) if na_ip == na_iq: print(f'na_ip={na_ip} == na_iq={na_iq}') variable_.make_changes_row(table=vetv_table,
def change_parameters_ARV_REM(Id=None, row_id=None, Ku=Parameters.Ku, Trv=Parameters.Trv, Ku1=Parameters.Ku1, Kif1=Parameters.Kif1, Kf=Parameters.Kf, Kf1=Parameters.Kf1, rastr_win=RASTR, switch_command_line: bool = False): """ :param Id: номер возбудителя; :param row_id: порядковый номер в таблице (от 0 до [max.count]); :param Ku: Коэффициент усиления пропорционального канала регулятора напряжения 5...200 :param Trv: Постоянная времени регулятора 0.1 ... 5 :param Ku1: Коэффициент усиления канала по производной напряжения 0 ... 10 :param Kif1: Коэффициент усиления канала по производной тока ротора 0 ... 5 :param Kf: Коэффициент усиления канала по частоте 0 ... 15 :param Kf1: Коэффициент усиления канала по производной частоты 0 ... 7.5 :param rastr_win: COM - объект Rastr.Astra (win32com); :param switch_command_line: True/False - вывод сообщений в протакол; :return: """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) if Id is not None and row_id is None: # Ku if switch_command_line is not None: ku_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku, key=f'{ExcControl.Id}={Id}', value=Ku) if switch_command_line is not None: ku_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_after = None # Trv if switch_command_line is not None: trv_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Trv, Id=Id) else: trv_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Trv, key=f'{ExcControl.Id}={Id}', value=Trv) if switch_command_line is not None: trv_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Trv, Id=Id) else: trv_after = None # Ku1 if switch_command_line is not None: ku1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku1, key=f'{ExcControl.Id}={Id}', value=Ku1) if switch_command_line is not None: ku1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1_after = None # Kif1 if switch_command_line is not None: kif1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kif1, key=f'{ExcControl.Id}={Id}', value=Kif1) if switch_command_line is not None: kif1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1_after = None # Kf if switch_command_line is not None: kf_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kf, key=f'{ExcControl.Id}={Id}', value=Kf) if switch_command_line is not None: kf_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf_after = None # Kf1 if switch_command_line is not None: kf1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kf1, key=f'{ExcControl.Id}={Id}', value=Kf1) if switch_command_line is not None: kf1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1_after = None elif row_id is not None and Id is None: # Ku if switch_command_line is not None: ku_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku, row_id=row_id) else: ku_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Ku, row_id=row_id, value=Ku) if switch_command_line is not None: ku_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_after = None # Trv if switch_command_line is not None: trv_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Trv, row_id=row_id) else: trv_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Trv, row_id=row_id, value=Trv) if switch_command_line is not None: trv_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Trv, row_id=row_id) else: trv_after = None # Ku1 if switch_command_line is not None: ku1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id) else: ku1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id, value=Ku1) if switch_command_line is not None: ku1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id) else: ku1_after = None # Kif1 if switch_command_line is not None: kif1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id) else: kif1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id, value=Kif1) if switch_command_line is not None: kif1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id) else: kif1_after = None # Kf if switch_command_line is not None: kf_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id) else: kf_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id, value=Kf) if switch_command_line is not None: kf_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id) else: kf_after = None # Kf1 if switch_command_line is not None: kf1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id) else: kf1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id, value=Kf1) if switch_command_line is not None: kf1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id) else: kf1_after = None else: Id = None row_id = None ku_before, ku_after = None, None trv_before, trv_after = None, None ku1_before, ku1_after = None, None kif1_before, kif1_after = None, None kf_before, kf_after = None, None kf1_before, kf1_after = None, None if row_id is not None or Id is not None: if switch_command_line is not False: print( f'{separator_two}\n' f' Внесены изменения в таблицу {ExcControl.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения 5...200: до {ku_before}; после {ku_after};\n' f'- Trv: Постоянная времени регулятора 0.1 ...5: до {trv_before}; после {trv_after};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения 0...10: до {ku1_before}; после {ku1_after};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора 0...5: до {kif1_before}; после {kif1_after};\n' f'- Kf: Коэффициент усиления канала по частоте 0...15: до {kf_before}; после {kf_after};\n' f'- Kf1: Коэффициент усиления канала по производной частоты 0... 7.5: до {kf1_before}; после {kf1_after};\n' f'{separator_two}\n') return ( f'{separator_two}\n' f' Внесены изменения в таблицу {ExcControl.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения 5...200: до {ku_before}; после {ku_after};\n' f'- Trv: Постоянная времени регулятора 0.1...5: до {trv_before}; после {trv_after};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения 0...10: до {ku1_before}; после {ku1_after};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора 0...5: до {kif1_before}; после {kif1_after};\n' f'- Kf: Коэффициент усиления канала по частоте 0...15: до {kf_before}; после {kf_after};\n' f'- Kf1: Коэффициент усиления канала по производной частоты 0...7.5: до {kf1_before}; после {kf1_after};\n' f'{separator_two}\n') else: print('')
def change_parameters_ARV3M(Id: int = None, row_id: int = None, Ku: float = Parameters.Ku, K_Q: float = Parameters.K_Q, Kif1: float = Parameters.Kif1, T1if: float = Parameters.T1if, Ku1: float = Parameters.Ku1, T1u1: float = Parameters.T1u1, K_P: float = Parameters.K_P, K_Ia: float = Parameters.K_Ia, Tf: float = Parameters.Tf, Kf: float = Parameters.Kf, Kf1: float = Parameters.Kf1, TINT: float = Parameters.TINT, rastr_win=RASTR, switch_command_line: bool = False): """ Функция change_parameters_ARV3M - :param switch_command_line: True/False - вывод сообщений в протакол; :param rastr_win: COM - объект Rastr.Astra (win32com); :param Id: Номер возбудителя; :param row_id: порядковый номер в таблице (от 0 до [max.count]); :param Ku: Коэффициент усиления пропорционального канала регулятора напряжения; :param K_Q: Коэффициент усиления канала по производной тока ротора; :param Kif1: Коэффициент усиления канала по производной тока ротора; :param T1if: Постоянная времени дифференциру-ющего звена в канале по производной тока ротора; :param Ku1: Коэффициент усиления канала по производной напряжения; :param T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения; :param K_P: Коэффициент усиления выходного сигнала ОМВ; :param K_Ia: Уставка ограничителя максимального тока ротора; :param Tf: Постоянная времени дифференцирующего звена в канале по частоте; :param Kf: Коэффициент усиления в канале по частоте; :param Kf1: Коэффициент усиления в канале по производной частоты; :param TINT: Постоянная времени интегратора; :return: Возвращает все параметры в строковом виде для протокола. """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) if Id is not None and row_id is None: # Ku if switch_command_line is not None: ku_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku, key=f'{ExcControl.Id}={Id}', value=Ku) if switch_command_line is not None: ku_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_after = None # K_Q if switch_command_line is not None: k_q_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Q, Id=Id) else: k_q_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.K_Q, key=f'{ExcControl.Id}={Id}', value=K_Q) if switch_command_line is not None: k_q_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Q, Id=Id) else: k_q_after = None # Kif1 if switch_command_line is not None: kif1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kif1, key=f'{ExcControl.Id}={Id}', value=Kif1) if switch_command_line is not None: kif1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1_after = None # T1if if switch_command_line is not None: t1if_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1if, Id=Id) else: t1if_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.T1if, key=f'{ExcControl.Id}={Id}', value=T1if) if switch_command_line is not None: t1if_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1if, Id=Id) else: t1if_after = None # Ku1 if switch_command_line is not None: ku1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku1, key=f'{ExcControl.Id}={Id}', value=Ku1) if switch_command_line is not None: ku1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1_after = None # T1u1 if switch_command_line is not None: t1u1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1u1, Id=Id) else: t1u1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.T1u1, key=f'{ExcControl.Id}={Id}', value=T1u1) if switch_command_line is not None: t1u1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1u1, Id=Id) else: t1u1_after = None # K_P if switch_command_line is not None: kp_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_P, Id=Id) else: kp_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.K_P, key=f'{ExcControl.Id}={Id}', value=K_P) if switch_command_line is not None: kp_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_P, Id=Id) else: kp_after = None # K_Ia if switch_command_line is not None: k_ia_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Ia, Id=Id) else: k_ia_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.K_Ia, key=f'{ExcControl.Id}={Id}', value=K_Ia) if switch_command_line is not None: k_ia_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Ia, Id=Id) else: k_ia_after = None # Tf if switch_command_line is not None: tf_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Tf, Id=Id) else: tf_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Tf, key=f'{ExcControl.Id}={Id}', value=Tf) if switch_command_line is not None: tf_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Tf, Id=Id) else: tf_after = None # Kf if switch_command_line is not None: kf_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kf, key=f'{ExcControl.Id}={Id}', value=Kf) if switch_command_line is not None: kf_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf_after = None # Kf1 if switch_command_line is not None: kf1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kf1, key=f'{ExcControl.Id}={Id}', value=Kf1) if switch_command_line is not None: kf1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1_after = None # TINT if switch_command_line is not None: tint_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.TINT, Id=Id) else: tint_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.TINT, key=f'{ExcControl.Id}={Id}', value=TINT) if switch_command_line is not None: tint_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.TINT, Id=Id) else: tint_after = None if switch_command_line is not False: print( f'{separator_two}\n' f'Таблица: "{ExcControl.table}" - {ExcControl.table_name}:\n' f'- Id: Номер возбудителя: {Id}\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения: до {ku_before}; после {ku_after};\n' f'- K_Q: Коэффициент усиления канала по производной тока ротора: до {k_q_before}; после {k_q_after};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора: до {kif1_before}; после {kif1_after};\n' f'- T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора: до {t1if_before}; после {t1if_after};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения: до {ku1_before}; после {ku1_after};\n' f'- T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения: до {t1u1_before}; после {t1u1_after};\n' f'- K_P: Коэффициент усиления выходного сигнала ОМВ: до {kp_before}; после {kp_after};\n' f'- K_Ia: Уставка ограничителя максимального тока ротора: до {k_ia_before}; после {k_ia_after};\n' f'- Tf: Постоянная времени дифференцирующего звена в канале по частоте: до {tf_before}; после {tf_after};\n' f'- Kf: Коэффициент усиления в канале по частоте: до {kf_before}; после {kf_after};\n' f'- Kf1: Коэффициент усиления в канале по производной частоты: до {kf1_before}; после {kf1_after};\n' f'- TINT: Постоянная времени интегратора: до {tint_before}; после {tint_after};\n' f'{separator_two}\n') if row_id is not None and Id is None: # Ku if switch_command_line is not False: ku_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku, row_id=row_id) else: ku_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Ku, row_id=row_id, value=Ku) if switch_command_line is not False: ku_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku, row_id=row_id) else: ku_after = None # K_Q if switch_command_line is not False: k_q_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_Q, row_id=row_id) else: k_q_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.K_Q, row_id=row_id, value=K_Q) if switch_command_line is not False: k_q_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_Q, row_id=row_id) else: k_q_after = None # Kif1 if switch_command_line is not False: kif1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id) else: kif1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id, value=Kif1) if switch_command_line is not False: kif1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id) else: kif1_after = None # T1if if switch_command_line is not False: t1if_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.T1if, row_id=row_id) else: t1if_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.T1if, row_id=row_id, value=T1if) if switch_command_line is not False: t1if_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.T1if, row_id=row_id) else: t1if_after = None # Ku1 if switch_command_line is not False: ku1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id) else: ku1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id, value=Ku1) if switch_command_line is not False: ku1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id) else: ku1_after = None # T1u1 if switch_command_line is not False: t1u1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.T1u1, row_id=row_id) else: t1u1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.T1u1, row_id=row_id, value=T1u1) if switch_command_line is not False: t1u1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.T1u1, row_id=row_id) else: t1u1_after = None # K_P if switch_command_line is not False: kp_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_P, row_id=row_id) else: kp_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.K_P, row_id=row_id, value=K_P) if switch_command_line is not False: kp_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_P, row_id=row_id) else: kp_after = None # K_Ia if switch_command_line is not False: k_ia_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_Ia, row_id=row_id) else: k_ia_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.K_Ia, row_id=row_id, value=K_Ia) if switch_command_line is not False: k_ia_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_Ia, row_id=row_id) else: k_ia_after = None # Tf if switch_command_line is not False: tf_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Tf, row_id=row_id) else: tf_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Tf, row_id=row_id, value=Tf) if switch_command_line is not False: tf_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Tf, row_id=row_id) else: tf_after = None # Kf if switch_command_line is not False: kf_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id) else: kf_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id, value=Kf) if switch_command_line is not False: kf_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id) else: kf_after = None # Kf1 if switch_command_line is not False: kf1_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id) else: kf1_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id, value=Kf1) if switch_command_line is not False: kf1_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id) else: kf1_after = None # TINT if switch_command_line is not False: tint_before = get_.get_cell_row(table=ExcControl.table, column=ExcControl.TINT, row_id=row_id) else: tint_before = None variable_.make_changes_row(table=ExcControl.table, column=ExcControl.TINT, row_id=row_id, value=TINT) if switch_command_line is not False: tint_after = get_.get_cell_row(table=ExcControl.table, column=ExcControl.TINT, row_id=row_id) else: tint_after = None if switch_command_line is not False: print( f'{separator_two}\n' f'Таблица: "{ExcControl.table}" - {ExcControl.table_name}:\n\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id}\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения: до {ku_before}; после {ku_after};\n' f'- K_Q: Коэффициент усиления канала по производной тока ротора: до {k_q_before}; после {k_q_after};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора: до {kif1_before}; после {kif1_after};\n' f'- T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора: до {t1if_before}; после {t1if_after};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения: до {ku1_before}; после {ku1_after};\n' f'- T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения: до {t1u1_before}; после {t1u1_after};\n' f'- K_P: Коэффициент усиления выходного сигнала ОМВ: до {kp_before}; после {kp_after};\n' f'- K_Ia: Уставка ограничителя максимального тока ротора: до {k_ia_before}; после {k_ia_after};\n' f'- Tf: Постоянная времени дифференцирующего звена в канале по частоте: до {tf_before}; после {tf_after};\n' f'- Kf: Коэффициент усиления в канале по частоте: до {kf_before}; после {kf_after};\n' f'- Kf1: Коэффициент усиления в канале по производной частоты: до {kf1_before}; после {kf1_after};\n' f'- TINT: Постоянная времени интегратора: до {tint_before}; после {tint_after};\n' f'{separator_two}\n')
n = open(file_log_node, 'w') f = open(file_log_gen, 'w') g = open(file_log_vetv, 'w') area = open(file_log_area, 'w') one_rastr = win32com.client.Dispatch("Astra.Rastr") two_rastr = win32com.client.Dispatch("Astra.Rastr") load_file(rastr_win=one_rastr, file_path=file_one_rg2, shabl=Shabl.shablon_file_regime, switch_command_line=False) load_file(rastr_win=two_rastr, file_path=file_two_rst, shabl=Shabl.shablon_file_dynamic, switch_command_line=False) gen_table_file_one = one_rastr.Tables(Generator.table) max_column_gen_file_one = gen_table_file_one.Count - 1 print(f'Max Gen file_one: {max_column_gen_file_one}') get_one = GettingParameter(rastr_win=one_rastr) get_two = GettingParameter(rastr_win=two_rastr) val_file_one = Variable(rastr_win=one_rastr, switch_command_line=False) val_file_two = Variable(rastr_win=two_rastr, switch_command_line=False) switch_two = SwitchVetv(rastr_win=two_rastr) gen_fl = 1 if gen_fl == 1: # ********** Генератор **************** for i in range(0, max_column_gen_file_one): """ Извлекает из файла rg2 (файл 1), Название, Номер, Состояние, P, Q из таблиццы Генераторы ИД """ name_gen_file_one = get_one.get_cell_row(table=Generator.table, column=Generator.Name, row_id=i) num_gen_file_one = get_one.get_cell_row(table=Generator.table, column=Generator.Num, row_id=i) sta_gen_file_one = get_one.get_cell_row(table=Generator.table, column=Generator.sta, row_id=i) p_gen_gen_file_one = get_one.get_cell_row(table=Generator.table, column=Generator.P, row_id=i)
def change_parameters_AC5B( Id=None, row_id=None, Kpr=Parameters.Kpr, Tb=Parameters.Tb, Ka=Parameters.Ka, Vrmax=Parameters.Vrmax, Vrmin=Parameters.Vrmin, Te=Parameters.Te, Aex=Parameters.Aex, Bex=Parameters.Bex, rastr_win=RASTR, switch_command_line: bool = False): """ :param Id: номер возбудителя; :param row_id: порядковый номер в таблице (от 0 до [max.count]); :param Kpr: Коэффициент усиления дифференциального звена; :param Tb: Постоянная времени дифференциального звена; :param Ka: Пропорциональный коэффициент усиления регулятора напряжения; :param Vrmax: Максимальное ограничение интегрального звена; :param Vrmin: Минимальное ограничение интегрального звена; :param Te: Постоянная времени интегратора возбудителя; :param Aex: Коэффициент экспоненты (задание насыщения); :param Bex: Степень экспоненты (задание насыщения); :param switch_command_line: True/False - вывод сообщений в протакол; :param rastr_win: COM - объект Rastr.Astra (win32com); :return: Noting return. """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) if Id is not None and row_id is None: # Kpr if switch_command_line is not None: kpr_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, Id=Id) else: kpr_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, key=f'{DFWIEEE421.Id}={Id}', value=Kpr) if switch_command_line is not None: kpr_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, Id=Id) else: kpr_after = None # Tb if switch_command_line is not None: tb_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Tb, Id=Id) else: tb_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Tb, key=f'{DFWIEEE421.Id}={Id}', value=Tb) if switch_command_line is not None: tb_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Tb, Id=Id) else: tb_after = None # Ka if switch_command_line is not None: ka_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Ka, Id=Id) else: ka_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Ka, key=f'{DFWIEEE421.Id}={Id}', value=Ka) if switch_command_line is not None: ka_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Ka, Id=Id) else: ka_after = None # Vrmax if switch_command_line is not None: vrmax_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, Id=Id) else: vrmax_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, key=f'{DFWIEEE421.Id}={Id}', value=Vrmax) if switch_command_line is not None: vrmax_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, Id=Id) else: vrmax_after = None # Vrmin if switch_command_line is not None: vrmin_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, Id=Id) else: vrmin_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, key=f'{DFWIEEE421.Id}={Id}', value=Vrmin) if switch_command_line is not None: vrmin_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, Id=Id) else: vrmin_after = None # Te if switch_command_line is not None: te_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Te, Id=Id) else: te_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Te, key=f'{DFWIEEE421.Id}={Id}', value=Te) if switch_command_line is not None: te_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Te, Id=Id) else: te_after = None # Aex if switch_command_line is not None: aex_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Aex, Id=Id) else: aex_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Aex, key=f'{DFWIEEE421.Id}={Id}', value=Aex) if switch_command_line is not None: aex_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Aex, Id=Id) else: aex_after = None # Bex if switch_command_line is not None: bex_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Bex, Id=Id) else: bex_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Bex, key=f'{DFWIEEE421.Id}={Id}', value=Bex) if switch_command_line is not None: bex_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Bex, Id=Id) else: bex_after = None if switch_command_line is not False: print( f'{separator_two}\n' f' Внесены изменения в таблицу {DFWIEEE421.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Kpr: Коэффициент усиления дифференциального звена: до {kpr_before}; после {kpr_after};\n' f'- Tb: Постоянная времени дифференциального звена: до {tb_before}; после {tb_after};\n' f'- Ka: Пропорциональный коэффициент усиления регулятора напряжения: до {ka_before}; после {ka_after};\n' f'- Vrmax: Максимальное ограничение интегрального звена: до {vrmax_before}; после {vrmax_after};\n' f'- Vrmin: Минимальное ограничение интегрального звена: до {vrmin_before}; после {vrmin_after};\n' f'- Te: Постоянная времени интегратора возбудителя: до {te_before}; после {te_after};\n' f'- Aex: Коэффициент экспоненты (задание насыщения): до {aex_before}; после {aex_after};\n' f'- Bex: Степень экспоненты (задание насыщения): до {bex_before}; после {bex_after};\n' f'{separator_two}\n' ) return ( f'{separator_two}\n' f' Внесены изменения в таблицу {DFWIEEE421.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Kpr: Коэффициент усиления дифференциального звена: до {kpr_before}; после {kpr_after};\n' f'- Tb: Постоянная времени дифференциального звена: до {tb_before}; после {tb_after};\n' f'- Ka: Пропорциональный коэффициент усиления регулятора напряжения: до {ka_before}; после {ka_after};\n' f'- Vrmax: Максимальное ограничение интегрального звена: до {vrmax_before}; после {vrmax_after};\n' f'- Vrmin: Минимальное ограничение интегрального звена: до {vrmin_before}; после {vrmin_after};\n' f'- Te: Постоянная времени интегратора возбудителя: до {te_before}; после {te_after};\n' f'- Aex: Коэффициент экспоненты (задание насыщения): до {aex_before}; после {aex_after};\n' f'- Bex: Степень экспоненты (задание насыщения): до {bex_before}; после {bex_after};\n' f'{separator_two}\n' ) if row_id is not None and Id is None: # Kpr if switch_command_line is not False: kpr_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, row_id=row_id) else: kpr_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, row_id=row_id, value=Kpr) if switch_command_line is not False: kpr_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, row_id=row_id) else: kpr_after = None # Tb if switch_command_line is not False: tb_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Tb, row_id=row_id) else: tb_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Tb, row_id=row_id, value=Tb) if switch_command_line is not False: tb_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Tb, row_id=row_id) else: tb_after = None # Ka if switch_command_line is not False: ka_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Ka, row_id=row_id) else: ka_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Ka, row_id=row_id, value=Ka) if switch_command_line is not False: ka_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Ka, row_id=row_id) else: ka_after = None # Vrmax if switch_command_line is not False: vrmax_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, row_id=row_id) else: vrmax_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, row_id=row_id, value=Vrmax) if switch_command_line is not False: vrmax_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, row_id=row_id) else: vrmax_after = None # Vrmin if switch_command_line is not False: vrmin_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, row_id=row_id) else: vrmin_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, row_id=row_id, value=Vrmin) if switch_command_line is not False: vrmin_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, row_id=row_id) else: vrmin_after = None # Te if switch_command_line is not False: te_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Te, row_id=row_id) else: te_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Te, row_id=row_id, value=Te) if switch_command_line is not False: te_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Te, row_id=row_id) else: te_after = None # Aex if switch_command_line is not False: aex_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Aex, row_id=row_id) else: aex_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Aex, row_id=row_id, value=Aex) if switch_command_line is not False: aex_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Aex, row_id=row_id) else: aex_after = None # Bex if switch_command_line is not False: bex_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Bex, row_id=row_id) else: bex_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Bex, row_id=row_id, value=Bex) if switch_command_line is not False: bex_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Bex, row_id=row_id) else: bex_after = None if switch_command_line is not False: print( f'{separator_two}\n' f' Внесены изменения в таблицу {DFWIEEE421.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Kpr: Коэффициент усиления дифференциального звена: до {kpr_before}; после {kpr_after};\n' f'- Tb: Постоянная времени дифференциального звена: до {tb_before}; после {tb_after};\n' f'- Ka: Пропорциональный коэффициент усиления регулятора напряжения: до {ka_before}; после {ka_after};\n' f'- Vrmax: Максимальное ограничение интегрального звена: до {vrmax_before}; после {vrmax_after};\n' f'- Vrmin: Минимальное ограничение интегрального звена: до {vrmin_before}; после {vrmin_after};\n' f'- Te: Постоянная времени интегратора возбудителя: до {te_before}; после {te_after};\n' f'- Aex: Коэффициент экспоненты (задание насыщения): до {aex_before}; после {aex_after};\n' f'- Bex: Степень экспоненты (задание насыщения): до {bex_before}; после {bex_after};\n' f'{separator_two}\n' ) return ( f'{separator_two}\n' f' Внесены изменения в таблицу {DFWIEEE421.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Kpr: Коэффициент усиления дифференциального звена: до {kpr_before}; после {kpr_after};\n' f'- Tb: Постоянная времени дифференциального звена: до {tb_before}; после {tb_after};\n' f'- Ka: Пропорциональный коэффициент усиления регулятора напряжения: до {ka_before}; после {ka_after};\n' f'- Vrmax: Максимальное ограничение интегрального звена: до {vrmax_before}; после {vrmax_after};\n' f'- Vrmin: Минимальное ограничение интегрального звена: до {vrmin_before}; после {vrmin_after};\n' f'- Te: Постоянная времени интегратора возбудителя: до {te_before}; после {te_after};\n' f'- Aex: Коэффициент экспоненты (задание насыщения): до {aex_before}; после {aex_after};\n' f'- Bex: Степень экспоненты (задание насыщения): до {bex_before}; после {bex_after};\n' f'{separator_two}\n' ) if Id is None and row_id is None: print(f'{separator_two}' f'Не задано значение Id и/или row_id!' f'{separator_two}')
def set_ut_common(maxs: float = 5.0, maxv: float = 2.0, maxd: float = 2.0, maxa: float = 10.0, iter: int = 100, tip: str = 'Стандарт', f_ots: str = 'Нет', add_d: str = 'Нет', ekstr: str = 'Нет', kfc: float = 1.000, sum_kfc: float = 0.000, ds: str = 'Откл', it: int = 0, Status: str = 'Норма', KorrT: float = 25.000, KorrPer: float = 0.000, KorrVib: str = 0, enable_contr: bool = False, dis_v_contr: bool = False, dis_p_contr: bool = False, dis_i_contr: bool = False, ss_calc: str = 'Плоский старт', criterion: str = 'уст. реж.', no_crit_d_ba: bool = False, no_crit_d_coa: bool = False, no_crit_d_ga: bool = False, save_files_filter: str = 'Не сохранять', save_files_path: str = 'c:\\tmp\\', stop_u_n: bool = False, dyn_find_pred: bool = False, rastr_win: object = RASTR, switch_command_line: bool = False): f""" Параметры настройки "Общие данные для утяжеления" (таблица "Утяжеление": ut_common): :param maxs: Точность P (Pmax); :param maxv: Точность V (Vmax); :param maxd: Точность угла (Dmax); :param maxa: Точность P района (Amax); :param iter: Макс число итераций (Imax); :param tip: Тип утяжеления (Тип); :param f_ots: Формировать описания контр. величин: (ФормКВ:); :param add_d: Добавлять значения контр. величин после шага (ДобКЗ); :param ekstr: Поиск экстремума по контролируемым величинам (Экстремум); :param kfc: Текущий шаг (Шаг); :param sum_kfc: Сумарный шаг (Шаг_Сумм); :param ds: Деление шага (ДелШаг); :param it: Текущая итерация (Итер); :param Status: Состояние утяжеления (Статус); :param KorrT: коррекция по температуре: температура, Гр. (KorrT); :param KorrPer: коррекция по температуре: перегрузка % (KorrPer); :param KorrVib: коррекция по температуре: выборка (KorrVib); :param enable_contr: Включить контроль всех ограничений U,P,I (Включить контр. U,P,I); :param dis_v_contr: Отключить контроль всех ограничений по напряжению U (Откл контр. U); :param dis_p_contr: Отключить контроль всех ограничений по мощности P (Откл контр. P); :param dis_i_contr: Отключить контроль всех ограничений по току I (Откл контр. I); :param ss_calc: Как расчитывать УР при утяжелении (Расчет УР); :param criterion: Критерий устойчивости (Критерий); :param no_crit_d_ba: Динамика:не учет критерия разворота угла по ЛЭП (Нет критерия: угол по ЛЭП); :param no_crit_d_coa: Динамика:не учет критерия угла генератора и COA (Нет критерия: угол по Генератору); :param no_crit_d_ga: Динамика:не учет критерия срабатывания автомата безопасности генератора (Нет критерия: автомат безопасности ген.); :param save_files_filter: Критерий сохранения файлов (Критерий); :param save_files_path: Папка для сохранения файлов результатов (Путь); :param stop_u_n: Остановить при переходе к устойчивому/неустойчивому (Остановить); :param dyn_find_pred: Динамика: поиск предела (Динамика: поиск предела); :param rastr_win: {Tools.RastrDoc}; :param switch_command_line: {Tools.switch_command_line_doc}; :return: Nothing returns """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) maxs_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxs, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.maxs, row_id=0, value=maxs) maxs_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxs, row_id=0) maxv_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxv, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.maxv, row_id=0, value=maxv) maxv_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxv, row_id=0) maxd_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxd, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.maxd, row_id=0, value=maxd) maxd_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxd, row_id=0) maxa_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxa, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.maxa, row_id=0, value=maxa) maxa_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.maxa, row_id=0) iter_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.iter, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.maxa, row_id=0, value=iter) iter_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.iter, row_id=0) tip_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.tip, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.tip, row_id=0, value=tip) tip_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.tip, row_id=0) f_ots_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.f_ots, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.f_ots, row_id=0, value=f_ots) f_ots_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.f_ots, row_id=0) add_d_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.add_d, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.add_d, row_id=0, value=add_d) add_d_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.add_d, row_id=0) ekstr_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.ekstr, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.ekstr, row_id=0, value=ekstr) ekstr_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.ekstr, row_id=0) kfc_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.kfc, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.kfc, row_id=0, value=kfc) kfc_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.kfc, row_id=0) sum_kfc_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.sum_kfc, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.sum_kfc, row_id=0, value=sum_kfc) sum_kfc_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.sum_kfc, row_id=0) ds_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.ds, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.ds, row_id=0, value=ds) ds_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.ds, row_id=0) it_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.it, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.it, row_id=0, value=it) it_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.it, row_id=0) status_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.Status, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.Status, row_id=0, value=Status) status_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.Status, row_id=0) korr_t_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.KorrT, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.KorrT, row_id=0, value=KorrT) korr_t_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.KorrT, row_id=0) korr_per_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.KorrPer, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.KorrPer, row_id=0, value=KorrPer) korr_per_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.KorrPer, row_id=0) korr_vib_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.KorrVib, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.KorrVib, row_id=0, value=KorrVib) korr_vib_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.KorrVib, row_id=0) enable_contr_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.enable_contr, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.enable_contr, row_id=0, value=enable_contr) enable_contr_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.enable_contr, row_id=0) dis_v_contr_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dis_v_contr, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.dis_v_contr, row_id=0, value=dis_v_contr) dis_v_contr_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dis_v_contr, row_id=0) dis_p_contr_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dis_p_contr, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.dis_p_contr, row_id=0, value=dis_p_contr) dis_p_contr_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dis_p_contr, row_id=0) dis_i_contr_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dis_i_contr, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.dis_i_contr, row_id=0, value=dis_i_contr) dis_i_contr_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dis_i_contr, row_id=0) ss_calc_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.ss_calc, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.ss_calc, row_id=0, value=ss_calc) ss_calc_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.ss_calc, row_id=0) criterion_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.criterion, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.criterion, row_id=0, value=criterion) criterion_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.criterion, row_id=0) no_crit_d_ba_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.no_crit_d_ba, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.no_crit_d_ba, row_id=0, value=no_crit_d_ba) no_crit_d_ba_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.no_crit_d_ba, row_id=0) no_crit_d_coa_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.no_crit_d_coa, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.no_crit_d_coa, row_id=0, value=no_crit_d_coa) no_crit_d_coa_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.no_crit_d_coa, row_id=0) no_crit_d_ga_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.no_crit_d_ga, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.no_crit_d_ga, row_id=0, value=no_crit_d_ga) no_crit_d_ga_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.no_crit_d_ga, row_id=0) save_files_filter_get_before = get_.get_cell_row( table=UtCommon.table, column=UtCommon.save_files_filter, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.save_files_filter, row_id=0, value=save_files_filter) save_files_filter_get_after = get_.get_cell_row( table=UtCommon.table, column=UtCommon.save_files_filter, row_id=0) save_files_path_get_before = get_.get_cell_row( table=UtCommon.table, column=UtCommon.save_files_path, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.save_files_path, row_id=0, value=save_files_path) save_files_path_get_after = get_.get_cell_row( table=UtCommon.table, column=UtCommon.save_files_path, row_id=0) stop_u_n_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.stop_u_n, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.stop_u_n, row_id=0, value=stop_u_n) stop_u_n_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.stop_u_n, row_id=0) dyn_find_pred_get_before = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dyn_find_pred, row_id=0) variable_.make_changes_row(table=UtCommon.table, column=UtCommon.dyn_find_pred, row_id=0, value=dyn_find_pred) dyn_find_pred_get_after = get_.get_cell_row(table=UtCommon.table, column=UtCommon.dyn_find_pred, row_id=0) if switch_command_line is not False: print(Tools.separator_noun) print( f'Таблица параметров (настройки) "Утяжеление":\n' f'- maxs: Точность P (Pmax): "до" = {maxs_get_before}; "после" = {maxs_get_after};\n' f'- maxv: Точность V (Vmax): "до" = {maxv_get_before}; "после" = {maxv_get_after};\n' f'- maxd: Точность угла (Dmax): "до" = {maxd_get_before}; "после" = {maxd_get_after};\n' f'- maxa: Точность P района (Amax): "до" = {maxa_get_before}; "после" = {maxa_get_after};\n' f'- iter: Макс число итераций (Imax): "до" = {iter_get_before}; "после" = {iter_get_after};\n' f'- tip: Тип утяжеления (Тип): "до" = {tip_get_before}; "после" = {tip_get_after};\n' f'- f_ots: Формировать описания контр. величин (ФормКВ): "до" = {f_ots_get_before}; "после" = {f_ots_get_after};\n' f'- add_d: Добавлять значения контр. величин после шага (ДобКЗ): "до" = {add_d_get_before}; "после" = {add_d_get_after};\n' f'- ekstr: Поиск экстремума по контролируемым величинам (Экстремум): "до" = {ekstr_get_before}; "после" = {ekstr_get_after};\n' f'- kfc: Текущий шаг (Шаг): "до" = {kfc_get_before}; "после" = {kfc_get_after};\n' f'- sum_kfc: Сумарный шаг (Шаг_Сумм): "до" = {sum_kfc_get_before}; "после" = {sum_kfc_get_after};\n' f'- ds: Деление шага (ДелШаг): "до" = {ds_get_before}; "после" = {ds_get_after};\n' f'- it: Текущая итерация (Итер): "до" = {it_get_before}; "после" = {it_get_after};\n' f'- Status: Состояние утяжеления (Статус): "до" = {status_get_before}; "после" = {status_get_after};\n' f'- KorrT: коррекция по температуре: температура, Гр. (KorrT): "до" = {korr_t_get_before}; "после" = {korr_t_get_after};\n' f'- KorrPer: коррекция по температуре: перегрузка % (KorrPer): "до" = {korr_per_get_before}; "после" = {korr_per_get_after};\n' f'- KorrVib: коррекция по температуре: выборка (KorrVib): "до" = {korr_vib_get_before}; "после" = {korr_vib_get_after};\n' f'- enable_contr: Включить контроль всех ограничений U,P,I (Включить контр. U,P,I): "до" = {enable_contr_get_before}; "после" = {enable_contr_get_after};\n' f'- dis_v_contr: Отключить контроль всех ограничений по напряжению U (Откл контр. U): "до" = {dis_v_contr_get_before}; "после" = {dis_v_contr_get_after};\n' f'- dis_p_contr: Отключить контроль всех ограничений по мощности P (Откл контр. P): "до" = {dis_p_contr_get_before}; "после" = {dis_p_contr_get_after};\n' f'- dis_i_contr: Отключить контроль всех ограничений по току I (Откл контр. I): "до" = {dis_i_contr_get_before}; "после" = {dis_i_contr_get_after};\n' f'- ss_calc: Как расчитывать УР при утяжелении (Расчет УР): "до" = {ss_calc_get_before}; "после" = {ss_calc_get_after};\n' f'- criterion: Критерий устойчивости (Критерий): "до" = {criterion_get_before}; "после" = {criterion_get_after};\n' f'- no_crit_d_ba: Динамика:не учет критерия разворота угла по ЛЭП (Нет критерия: угол по ЛЭП): "до" = {no_crit_d_ba_get_before}; "после" = {no_crit_d_ba_get_after};\n' f'- no_crit_d_coa: Динамика:не учет критерия угла генератора и COA (Нет критерия: угол по Генератору): "до" = {no_crit_d_coa_get_before}; "после" = {no_crit_d_coa_get_after};\n' f'- no_crit_d_ga: Динамика:не учет критерия срабатывания автомата безопасности генератора (Нет критерия: автомат безопасности ген.): "до" = {no_crit_d_ga_get_before}; "после" = {no_crit_d_ga_get_after};\n' f'- save_files_filter: Критерий сохранения файлов (Критерий): "до" = {save_files_filter_get_before}; "после" = {save_files_filter_get_after};\n' f'- save_files_path: Папка для сохранения файлов результатов (Путь): "до" = {save_files_path_get_before}; "после" = {save_files_path_get_after};\n' f'- stop_u_n: Остановить при переходе к устойчивому/неустойчивому (Остановить): "до" = {stop_u_n_get_before}; "после" = {stop_u_n_get_after};\n' f'- dyn_find_pred: Динамика: поиск предела (Динамика: поиск предела): "до" = {dyn_find_pred_get_before}; "после" = {dyn_find_pred_get_after};\n' ) print(Tools.separator_noun)
def change_parameters_AC8B(Id=None, row_id=None, Kpr: float = Parameters.Kpr, Kir: float = Parameters.Kir, Kdr: float = Parameters.Kdr, Tdr: float = Parameters.Tdr, Ka: float = Parameters.Ka, Ta: float = Parameters.Ta, Vrmax: float = Parameters.Vrmax, Vrmin: float = Parameters.Vrmin, Te: float = Parameters.Te, Aex: float = Parameters.Aex, Bex: float = Parameters.Bex, switch_command_line: bool = False): """ :param Id: номер возбудителя; :param row_id: порядковый номер в таблице (от 0 до [max.count]); :param Kpr: Пропорциональный коэффициент усиления ПИД-регулятора; :param Kir: Интегральный коэффициент усиления ПИД-регулятора; :param Kdr: Дифференциальный коэффициент усиления ПИД-регулятора; :param Tdr: Постоянная времени дифференциального канала ПИД-регулятора; :param Ka: Коэффициент усиления регулятора напряжения; :param Ta: Постоянная времени регулятора напряжения; :param Vrmax: Максимальное ограничение регулятора напряжения; :param Vrmin: Минимальное ограничение регулятора напряжения; :param Te: Постоянная времени интегратора возбудителя; :param Aex: Коэффициент экспоненты (задание насыщения); :param Bex: Степень экспоненты (задание насыщения); :param switch_command_line: True/False - вывод сообщений в протакол; :return: """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) if Id is not None and row_id is None: # Kpr if switch_command_line is not None: kpr_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, Id=Id) else: kpr_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, key=f'{DFWIEEE421.Id}={Id}', value=Kpr) if switch_command_line is not None: kpr_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, Id=Id) else: kpr_after = None # Kir if switch_command_line is not None: kir_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kir, Id=Id) else: kir_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Kir, key=f'{DFWIEEE421.Id}={Id}', value=Kir) if switch_command_line is not None: kir_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kir, Id=Id) else: kir_after = None # Kdr if switch_command_line is not None: kdr_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kdr, Id=Id) else: kdr_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Kdr, key=f'{DFWIEEE421.Id}={Id}', value=Kdr) if switch_command_line is not None: kdr_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Kdr, Id=Id) else: kdr_after = None # Tdr if switch_command_line is not None: tdr_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Tdr, Id=Id) else: tdr_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Tdr, key=f'{DFWIEEE421.Id}={Id}', value=Tdr) if switch_command_line is not None: tdr_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Tdr, Id=Id) else: tdr_after = None # Ka if switch_command_line is not None: ka_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Ka, Id=Id) else: ka_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Ka, key=f'{DFWIEEE421.Id}={Id}', value=Ka) if switch_command_line is not None: ka_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Ka, Id=Id) else: ka_after = None # Ta if switch_command_line is not None: ta_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Ta, Id=Id) else: ta_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Ta, key=f'{DFWIEEE421.Id}={Id}', value=Ta) if switch_command_line is not None: ta_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Ta, Id=Id) else: ta_after = None # Vrmax if switch_command_line is not None: vrmax_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, Id=Id) else: vrmax_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, key=f'{DFWIEEE421.Id}={Id}', value=Vrmax) if switch_command_line is not None: vrmax_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, Id=Id) else: vrmax_after = None # Vrmin if switch_command_line is not None: vrmin_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, Id=Id) else: vrmin_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, key=f'{DFWIEEE421.Id}={Id}', value=Vrmin) if switch_command_line is not None: vrmin_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, Id=Id) else: vrmin_after = None # Te if switch_command_line is not None: te_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Te, Id=Id) else: te_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Te, key=f'{DFWIEEE421.Id}={Id}', value=Te) if switch_command_line is not None: te_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Te, Id=Id) else: te_after = None # Aex if switch_command_line is not None: aex_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Aex, Id=Id) else: aex_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Aex, key=f'{DFWIEEE421.Id}={Id}', value=Aex) if switch_command_line is not None: aex_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Aex, Id=Id) else: aex_after = None # Bex if switch_command_line is not None: bex_before = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Bex, Id=Id) else: bex_before = None variable_.make_changes_setsel(table=DFWIEEE421.table, column=DFWIEEE421.Bex, key=f'{DFWIEEE421.Id}={Id}', value=Bex) if switch_command_line is not None: bex_after = get_.get_cell_id(table=DFWIEEE421.table, column=DFWIEEE421.Bex, Id=Id) else: bex_after = None elif row_id is not None and Id is None: # Kpr if switch_command_line is not None: kpr_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, row_id=row_id) else: kpr_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, row_id=row_id, value=Kpr) if switch_command_line is not None: kpr_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kpr, row_id=row_id) else: kpr_after = None # Kir if switch_command_line is not None: kir_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kir, row_id=row_id) else: kir_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Kir, row_id=row_id, value=Kir) if switch_command_line is not None: kir_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kir, row_id=row_id) else: kir_after = None # Kdr if switch_command_line is not None: kdr_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kdr, row_id=row_id) else: kdr_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Kdr, row_id=row_id, value=Kdr) if switch_command_line is not None: kdr_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Kdr, row_id=row_id) else: kdr_after = None # Tdr if switch_command_line is not None: tdr_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Tdr, row_id=row_id) else: tdr_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Tdr, row_id=row_id, value=Tdr) if switch_command_line is not None: tdr_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Tdr, row_id=row_id) else: tdr_after = None # Ka if switch_command_line is not None: ka_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Ka, row_id=row_id) else: ka_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Ka, row_id=row_id, value=Ka) if switch_command_line is not None: ka_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Ka, row_id=row_id) else: ka_after = None # Ta if switch_command_line is not None: ta_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Ta, row_id=row_id) else: ta_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Ta, row_id=row_id, value=Ta) if switch_command_line is not None: ta_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Ta, row_id=row_id) else: ta_after = None # Vrmax if switch_command_line is not None: vrmax_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, row_id=row_id) else: vrmax_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, row_id=row_id, value=Vrmax) if switch_command_line is not None: vrmax_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmax, row_id=row_id) else: vrmax_after = None # Vrmin if switch_command_line is not None: vrmin_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, row_id=row_id) else: vrmin_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, row_id=row_id, value=Vrmin) if switch_command_line is not None: vrmin_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Vrmin, row_id=row_id) else: vrmin_after = None # Te if switch_command_line is not None: te_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Te, row_id=row_id) else: te_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Te, row_id=row_id, value=Te) if switch_command_line is not None: te_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Te, row_id=row_id) else: te_after = None # Aex if switch_command_line is not None: aex_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Aex, row_id=row_id) else: aex_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Aex, row_id=row_id, value=Aex) if switch_command_line is not None: aex_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Aex, row_id=row_id) else: aex_after = None # Bex if switch_command_line is not None: bex_before = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Bex, row_id=row_id) else: bex_before = None variable_.make_changes_row(table=DFWIEEE421.table, column=DFWIEEE421.Bex, row_id=row_id, value=Bex) if switch_command_line is not None: bex_after = get_.get_cell_row(table=DFWIEEE421.table, column=DFWIEEE421.Bex, row_id=row_id) else: bex_after = None else: kpr_before, kpr_after = None, None kir_before, kir_after = None, None kdr_before, kdr_after = None, None tdr_before, tdr_after = None, None ka_before, ka_after = None, None ta_before, ta_after = None, None vrmax_before, vrmax_after = None, None vrmin_before, vrmin_after = None, None te_before, te_after = None, None aex_before, aex_after = None, None bex_before, bex_after = None, None if switch_command_line is not False: print( f'{separator_two}\n' f' Внесены изменения в таблицу {DFWIEEE421.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Kpr: Пропорциональный коэффициент усиления ПИД-регулятора: до {kpr_before}; после {kpr_after};\n' f'- Kir: Интегральный коэффициент усиления ПИД-регулятора: до {kir_before}; после {kir_after};\n' f'- Kdr: Дифференциальный коэффициент усиления ПИД-регулятора: до {kdr_before}; после {kdr_after};\n' f'- Tdr: Постоянная времени дифференциального канала ПИД-регулятора: до {tdr_before}; после {tdr_after};\n' f'- Ka: Коэффициент усиления регулятора напряжения: до {ka_before}; после {ka_after};\n' f'- Ta: Постоянная времени регулятора напряжения: до {ta_before}; после {ta_after};\n' f'- Vrmax: Максимальное ограничение регулятора напряжения: до {vrmax_before}; после {vrmax_after};\n' f'- Vrmin: Минимальное ограничение регулятора напряжения: до {vrmin_before}; после {vrmin_after};\n' f'- Te: Постоянная времени интегратора возбудителя: до {te_before}; после {te_after};\n' f'- Aex: Коэффициент экспоненты (задание насыщения): до {aex_before}; после {aex_after};\n' f'- Bex: Степень экспоненты (задание насыщения): до {bex_before}; после {bex_after};\n' f'{separator_two}\n') return ( f'{separator_two}\n' f' Внесены изменения в таблицу {DFWIEEE421.table_name}:\n' f'- Id: Номер возбудителя: {Id};\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]): {row_id};\n' f'- Kpr: Пропорциональный коэффициент усиления ПИД-регулятора: до {kpr_before}; после {kpr_after};\n' f'- Kir: Интегральный коэффициент усиления ПИД-регулятора: до {kir_before}; после {kir_after};\n' f'- Kdr: Дифференциальный коэффициент усиления ПИД-регулятора: до {kdr_before}; после {kdr_after};\n' f'- Tdr: Постоянная времени дифференциального канала ПИД-регулятора: до {tdr_before}; после {tdr_after};\n' f'- Ka: Коэффициент усиления регулятора напряжения: до {ka_before}; после {ka_after};\n' f'- Ta: Постоянная времени регулятора напряжения: до {ta_before}; после {ta_after};\n' f'- Vrmax: Максимальное ограничение регулятора напряжения: до {vrmax_before}; после {vrmax_after};\n' f'- Vrmin: Минимальное ограничение регулятора напряжения: до {vrmin_before}; после {vrmin_after};\n' f'- Te: Постоянная времени интегратора возбудителя: до {te_before}; после {te_after};\n' f'- Aex: Коэффициент экспоненты (задание насыщения): до {aex_before}; после {aex_after};\n' f'- Bex: Степень экспоненты (задание насыщения): до {bex_before}; после {bex_after};\n' f'{separator_two}\n')
from RastrWinLib.operation.get import GettingParameter from RastrWinLib.Load import load_file from RastrWinLib.Load.shablon import Shabl from RastrWinLib.AstraRastr import RASTR file = r'C:\Users\Ohrimenko_AG\Documents\RastrWin3\test-rastr\RUSTab\test9.rst' load_file(file_path=file, shabl=Shabl.shablon_file_dynamic) get_ = GettingParameter(rastr_win=RASTR) t = get_.get_row_vetv_a_node(ny=349) print(t) # r = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=1320) # print(r) # # trr = get_.get_cell_id(table=ExcControl.table, # column=ExcControl.Tf, # Id=1320) # print(trr)
def set_alt_unit( row_id: int = 0, Active: bool = False, Unit: str = '', Alt: str = '', Formula: str = '', Prec: str = '', Tabl: str = '', rastr_win=RASTR, switch_command_line: bool = False, ): f""" Параметры настройки "Описание альтернативных единиц измерения" (таблица "Ед.Измерения": AltUnit): :param row_id: Порядковый номер в таблице "Ед. Измерения"; :param Active: Активизация альтернативной ЕИ; :param Unit: Основная Единица Измерения; :param Alt: Альтернативная Единица Измерения; :param Formula: Формула для преобразования; :param Prec: Точность отображение Альт ЕИ; :param Tabl: Ограничитель по таблице; :param rastr_win: COM - объект Rastr.Astra (win32com); :param switch_command_line: True/False - вывод сообщений в протокол; :return: Nothing returns """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) # Active Активизация альтернативной ЕИ (A) active_get_before = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Active, row_id=0) variable_.make_changes_row(table=AltUnit.table, column=AltUnit.Active, row_id=row_id, value=Active) active_get_after = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Active, row_id=0) # Unit Основная Единица Измерения (ЕИ) unit_get_before = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Unit, row_id=0) variable_.make_changes_row(table=AltUnit.table, column=AltUnit.Active, row_id=row_id, value=Unit) unit_get_after = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Unit, row_id=0) # Alt Альтернативная Единица Измерения (Альт ЕИ) alt_get_before = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Alt, row_id=0) variable_.make_changes_row(table=AltUnit.table, column=AltUnit.Alt, row_id=row_id, value=Alt) alt_get_after = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Alt, row_id=0) # Formula Формула для преобразования (Формула) formula_get_before = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Formula, row_id=0) variable_.make_changes_row(table=AltUnit.table, column=AltUnit.Formula, row_id=row_id, value=Formula) formula_get_after = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Formula, row_id=0) # Prec Точность отображение Альт ЕИ (Точность) prec_get_before = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Prec, row_id=0) variable_.make_changes_row(table=AltUnit.table, column=AltUnit.Prec, row_id=row_id, value=Prec) prec_get_after = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Prec, row_id=0) # Tabl Ограничитель по таблице (Табл) tabl_get_before = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Tabl, row_id=0) variable_.make_changes_row(table=AltUnit.table, column=AltUnit.Tabl, row_id=row_id, value=Tabl) tabl_get_after = get_.get_cell_row(table=AltUnit.table, column=AltUnit.Tabl, row_id=0) if switch_command_line: pt = PrettyTable() pt.title = 'Параметры альтернативных единиц измерений "Ед.Измерения":' pt.field_names = ['Название параметра', '"ДО"', '"ПОСЛЕ"'] pt.add_row([ '- Active: Активизация альтернативной ЕИ (A)', active_get_before, active_get_after ]) pt.add_row([ '- Unit: Основная Единица Измерения (ЕИ)', unit_get_before, unit_get_after ]) pt.add_row([ '- Alt: Альтернативная Единица Измерения (Альт ЕИ)', alt_get_before, alt_get_after ]) pt.add_row([ '- Formula: Формула для преобразования (Формула)', formula_get_before, formula_get_after ]) pt.add_row([ '- Prec: Точность отображение Альт ЕИ (Точность)', prec_get_before, prec_get_after ]) pt.add_row([ '- Tabl: Ограничитель по таблице (Табл)', tabl_get_before, tabl_get_after ]) print(pt)
def change_parameters_ARV2M_BSV(Id=None, row_id=None, Ku: float = Parameters.Ku, K_Q: float = Parameters.K_Q, Kif1: float = Parameters.Kif1, T1if: float = Parameters.T1if, Ku1: float = Parameters.Ku1, T1u1: float = Parameters.T1u1, K_P: float = Parameters.K_P, K_Ia: float = Parameters.K_Ia, Tf: float = Parameters.Tf, Kf: float = Parameters.Kf, Kf1: float = Parameters.Kf1, TINT: float = Parameters.TINT, switch_command_line: bool = False): """ :param Id: номер возбудителя; :param row_id: порядковый номер в таблице (от 0 до [max.count]); :param Ku: Коэффициент усиления регулятора; :param K_Q: Коэффициент усиления канала по производной тока ротора; :param Kif1: Коэффициент усиления канала по производной тока ротора; :param T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора; :param Ku1: Коэффициент усиления канала по производной напряжения; :param T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения; :param K_P: Коэффициент усиления выходного сигнала ОМВ; :param K_Ia: Уставка по току ротора; :param Tf: Постоянная времени дифференцирующего звена в канале по частоте; :param Kf: Коэффициент усиления в канале по частоте; :param Kf1: Коэффициент усиления в канале по производной частоты; :param TINT: Постоянная времени интегратора; :param switch_command_line: True/False - вывод сообщений в протакол; :return: """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) if Id is not None and row_id is None: # Ku if switch_command_line is not None: ku_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku, key=f'{ExcControl.Id}={Id}', value=Ku) if switch_command_line is not None: ku_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku_after = None # K_Q if switch_command_line is not None: k_q_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Q, Id=Id) else: k_q_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku, key=f'{ExcControl.Id}={Id}', value=K_Q) if switch_command_line is not None: k_q_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Q, Id=Id) else: k_q_after = None # Kif1 if switch_command_line is not None: kif1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kif1, key=f'{ExcControl.Id}={Id}', value=Kif1) if switch_command_line is not None: kif1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1_after = None # T1if if switch_command_line is not None: t1if_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1if, Id=Id) else: t1if_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.T1if, key=f'{ExcControl.Id}={Id}', value=T1if) if switch_command_line is not None: t1if_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1if, Id=Id) else: t1if_after = None # Ku1 if switch_command_line is not None: ku1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Ku1, key=f'{ExcControl.Id}={Id}', value=Ku1) if switch_command_line is not None: ku1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1_after = None # T1u1 if switch_command_line is not None: t1u1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1u1, Id=Id) else: t1u1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.T1u1, key=f'{ExcControl.Id}={Id}', value=T1u1) if switch_command_line is not None: t1u1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1u1, Id=Id) else: t1u1_after = None # K_P if switch_command_line is not None: k_p_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_P, Id=Id) else: k_p_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.K_P, key=f'{ExcControl.Id}={Id}', value=K_P) if switch_command_line is not None: k_p_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_P, Id=Id) else: k_p_after = None # K_Ia if switch_command_line is not None: k_ia_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Ia, Id=Id) else: k_ia_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.K_Ia, key=f'{ExcControl.Id}={Id}', value=K_Ia) if switch_command_line is not None: k_ia_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Ia, Id=Id) else: k_ia_after = None # Tf if switch_command_line is not None: tf_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Tf, Id=Id) else: tf_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Tf, key=f'{ExcControl.Id}={Id}', value=Tf) if switch_command_line is not None: tf_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Tf, Id=Id) else: tf_after = None # Kf if switch_command_line is not None: kf_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kf, key=f'{ExcControl.Id}={Id}', value=Kf) if switch_command_line is not None: kf_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf_after = None # Kf1 if switch_command_line is not None: kf1_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.Kf1, key=f'{ExcControl.Id}={Id}', value=Kf1) if switch_command_line is not None: kf1_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1_after = None # TINT if switch_command_line is not None: tint_before = get_.get_cell_id(table=ExcControl.table, column=ExcControl.TINT, Id=Id) else: tint_before = None variable_.make_changes_setsel(table=ExcControl.table, column=ExcControl.TINT, key=f'{ExcControl.Id}={Id}', value=TINT) if switch_command_line is not None: tint_after = get_.get_cell_id(table=ExcControl.table, column=ExcControl.TINT, Id=Id) else: tint_after = None
def equvivalent(viborka, u_min=430, u_max=580): vetv = RASTR.Tables(Vetv.table) variableObj = Variable(rastr_win=RASTR, switch_command_line=False) getParamObj = GettingParameter(rastr_win=RASTR) findNextSelNodeObj = FindNextSel(rastr_win=RASTR, table=Node.table) findNextSelVetvObj = FindNextSel(rastr_win=RASTR, table=Vetv.table) findNextSelGenObj = FindNextSel(rastr_win=RASTR, table=Generator.table) j = findNextSelNodeObj.row(key=f'{viborka}') while j != (-1): ny = getParamObj.get_cell_row(table=Node.table, column=Node.ny, row_id=j) tip_node = getParamObj.get_cell_row(table=Node.table, column=Node.tip, row_id=j) # uhom = getParamObj.get_cell_row(table=Node.table, # column=Node.uhom, # row_id=j) if tip_node > 1: j_gen = findNextSelGenObj.row( key=f'{Generator.Node}.{Node.ny}={ny}') if j_gen != (-1): j_vetv = findNextSelVetvObj.row( key=f'({Vetv.ip}={ny})|({Vetv.iq}=ny)') while j_vetv != (-1): tip_vetv = getParamObj.get_cell_row(table=Vetv.table, column=Vetv.tip, row_id=j_vetv) if tip_vetv == 1: v_ip = getParamObj.get_cell_row(table=Vetv.table, column=Vetv.v_ip, row_id=j_vetv) v_iq = getParamObj.get_cell_row(table=Vetv.table, column=Vetv.v_iq, row_id=j_vetv) if (v_ip > u_min and v_iq < u_max) or (v_ip < u_min and v_iq > u_max): variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=j, value=0) j_vetv = vetv.FindNextSel(j_vetv) else: j_vetv_2 = findNextSelVetvObj.row( key=f'({Vetv.ip}={ny})|({Vetv.iq}={ny})') while j_vetv_2 != (-1): tip_vetv_2 = getParamObj.get_cell_row(table=Vetv.table, column=Vetv.tip, row_id=j_vetv_2) if tip_vetv_2 == 1: v_ip_2 = getParamObj.get_cell_row(table=Vetv.table, column=Vetv.v_ip, row_id=j_vetv_2) v_iq_2 = getParamObj.get_cell_row(table=Vetv.table, column=Vetv.v_iq, row_id=j_vetv_2) if (v_ip_2 > u_min and v_iq_2 < u_max) or (v_ip_2 < u_min and v_iq_2 > u_max): variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=j, value=0) j_vetv_2 = vetv.FindNextSel(j_vetv_2) j = findNextSelNodeObj.row(key=vyborka_gen)
def set_com_ekviv(selekv=0, met_ekv=0, tip_ekv=0, ekvgen=0, tip_gen=1, kfc_x=0, pot_gen=0, kpn=0, tip_sxn=0, smart=0, zmax=1000, otm_n=0, rastr_win=RASTR, switch_command_line=False): f""" Параметры настройки "Общие параметры эквивалентирования" (таблица "Эквивалент": com_ekviv): :param selekv: Отмеченные узлы: (Отмеч); :param met_ekv: Метод эквивалентирования: (Мет Экв); :param tip_ekv: Тип эквивалентирования: (Тип Экв); :param ekvgen: Эквивалент узлов с фикс V: (фиксV); :param tip_gen: Тип эквивалентирования генераторов: (Тип Ген); :param kfc_x: Коэффициент для Xg_ген: (К_X_Ген); :param pot_gen: Учет потерь при разносе генерации: (dP_Ген); :param kpn: Доля нагрузки, пересчитываемая в шунт: (d_наг); :param tip_sxn: Учитывать СХН при эквивалентировании: (СХН); :param smart: "Умное" эквивалентирование: (Smart); :param zmax: Удаление ветвей с сопротивлением большим: (Z_max); :param otm_n: Отмечать узлы после эквивалентирования: (Отм); :param rastr_win: {Tools.RastrDoc}; :param switch_command_line: {Tools.switch_command_line_doc}; :return: Nothing returns """ variable_ = Variable(rastr_win=rastr_win, switch_command_line=False) get_ = GettingParameter(rastr_win=rastr_win) # selekv Отмеченные узлы: (Отмеч) selekv_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.selekv, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.selekv, row_id=0, value=selekv) selekv_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.selekv, row_id=0) # met_ekv Метод эквивалентирования (Мет Экв) met_ekv_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.met_ekv, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.met_ekv, row_id=0, value=met_ekv) met_ekv_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.met_ekv, row_id=0) # tip_ekv Тип эквивалентирования (Тип Экв) tip_ekv_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.tip_ekv, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.tip_ekv, row_id=0, value=tip_ekv) tip_ekv_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.tip_ekv, row_id=0) # ekvgen Эквивалент узлов с фикс V (фиксV) ekvgen_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.ekvgen, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.ekvgen, row_id=0, value=ekvgen) ekvgen_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.ekvgen, row_id=0) # tip_gen Тип эквивалентирования генераторов (Тип Ген) tip_gen_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.tip_gen, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.tip_gen, row_id=0, value=tip_gen) tip_gen_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.tip_gen, row_id=0) # kfc_x Коэффициент для Xg_ген (К_X_ Ген) kfc_x_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.kfc_x, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.kfc_x, row_id=0, value=kfc_x) kfc_x_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.kfc_x, row_id=0) # pot_gen Учет потерь при разносе генерации: (dP_Ген) pot_gen_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.pot_gen, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.pot_gen, row_id=0, value=pot_gen) pot_gen_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.pot_gen, row_id=0) # kpn Доля нагрузки, пересчитываемая в шунт (d_наг) kpn_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.kpn, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.kpn, row_id=0, value=kpn) kpn_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.kpn, row_id=0) # tip_sxn Учитывать СХН при эквивалентировании (СХН) tip_sxn_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.tip_sxn, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.tip_sxn, row_id=0, value=tip_sxn) tip_sxn_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.tip_sxn, row_id=0) # smart "Умное" эквивалентирование : (Smart) smart_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.smart, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.smart, row_id=0, value=smart) smart_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.smart, row_id=0) # zmax Удаление ветвей с сопротивлением большим: (Z_max) zmax_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.zmax, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.zmax, row_id=0, value=zmax) zmax_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.zmax, row_id=0) # otm_n Отмечать узлы после эквивалентирования (Отм) otm_n_get_before = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.otm_n, row_id=0) variable_.make_changes_row(table=ComEkviv.table, column=ComEkviv.otm_n, row_id=0, value=otm_n) otm_n_get_after = get_.get_cell_row(table=ComEkviv.table, column=ComEkviv.otm_n, row_id=0) if switch_command_line is not False: print( f'{Tools.separator_noun}\n' f'Параметры настройки "Общие параметры эквивалентирования" (таблица "Эквивалент": com_ekviv):\n\n' f'selekv: Отмеченные узлы: (Отмеч) "до" = {selekv_get_before}; "после" = {selekv_get_after};\n' f'met_ekv: Метод эквивалентирования: (Мет Экв) "до" = {met_ekv_get_before}; "после" = {met_ekv_get_after};\n' f'tip_ekv: Тип эквивалентирования: (Тип Экв) "до" = {tip_ekv_get_before}; "после" = {tip_ekv_get_after};\n' f'ekvgen: Эквивалент узлов с фикс V: (фиксV) "до" = {ekvgen_get_before}; "после" = {ekvgen_get_after};\n' f'tip_gen: Тип эквивалентирования генераторов: (Тип Ген) "до" = {tip_gen_get_before}; "после" = {tip_gen_get_after};\n' f'kfc_x: Коэффициент для Xg_ген: (К_X_Ген) "до" = {kfc_x_get_before}; "после" = {kfc_x_get_after};\n' f'pot_gen: Учет потерь при разносе генерации: (dP_Ген) "до" = {pot_gen_get_before}; "после" = {pot_gen_get_after};\n' f'kpn: Доля нагрузки, пересчитываемая в шунт: (d_наг) "до" = {kpn_get_before}; "после" = {kpn_get_after};\n' f'tip_sxn: Учитывать СХН при эквивалентировании: (СХН) "до" = {tip_sxn_get_before}; "после" = {tip_sxn_get_after};\n' f'smart: "Умное" эквивалентирование: (Smart) "до" = {smart_get_before}; "после" = {smart_get_after};\n' f'zmax: Удаление ветвей с сопротивлением большим: (Z_max) "до" = {zmax_get_before}; "после" = {zmax_get_after};\n' f'otm_n: Отмечать узлы после эквивалентирования: (Отм) "до" = {otm_n_get_before}; "после" = {otm_n_get_after}.' f'{Tools.separator_noun}\n') return ( f'{Tools.separator_noun}\n' f'Параметры настройки "Общие параметры эквивалентирования" (таблица "Эквивалент": com_ekviv):\n' f'selekv: Отмеченные узлы: (Отмеч) "до" = {selekv_get_before}; "после" = {selekv_get_after};\n' f'met_ekv: Метод эквивалентирования: (Мет Экв) "до" = {met_ekv_get_before}; "после" = {met_ekv_get_after};\n' f'tip_ekv: Тип эквивалентирования: (Тип Экв) "до" = {tip_ekv_get_before}; "после" = {tip_ekv_get_after};\n' f'ekvgen: Эквивалент узлов с фикс V: (фиксV) "до" = {ekvgen_get_before}; "после" = {ekvgen_get_after};\n' f'tip_gen: Тип эквивалентирования генераторов: (Тип Ген) "до" = {tip_gen_get_before}; "после" = {tip_gen_get_after};\n' f'kfc_x: Коэффициент для Xg_ген: (К_X_Ген) "до" = {kfc_x_get_before}; "после" = {kfc_x_get_after};\n' f'pot_gen: Учет потерь при разносе генерации: (dP_Ген) "до" = {pot_gen_get_before}; "после" = {pot_gen_get_after};\n' f'kpn: Доля нагрузки, пересчитываемая в шунт: (d_наг) "до" = {kpn_get_before}; "после" = {kpn_get_after};\n' f'tip_sxn: Учитывать СХН при эквивалентировании: (СХН) "до" = {tip_sxn_get_before}; "после" = {tip_sxn_get_after};\n' f'smart: "Умное" эквивалентирование: (Smart) "до" = {smart_get_before}; "после" = {smart_get_after};\n' f'zmax: Удаление ветвей с сопротивлением большим: (Z_max) "до" = {zmax_get_before}; "после" = {zmax_get_after};\n' f'otm_n: Отмечать узлы после эквивалентирования: (Отм) "до" = {otm_n_get_before}; "после" = {otm_n_get_after}.' f'{Tools.separator_noun}\n')
def delete_generation_switch(): findNextSelNode = FindNextSel(table=Node.table, rastr_win=RASTR) findNextSelNodeROW = FindNextSel_ROW(rastr_win=RASTR, table=Node.table) findNextSelGen = FindNextSel(table=Generator.table, rastr_win=RASTR) findNextSelGenROW = FindNextSel_ROW(rastr_win=RASTR, table=Generator.table) vetv = RASTR.Tables(Vetv.table) gen = RASTR.Tables(Generator.table) selection(switch_command_line=True) getObj = GettingParameter(rastr_win=RASTR) variableObj = Variable(rastr_win=RASTR) k1 = findNextSelNode.row(key='') while k1 != (-1): ny1 = getObj.get_cell_row(table=Node.table, column=Node.ny, row_id=k1) vetv.SetSel(f'({Vetv.ip}={ny1})|({Vetv.iq}={ny1})') if vetv.Count == 1: vetv.SetSel(f"x<1 & (tip=0 | tip=2) & ((ip={ny1})|(iq={ny1}))") if vetv.Count == 1: vetv.SetSel(f'x<1 & (tip=0 | tip=2) & ((ip={ny1})|(iq={ny1}))') k3 = vetv.FindNextSel(-1) if k3 != (-1): ip_k3 = getObj.get_cell_row(table=Vetv.table, column=Vetv.ip, row_id=k3) if ip_k3 == ny1: ny2 = getObj.get_cell_row(table=Vetv.table, column=Vetv.iq, row_id=k3) else: ny2 = getObj.get_cell_row(table=Vetv.table, column=Vetv.ip, row_id=k3) k2 = findNextSelGen.row(key=f'{Generator.Node}={ny1}') if k2 != (-1): k4 = findNextSelNode.row(key=f'{Node}={ny1}') if k4 != (-1): pn_k1 = getObj.get_cell_row(table=Node.table, column=Node.pn, row_id=k1) variableObj.make_changes_row(table=Node.table, column=Node.pn, row_id=k4, value=(pn_k1 + pn_k1)) qn_k1 = getObj.get_cell_row(table=Node.table, column=Node.qn, row_id=k1) variableObj.make_changes_row(table=Node.table, column=Node.qn, row_id=k4, value=(qn_k1 + qn_k1)) vzd_k1 = getObj.get_cell_row(table=Node.table, column=Node.vzd, row_id=k1) variableObj.make_changes_row(table=Node.table, column=Node.vzd, row_id=k4, value=vzd_k1) exist_load_k1 = getObj.get_cell_row( table=Node.table, column=Node.exist_load, row_id=k1) variableObj.make_changes_row( table=Node.table, column=Node.exist_load, row_id=k4, value=exist_load_k1) exist_gen_k1 = getObj.get_cell_row( table=Node.table, column=Node.exist_gen, row_id=k1) variableObj.make_changes_row(table=Node.table, column=Node.exist_gen, row_id=k4, value=exist_gen_k1) pn_max_k1 = getObj.get_cell_row(table=Node.table, column=Node.pn_max, row_id=k1) pn_max_k4 = getObj.get_cell_row(table=Node.table, column=Node.pn_max, row_id=k4) variableObj.make_changes_row(table=Node.table, column=Node.pn_max, row_id=k4, value=pn_max_k1 + pn_max_k4) if pn_max_k4 >= pn_max_k1: pn_min_k1 = getObj.get_cell_row( table=Node.table, column=Node.pn_min, row_id=k1) variableObj.make_changes_row( table=Node.table, column=Node.pn_min, row_id=k4, value=pn_min_k1) variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=k1, value=1) variableObj.make_changes_row(table=Vetv.table, column=Vetv.sel, row_id=k3, value=1) k2 = findNextSelGen.row( key=f'{Generator.Node}={ny}') while k2 != (-1): variableObj.make_changes_row( table=Generator.table, column=Generator.Node, row_id=k2, value=ny2) k2 = gen.FindNextSel(k2) k1 = findNextSelNodeROW.row(key='', row_=k1)
def set_regim(neb_p: float = 1.000, it_max: int = 100, start: str = 'Да', flot: str = 'Нет', dv_min: float = 0.500, dv_max: float = 2.000, dd_max: float = 5157, status: str = 'Нормально', rr: str = 'Нет', wt: float = 0, gen_p: str = 'Да', method: str = 'Ньютон', method_ogr: str = 'Стандарт', print_mode: str = 'Мин', qmax: str = 'Нет', min_x: float = 0, calc_tr: str = 'Нет', nag_p: str = 'Нет', rem_breaker: str = 'Нет', gram: str = 'Нет', ctrl_baza: str = 'Нет', itz: int = 0, itz_ogr_max: int = 0, itz_ogr_min: int = 0, min_nodes_in_island: int = 0, rastr_win: object = RASTR, switch_command_line: bool = False): f""" Параметры настройки "Общие параметры режима" (таблица "Режим": com_regim): :param neb_p: Точность расчета (dP); :param it_max: Максимальное число итераций (It); :param start: Стартовый алгоритм (Start); :param flot: Плоский старт (Пл.старт); :param dv_min: Мин. допустимое снижение V (dV-); :param dv_max: Макс. допустимое превышение V (dV+); :param dd_max: Макс. допустимый угол по связи (dDelta); :param status: Состояние расчета режима (Статус); :param rr: Учет частоты: (W); :param wt: Отклонение частоты (dF); :param gen_p: Пересчитывать P/Q узла по P ген (Ген->P); :param method: Метод Расчета (Метод); :param method_ogr: Метод учета ограничений Q (Метод учета ограничений Q); :param print_mode: Уровень печати (Печать); :param qmax: Точный метод расчета Qmax (Qmax); :param min_x: Сопротивление выключателя (ое на 10-6) (Min_X); :param calc_tr: Пересчет АТ/3х обм. трансформаторов (Транс.); :param nag_p: Пересчитывать (P/Q) нагрузки узла по ВРДО (Наг->P); :param rem_breaker: Удаление выключателей из схемы: (Выкл); :param gram: Пересчет мощности генератора по ГРАМ: (Грам); :param ctrl_baza: Автоматическое создание БУ (БУ); :param itz: Стартовый метод: число итераций (Z_it); :param itz_ogr_max: Стартовый метод: Учет Qmax с итерации (Z_it_max); :param itz_ogr_min: Стартовый метод: Учет Qmin с итерации (Z_it_min); :param min_nodes_in_island: Минимальное число узлов в острове (Min_nodes); :param rastr_win: {Tools.RastrDoc}; :param switch_command_line: {Tools.switch_command_line_doc}; :return: Nothing returns """ variable_ = Variable(rastr_win=rastr_win) get_ = GettingParameter(rastr_win=rastr_win) # Точность расчета (dP) neb_p_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.neb_p, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.neb_p, row_id=0, value=neb_p) neb_p_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.neb_p, row_id=0) # Максимальное число итераций (It) it_max_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.it_max, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.it_max, row_id=0, value=it_max) it_max_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.it_max, row_id=0) # Стартовый алгоритм (Start) start_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.start, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.start, row_id=0, value=start) start_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.start, row_id=0) # Плоский старт (Пл.старт) flot_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.flot, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.flot, row_id=0, value=flot) flot_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.flot, row_id=0) # Мин. допустимое снижение V (dV-) dv_min_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.dv_min, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.dv_min, row_id=0, value=dv_min) dv_min_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.dv_min, row_id=0) # Макс. допустимое превышение V (dV+) dv_max_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.dv_max, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.dv_max, row_id=0, value=dv_max) dv_max_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.dv_max, row_id=0) # Макс. допустимый угол по связи (dDelta) dd_max_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.dd_max, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.dd_max, row_id=0, value=dd_max) dd_max_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.dd_max, row_id=0) # Состояние расчета режима (Статус) status_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.status, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.status, row_id=0, value=status) status_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.status, row_id=0) # Учет частоты: (W) rr_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.rr, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.rr, row_id=0, value=rr) rr_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.rr, row_id=0) # Отклонение частоты (dF) wt_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.wt, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.wt, row_id=0, value=wt) wt_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.wt, row_id=0) # Пересчитывать P/Q узла по P ген (Ген->P) gen_p_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.gen_p, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.gen_p, row_id=0, value=gen_p) gen_p_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.gen_p, row_id=0) # Метод Расчета (Метод) method_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.method, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.method, row_id=0, value=method) method_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.method, row_id=0) # Метод учета ограничений Q (Метод учета ограничений Q) method_ogr_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.method, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.method, row_id=0, value=method_ogr) method_ogr_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.method_ogr, row_id=0) # Уровень печати (Печать) print_mode_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.print_mode, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.print_mode, row_id=0, value=print_mode) print_mode_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.print_mode, row_id=0) # Точный метод расчета Qmax (Qmax) qmax_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.qmax, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.qmax, row_id=0, value=qmax) qmax_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.qmax, row_id=0) # Сопротивление выключателя (ое на 10-6) (Min_X) min_x_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.min_x, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.min_x, row_id=0, value=min_x) min_x_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.min_x, row_id=0) # Пересчет АТ/3х обм. трансформаторов (Транс.) calc_tr_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.calc_tr, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.calc_tr, row_id=0, value=calc_tr) calc_tr_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.calc_tr, row_id=0) # Пересчитывать (P/Q) нагрузки узла по ВРДО (Наг->P) nag_p_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.nag_p, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.nag_p, row_id=0, value=nag_p) nag_p_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.nag_p, row_id=0) # Удаление выключателей из схемы: (Выкл) rem_breaker_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.rem_breaker, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.rem_breaker, row_id=0, value=rem_breaker) rem_breaker_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.rem_breaker, row_id=0) # Пересчет мощности генератора по ГРАМ: (Грам) gram_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.gram, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.gram, row_id=0, value=gram) gram_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.gram, row_id=0) # Автоматическое создание БУ (БУ) ctrl_baza_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.ctrl_baza, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.gram, row_id=0, value=ctrl_baza) ctrl_baza_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.ctrl_baza, row_id=0) # Стартовый метод: число итераций (Z_it) itz_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.itz, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.itz, row_id=0, value=itz) itz_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.itz, row_id=0) # Стартовый метод: Учет Qmax с итерации (Z_it_max) itz_ogr_max_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.itz_ogr_max, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.itz_ogr_max, row_id=0, value=itz_ogr_max) itz_ogr_max_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.itz_ogr_max, row_id=0) # Стартовый метод: Учет Qmin с итерации (Z_it_min) itz_ogr_min_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.itz_ogr_min, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.itz_ogr_min, row_id=0, value=itz_ogr_min) itz_ogr_min_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.itz_ogr_min, row_id=0) # Минимальное число узлов в острове (Min_nodes) min_nodes_in_island_get_before = get_.get_cell_row(table=ComRegim.table, column=ComRegim.min_nodes_in_island, row_id=0) variable_.make_changes_row(table=ComRegim.table, column=ComRegim.min_nodes_in_island, row_id=0, value=min_nodes_in_island) min_nodes_in_island_get_after = get_.get_cell_row(table=ComRegim.table, column=ComRegim.min_nodes_in_island, row_id=0) if switch_command_line is not False: print( f'{Tools.separator_noun}\n' f'Таблица параметров (настройки) "Режим" - com_regim:\n' f'neb_p: Точность расчета (dP) "до" = {neb_p_get_before}; "после" = {neb_p_get_after};\n' f'it_max: Максимальное число итераций (It) "до" = {it_max_get_before}; "после" = {it_max_get_after};\n' f'start: Стартовый алгоритм (Start) "до" = {start_get_before}; "после" = {start_get_after};\n' f'flot: Плоский старт (Пл.старт) "до" = {flot_get_before}; "после" = {flot_get_after};\n' f'dv_min: Мин. допустимое снижение V (dV-) "до" = {dv_min_get_before}; "после" = {dv_min_get_after};\n' f'dv_max: Макс. допустимое превышение V (dV+) "до" = {dv_max_get_before}; "после" = {dv_max_get_after};\n' f'dd_max: Макс. допустимый угол по связи (dDelta) "до" = {dd_max_get_before}; "после" = {dd_max_get_after};\n' f'status: Состояние расчета режима (Статус) "до" = {status_get_before}; "после" = {status_get_after};\n' f'rr: Учет частоты: (W) "до" = {rr_get_before}; "после" = {rr_get_after};\n' f'wt: Отклонение частоты (dF) "до" = {wt_get_before}; "после" = {wt_get_after};\n' f'gen_p: Пересчитывать P/Q узла по P ген (Ген->P) "до" = {gen_p_get_before}; "после" = {gen_p_get_after};\n' f'method: Метод Расчета (Метод) "до" = {method_get_before}; "после" = {method_get_after};\n' f'method_ogr: Метод учета ограничений Q (Метод учета ограничений Q) "до" = {method_ogr_get_before}; "после" = {method_ogr_get_after};\n' f'print_mode: Уровень печати (Печать) "до" = {print_mode_get_before}; "после" = {print_mode_get_after};\n' f'qmax: Точный метод расчета Qmax (Qmax) "до" = {qmax_get_before}; "после" = {qmax_get_after};\n' f'min_x: Сопротивление выключателя (ое на 10-6) (Min_X) "до" = {min_x_get_before}; "после" = {min_x_get_after};\n' f'calc_tr: Пересчет АТ/3х обм. трансформаторов (Транс.) "до" = {calc_tr_get_before}; "после" = {calc_tr_get_after};\n' f'nag_p: Пересчитывать (P/Q) нагрузки узла по ВРДО (Наг->P) "до" = {nag_p_get_before}; "после" = {nag_p_get_after};\n' f'rem_breaker: Удаление выключателей из схемы: (Выкл) "до" = {rem_breaker_get_before}; "после" = {rem_breaker_get_after};\n' f'gram: Пересчет мощности генератора по ГРАМ: (Грам) "до" = {gram_get_before}; "после" = {gram_get_after};\n' f'ctrl_baza: Автоматическое создание БУ (БУ) "до" = {ctrl_baza_get_before}; "после" = {ctrl_baza_get_after};\n' f'itz: Стартовый метод: число итераций (Z_it) "до" = {itz_get_before}; "после" = {itz_get_after};\n' f'itz_ogr_max: Стартовый метод: Учет Qmax с итерации (Z_it_max) "до" = {itz_ogr_max_get_before}; "после" = {itz_ogr_max_get_after};\n' f'itz_ogr_min: Стартовый метод: Учет Qmin с итерации (Z_it_min) "до" = {itz_ogr_min_get_before}; "после" = {itz_ogr_min_get_after};\n' f'min_nodes_in_island: Минимальное число узлов в острове (Min_nodes) "до" = {min_nodes_in_island_get_before}; "после" = {min_nodes_in_island_get_after};' f'{Tools.separator_noun}\n' ) return ( f'{Tools.separator_noun}\n' f'Таблица параметров (настройки) "Режим" - com_regim:\n\n' f'neb_p: Точность расчета (dP) "до" = {neb_p_get_before}; "после" = {neb_p_get_after};\n' f'it_max: Максимальное число итераций (It) "до" = {it_max_get_before}; "после" = {it_max_get_after};\n' f'start: Стартовый алгоритм (Start) "до" = {start_get_before}; "после" = {start_get_after};\n' f'flot: Плоский старт (Пл.старт) "до" = {flot_get_before}; "после" = {flot_get_after};\n' f'dv_min: Мин. допустимое снижение V (dV-) "до" = {dv_min_get_before}; "после" = {dv_min_get_after};\n' f'dv_max: Макс. допустимое превышение V (dV+) "до" = {dv_max_get_before}; "после" = {dv_max_get_after};\n' f'dd_max: Макс. допустимый угол по связи (dDelta) "до" = {dd_max_get_before}; "после" = {dd_max_get_after};\n' f'status: Состояние расчета режима (Статус) "до" = {status_get_before}; "после" = {status_get_after};\n' f'rr: Учет частоты: (W) "до" = {rr_get_before}; "после" = {rr_get_after};\n' f'wt: Отклонение частоты (dF) "до" = {wt_get_before}; "после" = {wt_get_after};\n' f'gen_p: Пересчитывать P/Q узла по P ген (Ген->P) "до" = {gen_p_get_before}; "после" = {gen_p_get_after};\n' f'method: Метод Расчета (Метод) "до" = {method_get_before}; "после" = {method_get_after};\n' f'method_ogr: Метод учета ограничений Q (Метод учета ограничений Q) "до" = {method_ogr_get_before}; "после" = {method_ogr_get_after};\n' f'print_mode: Уровень печати (Печать) "до" = {print_mode_get_before}; "после" = {print_mode_get_after};\n' f'qmax: Точный метод расчета Qmax (Qmax) "до" = {qmax_get_before}; "после" = {qmax_get_after};\n' f'min_x: Сопротивление выключателя (ое на 10-6) (Min_X) "до" = {min_x_get_before}; "после" = {min_x_get_after};\n' f'calc_tr: Пересчет АТ/3х обм. трансформаторов (Транс.) "до" = {calc_tr_get_before}; "после" = {calc_tr_get_after};\n' f'nag_p: Пересчитывать (P/Q) нагрузки узла по ВРДО (Наг->P) "до" = {nag_p_get_before}; "после" = {nag_p_get_after};\n' f'rem_breaker: Удаление выключателей из схемы: (Выкл) "до" = {rem_breaker_get_before}; "после" = {rem_breaker_get_after};\n' f'gram: Пересчет мощности генератора по ГРАМ: (Грам) "до" = {gram_get_before}; "после" = {gram_get_after};\n' f'ctrl_baza: Автоматическое создание БУ (БУ) "до" = {ctrl_baza_get_before}; "после" = {ctrl_baza_get_after};\n' f'itz: Стартовый метод: число итераций (Z_it) "до" = {itz_get_before}; "после" = {itz_get_after};\n' f'itz_ogr_max: Стартовый метод: Учет Qmax с итерации (Z_it_max) "до" = {itz_ogr_max_get_before}; "после" = {itz_ogr_max_get_after};\n' f'itz_ogr_min: Стартовый метод: Учет Qmin с итерации (Z_it_min) "до" = {itz_ogr_min_get_before}; "после" = {itz_ogr_min_get_after};\n' f'min_nodes_in_island: Минимальное число узлов в острове (Min_nodes) "до" = {min_nodes_in_island_get_before}; "после" = {min_nodes_in_island_get_after};' f'{Tools.separator_noun}\n' )
def equivalent_gen(viborka, u_min=170, u_max=250): vetv = RASTR.Tables(Vetv.table) node = RASTR.Tables(Node.table) getObj = GettingParameter(rastr_win=RASTR) varObj = Variable(rastr_win=RASTR) findNextSelNodeObj = FindNextSel(rastr_win=RASTR, table=Node.table) findNextSelGenObj = FindNextSel(rastr_win=RASTR, table=Generator.table) findNextSelVetvObj = FindNextSel(rastr_win=RASTR, table=Vetv.table) node.SetSel(viborka) node.Cols(Node.sel).Calc('1') j = findNextSelObj.row(key=viborka) while j != (-1): ny = getObj.get_cell_row(table=Node.table, column=Node.ny, row_id=j) tip_node = getObj.get_cell_row(table=Node.table, column=Node.tip, row_id=j) uhom = getObj.get_cell_row(table=Node.table, column=Node.uhom, row_id=j) if tip_node > 1: j_gen = findNextSelGenObj.row(key=f'{Node.table}.{Node.ny}={ny}') if j_gen != (-1): j_vetv = findNextSelVetvObj.row( key=f'({Vetv.ip}={ny})|({Vetv.iq}={ny})') while j_vetv != (-1): tip_vetv = getObj.get_cell_row(table=Vetv.table, column=Vetv.tip, row_id=j_vetv) if tip_vetv == 1: v_ip = getObj.get_cell_row(table=Vetv.table, column=Vetv.v_ip, row_id=j_vetv) v_iq = getObj.get_cell_row(table=Vetv.table, column=Vetv.v_iq, row_id=j_vetv) if (v_ip > u_min and v_iq < u_max) or (v_ip < u_min and v_iq > u_max): varObj.make_changes_row(table=Node.table, column=Node.sel, row_id=j, value=0) j_vetv = vetv.FindNextSel(j_vetv) else: j_vetv_2 = findNextSelVetvObj.row( key=f'({Vetv.ip}={ny})|({Vetv.iq}={ny})') while j_vetv_2 != (-1): tip_vetv_2 = getObj.get_cell_row(table=Vetv.table, column=Vetv.tip, row_id=j_vetv_2) if tip_vetv_2 == 1: v_ip_2 = getObj.get_cell_row(table=Vetv.table, column=Vetv.v_ip, row_id=j_vetv_2) v_iq_2 = getObj.get_cell_row(table=Vetv.table, column=Vetv.v_iq, row_id=j_vetv_2) if (v_ip_2 > u_min and v_iq_2 < u_max) or (v_ip_2 < u_min and v_iq_2 > u_max): varObj.make_changes_row(table=Node.table, column=Node.sel, row_id=j, value=0) j_vetv_2 = vetv.FindNextSel(j_vetv_2) node.SetSel(viborka) j = node.FindNextSel(j)
def get_parameters(Id: int = None, row_id: int = None, rastr_win=RASTR, switch_command_line: bool = False): """ :param Id: Номер возбудителя; :param row_id: порядковый номер в таблице (от 0 до [max.count]); :param rastr_win: COM - объект Rastr.Astra (win32com); :param switch_command_line: True/False - вывод сообщений в протакол; :return: Nothing returns """ get_ = GettingParameter(rastr_win=rastr_win) if Id is not None and row_id is None: # Ku if switch_command_line is not None: ku = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku, Id=Id) else: ku = None # K_Q if switch_command_line is not None: k_q = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Q, Id=Id) else: k_q = None # Kif1 if switch_command_line is not None: kif1 = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kif1, Id=Id) else: kif1 = None # T1if if switch_command_line is not None: t1if = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1if, Id=Id) else: t1if = None # Ku1 if switch_command_line is not None: ku1 = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Ku1, Id=Id) else: ku1 = None # T1u1 if switch_command_line is not None: t1u1 = get_.get_cell_id(table=ExcControl.table, column=ExcControl.T1u1, Id=Id) else: t1u1 = None # K_P if switch_command_line is not None: kp = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_P, Id=Id) else: kp = None # K_Ia if switch_command_line is not None: k_ia = get_.get_cell_id(table=ExcControl.table, column=ExcControl.K_Ia, Id=Id) else: k_ia = None # Tf if switch_command_line is not None: tf = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Tf, Id=Id) else: tf = None # Kf if switch_command_line is not None: kf = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf, Id=Id) else: kf = None # Kf1 if switch_command_line is not None: kf1 = get_.get_cell_id(table=ExcControl.table, column=ExcControl.Kf1, Id=Id) else: kf1 = None # TINT if switch_command_line is not None: tint = get_.get_cell_id(table=ExcControl.table, column=ExcControl.TINT, Id=Id) else: tint = None if switch_command_line is not False: print( f'{separator_two}\n' f'Таблица: "{ExcControl.table}" - {ExcControl.table_name}:\n\n' f'- Id: Номер возбудителя: {Id}\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения: {ku};\n' f'- K_Q: Коэффициент усиления канала по производной тока ротора: {k_q};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора: {kif1};\n' f'- T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора: {t1if};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения: {ku1};\n' f'- T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения: {t1u1};\n' f'- K_P: Коэффициент усиления выходного сигнала ОМВ: {kp};\n' f'- K_Ia: Уставка ограничителя максимального тока ротора: {k_ia};\n' f'- Tf: Постоянная времени дифференцирующего звена в канале по частоте: {tf};\n' f'- Kf: Коэффициент усиления в канале по частоте: {kf};\n' f'- Kf1: Коэффициент усиления в канале по производной частоты: {kf1};\n' f'- TINT: Постоянная времени интегратора: {tint};\n' f'{separator_two}\n') return ( f'{separator_two}\n' f'Таблица: "{ExcControl.table}" - {ExcControl.table_name}:\n\n' f'- Id: Номер возбудителя: {Id}\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения: {ku};\n' f'- K_Q: Коэффициент усиления канала по производной тока ротора: {k_q};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора: {kif1};\n' f'- T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора: {t1if};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения: {ku1};\n' f'- T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения: {t1u1};\n' f'- K_P: Коэффициент усиления выходного сигнала ОМВ: {kp};\n' f'- K_Ia: Уставка ограничителя максимального тока ротора: {k_ia};\n' f'- Tf: Постоянная времени дифференцирующего звена в канале по частоте: {tf};\n' f'- Kf: Коэффициент усиления в канале по частоте: {kf};\n' f'- Kf1: Коэффициент усиления в канале по производной частоты: {kf1};\n' f'- TINT: Постоянная времени интегратора: {tint};\n' f'{separator_two}\n') if row_id is not None and Id is None: # Ku if switch_command_line is not False: ku = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku, row_id=row_id) else: ku = None # K_Q if switch_command_line is not False: k_q = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_Q, row_id=row_id) else: k_q = None # Kif1 if switch_command_line is not False: kif1 = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Kif1, row_id=row_id) else: kif1 = None # T1if if switch_command_line is not False: t1if = get_.get_cell_row(table=ExcControl.table, column=ExcControl.T1if, row_id=row_id) else: t1if = None # Ku1 if switch_command_line is not False: ku1 = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Ku1, row_id=row_id) else: ku1 = None # T1u1 if switch_command_line is not False: t1u1 = get_.get_cell_row(table=ExcControl.table, column=ExcControl.T1u1, row_id=row_id) else: t1u1 = None # K_P if switch_command_line is not False: kp = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_P, row_id=row_id) else: kp = None # K_Ia if switch_command_line is not False: k_ia = get_.get_cell_row(table=ExcControl.table, column=ExcControl.K_Ia, row_id=row_id) else: k_ia = None # Tf if switch_command_line is not False: tf = get_.get_cell_row(table=ExcControl.table, column=ExcControl.Tf, row_id=row_id) else: tf = None # Kf if switch_command_line is not False: kf = get_.get_param(table=ExcControl.table, column=ExcControl.Kf, row_id=row_id) else: kf = None # Kf1 if switch_command_line is not False: kf1 = get_.get_param(table=ExcControl.table, column=ExcControl.Kf1, row_id=row_id) else: kf1 = None # TINT if switch_command_line is not False: tint = get_.get_param(table=ExcControl.table, column=ExcControl.TINT, row_id=row_id) else: tint = None if switch_command_line is not False: print( f'{separator_two}\n' f'Таблица: "{ExcControl.table}" - {ExcControl.table_name}:\n\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]);: {row_id}\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения: {ku};\n' f'- K_Q: Коэффициент усиления канала по производной тока ротора: {k_q};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора: {kif1};\n' f'- T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора: {t1if};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения: {ku1};\n' f'- T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения: {t1u1};\n' f'- K_P: Коэффициент усиления выходного сигнала ОМВ: {kp};\n' f'- K_Ia: Уставка ограничителя максимального тока ротора: {k_ia};\n' f'- Tf: Постоянная времени дифференцирующего звена в канале по частоте: {tf};\n' f'- Kf: Коэффициент усиления в канале по частоте: {kf};\n' f'- Kf1: Коэффициент усиления в канале по производной частоты: {kf1};\n' f'- TINT: Постоянная времени интегратора: {tint};\n' f'{separator_two}\n') return ( f'{separator_two}\n' f'Таблица: "{ExcControl.table}" - {ExcControl.table_name}:\n\n' f'- row_id: порядковый номер в таблице (от 0 до [max.count]);: {row_id}\n' f'- Ku: Коэффициент усиления пропорционального канала регулятора напряжения: {ku};\n' f'- K_Q: Коэффициент усиления канала по производной тока ротора: {k_q};\n' f'- Kif1: Коэффициент усиления канала по производной тока ротора: {kif1};\n' f'- T1if: Постоянная времени дифференцирующего звена в канале по производной тока ротора: {t1if};\n' f'- Ku1: Коэффициент усиления канала по производной напряжения: {ku1};\n' f'- T1u1: Постоянная времени дифференцирующего звена в канале по производной напряжения: {t1u1};\n' f'- K_P: Коэффициент усиления выходного сигнала ОМВ: {kp};\n' f'- K_Ia: Уставка ограничителя максимального тока ротора: {k_ia};\n' f'- Tf: Постоянная времени дифференцирующего звена в канале по частоте: {tf};\n' f'- Kf: Коэффициент усиления в канале по частоте: {kf};\n' f'- Kf1: Коэффициент усиления в канале по производной частоты: {kf1};\n' f'- TINT: Постоянная времени интегратора: {tint};\n' f'{separator_two}\n') if Id is None and row_id is None: print(f'{separator_two}' f'Не задано значение Id и/или row_id!' f'{separator_two}')
def delete_switches(viborka): node = RASTR.Tables(Node.table) vetv = RASTR.Tables(Vetv.table) generator = RASTR.Tables(Generator.table) groupCorrVetvGroupidObj = GroupCorr(rastr_win=RASTR, table=Vetv.table, column=Vetv.groupid) findNextSelNodeObj = FindNextSel(rastr_win=RASTR, table=Node.table) variableObj = Variable(rastr_win=RASTR, switch_command_line=False) gettingParameterObj = GettingParameter(rastr_win=RASTR) node.SetSel(viborka) node.Cols(Node.sel).Calc("1") k = findNextSelNodeObj.row(key='iq.sel=1 & ip.sel=0 &!sta') while k != (-1): iq1 = gettingParameterObj.get_cell_row(table=Vetv.table, column=Vetv.iq, row_id=k) k2 = findNextSelNodeObj.row(key=f'{Node.ny}={iq1}') if k2 != (-1): variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=k2, value=0) k = vetv.FindNextSel(k) k = findNextSelNodeObj.row(key='iq.sel=0 & ip.sel=1 & !sta') while k != (-1): ip1 = gettingParameterObj.get_cell_row(table=Vetv.table, column=Vetv.ip, row_id=k) k2 = findNextSelNodeObj.row(key=f'{Node.ny}={ip1}') if k2 != (-1): variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=k2, value=0) k = vetv.FindNextSel(k) k = findNextSelNodeObj.row(key='(iq.sel=1 & ip.sel=0)|(ip.sel=1 & iq.sel=0) & tip=2') while k != (-1): iq1 = gettingParameterObj.get_cell_row(table=Vetv.table, column=Vetv.iq, row_id=k) k2 = findNextSelNodeObj.row(key=f'{Node.ny}={iq1}') if k2 != (-1): variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=k2, value=0) ip1 = gettingParameterObj.get_cell_row(table=Vetv.table, column=Vetv.ip, row_id=k2) k2 = findNextSelNodeObj.row(key=f'{Node.ny}={ip1}') if k2 != (-1): variableObj.make_changes_row(table=Node.table, column=Node.sel, row_id=k2, value=0) k = findNextSelNodeObj.row(key='(iq.sel=1 &ip.sel=0) | (ip.sel=1 &iq.sel=0) & tip=2') viborka_in_bsh = '(iq.bsh>0 & ip.bsh=0) | (ip.bsh>0 & iq.bsh=0) | (iq.bshr>0 & ip.bshr=0) | (ip.bshr>0 & iq.bshr=0)| ip.sel=0 | iq.sel=0)' groupCorrVetvGroupidObj.calc(key='1', formula='0') groupCorrVetvGroupidObj.calc(key=viborka_in_bsh, formula='1') nvet = 0 flvykl = 0 for povet in range(0, 10000): ivet = findNextSelNodeObj.row( key='x<0.01 & x>-0.01 & r<0.005 & r>=0 & (ktr=0 | ktr=1) & !sta & groupid!=1 & b<0.000005') if ivet == -1: break ip = gettingParameterObj.get_cell_row(table=Vetv.table, column=Vetv.ip, row_id=ivet) iq = gettingParameterObj.get_cell_row(table=Vetv.table, column=Vetv.iq, row_id=ivet) if ip > iq: ny = iq ndel = ip else: ny = ip ndel = iq ndny = 0 ndndel = 0