from typhoon.api.impl.schematic_editor import model as mdl
mdl.create_new_model()

# Configuration.
mdl.set_model_property_value("hil_device", "HIL402")
mdl.set_model_property_value("hil_configuration_id", 1)
mdl.set_model_property_value("simulation_method", "bilinear")
mdl.set_model_property_value("simulation_time_step", 10e-6)
mdl.set_model_property_value("simulation_discret_scaling", "1.0")
mdl.set_model_property_value("dsp_timer_periods", ('100e-6', ' 50e-3'))
mdl.set_model_property_value("ss_calc_method", "systematic elimination")
mdl.set_model_property_value("enb_pole_shift", True)
mdl.set_model_property_value("enb_gds_oversampling", True)
mdl.set_model_property_value("show_modes", False)
mdl.set_model_property_value("device_ao_limit_enable", False)
mdl.set_model_property_value("cpl_stb", False)
mdl.set_model_property_value("enb_dep_sw_detect", False)
mdl.set_model_property_value("code_section", "internal memory")
mdl.set_model_property_value("data_section", "internal memory")
mdl.set_model_property_value("sys_sp_rate_1", 0.0001)
mdl.set_model_property_value("sys_sp_rate_2", 0.05)
mdl.set_model_property_value("sys_real_type_precision", "default")
mdl.set_model_property_value("user_real_type_precision", "default")
mdl.set_model_property_value("sys_cpu_optimization", "high")
mdl.set_model_property_value("user_cpu_optimization", "high")

# Component: Root

# Component: Capacitor Bank
_Capacitor_Bank = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Capacitor Bank",
    rotation="up",
    flip="flip_none",
    position=(4648, 6848),
    hide_name=False,
    size=(96, 64)
)
_Capacitor_Bank_mask = mdl.create_mask(_Capacitor_Bank)
_Capacitor_Bank_mask_tp_connection = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="tp_connection",
    label="Connection",
    widget="combo",
    combo_values=['Y - Grounded', 'Y', 'Δ', 'In series'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Capacitor_Bank_mask_tp_connection_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.port_dynamics(mdl, container_handle)
comp_script.redo_connections(mdl, container_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask_tp_connection, "property_value_changed", _Capacitor_Bank_mask_tp_connection_property_value_changed)


_Capacitor_Bank_mask_tp_connection_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask_tp_connection, "property_value_edited", _Capacitor_Bank_mask_tp_connection_property_value_edited)

_Capacitor_Bank_mask_global_basefreq = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Capacitor_Bank_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask_global_basefreq, "property_value_changed", _Capacitor_Bank_mask_global_basefreq_property_value_changed)


_Capacitor_Bank_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask_global_basefreq, "property_value_edited", _Capacitor_Bank_mask_global_basefreq_property_value_edited)

_Capacitor_Bank_mask_baseFreq = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit="Hz"
)

_Capacitor_Bank_mask_phases = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="phases",
    label="Phases",
    widget="combo",
    combo_values=['3', '2', '1'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Capacitor_Bank_mask_phases_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.port_dynamics(mdl, container_handle)
comp_script.redo_connections(mdl, container_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask_phases, "property_value_changed", _Capacitor_Bank_mask_phases_property_value_changed)


_Capacitor_Bank_mask_phases_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask_phases, "property_value_edited", _Capacitor_Bank_mask_phases_property_value_edited)

_Capacitor_Bank_mask_Kv = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="Kv",
    label="kV",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="kV"
)

_Capacitor_Bank_mask_Kvar = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="Kvar",
    label="kVar",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="kVAr"
)

_Capacitor_Bank_mask_C = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="C",
    label="C",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Capacitor_Bank_mask_enable_monitoring = mdl.create_property(
    item_handle=_Capacitor_Bank_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring",
    unit=""
)


_Capacitor_Bank_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask, "define_icon", _Capacitor_Bank_mask_define_icon)

_Capacitor_Bank_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_capacitor as comp_script

importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)

comp_script.retro_compatibility(mdl, item_handle)


"""
mdl.set_handler_code(_Capacitor_Bank_mask, "init", _Capacitor_Bank_mask_init)

_Capacitor_Bank_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.update_frequency_property(mdl, item_handle)
comp_script.calculate_c(mdl, item_handle)

"""
mdl.set_handler_code(_Capacitor_Bank_mask, "pre_compile", _Capacitor_Bank_mask_pre_compile)

_Capacitor_Bank_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br>Three-Phase Capacitor Bank.</br></p></body></html>
'''
mdl.set_description(_Capacitor_Bank_mask, _Capacitor_Bank_mask_desc)
mdl.set_property_value(mdl.prop(_Capacitor_Bank_mask, "global_basefreq"), "False")
mdl.set_property_value(mdl.prop(_Capacitor_Bank_mask, "tp_connection"), "Y - Neutral point accessible")


# Component: Capacitor Bank.Ca
_Capacitor_Bank_Ca = mdl.create_component(
    type_name="core/Capacitor",
    parent=_Capacitor_Bank,
    name="Ca",
    rotation="down",
    flip="flip_none",
    position=(8112, 8096),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Capacitor_Bank_Ca, "capacitance"), "C")


# Component: Capacitor Bank.Cb
_Capacitor_Bank_Cb = mdl.create_component(
    type_name="core/Capacitor",
    parent=_Capacitor_Bank,
    name="Cb",
    rotation="down",
    flip="flip_none",
    position=(8112, 8192),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Capacitor_Bank_Cb, "capacitance"), "C")


# Component: Capacitor Bank.Cc
_Capacitor_Bank_Cc = mdl.create_component(
    type_name="core/Capacitor",
    parent=_Capacitor_Bank,
    name="Cc",
    rotation="down",
    flip="flip_none",
    position=(8112, 8288),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Capacitor_Bank_Cc, "capacitance"), "C")


# Port: Capacitor Bank.A1
_Capacitor_Bank_A1 = mdl.create_port(
    name="A1",
    parent=_Capacitor_Bank,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, -32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8392, 8096)
)

# Port: Capacitor Bank.B1
_Capacitor_Bank_B1 = mdl.create_port(
    name="B1",
    parent=_Capacitor_Bank,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(0.0, -32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8392, 8192)
)

# Port: Capacitor Bank.C1
_Capacitor_Bank_C1 = mdl.create_port(
    name="C1",
    parent=_Capacitor_Bank,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, -32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8392, 8288)
)

# Junction: Capacitor Bank.j
_Capacitor_Bank_j = mdl.create_junction(
    name="j",
    parent=_Capacitor_Bank,
    kind="pe",
    position=(7992, 8192)
)

# Component: Controlled Switch
_Controlled_Switch = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Controlled Switch",
    rotation="up",
    flip="flip_none",
    position=(5056, 6880),
    hide_name=False,
    size=(64, 96)
)
_Controlled_Switch_mask = mdl.create_mask(_Controlled_Switch)
_Controlled_Switch_mask_enable_fb_out = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="enable_fb_out",
    label="Feedback output",
    widget="combo",
    combo_values=['True', 'False'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General:1",
    unit=""
)


_Controlled_Switch_mask_enable_fb_out_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.define_icon(mdl, container_handle)
mdl.refresh_icon(container_handle)
comp_script.port_dynamics(mdl, container_handle)
comp_script.update_inner_property(mdl, container_handle, "enable_fb_out", new_value)
comp_script.update_fb_connection(mdl, container_handle)

"""
mdl.set_handler_code(_Controlled_Switch_mask_enable_fb_out, "property_value_changed", _Controlled_Switch_mask_enable_fb_out_property_value_changed)


_Controlled_Switch_mask_enable_fb_out_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Controlled_Switch_mask_enable_fb_out, "property_value_edited", _Controlled_Switch_mask_enable_fb_out_property_value_edited)

_Controlled_Switch_mask_fb_out_type = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="fb_out_type",
    label="Signal type",
    widget="combo",
    combo_values=['real', 'int', 'uint'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="General:1",
    unit=""
)


_Controlled_Switch_mask_fb_out_type_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_inner_property(mdl, container_handle, "fb_out_type", new_value)

"""
mdl.set_handler_code(_Controlled_Switch_mask_fb_out_type, "property_value_changed", _Controlled_Switch_mask_fb_out_type_property_value_changed)

_Controlled_Switch_mask_phases = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="phases",
    label="Phases",
    widget="combo",
    combo_values=['1', '2', '3'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Controlled_Switch_mask_phases_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.change_number_phases_switch(mdl, container_handle, new_value)
comp_script.port_dynamics(mdl, container_handle)
comp_script.change_number_phases_conn(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_Controlled_Switch_mask_phases, "property_value_changed", _Controlled_Switch_mask_phases_property_value_changed)

_Controlled_Switch_mask_execution_rate = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="execution_rate",
    label="Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Controlled_Switch_mask_execution_rate_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_inner_property(mdl, container_handle, "execution_rate", new_value)

"""
mdl.set_handler_code(_Controlled_Switch_mask_execution_rate, "property_value_changed", _Controlled_Switch_mask_execution_rate_property_value_changed)

_Controlled_Switch_mask_initial_state = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="initial_state",
    label="Initial state",
    widget="combo",
    combo_values=['off', 'on'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Initial state:2",
    unit=""
)


_Controlled_Switch_mask_initial_state_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_inner_property(mdl, container_handle, "initial_state", new_value)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Controlled_Switch_mask_initial_state, "property_value_changed", _Controlled_Switch_mask_initial_state_property_value_changed)

_Controlled_Switch_mask_on_delay = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="on_delay",
    label="On delay",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Timing:3",
    unit="s"
)


_Controlled_Switch_mask_on_delay_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_inner_property(mdl, container_handle, "on_delay", new_value)

"""
mdl.set_handler_code(_Controlled_Switch_mask_on_delay, "property_value_changed", _Controlled_Switch_mask_on_delay_property_value_changed)

_Controlled_Switch_mask_off_delay = mdl.create_property(
    item_handle=_Controlled_Switch_mask,
    name="off_delay",
    label="Off delay",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Timing",
    unit="s"
)


_Controlled_Switch_mask_off_delay_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_inner_property(mdl, container_handle, "off_delay", new_value)

"""
mdl.set_handler_code(_Controlled_Switch_mask_off_delay, "property_value_changed", _Controlled_Switch_mask_off_delay_property_value_changed)


_Controlled_Switch_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Controlled_Switch_mask, "define_icon", _Controlled_Switch_mask_define_icon)

_Controlled_Switch_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_ctrlsw as comp_script
importlib.reload(comp_script)

def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)


"""
mdl.set_handler_code(_Controlled_Switch_mask, "init", _Controlled_Switch_mask_init)

_Controlled_Switch_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The controlled switch is represented by a Line component in OpenDSS and by a Triple Pole Single Throw Contactor component in the Schematic Editor.<br><br>When simulating in the time domain within Typhoon’s environment, the control signal must be provided by signal processing elements or digital inputs.<br><br>If external control is not needed, a Manual Switch component can be used to allow fast double-click state toggling.</p></body></html>
'''
mdl.set_description(_Controlled_Switch_mask, _Controlled_Switch_mask_desc)


# Component: Controlled Switch.S
_Controlled_Switch_S = mdl.create_component(
    type_name="core/Triple Pole Single Throw Contactor",
    parent=_Controlled_Switch,
    name="S",
    rotation="up",
    flip="flip_none",
    position=(7736, 7952),
    hide_name=False,
    size=(64, 256)
)
mdl.set_property_value(mdl.prop(_Controlled_Switch_S, "ctrl_src"), "Model")
mdl.set_property_value(mdl.prop(_Controlled_Switch_S, "initial_state"), "on")
mdl.set_property_value(mdl.prop(_Controlled_Switch_S, "off_delay"), "0.0")
mdl.set_property_value(mdl.prop(_Controlled_Switch_S, "on_delay"), "0.0")


# Port: Controlled Switch.ctrl
_Controlled_Switch_ctrl = mdl.create_port(
    name="ctrl",
    parent=_Controlled_Switch,
    label="ctrl",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=(0, -48),
    rotation="right",
    flip="flip_none",
    hide_name=True,
    position=(7688, 7800)
)

# Port: Controlled Switch.A1
_Controlled_Switch_A1 = mdl.create_port(
    name="A1",
    parent=_Controlled_Switch,
    label="A1",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(-32, -32),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7600, 7856)
)

# Port: Controlled Switch.B1
_Controlled_Switch_B1 = mdl.create_port(
    name="B1",
    parent=_Controlled_Switch,
    label="B1",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(-32, 0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7600, 7952)
)

# Port: Controlled Switch.C1
_Controlled_Switch_C1 = mdl.create_port(
    name="C1",
    parent=_Controlled_Switch,
    label="C1",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(-32, 32),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7600, 8048)
)

# Port: Controlled Switch.A2
_Controlled_Switch_A2 = mdl.create_port(
    name="A2",
    parent=_Controlled_Switch,
    label="A2",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, -32),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(7872, 7856)
)

# Port: Controlled Switch.B2
_Controlled_Switch_B2 = mdl.create_port(
    name="B2",
    parent=_Controlled_Switch,
    label="B2",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, 0),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(7872, 7952)
)

# Port: Controlled Switch.C2
_Controlled_Switch_C2 = mdl.create_port(
    name="C2",
    parent=_Controlled_Switch,
    label="C2",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, 36),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(7872, 8048)
)

# Component: Fault
_Fault = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Fault",
    rotation="up",
    flip="flip_none",
    position=(5304, 6880),
    hide_name=False,
    size=(64, 96)
)
_Fault_mask = mdl.create_mask(_Fault)
_Fault_mask_fault_type = mdl.create_property(
    item_handle=_Fault_mask,
    name="fault_type",
    label="Fault type",
    widget="combo",
    combo_values=['A-B-C-GND', 'A-B-GND', 'A-C-GND', 'B-C-GND', 'A-GND', 'B-GND', 'C-GND', 'A-B-C', 'A-B', 'A-C', 'B-C', 'None'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Fault_mask_fault_type_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.update_inner_fault(mdl, container_handle, "fault_type", new_value)
comp_script.update_inner_gnd(mdl, container_handle, created_ports)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Fault_mask_fault_type, "property_value_changed", _Fault_mask_fault_type_property_value_changed)

_Fault_mask_resistance = mdl.create_property(
    item_handle=_Fault_mask,
    name="resistance",
    label="Resistance (phase)",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="Ω"
)


_Fault_mask_resistance_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_inner_fault(mdl, container_handle, "resistance", new_value)

"""
mdl.set_handler_code(_Fault_mask_resistance, "property_value_changed", _Fault_mask_resistance_property_value_changed)


_Fault_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Fault_mask, "define_icon", _Fault_mask_define_icon)

_Fault_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_fault as comp_script
importlib.reload(comp_script)

def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Fault_mask, "init", _Fault_mask_init)

_Fault_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The OpenDSS Fault object is a resistor network, a two-terminal device in which the second terminal defaults to ground.<br><br>Only one Bus must be connected to either side this component.</p></body></html>
'''
mdl.set_description(_Fault_mask, _Fault_mask_desc)


# Component: Fault.F1
_Fault_F1 = mdl.create_component(
    type_name="core/Grid Fault",
    parent=_Fault,
    name="F1",
    rotation="up",
    flip="flip_none",
    position=(7736, 7952),
    hide_name=False,
    size=(64, 64)
)
mdl.set_property_value(mdl.prop(_Fault_F1, "fault_type"), "A-B-C-GND")
mdl.set_property_value(mdl.prop(_Fault_F1, "resistance"), "0.00030000000000000003")


# Component: Fault.gnd
_Fault_gnd = mdl.create_component(
    type_name="core/Ground",
    parent=_Fault,
    name="gnd",
    rotation="up",
    flip="flip_none",
    position=(7736, 8144),
    hide_name=False,
    size=(None, None)
)


# Port: Fault.A1
_Fault_A1 = mdl.create_port(
    name="A1",
    parent=_Fault,
    label="A1",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=('left', 'top'),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7600, 7856)
)

# Port: Fault.B1
_Fault_B1 = mdl.create_port(
    name="B1",
    parent=_Fault,
    label="B1",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=('left', 'center'),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7600, 7952)
)

# Port: Fault.C1
_Fault_C1 = mdl.create_port(
    name="C1",
    parent=_Fault,
    label="C1",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=('left', 'bottom'),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7600, 8048)
)

# Port: Fault.A2
_Fault_A2 = mdl.create_port(
    name="A2",
    parent=_Fault,
    label="A2",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 'top'),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(7872, 7856)
)

# Port: Fault.B2
_Fault_B2 = mdl.create_port(
    name="B2",
    parent=_Fault,
    label="B2",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 'center'),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(7872, 7952)
)

# Port: Fault.C2
_Fault_C2 = mdl.create_port(
    name="C2",
    parent=_Fault,
    label="C2",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32.0, 32.0),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(7872, 8048)
)

# Component: Generator
_Generator = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Generator",
    rotation="up",
    flip="flip_none",
    position=(5592, 6888),
    hide_name=False,
    size=(175, 175)
)
_Generator_mask = mdl.create_mask(_Generator)
_Generator_mask_phases = mdl.create_property(
    item_handle=_Generator_mask,
    name="phases",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_kw = mdl.create_property(
    item_handle=_Generator_mask,
    name="kw",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_kvar = mdl.create_property(
    item_handle=_Generator_mask,
    name="kvar",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_kv = mdl.create_property(
    item_handle=_Generator_mask,
    name="kv",
    label="Nominal line voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General:1",
    unit="kV"
)

_Generator_mask_global_basefreq = mdl.create_property(
    item_handle=_Generator_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Generator_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Generator_mask_global_basefreq, "property_value_changed", _Generator_mask_global_basefreq_property_value_changed)


_Generator_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Generator_mask_global_basefreq, "property_value_edited", _Generator_mask_global_basefreq_property_value_edited)

_Generator_mask_baseFreq = mdl.create_property(
    item_handle=_Generator_mask,
    name="baseFreq",
    label="Nominal Frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="General",
    unit="Hz"
)

_Generator_mask_nom_rpm = mdl.create_property(
    item_handle=_Generator_mask,
    name="nom_rpm",
    label="Nominal RPM",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General",
    unit="rpm"
)

_Generator_mask_kVA = mdl.create_property(
    item_handle=_Generator_mask,
    name="kVA",
    label="Nominal Apparent Power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General",
    unit="kVA"
)

_Generator_mask_pf = mdl.create_property(
    item_handle=_Generator_mask,
    name="pf",
    label="Nominal Power Factor ",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)

_Generator_mask_model = mdl.create_property(
    item_handle=_Generator_mask,
    name="model",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Xd = mdl.create_property(
    item_handle=_Generator_mask,
    name="Xd",
    label="Synchronous Reactance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Circuit Parameters:2",
    unit="pu"
)

_Generator_mask_Xdp = mdl.create_property(
    item_handle=_Generator_mask,
    name="Xdp",
    label="Transient Reactance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Circuit Parameters",
    unit="pu"
)

_Generator_mask_Xdpp = mdl.create_property(
    item_handle=_Generator_mask,
    name="Xdpp",
    label="Sub-Transient Reactance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Circuit Parameters",
    unit="pu"
)

_Generator_mask_XRdp = mdl.create_property(
    item_handle=_Generator_mask,
    name="XRdp",
    label="Transient X/R ratio",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Circuit Parameters",
    unit=""
)

_Generator_mask_H = mdl.create_property(
    item_handle=_Generator_mask,
    name="H",
    label="Mass Constant",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Circuit Parameters",
    unit="s"
)

_Generator_mask_J = mdl.create_property(
    item_handle=_Generator_mask,
    name="J",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_rs = mdl.create_property(
    item_handle=_Generator_mask,
    name="rs",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Lls = mdl.create_property(
    item_handle=_Generator_mask,
    name="Lls",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Lmq = mdl.create_property(
    item_handle=_Generator_mask,
    name="Lmq",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Lmd = mdl.create_property(
    item_handle=_Generator_mask,
    name="Lmd",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Lmzq = mdl.create_property(
    item_handle=_Generator_mask,
    name="Lmzq",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Lmzd = mdl.create_property(
    item_handle=_Generator_mask,
    name="Lmzd",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_rkq = mdl.create_property(
    item_handle=_Generator_mask,
    name="rkq",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_rkq2 = mdl.create_property(
    item_handle=_Generator_mask,
    name="rkq2",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_rkd = mdl.create_property(
    item_handle=_Generator_mask,
    name="rkd",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_rfd = mdl.create_property(
    item_handle=_Generator_mask,
    name="rfd",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Llkq = mdl.create_property(
    item_handle=_Generator_mask,
    name="Llkq",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Llkq2 = mdl.create_property(
    item_handle=_Generator_mask,
    name="Llkq2",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Llkd = mdl.create_property(
    item_handle=_Generator_mask,
    name="Llkd",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Llfd = mdl.create_property(
    item_handle=_Generator_mask,
    name="Llfd",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_PP = mdl.create_property(
    item_handle=_Generator_mask,
    name="PP",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_w_base = mdl.create_property(
    item_handle=_Generator_mask,
    name="w_base",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_T_base = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_base",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_ws = mdl.create_property(
    item_handle=_Generator_mask,
    name="ws",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_ws_inv = mdl.create_property(
    item_handle=_Generator_mask,
    name="ws_inv",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Z_base = mdl.create_property(
    item_handle=_Generator_mask,
    name="Z_base",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_G_mod = mdl.create_property(
    item_handle=_Generator_mask,
    name="G_mod",
    label="Generator model",
    widget="combo",
    combo_values=['Constant kW', 'Constant admittance', 'Constant kW, Constant kV', 'Constant kW, Fixed Q', 'Constant kW, Fixed Q (constant reactance)'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="OpenDSS model setting:3",
    unit=""
)

_Generator_mask_execution_rate = mdl.create_property(
    item_handle=_Generator_mask,
    name="execution_rate",
    label="Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Execution rate:4",
    unit="s"
)

_Generator_mask_dA = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA11 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA11",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA12 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA12",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA13 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA13",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA14 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA14",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA21 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA21",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA22 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA22",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA23 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA23",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA24 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA24",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA31 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA31",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA32 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA32",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA33 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA33",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA34 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA34",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA41 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA41",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA42 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA42",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA43 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA43",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dA44 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dA44",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB11 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB11",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB12 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB12",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB13 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB13",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB21 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB21",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB22 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB22",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB23 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB23",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB31 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB31",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB32 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB32",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB33 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB33",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB41 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB41",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB42 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB42",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_dB43 = mdl.create_property(
    item_handle=_Generator_mask,
    name="dB43",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_Init_En = mdl.create_property(
    item_handle=_Generator_mask,
    name="Init_En",
    label="Initialization",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Initialization:5",
    unit=""
)


_Generator_mask_Init_En_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle, caller_prop_handle=prop_handle)
comp_script.components_and_connections(mdl, container_handle, created_ports, caller_prop_handle=prop_handle)

"""
mdl.set_handler_code(_Generator_mask_Init_En, "property_value_changed", _Generator_mask_Init_En_property_value_changed)

_Generator_mask_Init_switch = mdl.create_property(
    item_handle=_Generator_mask,
    name="Init_switch",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Generator_mask_V_ph_init = mdl.create_property(
    item_handle=_Generator_mask,
    name="V_ph_init",
    label="Initial phase voltage magnitude",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Initialization",
    unit="kV"
)

_Generator_mask_thet_ph_init = mdl.create_property(
    item_handle=_Generator_mask,
    name="thet_ph_init",
    label="Initial phase voltage angle",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Initialization",
    unit="Rad"
)

_Generator_mask_V2M_t = mdl.create_property(
    item_handle=_Generator_mask,
    name="V2M_t",
    label="Transition time from V Source to Machine",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Initialization",
    unit="s"
)

_Generator_mask_Mech_En = mdl.create_property(
    item_handle=_Generator_mask,
    name="Mech_En",
    label="Mechanical system enable time",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Initialization",
    unit="s"
)

_Generator_mask_gen_ts_en = mdl.create_property(
    item_handle=_Generator_mask,
    name="gen_ts_en",
    label="Enable time series (override gen control)",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_gen_ts_en_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle, caller_prop_handle=prop_handle)
comp_script.components_and_connections(mdl, container_handle, created_ports, caller_prop_handle=prop_handle)

"""
mdl.set_handler_code(_Generator_mask_gen_ts_en, "property_value_changed", _Generator_mask_gen_ts_en_property_value_changed)


_Generator_mask_gen_ts_en_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Generator_mask_gen_ts_en, "property_value_edited", _Generator_mask_gen_ts_en_property_value_edited)

_Generator_mask_load_loadshape = mdl.create_property(
    item_handle=_Generator_mask,
    name="load_loadshape",
    label="LoadShape object",
    widget="button",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    button_label="Choose",
    unit=""
)


_Generator_mask_load_loadshape_button_clicked = """
comp_script_load = return_comp_script_load()
comp_script_load.load_loadshape(mdl, container_handle)

"""
mdl.set_handler_code(_Generator_mask_load_loadshape, "button_clicked", _Generator_mask_load_loadshape_button_clicked)

_Generator_mask_loadshape_name = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape_name",
    label="LoadShape name",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_loadshape_name_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Generator_mask_loadshape_name, "property_value_edited", _Generator_mask_loadshape_name_property_value_edited)

_Generator_mask_loadshape_from_file = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape_from_file",
    label="From CSV file",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_loadshape_from_file_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Generator_mask_loadshape_from_file, "property_value_edited", _Generator_mask_loadshape_from_file_property_value_edited)

_Generator_mask_loadshape_from_file_path = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape_from_file_path",
    label="LoadShape from file - path",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_loadshape_from_file_header = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape_from_file_header",
    label="LoadShape from file - header",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_loadshape_from_file_column = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape_from_file_column",
    label="LoadShape from file - column",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings:4",
    unit=""
)

_Generator_mask_useactual = mdl.create_property(
    item_handle=_Generator_mask,
    name="useactual",
    label="Actual gen value",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_useactual_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Generator_mask_useactual, "property_value_edited", _Generator_mask_useactual_property_value_edited)

_Generator_mask_loadshape = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape",
    label="LoadShape points",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_loadshape_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Generator_mask_loadshape, "property_value_edited", _Generator_mask_loadshape_property_value_edited)

_Generator_mask_loadshape_int = mdl.create_property(
    item_handle=_Generator_mask,
    name="loadshape_int",
    label="LoadShape interval",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="h"
)


_Generator_mask_loadshape_int_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Generator_mask_loadshape_int, "property_value_edited", _Generator_mask_loadshape_int_property_value_edited)

_Generator_mask_gen_ts_en_bit = mdl.create_property(
    item_handle=_Generator_mask,
    name="gen_ts_en_bit",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_T_Ts = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_Ts",
    label="LoadShape time range",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="h"
)

_Generator_mask_T_mode = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_mode",
    label="LoadShape input mode",
    widget="combo",
    combo_values=['Loadshape index', 'Time'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_T_mode_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Generator_mask_T_mode, "property_value_edited", _Generator_mask_T_mode_property_value_edited)

_Generator_mask_S_Ts = mdl.create_property(
    item_handle=_Generator_mask,
    name="S_Ts",
    label="Power profile",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit="pu"
)

_Generator_mask_Q_Ts = mdl.create_property(
    item_handle=_Generator_mask,
    name="Q_Ts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_S_Ts_mode = mdl.create_property(
    item_handle=_Generator_mask,
    name="S_Ts_mode",
    label="Power Profile mode",
    widget="combo",
    combo_values=['Manual input'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)


_Generator_mask_S_Ts_mode_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle, caller_prop_handle=prop_handle)
comp_script.components_and_connections(mdl, container_handle, created_ports, caller_prop_handle=prop_handle)

"""
mdl.set_handler_code(_Generator_mask_S_Ts_mode, "property_value_changed", _Generator_mask_S_Ts_mode_property_value_changed)


_Generator_mask_S_Ts_mode_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Generator_mask_S_Ts_mode, "property_value_edited", _Generator_mask_S_Ts_mode_property_value_edited)

_Generator_mask_timespan = mdl.create_property(
    item_handle=_Generator_mask,
    name="timespan",
    label="Loadshape time span",
    widget="combo",
    combo_values=['Daily', 'Yearly'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_T_Ts_internal = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_Ts_internal",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_dssT = mdl.create_property(
    item_handle=_Generator_mask,
    name="dssT",
    label="OpenDSS time interval",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit="h"
)

_Generator_mask_dssnpts = mdl.create_property(
    item_handle=_Generator_mask,
    name="dssnpts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_T_Ts_max = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_Ts_max",
    label="Power profile loop cycle",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit="s"
)

_Generator_mask_del_Ts = mdl.create_property(
    item_handle=_Generator_mask,
    name="del_Ts",
    label="Profile start delay",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit="s"
)

_Generator_mask_Slen = mdl.create_property(
    item_handle=_Generator_mask,
    name="Slen",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_T_lim_low = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_lim_low",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_T_lim_high = mdl.create_property(
    item_handle=_Generator_mask,
    name="T_lim_high",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_Ts_switch = mdl.create_property(
    item_handle=_Generator_mask,
    name="Ts_switch",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Generator_mask_enable_monitoring = mdl.create_property(
    item_handle=_Generator_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring",
    unit=""
)


_Generator_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Generator_mask, "define_icon", _Generator_mask_define_icon)

_Generator_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_generator as comp_script
import dss_thcc_lib.component_scripts.comp_load as comp_script2
importlib.reload(comp_script)
importlib.reload(comp_script2)

def return_comp_script(mdl, item_handle):
    return comp_script

def return_comp_script_load():
    return comp_script2

"""
mdl.set_handler_code(_Generator_mask, "init", _Generator_mask_init)

_Generator_mask_pre_compile = """
# HEADER START
phases = mdl.get_property_value(mdl.prop(item_handle, "phases"))
kw = mdl.get_property_value(mdl.prop(item_handle, "kw"))
kvar = mdl.get_property_value(mdl.prop(item_handle, "kvar"))
kv = mdl.get_property_value(mdl.prop(item_handle, "kv"))
global_basefreq = mdl.get_property_value(mdl.prop(item_handle, "global_basefreq"))
basefreq = mdl.get_property_value(mdl.prop(item_handle, "baseFreq"))
nom_rpm = mdl.get_property_value(mdl.prop(item_handle, "nom_rpm"))
kVA = mdl.get_property_value(mdl.prop(item_handle, "kVA"))
pf = mdl.get_property_value(mdl.prop(item_handle, "pf"))
model = mdl.get_property_value(mdl.prop(item_handle, "model"))
Xd = mdl.get_property_value(mdl.prop(item_handle, "Xd"))
Xdp = mdl.get_property_value(mdl.prop(item_handle, "Xdp"))
Xdpp = mdl.get_property_value(mdl.prop(item_handle, "Xdpp"))
XRdp = mdl.get_property_value(mdl.prop(item_handle, "XRdp"))
H = mdl.get_property_value(mdl.prop(item_handle, "H"))
J = mdl.get_property_value(mdl.prop(item_handle, "J"))
rs = mdl.get_property_value(mdl.prop(item_handle, "rs"))
Lls = mdl.get_property_value(mdl.prop(item_handle, "Lls"))
Lmq = mdl.get_property_value(mdl.prop(item_handle, "Lmq"))
Lmd = mdl.get_property_value(mdl.prop(item_handle, "Lmd"))
Lmzq = mdl.get_property_value(mdl.prop(item_handle, "Lmzq"))
Lmzd = mdl.get_property_value(mdl.prop(item_handle, "Lmzd"))
rkq = mdl.get_property_value(mdl.prop(item_handle, "rkq"))
rkq2 = mdl.get_property_value(mdl.prop(item_handle, "rkq2"))
rkd = mdl.get_property_value(mdl.prop(item_handle, "rkd"))
rfd = mdl.get_property_value(mdl.prop(item_handle, "rfd"))
Llkq = mdl.get_property_value(mdl.prop(item_handle, "Llkq"))
Llkq2 = mdl.get_property_value(mdl.prop(item_handle, "Llkq2"))
Llkd = mdl.get_property_value(mdl.prop(item_handle, "Llkd"))
Llfd = mdl.get_property_value(mdl.prop(item_handle, "Llfd"))
PP = mdl.get_property_value(mdl.prop(item_handle, "PP"))
w_base = mdl.get_property_value(mdl.prop(item_handle, "w_base"))
T_base = mdl.get_property_value(mdl.prop(item_handle, "T_base"))
ws = mdl.get_property_value(mdl.prop(item_handle, "ws"))
ws_inv = mdl.get_property_value(mdl.prop(item_handle, "ws_inv"))
Z_base = mdl.get_property_value(mdl.prop(item_handle, "Z_base"))
G_mod = mdl.get_property_value(mdl.prop(item_handle, "G_mod"))
execution_rate = mdl.get_property_value(mdl.prop(item_handle, "execution_rate"))
dA = mdl.get_property_value(mdl.prop(item_handle, "dA"))
dB = mdl.get_property_value(mdl.prop(item_handle, "dB"))
dA11 = mdl.get_property_value(mdl.prop(item_handle, "dA11"))
dA12 = mdl.get_property_value(mdl.prop(item_handle, "dA12"))
dA13 = mdl.get_property_value(mdl.prop(item_handle, "dA13"))
dA14 = mdl.get_property_value(mdl.prop(item_handle, "dA14"))
dA21 = mdl.get_property_value(mdl.prop(item_handle, "dA21"))
dA22 = mdl.get_property_value(mdl.prop(item_handle, "dA22"))
dA23 = mdl.get_property_value(mdl.prop(item_handle, "dA23"))
dA24 = mdl.get_property_value(mdl.prop(item_handle, "dA24"))
dA31 = mdl.get_property_value(mdl.prop(item_handle, "dA31"))
dA32 = mdl.get_property_value(mdl.prop(item_handle, "dA32"))
dA33 = mdl.get_property_value(mdl.prop(item_handle, "dA33"))
dA34 = mdl.get_property_value(mdl.prop(item_handle, "dA34"))
dA41 = mdl.get_property_value(mdl.prop(item_handle, "dA41"))
dA42 = mdl.get_property_value(mdl.prop(item_handle, "dA42"))
dA43 = mdl.get_property_value(mdl.prop(item_handle, "dA43"))
dA44 = mdl.get_property_value(mdl.prop(item_handle, "dA44"))
dB11 = mdl.get_property_value(mdl.prop(item_handle, "dB11"))
dB12 = mdl.get_property_value(mdl.prop(item_handle, "dB12"))
dB13 = mdl.get_property_value(mdl.prop(item_handle, "dB13"))
dB21 = mdl.get_property_value(mdl.prop(item_handle, "dB21"))
dB22 = mdl.get_property_value(mdl.prop(item_handle, "dB22"))
dB23 = mdl.get_property_value(mdl.prop(item_handle, "dB23"))
dB31 = mdl.get_property_value(mdl.prop(item_handle, "dB31"))
dB32 = mdl.get_property_value(mdl.prop(item_handle, "dB32"))
dB33 = mdl.get_property_value(mdl.prop(item_handle, "dB33"))
dB41 = mdl.get_property_value(mdl.prop(item_handle, "dB41"))
dB42 = mdl.get_property_value(mdl.prop(item_handle, "dB42"))
dB43 = mdl.get_property_value(mdl.prop(item_handle, "dB43"))
Init_En = mdl.get_property_value(mdl.prop(item_handle, "Init_En"))
Init_switch = mdl.get_property_value(mdl.prop(item_handle, "Init_switch"))
V_ph_init = mdl.get_property_value(mdl.prop(item_handle, "V_ph_init"))
thet_ph_init = mdl.get_property_value(mdl.prop(item_handle, "thet_ph_init"))
V2M_t = mdl.get_property_value(mdl.prop(item_handle, "V2M_t"))
Mech_En = mdl.get_property_value(mdl.prop(item_handle, "Mech_En"))
gen_ts_en = mdl.get_property_value(mdl.prop(item_handle, "gen_ts_en"))
load_loadshape = mdl.get_property_value(mdl.prop(item_handle, "load_loadshape"))
loadshape_name = mdl.get_property_value(mdl.prop(item_handle, "loadshape_name"))
loadshape = mdl.get_property_value(mdl.prop(item_handle, "loadshape"))
loadshape_int = mdl.get_property_value(mdl.prop(item_handle, "loadshape_int"))
gen_ts_en_bit = mdl.get_property_value(mdl.prop(item_handle, "gen_ts_en_bit"))
T_mode = mdl.get_property_value(mdl.prop(item_handle, "T_mode"))
S_Ts = mdl.get_property_value(mdl.prop(item_handle, "S_Ts"))
Q_Ts = mdl.get_property_value(mdl.prop(item_handle, "Q_Ts"))
S_Ts_mode = mdl.get_property_value(mdl.prop(item_handle, "S_Ts_mode"))
T_Ts = mdl.get_property_value(mdl.prop(item_handle, "T_Ts"))
T_Ts_internal = mdl.get_property_value(mdl.prop(item_handle, "T_Ts_internal"))
dssT = mdl.get_property_value(mdl.prop(item_handle, "dssT"))
dssnpts = mdl.get_property_value(mdl.prop(item_handle, "dssnpts"))
T_Ts_max = mdl.get_property_value(mdl.prop(item_handle, "T_Ts_max"))
del_Ts = mdl.get_property_value(mdl.prop(item_handle, "del_Ts"))
Slen = mdl.get_property_value(mdl.prop(item_handle, "Slen"))
T_lim_low = mdl.get_property_value(mdl.prop(item_handle, "T_lim_low"))
T_lim_high = mdl.get_property_value(mdl.prop(item_handle, "T_lim_high"))
Ts_switch = mdl.get_property_value(mdl.prop(item_handle, "Ts_switch"))
# HEADER STOP
prop_dict = {"baseFreq": basefreq,
             "nom_rpm": nom_rpm,
             "Init_En": Init_En,
             "gen_ts_en": gen_ts_en,
             "S_Ts": S_Ts,
             "loadshape": loadshape,
             "loadshape_int": loadshape_int,
             "T_mode": T_mode,
             "T_Ts": T_Ts,
             "G_mod": G_mod,
             "pf": pf,
             "kVA": kVA,
             "kv": kv,
             "Xd": Xd,
             "Xdp": Xdp,
             "Xdpp": Xdpp,
             "XRdp": XRdp,
             "H": H,
             "execution_rate": execution_rate,
             }
comp_script = return_comp_script(mdl, item_handle)
comp_script.generator_pre_compile_function(mdl, item_handle, prop_dict)

"""
mdl.set_handler_code(_Generator_mask, "pre_compile", _Generator_mask_pre_compile)

_Generator_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Wound rotor synchronous generator with constant-parameter VBR interface and initialization capability.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Initialization is done in three steps. </p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Step-1: The machine starts as an ideal voltage source behind sstator impedance while the rotor is rotating at a constant speed. </p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Step-2: The machine electrical circuit is connected and fully enabled, while the rotor is still rotating at a constant speed.</p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Step-3: Full machine model is enabled including both electrical circuit and mechanical model.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Note: When initializing the machine, two extra outputs (Vfd0 and Tm0) are provided indicating the amount of exciter voltage and mechanical torque which are internally applied to the model for seamless transition between modes. In this case, the external inputs to Vfd and Tm ports are added on top of Vfd0 and Tm0.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The measurement signal port provides a 8x1 vectorized output including generator three-phase to neutral voltages in volts, three-phase currents in amps, electromagnetic torque in N.m and mechanical speed in rad/s.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p></body></html>
'''
mdl.set_description(_Generator_mask, _Generator_mask_desc)
mdl.set_property_value(mdl.prop(_Generator_mask, "T_Ts"), "[0, 6, 12, 18, 24]")
mdl.set_property_value(mdl.prop(_Generator_mask, "T_mode"), "Loadshape index")
mdl.set_property_value(mdl.prop(_Generator_mask, "gen_ts_en"), "False")
mdl.set_property_value(mdl.prop(_Generator_mask, "global_basefreq"), "False")
mdl.set_property_value(mdl.prop(_Generator_mask, "loadshape"), "[0.5, 0.8, 1, 0.4, 0.5]")
mdl.set_property_value(mdl.prop(_Generator_mask, "loadshape_name"), "gen1")


# Component: Generator.C function2
_Generator_C_function2 = mdl.create_component(
    type_name="core/C function",
    parent=_Generator,
    name="C function2",
    rotation="up",
    flip="flip_none",
    position=(5032, 7624),
    hide_name=False,
    size=(240, 472)
)
mdl.set_property_value(mdl.prop(_Generator_C_function2, "global_variables"), "real thet_r_mem;real wr_k1;real wr_k2;real wm_mem;real psifd_mem;real psikq_mem;real wr_est;real Te_mem;real psikq2_mem;real psikd_mem;real ppsikq;real ppsikq2;real ppsikd;real ppsifd;")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "init_fnc"), "/*Begin code section*/

psifd_mem = 0.0;

psikq_mem = 0.0;

psikq2_mem = 0.0;

psikd_mem = 0.0;

wr_k1 = 0.0;

wr_k2 = 0.0;

wm_mem = 0.0;

thet_r_mem = angle_in-0;

wr_est = 0.0;

Te_mem = 0.0;

/*End code section*/")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "input_terminals"), "real dt;real vfd;real isq;real isd;real Tm;inherit Tm_mem;inherit M_inp;inherit Wm_inp;inherit pisq;inherit eq_init;inherit ed_init;inherit V2S;inherit S2M;inherit angle_in;")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "input_terminals_feedthrough"), "True;True;True;True;True;True;True;True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "input_terminals_show_labels"), "True;True;True;True;True;True;True;True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "output_fnc"), "/*Begin code section*/

if (V2S == 0) {

    psikq = -ed_init*ws_inv;

    psikq2 = -ed_init*ws_inv;

    psikd = eq_init*ws_inv;

    psifd = eq_init*ws_inv + Llfd*(eq_init*ws_inv - isd*Lmd)/Lmd;

}

else {

    psikq = dA11*psikq_mem + dA12*psikq2_mem + dA13*psikd_mem + dA14*psifd_mem + dB11*isq + dB12*isd + dB13*vfd;

    psikq2 = dA21*psikq_mem + dA22*psikq2_mem + dA23*psikd_mem + dA24*psifd_mem + dB21*isq + dB22*isd + dB23*vfd;

    psikd = dA31*psikq_mem + dA32*psikq2_mem + dA33*psikd_mem + dA34*psifd_mem + dB31*isq + dB32*isd + dB33*vfd;

    psifd = dA41*psikq_mem + dA42*psikq2_mem + dA43*psikd_mem + dA44*psifd_mem + dB41*isq + dB42*isd + dB43*vfd;

}



psimd = Lmzd*(isd+psikd/Llkd+psifd/Llfd);

psimq = Lmzq*(isq+psikq/Llkq+psikq2/Llkq2);



ppsikq = (-rkq/Llkq)*(psikq - psimq);

ppsikq2 = (-rkq2/Llkq2)*(psikq2 - psimq);

ppsikd = (-rkd/Llkd)*(psikd - psimd);

ppsifd = (-rfd/Llfd)*(psifd - psimd)+vfd;



wr_est = 2*wr_k1 - 1*wr_k2;



if (V2S == 0) {

    eq = wr_est*psimd - wr_est*Lmzd*isd;

    ed = -wr_est*psimq + wr_est*Lmzd*isq;

}

else {

    eq = wr_est*psimd - wr_est*Lmzd*isd + (Lmzq-Lmzd)*pisq + Lmzq*ppsikq/Llkq + Lmzq*ppsikq2/Llkq2;

    ed = -wr_est*psimq + wr_est*Lmzd*isq + Lmzd*ppsikd/Llkd + Lmzd*ppsifd/Llfd;

}





Te = (1.5*PP)*(isq*psimd-isd*psimq);



if (S2M == 0) {

    wm = Wm_inp;

}

else {

    if (M_inp == 0) {

        wm = wm_mem + (dt/2.0/J)*(Te-Tm + Te_mem - Tm_mem);

    }

    else {

        wm = Wm_inp;

    }

}



wr = PP*wm;



thet_r = 0 + (dt/2)*(wr+wr_k1)+thet_r_mem;

if (thet_r > 2.0*3.1415926535897932384626433832795) {

    thet_r -= 2.0*3.1415926535897932384626433832795;

}



psifd_mem = psifd;

psikq_mem = psikq;

psikd_mem = psikd;

psikq2_mem = psikq2;

wm_mem = wm;

wr_k2 = wr_k1;

wr_k1 = wr;

thet_r_mem = thet_r;

Te_mem = Te;

/*End code section*/")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "output_terminals"), "real psifd;real psikq;real psimd;real psimq;real ed;real eq;real Te;real wr;real thet_r;real wm;real psikq2;real psikd;")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "output_terminals_dimensions"), "inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "output_terminals_feedthrough"), "True;True;True;True;True;True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "output_terminals_show_labels"), "True;True;True;True;True;True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Generator_C_function2, "parameters"), "real dA11;real dA12;real dA13;real dA14;real dB11;real dB12;real dB13;real Llfd;real Lmd;real J;real PP;real rs;real rfd;real rkd;real rkq;real Llkd;real Llkq;real Lls;real Lmq;real ws;real dA21;real dA22;real dA23;real dA24;real dA31;real dA32;real dA33;real dA34;real dA41;real dA42;real dA43;real dA44;real dB21;real dB22;real dB23;real dB31;real dB32;real dB33;real dB41;real dB42;real dB43;real Lmzd;real Lmzq;real rkq2;real Llkq2;real ws_inv;")


# Component: Generator.R1
_Generator_R1 = mdl.create_component(
    type_name="core/Resistor",
    parent=_Generator,
    name="R1",
    rotation="up",
    flip="flip_none",
    position=(5832, 8280),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_R1, "resistance"), "rs")


# Component: Generator.L2
_Generator_L2 = mdl.create_component(
    type_name="core/Inductor",
    parent=_Generator,
    name="L2",
    rotation="up",
    flip="flip_none",
    position=(5736, 8376),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_L2, "inductance"), "Lls+Lmzd")


# Component: Generator.L1
_Generator_L1 = mdl.create_component(
    type_name="core/Inductor",
    parent=_Generator,
    name="L1",
    rotation="up",
    flip="flip_none",
    position=(5736, 8280),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_L1, "inductance"), "Lls+Lmzd")


# Component: Generator.Vc
_Generator_Vc = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_Generator,
    name="Vc",
    rotation="right",
    flip="flip_none",
    position=(5664, 8592),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Vc, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Vc, "sig_output"), "True")


# Component: Generator.Vb
_Generator_Vb = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_Generator,
    name="Vb",
    rotation="right",
    flip="flip_none",
    position=(5584, 8592),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Vb, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Vb, "sig_output"), "True")


# Component: Generator.R2
_Generator_R2 = mdl.create_component(
    type_name="core/Resistor",
    parent=_Generator,
    name="R2",
    rotation="up",
    flip="flip_none",
    position=(5832, 8376),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_R2, "resistance"), "rs")


# Component: Generator.ec
_Generator_ec = mdl.create_component(
    type_name="core/Signal Controlled Voltage Source",
    parent=_Generator,
    name="ec",
    rotation="up",
    flip="flip_none",
    position=(5928, 8472),
    hide_name=False,
    size=(64, 32)
)


# Component: Generator.Va
_Generator_Va = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_Generator,
    name="Va",
    rotation="right",
    flip="flip_none",
    position=(5496, 8592),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Va, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Va, "sig_output"), "True")


# Component: Generator.R3
_Generator_R3 = mdl.create_component(
    type_name="core/Resistor",
    parent=_Generator,
    name="R3",
    rotation="up",
    flip="flip_none",
    position=(5832, 8472),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_R3, "resistance"), "rs")


# Component: Generator.L3
_Generator_L3 = mdl.create_component(
    type_name="core/Inductor",
    parent=_Generator,
    name="L3",
    rotation="up",
    flip="flip_none",
    position=(5736, 8472),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_L3, "inductance"), "Lls+Lmzd")


# Component: Generator.ea
_Generator_ea = mdl.create_component(
    type_name="core/Signal Controlled Voltage Source",
    parent=_Generator,
    name="ea",
    rotation="up",
    flip="flip_none",
    position=(5928, 8280),
    hide_name=False,
    size=(64, 32)
)


# Component: Generator.eb
_Generator_eb = mdl.create_component(
    type_name="core/Signal Controlled Voltage Source",
    parent=_Generator,
    name="eb",
    rotation="up",
    flip="flip_none",
    position=(5928, 8376),
    hide_name=False,
    size=(64, 32)
)


# Component: Generator.Vab
_Generator_Vab = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_Generator,
    name="Vab",
    rotation="right",
    flip="flip_none",
    position=(5392, 8328),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Vab, "execution_rate"), "execution_rate")


# Component: Generator.Vbc
_Generator_Vbc = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_Generator,
    name="Vbc",
    rotation="right",
    flip="flip_none",
    position=(5392, 8424),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Vbc, "execution_rate"), "execution_rate")


# Component: Generator.Ia
_Generator_Ia = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_Generator,
    name="Ia",
    rotation="up",
    flip="flip_none",
    position=(5256, 8280),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Ia, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Ia, "sig_output"), "True")


# Component: Generator.Ib
_Generator_Ib = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_Generator,
    name="Ib",
    rotation="up",
    flip="flip_none",
    position=(5256, 8376),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Ib, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Ib, "sig_output"), "True")


# Component: Generator.Ic
_Generator_Ic = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_Generator,
    name="Ic",
    rotation="up",
    flip="flip_none",
    position=(5256, 8472),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Ic, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Ic, "sig_output"), "True")


# Component: Generator.Constant3
_Generator_Constant3 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant3",
    rotation="up",
    flip="flip_none",
    position=(6104, 7440),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant3, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant3, "value"), "0.0")


# Component: Generator.dq to abc1
_Generator_dq_to_abc1 = mdl.create_component(
    type_name="core/dq to abc",
    parent=_Generator,
    name="dq to abc1",
    rotation="up",
    flip="flip_none",
    position=(6264, 7432),
    hide_name=True,
    size=(48, 80)
)
mdl.set_property_value(mdl.prop(_Generator_dq_to_abc1, "execution_rate"), "inherit")


# Component: Generator.abc to dq1
_Generator_abc_to_dq1 = mdl.create_component(
    type_name="core/abc to dq",
    parent=_Generator,
    name="abc to dq1",
    rotation="up",
    flip="flip_none",
    position=(6264, 7544),
    hide_name=True,
    size=(48, 80)
)


# Component: Generator.Constant4
_Generator_Constant4 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant4",
    rotation="up",
    flip="flip_none",
    position=(4816, 7416),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant4, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant4, "value"), "execution_rate")


# Component: Generator.Unit Delay2
_Generator_Unit_Delay2 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay2",
    rotation="up",
    flip="flip_none",
    position=(4840, 7576),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Constant5
_Generator_Constant5 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant5",
    rotation="up",
    flip="flip_none",
    position=(4800, 7608),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant5, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant5, "value"), "0")


# Component: Generator.Gain1
_Generator_Gain1 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain1",
    rotation="up",
    flip="flip_none",
    position=(5560, 7920),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain1, "gain"), "3")


# Component: Generator.Constant6
_Generator_Constant6 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant6",
    rotation="up",
    flip="flip_none",
    position=(5704, 8120),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant6, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant6, "value"), "0.5/execution_rate")


# Component: Generator.Unit Delay3
_Generator_Unit_Delay3 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay3",
    rotation="up",
    flip="flip_none",
    position=(5560, 7960),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Gain2
_Generator_Gain2 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain2",
    rotation="up",
    flip="flip_none",
    position=(5648, 7960),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain2, "gain"), "4")


# Component: Generator.Sum1
_Generator_Sum1 = mdl.create_component(
    type_name="core/Sum",
    parent=_Generator,
    name="Sum1",
    rotation="right",
    flip="flip_none",
    position=(5704, 8048),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Generator_Sum1, "signs"), "+-+")


# Component: Generator.Product1
_Generator_Product1 = mdl.create_component(
    type_name="core/Product",
    parent=_Generator,
    name="Product1",
    rotation="up",
    flip="flip_none",
    position=(5792, 8088),
    hide_name=True,
    size=(0, 0)
)


# Component: Generator.Unit Delay4
_Generator_Unit_Delay4 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay4",
    rotation="up",
    flip="flip_none",
    position=(5648, 8000),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Unit Delay8
_Generator_Unit_Delay8 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay8",
    rotation="up",
    flip="flip_none",
    position=(6336, 7520),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Unit Delay9
_Generator_Unit_Delay9 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay9",
    rotation="up",
    flip="flip_none",
    position=(6392, 7544),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Tm
_Generator_Tm = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="Tm",
    rotation="right",
    flip="flip_none",
    position=(4744, 7584),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Tm, "signal_type"), "torque")


# Component: Generator.Te
_Generator_Te = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="Te",
    rotation="up",
    flip="flip_none",
    position=(5760, 7880),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Te, "signal_type"), "torque")


# Component: Generator.vfd_p
_Generator_vfd_p = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="vfd_p",
    rotation="up",
    flip="flip_none",
    position=(6008, 7592),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_vfd_p, "signal_type"), "voltage")


# Component: Generator.Constant13
_Generator_Constant13 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant13",
    rotation="up",
    flip="flip_none",
    position=(4760, 7640),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant13, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant13, "value"), "ws/PP")


# Component: Generator.psifd
_Generator_psifd = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="psifd",
    rotation="up",
    flip="flip_none",
    position=(5256, 7448),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_psifd, "signal_type"), "flux")


# Component: Generator.Tm_p
_Generator_Tm_p = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="Tm_p",
    rotation="up",
    flip="flip_none",
    position=(5928, 7880),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Tm_p, "signal_type"), "torque")


# Component: Generator.Gain3
_Generator_Gain3 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain3",
    rotation="up",
    flip="flip_none",
    position=(5520, 7648),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain3, "gain"), "ws_inv")


# Component: Generator.Gain4
_Generator_Gain4 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain4",
    rotation="up",
    flip="flip_none",
    position=(5520, 7688),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain4, "gain"), "Lmd")


# Component: Generator.Sum2
_Generator_Sum2 = mdl.create_component(
    type_name="core/Sum",
    parent=_Generator,
    name="Sum2",
    rotation="up",
    flip="flip_none",
    position=(5600, 7656),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Generator_Sum2, "signs"), "+-")


# Component: Generator.Gain5
_Generator_Gain5 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain5",
    rotation="up",
    flip="flip_none",
    position=(5680, 7656),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain5, "gain"), "1/Lmd")


# Component: Generator.w_mech
_Generator_w_mech = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="w_mech",
    rotation="down",
    flip="flip_none",
    position=(6704, 7928),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_w_mech, "signal_type"), "angular speed")


# Component: Generator.psimd
_Generator_psimd = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="psimd",
    rotation="up",
    flip="flip_none",
    position=(5344, 7512),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_psimd, "signal_type"), "flux")


# Component: Generator.Gain6
_Generator_Gain6 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain6",
    rotation="up",
    flip="flip_none",
    position=(5744, 7656),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain6, "gain"), "rfd")


# Component: Generator.Constant14
_Generator_Constant14 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant14",
    rotation="up",
    flip="flip_none",
    position=(4248, 7664),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant14, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant14, "value"), "0.0")


# Component: Generator.Signal switch1
_Generator_Signal_switch1 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Generator,
    name="Signal switch1",
    rotation="up",
    flip="flip_none",
    position=(5880, 7640),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Signal_switch1, "criterion"), "ctrl >= threshold")


# Component: Generator.Sum3
_Generator_Sum3 = mdl.create_component(
    type_name="core/Sum",
    parent=_Generator,
    name="Sum3",
    rotation="up",
    flip="flip_vertical",
    position=(4584, 7432),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Generator_Sum3, "signs"), "++")


# Component: Generator.Limit1
_Generator_Limit1 = mdl.create_component(
    type_name="core/Limit",
    parent=_Generator,
    name="Limit1",
    rotation="up",
    flip="flip_none",
    position=(5808, 7656),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Limit1, "lower_limit"), "0")


# Component: Generator.Unit Delay10
_Generator_Unit_Delay10 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay10",
    rotation="down",
    flip="flip_none",
    position=(5752, 7568),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Discrete Transfer Function1
_Generator_Discrete_Transfer_Function1 = mdl.create_component(
    type_name="core/Discrete Transfer Function",
    parent=_Generator,
    name="Discrete Transfer Function1",
    rotation="up",
    flip="flip_none",
    position=(5864, 8088),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Discrete_Transfer_Function1, "a_coeff"), "[0.1,1]")
mdl.set_property_value(mdl.prop(_Generator_Discrete_Transfer_Function1, "domain"), "S-domain")
mdl.set_property_value(mdl.prop(_Generator_Discrete_Transfer_Function1, "method"), "Euler")


# Component: Generator.Sum4
_Generator_Sum4 = mdl.create_component(
    type_name="core/Sum",
    parent=_Generator,
    name="Sum4",
    rotation="up",
    flip="flip_vertical",
    position=(4584, 7528),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Generator_Sum4, "signs"), "++")


# Component: Generator.Signal switch2
_Generator_Signal_switch2 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Generator,
    name="Signal switch2",
    rotation="up",
    flip="flip_none",
    position=(5760, 7824),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Signal_switch2, "criterion"), "ctrl >= threshold")


# Component: Generator.Unit Delay11
_Generator_Unit_Delay11 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay11",
    rotation="down",
    flip="flip_none",
    position=(5648, 7752),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Unit Delay13
_Generator_Unit_Delay13 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_Generator,
    name="Unit Delay13",
    rotation="up",
    flip="flip_none",
    position=(5840, 7824),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.psimq
_Generator_psimq = mdl.create_component(
    type_name="core/Probe",
    parent=_Generator,
    name="psimq",
    rotation="up",
    flip="flip_none",
    position=(5288, 7544),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_psimq, "signal_type"), "flux")


# Component: Generator.Signal switch3
_Generator_Signal_switch3 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Generator,
    name="Signal switch3",
    rotation="up",
    flip="flip_none",
    position=(4736, 7448),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Signal_switch3, "criterion"), "ctrl >= threshold")


# Component: Generator.Constant18
_Generator_Constant18 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant18",
    rotation="up",
    flip="flip_none",
    position=(4616, 7376),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant18, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant18, "value"), "Init_switch")


# Component: Generator.Signal switch4
_Generator_Signal_switch4 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Generator,
    name="Signal switch4",
    rotation="up",
    flip="flip_none",
    position=(4672, 7544),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Signal_switch4, "criterion"), "ctrl >= threshold")


# Component: Generator.Comparator1
_Generator_Comparator1 = mdl.create_component(
    type_name="core/Comparator",
    parent=_Generator,
    name="Comparator1",
    rotation="up",
    flip="flip_none",
    position=(5616, 7456),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Comparator2
_Generator_Comparator2 = mdl.create_component(
    type_name="core/Comparator",
    parent=_Generator,
    name="Comparator2",
    rotation="up",
    flip="flip_none",
    position=(5616, 7520),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Constant19
_Generator_Constant19 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant19",
    rotation="up",
    flip="flip_none",
    position=(4152, 7584),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant19, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant19, "value"), "thet_ph_init")


# Component: Generator.Constant20
_Generator_Constant20 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant20",
    rotation="up",
    flip="flip_none",
    position=(4152, 7624),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant20, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant20, "value"), "V_ph_init")


# Component: Generator.Gain7
_Generator_Gain7 = mdl.create_component(
    type_name="core/Gain",
    parent=_Generator,
    name="Gain7",
    rotation="up",
    flip="flip_none",
    position=(4224, 7624),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Gain7, "gain"), "1414.2135")


# Component: Generator.Clock1
_Generator_Clock1 = mdl.create_component(
    type_name="core/Clock",
    parent=_Generator,
    name="Clock1",
    rotation="right",
    flip="flip_none",
    position=(5560, 7408),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Clock1, "execution_rate"), "execution_rate")


# Component: Generator.Constant21
_Generator_Constant21 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant21",
    rotation="up",
    flip="flip_none",
    position=(5520, 7464),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant21, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant21, "value"), "V2M_t")


# Component: Generator.Constant23
_Generator_Constant23 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant23",
    rotation="up",
    flip="flip_none",
    position=(5520, 7528),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant23, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant23, "value"), "Mech_En")


# Component: Generator.Rate Transition1
_Generator_Rate_Transition1 = mdl.create_component(
    type_name="core/Rate Transition",
    parent=_Generator,
    name="Rate Transition1",
    rotation="up",
    flip="flip_none",
    position=(4240, 7712),
    hide_name=True,
    size=(32, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Rate_Transition1, "execution_rate"), "execution_rate")


# Component: Generator.Rate Transition2
_Generator_Rate_Transition2 = mdl.create_component(
    type_name="core/Rate Transition",
    parent=_Generator,
    name="Rate Transition2",
    rotation="up",
    flip="flip_none",
    position=(4240, 7768),
    hide_name=True,
    size=(32, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Rate_Transition2, "execution_rate"), "execution_rate")


# Component: Generator.Constant24
_Generator_Constant24 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant24",
    rotation="up",
    flip="flip_none",
    position=(4472, 7872),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant24, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant24, "value"), "Init_switch")


# Component: Generator.Signal switch5
_Generator_Signal_switch5 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Generator,
    name="Signal switch5",
    rotation="left",
    flip="flip_none",
    position=(4632, 7808),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Signal_switch5, "criterion"), "ctrl >= threshold")


# Component: Generator.Signal switch6
_Generator_Signal_switch6 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Generator,
    name="Signal switch6",
    rotation="left",
    flip="flip_none",
    position=(4752, 7872),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Signal_switch6, "criterion"), "ctrl >= threshold")


# Component: Generator.Constant25
_Generator_Constant25 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant25",
    rotation="up",
    flip="flip_none",
    position=(4608, 7936),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant25, "execution_rate"), "execution_rate")


# Component: Generator.Vca
_Generator_Vca = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_Generator,
    name="Vca",
    rotation="left",
    flip="flip_none",
    position=(5448, 8424),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_Generator_Vca, "execution_rate"), "execution_rate")


# Component: Generator.Bus Join3
_Generator_Bus_Join3 = mdl.create_component(
    type_name="core/Bus Join",
    parent=_Generator,
    name="Bus Join3",
    rotation="right",
    flip="flip_none",
    position=(6800, 7992),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Generator_Bus_Join3, "inputs"), "8")


# Component: Generator.Constant26
_Generator_Constant26 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant26",
    rotation="up",
    flip="flip_none",
    position=(6696, 8200),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant26, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant26, "value"), "Init_switch")


# Component: Generator.Bus Join4
_Generator_Bus_Join4 = mdl.create_component(
    type_name="core/Bus Join",
    parent=_Generator,
    name="Bus Join4",
    rotation="right",
    flip="flip_none",
    position=(6768, 8568),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Generator_Bus_Join4, "inputs"), "11")


# Component: Generator.Constant27
_Generator_Constant27 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant27",
    rotation="up",
    flip="flip_none",
    position=(6656, 8224),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant27, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant27, "value"), "kw")


# Component: Generator.Constant28
_Generator_Constant28 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant28",
    rotation="up",
    flip="flip_none",
    position=(6696, 8248),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant28, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant28, "value"), "kvar")


# Component: Generator.Constant29
_Generator_Constant29 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant29",
    rotation="up",
    flip="flip_none",
    position=(6656, 8272),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant29, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant29, "value"), "kv")


# Component: Generator.Constant30
_Generator_Constant30 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant30",
    rotation="up",
    flip="flip_none",
    position=(6656, 8320),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant30, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant30, "value"), "PP")


# Component: Generator.Constant31
_Generator_Constant31 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant31",
    rotation="up",
    flip="flip_none",
    position=(6696, 8296),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant31, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant31, "value"), "ws")


# Component: Generator.Termination60
_Generator_Termination60 = mdl.create_component(
    type_name="core/Termination",
    parent=_Generator,
    name="Termination60",
    rotation="up",
    flip="flip_none",
    position=(5280, 7768),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Termination61
_Generator_Termination61 = mdl.create_component(
    type_name="core/Termination",
    parent=_Generator,
    name="Termination61",
    rotation="up",
    flip="flip_none",
    position=(5216, 7800),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Termination62
_Generator_Termination62 = mdl.create_component(
    type_name="core/Termination",
    parent=_Generator,
    name="Termination62",
    rotation="up",
    flip="flip_none",
    position=(5280, 7672),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Termination63
_Generator_Termination63 = mdl.create_component(
    type_name="core/Termination",
    parent=_Generator,
    name="Termination63",
    rotation="right",
    flip="flip_none",
    position=(6344, 7592),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Termination64
_Generator_Termination64 = mdl.create_component(
    type_name="core/Termination",
    parent=_Generator,
    name="Termination64",
    rotation="up",
    flip="flip_none",
    position=(5216, 7480),
    hide_name=True,
    size=(None, None)
)


# Component: Generator.Constant32
_Generator_Constant32 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant32",
    rotation="up",
    flip="flip_none",
    position=(6656, 8360),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant32, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant32, "value"), "gen_ts_en_bit")


# Component: Generator.Constant33
_Generator_Constant33 = mdl.create_component(
    type_name="core/Constant",
    parent=_Generator,
    name="Constant33",
    rotation="up",
    flip="flip_none",
    position=(6472, 8400),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Generator_Constant33, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Generator_Constant33, "value"), "0")


# Port: Generator.A1
_Generator_A1 = mdl.create_port(
    name="A1",
    parent=_Generator,
    label="A1",
    kind="pe",
    dimension=(1,),
    terminal_position=(48.0, -32.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(5176, 8280)
)

# Port: Generator.B1
_Generator_B1 = mdl.create_port(
    name="B1",
    parent=_Generator,
    label="B1",
    kind="pe",
    dimension=(1,),
    terminal_position=(48.0, 0.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(5176, 8376)
)

# Port: Generator.C1
_Generator_C1 = mdl.create_port(
    name="C1",
    parent=_Generator,
    label="C1",
    kind="pe",
    dimension=(1,),
    terminal_position=(48.0, 32.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(5176, 8472)
)

# Port: Generator.Vfd_in
_Generator_Vfd_in = mdl.create_port(
    name="Vfd_in",
    parent=_Generator,
    label="Vfd",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=(-32.0, -80.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(4176, 7712)
)

# Port: Generator.Tm_in
_Generator_Tm_in = mdl.create_port(
    name="Tm_in",
    parent=_Generator,
    label="Tm",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=(-16.0, -80.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(4176, 7768)
)

# Port: Generator.meas
_Generator_meas = mdl.create_port(
    name="meas",
    parent=_Generator,
    label="meas",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=(32.0, -80.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6848, 8040)
)

# Port: Generator.ctrl
_Generator_ctrl = mdl.create_port(
    name="ctrl",
    parent=_Generator,
    label="ctrl",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=(16.0, -80.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6840, 8624)
)

# Port: Generator.Vfd0
_Generator_Vfd0 = mdl.create_port(
    name="Vfd0",
    parent=_Generator,
    label="Vfd0",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=(-48.0, 64.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(5968, 7640)
)

# Port: Generator.Tm0
_Generator_Tm0 = mdl.create_port(
    name="Tm0",
    parent=_Generator,
    label="Tm0",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=(-48.0, 48.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(5936, 7824)
)

# Tag: Generator.From31
_Generator_From31 = mdl.create_tag(
    value="ea",
    name="From31",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_horizontal",
    position=(5968, 8248)
)

# Tag: Generator.From33
_Generator_From33 = mdl.create_tag(
    value="ec",
    name="From33",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_horizontal",
    position=(5968, 8440)
)

# Tag: Generator.From32
_Generator_From32 = mdl.create_tag(
    value="eb",
    name="From32",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_horizontal",
    position=(5968, 8344)
)

# Tag: Generator.Goto36
_Generator_Goto36 = mdl.create_tag(
    value="va",
    name="Goto36",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="left",
    flip="flip_none",
    position=(5536, 8544)
)

# Tag: Generator.Goto37
_Generator_Goto37 = mdl.create_tag(
    value="vb",
    name="Goto37",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="left",
    flip="flip_none",
    position=(5616, 8544)
)

# Tag: Generator.Goto38
_Generator_Goto38 = mdl.create_tag(
    value="vc",
    name="Goto38",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="left",
    flip="flip_none",
    position=(5704, 8544)
)

# Tag: Generator.Goto64
_Generator_Goto64 = mdl.create_tag(
    value="ia",
    name="Goto64",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5312, 8232)
)

# Tag: Generator.Goto65
_Generator_Goto65 = mdl.create_tag(
    value="ib",
    name="Goto65",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5312, 8328)
)

# Tag: Generator.Goto66
_Generator_Goto66 = mdl.create_tag(
    value="ic",
    name="Goto66",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5312, 8424)
)

# Tag: Generator.Goto20
_Generator_Goto20 = mdl.create_tag(
    value="ea",
    name="Goto20",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6368, 7408)
)

# Tag: Generator.From27
_Generator_From27 = mdl.create_tag(
    value="eq",
    name="From27",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6176, 7424)
)

# Tag: Generator.Goto22
_Generator_Goto22 = mdl.create_tag(
    value="ec",
    name="Goto22",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6368, 7456)
)

# Tag: Generator.From28
_Generator_From28 = mdl.create_tag(
    value="ed",
    name="From28",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6112, 7408)
)

# Tag: Generator.From30
_Generator_From30 = mdl.create_tag(
    value="thetar",
    name="From30",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6176, 7456)
)

# Tag: Generator.Goto21
_Generator_Goto21 = mdl.create_tag(
    value="eb",
    name="Goto21",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6368, 7432)
)

# Tag: Generator.From18
_Generator_From18 = mdl.create_tag(
    value="ib",
    name="From18",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6176, 7536)
)

# Tag: Generator.Goto18
_Generator_Goto18 = mdl.create_tag(
    value="isd",
    name="Goto18",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6480, 7520)
)

# Tag: Generator.From19
_Generator_From19 = mdl.create_tag(
    value="ic",
    name="From19",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6112, 7552)
)

# Tag: Generator.From26
_Generator_From26 = mdl.create_tag(
    value="thetar",
    name="From26",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6176, 7568)
)

# Tag: Generator.Goto19
_Generator_Goto19 = mdl.create_tag(
    value="isq",
    name="Goto19",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6480, 7544)
)

# Tag: Generator.From46
_Generator_From46 = mdl.create_tag(
    value="ia",
    name="From46",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6112, 7520)
)

# Tag: Generator.Goto67
_Generator_Goto67 = mdl.create_tag(
    value="ed",
    name="Goto67",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5224, 7576)
)

# Tag: Generator.Goto68
_Generator_Goto68 = mdl.create_tag(
    value="eq",
    name="Goto68",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5224, 7608)
)

# Tag: Generator.From47
_Generator_From47 = mdl.create_tag(
    value="isd",
    name="From47",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4816, 7512)
)

# Tag: Generator.From48
_Generator_From48 = mdl.create_tag(
    value="isq",
    name="From48",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4816, 7480)
)

# Tag: Generator.From49
_Generator_From49 = mdl.create_tag(
    value="vfd",
    name="From49",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4488, 7440)
)

# Tag: Generator.From50
_Generator_From50 = mdl.create_tag(
    value="Tm",
    name="From50",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4488, 7536)
)

# Tag: Generator.Goto69
_Generator_Goto69 = mdl.create_tag(
    value="thetar",
    name="Goto69",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5224, 7704)
)

# Tag: Generator.From51
_Generator_From51 = mdl.create_tag(
    value="isq",
    name="From51",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(5472, 7920)
)

# Tag: Generator.Goto70
_Generator_Goto70 = mdl.create_tag(
    value="pisq",
    name="Goto70",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5952, 8088)
)

# Tag: Generator.From52
_Generator_From52 = mdl.create_tag(
    value="pisq",
    name="From52",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4824, 7672)
)

# Tag: Generator.Goto71
_Generator_Goto71 = mdl.create_tag(
    value="vfd",
    name="Goto71",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(4328, 7712)
)

# Tag: Generator.Goto72
_Generator_Goto72 = mdl.create_tag(
    value="Tm",
    name="Goto72",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(4328, 7768)
)

# Tag: Generator.From53
_Generator_From53 = mdl.create_tag(
    value="isd",
    name="From53",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(5440, 7688)
)

# Tag: Generator.Goto73
_Generator_Goto73 = mdl.create_tag(
    value="ed_initial",
    name="Goto73",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(4328, 7664)
)

# Tag: Generator.Goto74
_Generator_Goto74 = mdl.create_tag(
    value="eq_initial",
    name="Goto74",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(4328, 7624)
)

# Tag: Generator.From55
_Generator_From55 = mdl.create_tag(
    value="eq_initial",
    name="From55",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4824, 7704)
)

# Tag: Generator.From56
_Generator_From56 = mdl.create_tag(
    value="ed_initial",
    name="From56",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4824, 7736)
)

# Tag: Generator.From57
_Generator_From57 = mdl.create_tag(
    value="eq_initial",
    name="From57",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(5440, 7648)
)

# Tag: Generator.Goto75
_Generator_Goto75 = mdl.create_tag(
    value="vfd_pre",
    name="Goto75",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5968, 7696)
)

# Tag: Generator.Goto76
_Generator_Goto76 = mdl.create_tag(
    value="V2S_switch",
    name="Goto76",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5712, 7456)
)

# Tag: Generator.From58
_Generator_From58 = mdl.create_tag(
    value="V2S_switch",
    name="From58",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(5824, 7592)
)

# Tag: Generator.From59
_Generator_From59 = mdl.create_tag(
    value="V2S_switch",
    name="From59",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4568, 7848)
)

# Tag: Generator.From60
_Generator_From60 = mdl.create_tag(
    value="vfd_pre",
    name="From60",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4488, 7416)
)

# Tag: Generator.Goto77
_Generator_Goto77 = mdl.create_tag(
    value="S2M_switch",
    name="Goto77",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5712, 7520)
)

# Tag: Generator.From63
_Generator_From63 = mdl.create_tag(
    value="S2M_switch",
    name="From63",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4688, 7912)
)

# Tag: Generator.From64
_Generator_From64 = mdl.create_tag(
    value="Tm_pre",
    name="From64",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4488, 7512)
)

# Tag: Generator.Goto78
_Generator_Goto78 = mdl.create_tag(
    value="Te",
    name="Goto78",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5224, 7640)
)

# Tag: Generator.From65
_Generator_From65 = mdl.create_tag(
    value="Te",
    name="From65",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(5664, 7840)
)

# Tag: Generator.From66
_Generator_From66 = mdl.create_tag(
    value="S2M_switch",
    name="From66",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(5704, 7776)
)

# Tag: Generator.Goto79
_Generator_Goto79 = mdl.create_tag(
    value="Tm_pre",
    name="Goto79",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5944, 7784)
)

# Tag: Generator.Goto80
_Generator_Goto80 = mdl.create_tag(
    value="angle_init",
    name="Goto80",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(4328, 7584)
)

# Tag: Generator.From67
_Generator_From67 = mdl.create_tag(
    value="angle_init",
    name="From67",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(4824, 7832)
)

# Tag: Generator.From70
_Generator_From70 = mdl.create_tag(
    value="ia",
    name="From70",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7776)
)

# Tag: Generator.From71
_Generator_From71 = mdl.create_tag(
    value="ib",
    name="From71",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7800)
)

# Tag: Generator.From72
_Generator_From72 = mdl.create_tag(
    value="ic",
    name="From72",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7824)
)

# Tag: Generator.From73
_Generator_From73 = mdl.create_tag(
    value="va",
    name="From73",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7704)
)

# Tag: Generator.From74
_Generator_From74 = mdl.create_tag(
    value="vb",
    name="From74",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7728)
)

# Tag: Generator.From75
_Generator_From75 = mdl.create_tag(
    value="vc",
    name="From75",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7752)
)

# Tag: Generator.From76
_Generator_From76 = mdl.create_tag(
    value="Te",
    name="From76",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7848)
)

# Tag: Generator.From77
_Generator_From77 = mdl.create_tag(
    value="S2M_switch",
    name="From77",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6680, 8168)
)

# Tag: Generator.From78
_Generator_From78 = mdl.create_tag(
    value="V2S_switch",
    name="From78",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6680, 8144)
)

# Tag: Generator.Goto81
_Generator_Goto81 = mdl.create_tag(
    value="w_mech",
    name="Goto81",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(5224, 7736)
)

# Tag: Generator.From79
_Generator_From79 = mdl.create_tag(
    value="w_mech",
    name="From79",
    parent=_Generator,
    scope="masked_subsystem",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6648, 7872)
)

# Junction: Generator.Junction160
_Generator_Junction160 = mdl.create_junction(
    name="Junction160",
    parent=_Generator,
    kind="pe",
    position=(5584, 8656)
)

# Junction: Generator.Junction162
_Generator_Junction162 = mdl.create_junction(
    name="Junction162",
    parent=_Generator,
    kind="sp",
    position=(5520, 7920)
)

# Junction: Generator.Junction163
_Generator_Junction163 = mdl.create_junction(
    name="Junction163",
    parent=_Generator,
    kind="sp",
    position=(5608, 7960)
)

# Junction: Generator.Junction169
_Generator_Junction169 = mdl.create_junction(
    name="Junction169",
    parent=_Generator,
    kind="sp",
    position=(5920, 7592)
)

# Junction: Generator.Junction175
_Generator_Junction175 = mdl.create_junction(
    name="Junction175",
    parent=_Generator,
    kind="sp",
    position=(5800, 7824)
)

# Junction: Generator.Junction176
_Generator_Junction176 = mdl.create_junction(
    name="Junction176",
    parent=_Generator,
    kind="sp",
    position=(5720, 7840)
)

# Junction: Generator.Junction178
_Generator_Junction178 = mdl.create_junction(
    name="Junction178",
    parent=_Generator,
    kind="sp",
    position=(5888, 7824)
)

# Junction: Generator.Junction179
_Generator_Junction179 = mdl.create_junction(
    name="Junction179",
    parent=_Generator,
    kind="sp",
    position=(4536, 7440)
)

# Junction: Generator.Junction181
_Generator_Junction181 = mdl.create_junction(
    name="Junction181",
    parent=_Generator,
    kind="sp",
    position=(4536, 7536)
)

# Junction: Generator.Junction182
_Generator_Junction182 = mdl.create_junction(
    name="Junction182",
    parent=_Generator,
    kind="sp",
    position=(4672, 7376)
)

# Junction: Generator.Junction183
_Generator_Junction183 = mdl.create_junction(
    name="Junction183",
    parent=_Generator,
    kind="sp",
    position=(5560, 7448)
)

# Junction: Generator.Junction184
_Generator_Junction184 = mdl.create_junction(
    name="Junction184",
    parent=_Generator,
    kind="sp",
    position=(5920, 7640)
)

# Junction: Generator.Junction185
_Generator_Junction185 = mdl.create_junction(
    name="Junction185",
    parent=_Generator,
    kind="sp",
    position=(4792, 7544)
)

# Junction: Generator.Junction189
_Generator_Junction189 = mdl.create_junction(
    name="Junction189",
    parent=_Generator,
    kind="sp",
    position=(4648, 7936)
)

# Junction: Generator.Junction201
_Generator_Junction201 = mdl.create_junction(
    name="Junction201",
    parent=_Generator,
    kind="pe",
    position=(5496, 8280)
)

# Junction: Generator.Junction202
_Generator_Junction202 = mdl.create_junction(
    name="Junction202",
    parent=_Generator,
    kind="pe",
    position=(5584, 8376)
)

# Junction: Generator.Junction203
_Generator_Junction203 = mdl.create_junction(
    name="Junction203",
    parent=_Generator,
    kind="pe",
    position=(5664, 8472)
)

# Junction: Generator.Junction204
_Generator_Junction204 = mdl.create_junction(
    name="Junction204",
    parent=_Generator,
    kind="pe",
    position=(5664, 8656)
)

# Junction: Generator.Junction205
_Generator_Junction205 = mdl.create_junction(
    name="Junction205",
    parent=_Generator,
    kind="pe",
    position=(6008, 8472)
)

# Junction: Generator.Junction206
_Generator_Junction206 = mdl.create_junction(
    name="Junction206",
    parent=_Generator,
    kind="pe",
    position=(5392, 8280)
)

# Junction: Generator.Junction207
_Generator_Junction207 = mdl.create_junction(
    name="Junction207",
    parent=_Generator,
    kind="pe",
    position=(5392, 8376)
)

# Junction: Generator.Junction208
_Generator_Junction208 = mdl.create_junction(
    name="Junction208",
    parent=_Generator,
    kind="pe",
    position=(5448, 8472)
)

# Junction: Generator.Junction209
_Generator_Junction209 = mdl.create_junction(
    name="Junction209",
    parent=_Generator,
    kind="pe",
    position=(5448, 8280)
)

# Junction: Generator.Junction210
_Generator_Junction210 = mdl.create_junction(
    name="Junction210",
    parent=_Generator,
    kind="pe",
    position=(5392, 8376)
)

# Junction: Generator.Junction211
_Generator_Junction211 = mdl.create_junction(
    name="Junction211",
    parent=_Generator,
    kind="pe",
    position=(5392, 8472)
)

# Junction: Generator.Junction212
_Generator_Junction212 = mdl.create_junction(
    name="Junction212",
    parent=_Generator,
    kind="pe",
    position=(6008, 8376)
)

# Junction: Generator.Junction213
_Generator_Junction213 = mdl.create_junction(
    name="Junction213",
    parent=_Generator,
    kind="sp",
    position=(6744, 7928)
)

# Junction: Generator.Junction214
_Generator_Junction214 = mdl.create_junction(
    name="Junction214",
    parent=_Generator,
    kind="sp",
    position=(4512, 7872)
)

# Junction: Generator.Junction215
_Generator_Junction215 = mdl.create_junction(
    name="Junction215",
    parent=_Generator,
    kind="sp",
    position=(4744, 7544)
)

# Component: Isource
_Isource = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Isource",
    rotation="up",
    flip="flip_none",
    position=(5944, 6856),
    hide_name=False,
    size=(64, 96)
)
_Isource_mask = mdl.create_mask(_Isource)
_Isource_mask_amps = mdl.create_property(
    item_handle=_Isource_mask,
    name="amps",
    label="Current",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="A"
)


_Isource_mask_amps_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_source_values(mdl, container_handle)

"""
mdl.set_handler_code(_Isource_mask_amps, "property_value_changed", _Isource_mask_amps_property_value_changed)

_Isource_mask_Angle = mdl.create_property(
    item_handle=_Isource_mask,
    name="Angle",
    label="Angle",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="°"
)


_Isource_mask_Angle_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_source_values(mdl, container_handle)

"""
mdl.set_handler_code(_Isource_mask_Angle, "property_value_changed", _Isource_mask_Angle_property_value_changed)

_Isource_mask_Frequency = mdl.create_property(
    item_handle=_Isource_mask,
    name="Frequency",
    label="Frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="Hz"
)


_Isource_mask_Frequency_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_source_values(mdl, container_handle)

"""
mdl.set_handler_code(_Isource_mask_Frequency, "property_value_changed", _Isource_mask_Frequency_property_value_changed)

_Isource_mask_global_basefreq = mdl.create_property(
    item_handle=_Isource_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Isource_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Isource_mask_global_basefreq, "property_value_changed", _Isource_mask_global_basefreq_property_value_changed)


_Isource_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle)

"""
mdl.set_handler_code(_Isource_mask_global_basefreq, "property_value_edited", _Isource_mask_global_basefreq_property_value_edited)

_Isource_mask_baseFreq = mdl.create_property(
    item_handle=_Isource_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit="Hz"
)

_Isource_mask_enable_monitoring = mdl.create_property(
    item_handle=_Isource_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring",
    unit=""
)


_Isource_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Isource_mask, "define_icon", _Isource_mask_define_icon)

_Isource_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_isource as comp_script
importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Isource_mask, "init", _Isource_mask_init)

_Isource_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.update_source_values(mdl, item_handle)

"""
mdl.set_handler_code(_Isource_mask, "pre_compile", _Isource_mask_pre_compile)

_Isource_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The most common use of a current source is to represent harmonic sources and to be used in frequency response scans of circuit models.<br>Note that if the device you are trying to model produces or consumes power, it is generally better to model it with a Load or Generator object.</p></body></html>
'''
mdl.set_description(_Isource_mask, _Isource_mask_desc)
mdl.set_property_value(mdl.prop(_Isource_mask, "global_basefreq"), "False")


# Component: Isource.Ia
_Isource_Ia = mdl.create_component(
    type_name="core/Current Source",
    parent=_Isource,
    name="Ia",
    rotation="down",
    flip="flip_none",
    position=(8112, 8096),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Isource_Ia, "init_frequency"), "Frequency")
mdl.set_property_value(mdl.prop(_Isource_Ia, "init_phase"), "Angle - 0")
mdl.set_property_value(mdl.prop(_Isource_Ia, "init_rms_value"), "amps")
mdl.set_property_value(mdl.prop(_Isource_Ia, "init_source_nature"), "Sine")


# Component: Isource.Ib
_Isource_Ib = mdl.create_component(
    type_name="core/Current Source",
    parent=_Isource,
    name="Ib",
    rotation="down",
    flip="flip_none",
    position=(8112, 8192),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Isource_Ib, "init_frequency"), "Frequency")
mdl.set_property_value(mdl.prop(_Isource_Ib, "init_phase"), "Angle - 120")
mdl.set_property_value(mdl.prop(_Isource_Ib, "init_rms_value"), "amps")
mdl.set_property_value(mdl.prop(_Isource_Ib, "init_source_nature"), "Sine")


# Component: Isource.Ic
_Isource_Ic = mdl.create_component(
    type_name="core/Current Source",
    parent=_Isource,
    name="Ic",
    rotation="down",
    flip="flip_none",
    position=(8112, 8288),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Isource_Ic, "init_frequency"), "Frequency")
mdl.set_property_value(mdl.prop(_Isource_Ic, "init_phase"), "Angle - 240")
mdl.set_property_value(mdl.prop(_Isource_Ic, "init_rms_value"), "amps")
mdl.set_property_value(mdl.prop(_Isource_Ic, "init_source_nature"), "Sine")


# Component: Isource.gnd1
_Isource_gnd1 = mdl.create_component(
    type_name="core/Ground",
    parent=_Isource,
    name="gnd1",
    rotation="up",
    flip="flip_none",
    position=(8000, 8400),
    hide_name=False,
    size=(None, None)
)


# Port: Isource.A1
_Isource_A1 = mdl.create_port(
    name="A1",
    parent=_Isource,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, -32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8496, 8096)
)

# Port: Isource.B1
_Isource_B1 = mdl.create_port(
    name="B1",
    parent=_Isource,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, 0.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8496, 8192)
)

# Port: Isource.C1
_Isource_C1 = mdl.create_port(
    name="C1",
    parent=_Isource,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, 32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8496, 8288)
)

# Component: Line
_Line = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Line",
    rotation="up",
    flip="flip_none",
    position=(6168, 6864),
    hide_name=False,
    size=(64, 112)
)
_Line_mask = mdl.create_mask(_Line)
_Line_mask_input_type = mdl.create_property(
    item_handle=_Line_mask,
    name="input_type",
    label="Parameter input",
    widget="combo",
    combo_values=['Symmetrical', 'Matrix', 'LineCode'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters:1",
    unit=""
)


_Line_mask_input_type_property_value_changed = """
if new_value == "Symmetrical":
    mdl.set_property_value(mdl.prop(container_handle, 'phases'), "3")
    mdl.disable_property(mdl.prop(container_handle, "phases"))

if new_value == "Symmetrical":
    mdl.set_property_disp_value(mdl.prop(container_handle, 'phases'), "3")
    mdl.disable_property(mdl.prop(container_handle, "phases"))
else:
    mdl.enable_property(mdl.prop(container_handle, "phases"))

comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.toggle_coupling(mdl, container_handle, created_ports)
mdl.refresh_icon(container_handle)


"""
mdl.set_handler_code(_Line_mask_input_type, "property_value_changed", _Line_mask_input_type_property_value_changed)


_Line_mask_input_type_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle)

"""
mdl.set_handler_code(_Line_mask_input_type, "property_value_edited", _Line_mask_input_type_property_value_edited)

_Line_mask_Load = mdl.create_property(
    item_handle=_Line_mask,
    name="Load",
    label="Load parameters",
    widget="button",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    button_label="Choose",
    unit=""
)


_Line_mask_Load_button_clicked = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.load_line_parameters(mdl, container_handle)

"""
mdl.set_handler_code(_Line_mask_Load, "button_clicked", _Line_mask_Load_button_clicked)

_Line_mask_selected_object = mdl.create_property(
    item_handle=_Line_mask,
    name="selected_object",
    label="Selected",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit=""
)


_Line_mask_selected_object_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_disp_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Line_mask_selected_object, "property_value_edited", _Line_mask_selected_object_property_value_edited)

_Line_mask_Length = mdl.create_property(
    item_handle=_Line_mask,
    name="Length",
    label="Line Length",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters:1",
    unit="km"
)

_Line_mask_global_basefreq = mdl.create_property(
    item_handle=_Line_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit=""
)


_Line_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Line_mask_global_basefreq, "property_value_changed", _Line_mask_global_basefreq_property_value_changed)


_Line_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle)

"""
mdl.set_handler_code(_Line_mask_global_basefreq, "property_value_edited", _Line_mask_global_basefreq_property_value_edited)

_Line_mask_baseFreq = mdl.create_property(
    item_handle=_Line_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Line Parameters",
    unit="Hz"
)

_Line_mask_phases = mdl.create_property(
    item_handle=_Line_mask,
    name="phases",
    label="Phases",
    widget="combo",
    combo_values=['4', '3', '2', '1'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Line Parameters",
    unit=""
)


_Line_mask_phases_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle, caller_prop_handle=prop_handle)
comp_script.toggle_coupling(mdl, container_handle, created_ports)
comp_script.mask_dialog_dynamics(mdl, container_handle, caller_prop_handle=prop_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Line_mask_phases, "property_value_changed", _Line_mask_phases_property_value_changed)


_Line_mask_phases_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle)

"""
mdl.set_handler_code(_Line_mask_phases, "property_value_edited", _Line_mask_phases_property_value_edited)

_Line_mask_R1 = mdl.create_property(
    item_handle=_Line_mask,
    name="R1",
    label="R1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="Ω/km"
)

_Line_mask_R0 = mdl.create_property(
    item_handle=_Line_mask,
    name="R0",
    label="R0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="Ω/km"
)

_Line_mask_X1 = mdl.create_property(
    item_handle=_Line_mask,
    name="X1",
    label="X1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="Ω/km"
)

_Line_mask_X0 = mdl.create_property(
    item_handle=_Line_mask,
    name="X0",
    label="X0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="Ω/km"
)

_Line_mask_dC1 = mdl.create_property(
    item_handle=_Line_mask,
    name="dC1",
    label="C1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="nF/km"
)


_Line_mask_dC1_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.toggle_coupling(mdl, container_handle, created_ports)


"""
mdl.set_handler_code(_Line_mask_dC1, "property_value_changed", _Line_mask_dC1_property_value_changed)

_Line_mask_dC0 = mdl.create_property(
    item_handle=_Line_mask,
    name="dC0",
    label="C0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="nF/km"
)


_Line_mask_dC0_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.toggle_coupling(mdl, container_handle, created_ports)


"""
mdl.set_handler_code(_Line_mask_dC0, "property_value_changed", _Line_mask_dC0_property_value_changed)

_Line_mask_rmatrix = mdl.create_property(
    item_handle=_Line_mask,
    name="rmatrix",
    label="Rmatrix",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="Ω/km"
)

_Line_mask_xmatrix = mdl.create_property(
    item_handle=_Line_mask,
    name="xmatrix",
    label="Xmatrix",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="Ω/km"
)

_Line_mask_cmatrix = mdl.create_property(
    item_handle=_Line_mask,
    name="cmatrix",
    label="Cmatrix",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Line Parameters",
    unit="nF/km"
)


_Line_mask_cmatrix_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.toggle_coupling(mdl, container_handle,created_ports)


"""
mdl.set_handler_code(_Line_mask_cmatrix, "property_value_changed", _Line_mask_cmatrix_property_value_changed)

_Line_mask_obj_mode = mdl.create_property(
    item_handle=_Line_mask,
    name="obj_mode",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_Len = mdl.create_property(
    item_handle=_Line_mask,
    name="Len",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_Fr = mdl.create_property(
    item_handle=_Line_mask,
    name="Fr",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_d_R = mdl.create_property(
    item_handle=_Line_mask,
    name="d_R",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_d_L = mdl.create_property(
    item_handle=_Line_mask,
    name="d_L",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_d_C = mdl.create_property(
    item_handle=_Line_mask,
    name="d_C",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_d_X = mdl.create_property(
    item_handle=_Line_mask,
    name="d_X",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_C1 = mdl.create_property(
    item_handle=_Line_mask,
    name="C1",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_C0 = mdl.create_property(
    item_handle=_Line_mask,
    name="C0",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_L1 = mdl.create_property(
    item_handle=_Line_mask,
    name="L1",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_L0 = mdl.create_property(
    item_handle=_Line_mask,
    name="L0",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_R1_one = mdl.create_property(
    item_handle=_Line_mask,
    name="R1_one",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_L1_one = mdl.create_property(
    item_handle=_Line_mask,
    name="L1_one",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_C1_one = mdl.create_property(
    item_handle=_Line_mask,
    name="C1_one",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Line_mask_coupling = mdl.create_property(
    item_handle=_Line_mask,
    name="coupling",
    label="Enable coupling",
    widget="combo",
    combo_values=['None', 'Core coupling', 'Device coupling'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Coupling:2",
    unit=""
)


_Line_mask_coupling_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.toggle_coupling(mdl, container_handle, created_ports)


"""
mdl.set_handler_code(_Line_mask_coupling, "property_value_changed", _Line_mask_coupling_property_value_changed)

_Line_mask_enable_monitoring = mdl.create_property(
    item_handle=_Line_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring",
    unit=""
)


_Line_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Line_mask, "define_icon", _Line_mask_define_icon)

_Line_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_line as comp_script
importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)

hil_device = mdl.core_model.configuration.hil_device
prop_handle = mdl.prop(item_handle, "coupling")
prop_combo_values = mdl.get_property_combo_values(prop_handle)
if hil_device not in ["HIL404", "HIL602+", "HIL604", "HIL606"]:
    new_combo_values = ["None", "Core coupling"]
else:
    new_combo_values = ["None", "Core coupling", "Device coupling"]
mdl.set_property_combo_values(prop_handle, new_combo_values)


"""
mdl.set_handler_code(_Line_mask, "init", _Line_mask_init)

_Line_mask_pre_compile = """
# HEADER START
Length = mdl.get_property_value(mdl.prop(item_handle, "Length"))
R1 = mdl.get_property_value(mdl.prop(item_handle, "R1"))
R0 = mdl.get_property_value(mdl.prop(item_handle, "R0"))
dC1 = mdl.get_property_value(mdl.prop(item_handle, "dC1"))
dC0 = mdl.get_property_value(mdl.prop(item_handle, "dC0"))
Len = mdl.get_property_value(mdl.prop(item_handle, "Len"))
Fr = mdl.get_property_value(mdl.prop(item_handle, "Fr"))
d_R = mdl.get_property_value(mdl.prop(item_handle, "d_R"))
d_L = mdl.get_property_value(mdl.prop(item_handle, "d_L"))
d_C = mdl.get_property_value(mdl.prop(item_handle, "d_C"))
X1 = mdl.get_property_value(mdl.prop(item_handle, "X1"))
X0 = mdl.get_property_value(mdl.prop(item_handle, "X0"))
C1 = mdl.get_property_value(mdl.prop(item_handle, "C1"))
C0 = mdl.get_property_value(mdl.prop(item_handle, "C0"))
R1_one = mdl.get_property_value(mdl.prop(item_handle, "R1_one"))
L1_one = mdl.get_property_value(mdl.prop(item_handle, "L1_one"))
C1_one = mdl.get_property_value(mdl.prop(item_handle, "C1_one"))
coupling = mdl.get_property_value(mdl.prop(item_handle, "coupling"))
# HEADER STOP

comp_script = return_comp_script(mdl, item_handle)
comp_script.update_frequency_property(mdl, item_handle)
comp_script.configure_cable(mdl, item_handle)

L0_prop = mdl.prop(item_handle, "L0")
L1_prop = mdl.prop(item_handle, "L1")
L0 = mdl.get_property_value(L0_prop)
L1 = mdl.get_property_value(L1_prop)

if L0 == 99999:
    # For old definition support workaround
    mdl.set_property_value(L0_prop, 0)
    mdl.set_property_value(L1_prop, 0)


"""
mdl.set_handler_code(_Line_mask, "pre_compile", _Line_mask_pre_compile)

_Line_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Line component.</p></body></html>
'''
mdl.set_description(_Line_mask, _Line_mask_desc)
mdl.set_property_value(mdl.prop(_Line_mask, "global_basefreq"), "False")


# Component: Line.TL
_Line_TL = mdl.create_component(
    type_name="core/Transmission Line",
    parent=_Line,
    name="TL",
    rotation="up",
    flip="flip_none",
    position=(7744, 8032),
    hide_name=False,
    size=(256, 72)
)
mdl.set_property_value(mdl.prop(_Line_TL, "C_metric"), "d_C")
mdl.set_property_value(mdl.prop(_Line_TL, "C_sequence_metric"), "d_C")
mdl.set_property_value(mdl.prop(_Line_TL, "Frequency"), "Fr")
mdl.set_property_value(mdl.prop(_Line_TL, "L_metric"), "d_L")
mdl.set_property_value(mdl.prop(_Line_TL, "L_sequence_metric"), "d_L")
mdl.set_property_value(mdl.prop(_Line_TL, "Length_metric"), "Len")
mdl.set_property_value(mdl.prop(_Line_TL, "R_metric"), "d_R")
mdl.set_property_value(mdl.prop(_Line_TL, "R_sequence_metric"), "d_R")
mdl.set_property_value(mdl.prop(_Line_TL, "model"), "PI")
mdl.set_property_value(mdl.prop(_Line_TL, "model_def"), "Sequence")
mdl.set_property_value(mdl.prop(_Line_TL, "unit_sys"), "metric")


# Component: Line.G1
_Line_G1 = mdl.create_component(
    type_name="core/Ground",
    parent=_Line,
    name="G1",
    rotation="up",
    flip="flip_none",
    position=(7744, 8280),
    hide_name=False,
    size=(None, None)
)


# Port: Line.A1
_Line_A1 = mdl.create_port(
    name="A1",
    parent=_Line,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32, -32),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7512, 7976)
)

# Port: Line.B1
_Line_B1 = mdl.create_port(
    name="B1",
    parent=_Line,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32, 0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7512, 8032)
)

# Port: Line.C1
_Line_C1 = mdl.create_port(
    name="C1",
    parent=_Line,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32, 32),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7512, 8088)
)

# Port: Line.A2
_Line_A2 = mdl.create_port(
    name="A2",
    parent=_Line,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32, -32),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8008, 7936)
)

# Port: Line.B2
_Line_B2 = mdl.create_port(
    name="B2",
    parent=_Line,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32, 0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8008, 8032)
)

# Port: Line.C2
_Line_C2 = mdl.create_port(
    name="C2",
    parent=_Line,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32, 32),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8008, 8128)
)

# Component: Load
_Load = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Load",
    rotation="up",
    flip="flip_horizontal",
    position=(6432, 6864),
    hide_name=False,
    size=(96, 64)
)
_Load_mask = mdl.create_mask(_Load)
_Load_mask_ground_connected = mdl.create_property(
    item_handle=_Load_mask,
    name="ground_connected",
    label="Old ground connection property (retro-compatibility)",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="General",
    unit=""
)


_Load_mask_ground_connected_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.retro_compatibility(mdl, container_handle)

"""
mdl.set_handler_code(_Load_mask_ground_connected, "property_value_changed", _Load_mask_ground_connected_property_value_changed)

_Load_mask_tp_connection = mdl.create_property(
    item_handle=_Load_mask,
    name="tp_connection",
    label="Connection type",
    widget="combo",
    combo_values=['Y - Grounded', 'Y', 'Δ'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Load_mask_tp_connection_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Load_mask_tp_connection, "property_value_changed", _Load_mask_tp_connection_property_value_changed)


_Load_mask_tp_connection_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_tp_connection, "property_value_edited", _Load_mask_tp_connection_property_value_edited)

_Load_mask_phases = mdl.create_property(
    item_handle=_Load_mask,
    name="phases",
    label="Number of Phases",
    widget="combo",
    combo_values=['3', '1'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Load_mask_phases_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Load_mask_phases, "property_value_changed", _Load_mask_phases_property_value_changed)


_Load_mask_phases_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_phases, "property_value_edited", _Load_mask_phases_property_value_edited)

_Load_mask_Rneut = mdl.create_property(
    item_handle=_Load_mask,
    name="Rneut",
    label="Rneut",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="General:1",
    unit="Ω"
)

_Load_mask_Xneut = mdl.create_property(
    item_handle=_Load_mask,
    name="Xneut",
    label="Xneut",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="General:1",
    unit="Ω"
)

_Load_mask_global_basefreq = mdl.create_property(
    item_handle=_Load_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General:1",
    unit=""
)


_Load_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Load_mask_global_basefreq, "property_value_changed", _Load_mask_global_basefreq_property_value_changed)


_Load_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_frequency_prop(mdl, container_handle)

"""
mdl.set_handler_code(_Load_mask_global_basefreq, "property_value_edited", _Load_mask_global_basefreq_property_value_edited)

_Load_mask_fn = mdl.create_property(
    item_handle=_Load_mask,
    name="fn",
    label="Nominal frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="General:1",
    unit="Hz"
)

_Load_mask_Vn_3ph = mdl.create_property(
    item_handle=_Load_mask,
    name="Vn_3ph",
    label="Nominal line voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Load Parameters:2",
    unit="kV"
)

_Load_mask_Sn_3ph = mdl.create_property(
    item_handle=_Load_mask,
    name="Sn_3ph",
    label="Total Nominal power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Load Parameters",
    unit="kVA"
)

_Load_mask_pf_mode_3ph = mdl.create_property(
    item_handle=_Load_mask,
    name="pf_mode_3ph",
    label="Power factor mode",
    widget="combo",
    combo_values=['Lag', 'Lead', 'Unit'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Load Parameters",
    unit=""
)


_Load_mask_pf_mode_3ph_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Load_mask_pf_mode_3ph, "property_value_changed", _Load_mask_pf_mode_3ph_property_value_changed)


_Load_mask_pf_mode_3ph_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_pf_mode_3ph, "property_value_edited", _Load_mask_pf_mode_3ph_property_value_edited)

_Load_mask_pf_3ph = mdl.create_property(
    item_handle=_Load_mask,
    name="pf_3ph",
    label="Power factor",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Load Parameters",
    unit=""
)

_Load_mask_pf_3ph_set = mdl.create_property(
    item_handle=_Load_mask,
    name="pf_3ph_set",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_load_model = mdl.create_property(
    item_handle=_Load_mask,
    name="load_model",
    label="Load Model",
    widget="combo",
    combo_values=['Constant Impedance', 'Constant Power', 'Constant Z,I,P'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Load Parameters",
    unit=""
)


_Load_mask_load_model_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_load_model, "property_value_edited", _Load_mask_load_model_property_value_edited)

_Load_mask_zip_vector = mdl.create_property(
    item_handle=_Load_mask,
    name="zip_vector",
    label="Active Z,I,P Weight vector",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Load Parameters",
    unit="Auto-Normalized"
)


_Load_mask_zip_vector_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.zip_change_fnc(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_zip_vector, "property_value_changed", _Load_mask_zip_vector_property_value_changed)

_Load_mask_zip_vector_Q = mdl.create_property(
    item_handle=_Load_mask,
    name="zip_vector_Q",
    label="Reactive Z,I,P Weight vector",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Load Parameters",
    unit="Auto-Normalized"
)


_Load_mask_zip_vector_Q_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.zip_change_fnc(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_zip_vector_Q, "property_value_changed", _Load_mask_zip_vector_Q_property_value_changed)

_Load_mask_zip_internal = mdl.create_property(
    item_handle=_Load_mask,
    name="zip_internal",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_zip_internal_Q = mdl.create_property(
    item_handle=_Load_mask,
    name="zip_internal_Q",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_zip_internal_n = mdl.create_property(
    item_handle=_Load_mask,
    name="zip_internal_n",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_zip_internal_n_Q = mdl.create_property(
    item_handle=_Load_mask,
    name="zip_internal_n_Q",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_ZIPV = mdl.create_property(
    item_handle=_Load_mask,
    name="ZIPV",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_Vmaxpu = mdl.create_property(
    item_handle=_Load_mask,
    name="Vmaxpu",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_Vminpu = mdl.create_property(
    item_handle=_Load_mask,
    name="Vminpu",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_model = mdl.create_property(
    item_handle=_Load_mask,
    name="model",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_Pow_ref_s = mdl.create_property(
    item_handle=_Load_mask,
    name="Pow_ref_s",
    label="CPL Power reference source",
    widget="combo",
    combo_values=['Fixed', 'External input', 'Time Series'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters:3",
    unit=""
)


_Load_mask_Pow_ref_s_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)
ports = comp_script.port_dynamics(mdl, container_handle)
comp_script.connections_pow_ref_dynamics(mdl, container_handle, ports)

"""
mdl.set_handler_code(_Load_mask_Pow_ref_s, "property_value_changed", _Load_mask_Pow_ref_s_property_value_changed)

_Load_mask_execution_rate = mdl.create_property(
    item_handle=_Load_mask,
    name="execution_rate",
    label="CPL Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit="s"
)


_Load_mask_execution_rate_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.validate_execution_rate(mdl, container_handle)


"""
mdl.set_handler_code(_Load_mask_execution_rate, "property_value_changed", _Load_mask_execution_rate_property_value_changed)

_Load_mask_Tfast = mdl.create_property(
    item_handle=_Load_mask,
    name="Tfast",
    label="CPL Fast Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit="s"
)


_Load_mask_Tfast_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.validate_execution_rate(mdl, container_handle)

"""
mdl.set_handler_code(_Load_mask_Tfast, "property_value_changed", _Load_mask_Tfast_property_value_changed)

_Load_mask_CPL_LMT = mdl.create_property(
    item_handle=_Load_mask,
    name="CPL_LMT",
    label="CPL Current limit",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit="pu"
)

_Load_mask_v_min_max = mdl.create_property(
    item_handle=_Load_mask,
    name="v_min_max",
    label="Transition to CIL cutoff voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit="[Vmin,Vmax] pu"
)

_Load_mask_rate_lmt = mdl.create_property(
    item_handle=_Load_mask,
    name="rate_lmt",
    label="Reference power rate limit",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit="Cycles to reach zero to nominal"
)

_Load_mask_zero_seq_remove = mdl.create_property(
    item_handle=_Load_mask,
    name="zero_seq_remove",
    label="Remove zero sequence",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="CPL Parameters",
    unit=""
)


_Load_mask_zero_seq_remove_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.zero_seq_removal(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_zero_seq_remove, "property_value_changed", _Load_mask_zero_seq_remove_property_value_changed)

_Load_mask_q_gain_k = mdl.create_property(
    item_handle=_Load_mask,
    name="q_gain_k",
    label="CPL Kalman Filter state matrix gain Q",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit=""
)

_Load_mask_r_gain_k = mdl.create_property(
    item_handle=_Load_mask,
    name="r_gain_k",
    label="CPL Kalman Filter measurement gain R",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="CPL Parameters",
    unit=""
)

_Load_mask_Vn_3ph_CPL = mdl.create_property(
    item_handle=_Load_mask,
    name="Vn_3ph_CPL",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_P_CPL = mdl.create_property(
    item_handle=_Load_mask,
    name="P_CPL",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_Q_CPL = mdl.create_property(
    item_handle=_Load_mask,
    name="Q_CPL",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_kV = mdl.create_property(
    item_handle=_Load_mask,
    name="kV",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_pf = mdl.create_property(
    item_handle=_Load_mask,
    name="pf",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_conn = mdl.create_property(
    item_handle=_Load_mask,
    name="conn",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_kVA = mdl.create_property(
    item_handle=_Load_mask,
    name="kVA",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_baseFreq = mdl.create_property(
    item_handle=_Load_mask,
    name="baseFreq",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Load_mask_gen_ts_en = mdl.create_property(
    item_handle=_Load_mask,
    name="gen_ts_en",
    label="Enable time series (forces CPL)",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings:4",
    unit=""
)

_Load_mask_load_loadshape = mdl.create_property(
    item_handle=_Load_mask,
    name="load_loadshape",
    label="LoadShape object",
    widget="button",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings:4",
    button_label="Choose",
    unit=""
)


_Load_mask_load_loadshape_button_clicked = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.load_loadshape(mdl, container_handle)

"""
mdl.set_handler_code(_Load_mask_load_loadshape, "button_clicked", _Load_mask_load_loadshape_button_clicked)

_Load_mask_loadshape_name = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape_name",
    label="LoadShape name",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings:4",
    unit=""
)


_Load_mask_loadshape_name_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Load_mask_loadshape_name, "property_value_edited", _Load_mask_loadshape_name_property_value_edited)

_Load_mask_loadshape_from_file = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape_from_file",
    label="From CSV file",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings:4",
    unit=""
)


_Load_mask_loadshape_from_file_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Load_mask_loadshape_from_file, "property_value_edited", _Load_mask_loadshape_from_file_property_value_edited)

_Load_mask_useactual = mdl.create_property(
    item_handle=_Load_mask,
    name="useactual",
    label="Actual value",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings:4",
    unit=""
)


_Load_mask_useactual_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Load_mask_useactual, "property_value_edited", _Load_mask_useactual_property_value_edited)

_Load_mask_loadshape_from_file_path = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape_from_file_path",
    label="LoadShape from file - path",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings:4",
    unit=""
)

_Load_mask_loadshape_from_file_column = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape_from_file_column",
    label="LoadShape from file - column",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings:4",
    unit=""
)

_Load_mask_loadshape_from_file_header = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape_from_file_header",
    label="LoadShape from file - header",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings:4",
    unit=""
)

_Load_mask_loadshape = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape",
    label="LoadShape points",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings:4",
    unit=""
)


_Load_mask_loadshape_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Load_mask_loadshape, "property_value_edited", _Load_mask_loadshape_property_value_edited)

_Load_mask_loadshape_int = mdl.create_property(
    item_handle=_Load_mask,
    name="loadshape_int",
    label="LoadShape interval",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings:4",
    unit=""
)


_Load_mask_loadshape_int_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Load_mask_loadshape_int, "property_value_edited", _Load_mask_loadshape_int_property_value_edited)

_Load_mask_S_Ts = mdl.create_property(
    item_handle=_Load_mask,
    name="S_Ts",
    label="Power profile",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings:4",
    unit="pu"
)

_Load_mask_Q_Ts = mdl.create_property(
    item_handle=_Load_mask,
    name="Q_Ts",
    label="Reactive power profile",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit="kVAR"
)

_Load_mask_T_Ts = mdl.create_property(
    item_handle=_Load_mask,
    name="T_Ts",
    label="LoadShape time range",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="h"
)

_Load_mask_T_mode = mdl.create_property(
    item_handle=_Load_mask,
    name="T_mode",
    label="LoadShape input mode",
    widget="combo",
    combo_values=['Loadshape index', 'Time'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Load_mask_T_mode_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_T_mode, "property_value_edited", _Load_mask_T_mode_property_value_edited)

_Load_mask_S_Ts_mode = mdl.create_property(
    item_handle=_Load_mask,
    name="S_Ts_mode",
    label="Power Profile mode",
    widget="combo",
    combo_values=['Manual input'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)


_Load_mask_S_Ts_mode_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    ports = comp_script.port_dynamics(mdl, container_handle)
    comp_script.connections_ts_mode_dynamics(mdl, container_handle, ports)

"""
mdl.set_handler_code(_Load_mask_S_Ts_mode, "property_value_changed", _Load_mask_S_Ts_mode_property_value_changed)


_Load_mask_S_Ts_mode_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_Load_mask_S_Ts_mode, "property_value_edited", _Load_mask_S_Ts_mode_property_value_edited)

_Load_mask_timespan = mdl.create_property(
    item_handle=_Load_mask,
    name="timespan",
    label="Loadshape time span",
    widget="combo",
    combo_values=['Daily', 'Yearly'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_T_Ts_internal = mdl.create_property(
    item_handle=_Load_mask,
    name="T_Ts_internal",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_dssT = mdl.create_property(
    item_handle=_Load_mask,
    name="dssT",
    label="OpenDSS time interval",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit="h"
)

_Load_mask_dssnpts = mdl.create_property(
    item_handle=_Load_mask,
    name="dssnpts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_T_Ts_max = mdl.create_property(
    item_handle=_Load_mask,
    name="T_Ts_max",
    label="Power profile loop cycle",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit="s"
)

_Load_mask_del_Ts = mdl.create_property(
    item_handle=_Load_mask,
    name="del_Ts",
    label="Profile start delay",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit="s"
)

_Load_mask_Slen = mdl.create_property(
    item_handle=_Load_mask,
    name="Slen",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_T_lim_low = mdl.create_property(
    item_handle=_Load_mask,
    name="T_lim_low",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_T_lim_high = mdl.create_property(
    item_handle=_Load_mask,
    name="T_lim_high",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_Ts_switch = mdl.create_property(
    item_handle=_Load_mask,
    name="Ts_switch",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Load_mask_enable_monitoring = mdl.create_property(
    item_handle=_Load_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring",
    unit=""
)

_Load_mask_tp_connection_combo_values = mdl.create_property(
    item_handle=_Load_mask,
    name="tp_connection_combo_values",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)


_Load_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Load_mask, "define_icon", _Load_mask_define_icon)

_Load_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_load as comp_script
importlib.reload(comp_script)

def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.topology_dynamics(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)


"""
mdl.set_handler_code(_Load_mask, "init", _Load_mask_init)

_Load_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.restore_all_loads_points(mdl, item_handle)

# HEADER START
tp_connection = mdl.get_property_value(mdl.prop(item_handle, "tp_connection"))
Rneut = mdl.get_property_value(mdl.prop(item_handle, "Rneut"))
Xneut = mdl.get_property_value(mdl.prop(item_handle, "Xneut"))
global_basefreq = mdl.get_property_value(mdl.prop(item_handle, "global_basefreq"))
fn = mdl.get_property_value(mdl.prop(item_handle, "fn"))
phases = mdl.get_property_value(mdl.prop(item_handle, "phases"))
Vn_3ph = mdl.get_property_value(mdl.prop(item_handle, "Vn_3ph"))
Sn_3ph = mdl.get_property_value(mdl.prop(item_handle, "Sn_3ph"))
pf_mode_3ph = mdl.get_property_value(mdl.prop(item_handle, "pf_mode_3ph"))
pf_3ph = mdl.get_property_value(mdl.prop(item_handle, "pf_3ph"))
pf_3ph_set = mdl.get_property_value(mdl.prop(item_handle, "pf_3ph_set"))
load_model = mdl.get_property_value(mdl.prop(item_handle, "load_model"))
zip_vector = mdl.get_property_value(mdl.prop(item_handle, "zip_vector"))
zip_vector_Q = mdl.get_property_value(mdl.prop(item_handle, "zip_vector_Q"))
zip_internal = mdl.get_property_value(mdl.prop(item_handle, "zip_internal"))
zip_internal_Q = mdl.get_property_value(mdl.prop(item_handle, "zip_internal_Q"))
zip_internal_n = mdl.get_property_value(mdl.prop(item_handle, "zip_internal_n"))
zip_internal_n_Q = mdl.get_property_value(mdl.prop(item_handle, "zip_internal_n_Q"))
ZIPV = mdl.get_property_value(mdl.prop(item_handle, "ZIPV"))
Vmaxpu = mdl.get_property_value(mdl.prop(item_handle, "Vmaxpu"))
Vminpu = mdl.get_property_value(mdl.prop(item_handle, "Vminpu"))
model = mdl.get_property_value(mdl.prop(item_handle, "model"))
Pow_ref_s = mdl.get_property_value(mdl.prop(item_handle, "Pow_ref_s"))
execution_rate = mdl.get_property_value(mdl.prop(item_handle, "execution_rate"))
Tfast = mdl.get_property_value(mdl.prop(item_handle, "Tfast"))
CPL_LMT = mdl.get_property_value(mdl.prop(item_handle, "CPL_LMT"))
v_min_max = mdl.get_property_value(mdl.prop(item_handle, "v_min_max"))
rate_lmt = mdl.get_property_value(mdl.prop(item_handle, "rate_lmt"))
zero_seq_remove = mdl.get_property_value(mdl.prop(item_handle, "zero_seq_remove"))
q_gain_k = mdl.get_property_value(mdl.prop(item_handle, "q_gain_k"))
r_gain_k = mdl.get_property_value(mdl.prop(item_handle, "r_gain_k"))
Vn_3ph_CPL = mdl.get_property_value(mdl.prop(item_handle, "Vn_3ph_CPL"))
P_CPL = mdl.get_property_value(mdl.prop(item_handle, "P_CPL"))
Q_CPL = mdl.get_property_value(mdl.prop(item_handle, "Q_CPL"))
kV = mdl.get_property_value(mdl.prop(item_handle, "kV"))
pf = mdl.get_property_value(mdl.prop(item_handle, "pf"))
conn = mdl.get_property_value(mdl.prop(item_handle, "conn"))
kVA = mdl.get_property_value(mdl.prop(item_handle, "kVA"))
basefreq = mdl.get_property_value(mdl.prop(item_handle, "baseFreq"))
gen_ts_en = mdl.get_property_value(mdl.prop(item_handle, "gen_ts_en"))
load_loadshape = mdl.get_property_value(mdl.prop(item_handle, "load_loadshape"))
loadshape_name = mdl.get_property_value(mdl.prop(item_handle, "loadshape_name"))
loadshape_from_file = mdl.get_property_value(mdl.prop(item_handle, "loadshape_from_file"))
useactual = mdl.get_property_value(mdl.prop(item_handle, "useactual"))
loadshape_from_file_path = mdl.get_property_value(mdl.prop(item_handle, "loadshape_from_file_path"))
loadshape_from_file_column = mdl.get_property_value(mdl.prop(item_handle, "loadshape_from_file_column"))
loadshape_from_file_header = mdl.get_property_value(mdl.prop(item_handle, "loadshape_from_file_header"))
loadshape = mdl.get_property_value(mdl.prop(item_handle, "loadshape"))
loadshape_int = mdl.get_property_value(mdl.prop(item_handle, "loadshape_int"))
S_Ts = mdl.get_property_value(mdl.prop(item_handle, "S_Ts"))
Q_Ts = mdl.get_property_value(mdl.prop(item_handle, "Q_Ts"))
T_Ts = mdl.get_property_value(mdl.prop(item_handle, "T_Ts"))
T_mode = mdl.get_property_value(mdl.prop(item_handle, "T_mode"))
S_Ts_mode = mdl.get_property_value(mdl.prop(item_handle, "S_Ts_mode"))
timespan = mdl.get_property_value(mdl.prop(item_handle, "timespan"))
T_Ts_internal = mdl.get_property_value(mdl.prop(item_handle, "T_Ts_internal"))
dssT = mdl.get_property_value(mdl.prop(item_handle, "dssT"))
dssnpts = mdl.get_property_value(mdl.prop(item_handle, "dssnpts"))
T_Ts_max = mdl.get_property_value(mdl.prop(item_handle, "T_Ts_max"))
del_Ts = mdl.get_property_value(mdl.prop(item_handle, "del_Ts"))
Slen = mdl.get_property_value(mdl.prop(item_handle, "Slen"))
T_lim_low = mdl.get_property_value(mdl.prop(item_handle, "T_lim_low"))
T_lim_high = mdl.get_property_value(mdl.prop(item_handle, "T_lim_high"))
Ts_switch = mdl.get_property_value(mdl.prop(item_handle, "Ts_switch"))
enable_monitoring = mdl.get_property_value(mdl.prop(item_handle, "enable_monitoring"))
tp_connection_combo_values = mdl.get_property_value(mdl.prop(item_handle, "tp_connection_combo_values"))
# HEADER STOP
prop_dict = {"fn": fn,
             "Sn_3ph": Sn_3ph,
             "pf_mode_3ph": pf_mode_3ph,
             "pf_3ph": pf_3ph,
             "conn_type": tp_connection,
             "phases": phases,
             "Vn_3ph": Vn_3ph,
             "S_Ts": S_Ts,
             "load_model": load_model,
             "loadshape": loadshape,
             "loadshape_int": loadshape_int,
             "T_mode": T_mode,
             "T_Ts": T_Ts,
             "v_min_max": v_min_max
             }
comp_script = return_comp_script(mdl, item_handle)
comp_script.load_pre_compile_function(mdl, item_handle, prop_dict)

"""
mdl.set_handler_code(_Load_mask, "pre_compile", _Load_mask_pre_compile)

_Load_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Three-phase/Single-phase constant-impedance/constant-power Load component.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p></body></html>
'''
mdl.set_description(_Load_mask, _Load_mask_desc)
mdl.set_property_value(mdl.prop(_Load_mask, "T_Ts"), "[0, 6, 12, 18, 24]")
mdl.set_property_value(mdl.prop(_Load_mask, "T_mode"), "Loadshape index")
mdl.set_property_value(mdl.prop(_Load_mask, "global_basefreq"), "False")
mdl.set_property_value(mdl.prop(_Load_mask, "loadshape"), "[0.5, 0.7, 1, 0.4, 0.5]")
mdl.set_property_value(mdl.prop(_Load_mask, "loadshape_name"), "loadsh01")


# Component: Load.CIL
_Load_CIL = mdl.create_component(
    type_name="OpenDSS/CIL",
    parent=_Load,
    name="CIL",
    rotation="up",
    flip="flip_none",
    position=(7920, 8208),
    hide_name=False,
    size=(112, 64)
)


# Port: Load.A1
_Load_A1 = mdl.create_port(
    name="A1",
    parent=_Load,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(-48, -24),
    rotation="right",
    flip="flip_none",
    hide_name=True,
    position=(7800, 7864)
)

# Port: Load.B1
_Load_B1 = mdl.create_port(
    name="B1",
    parent=_Load,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(-16, -24),
    rotation="right",
    flip="flip_none",
    hide_name=True,
    position=(7920, 7864)
)

# Port: Load.C1
_Load_C1 = mdl.create_port(
    name="C1",
    parent=_Load,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(16, -24),
    rotation="right",
    flip="flip_none",
    hide_name=True,
    position=(8056, 7864)
)

# Port: Load.N1
_Load_N1 = mdl.create_port(
    name="N1",
    parent=_Load,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(48, -24),
    rotation="left",
    flip="flip_none",
    hide_name=True,
    position=(7920, 8384)
)

# Tag: Load.TagA1
_Load_TagA1 = mdl.create_tag(
    value="A1",
    name="TagA1",
    parent=_Load,
    scope="local",
    kind="pe",
    rotation="left",
    flip="flip_none",
    position=(7800, 7944)
)

# Tag: Load.TagA2
_Load_TagA2 = mdl.create_tag(
    value="A1",
    name="TagA2",
    parent=_Load,
    scope="local",
    kind="pe",
    rotation="right",
    flip="flip_none",
    position=(7856, 8088)
)

# Tag: Load.TagB1
_Load_TagB1 = mdl.create_tag(
    value="B1",
    name="TagB1",
    parent=_Load,
    scope="local",
    kind="pe",
    rotation="left",
    flip="flip_none",
    position=(7920, 7944)
)

# Tag: Load.TagB2
_Load_TagB2 = mdl.create_tag(
    value="B1",
    name="TagB2",
    parent=_Load,
    scope="local",
    kind="pe",
    rotation="right",
    flip="flip_none",
    position=(7920, 8088)
)

# Tag: Load.TagC1
_Load_TagC1 = mdl.create_tag(
    value="C1",
    name="TagC1",
    parent=_Load,
    scope="local",
    kind="pe",
    rotation="left",
    flip="flip_none",
    position=(8056, 7944)
)

# Tag: Load.TagC2
_Load_TagC2 = mdl.create_tag(
    value="C1",
    name="TagC2",
    parent=_Load,
    scope="local",
    kind="pe",
    rotation="right",
    flip="flip_none",
    position=(7984, 8088)
)

# Junction: Load.JN
_Load_JN = mdl.create_junction(
    name="JN",
    parent=_Load,
    kind="pe",
    position=(7920, 8328)
)

# Component: Single-Phase Transformer
_Single_Phase_Transformer = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Single-Phase Transformer",
    rotation="up",
    flip="flip_none",
    position=(4728, 7376),
    hide_name=False,
    size=(64, 64)
)
_Single_Phase_Transformer_mask = mdl.create_mask(_Single_Phase_Transformer)
_Single_Phase_Transformer_mask_num_windings = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="num_windings",
    label="Number of windings",
    widget="combo",
    combo_values=['2', '3', '4', '5', '6', '7', '8', '9', '10'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Single_Phase_Transformer_mask_num_windings_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
created_ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.update_subsystem_components(mdl, container_handle, created_ports)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_num_windings, "property_value_changed", _Single_Phase_Transformer_mask_num_windings_property_value_changed)


_Single_Phase_Transformer_mask_num_windings_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.show_hide_couplings(mdl, container_handle)
comp_script.update_regctrl_combo(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_num_windings, "property_value_edited", _Single_Phase_Transformer_mask_num_windings_property_value_edited)

_Single_Phase_Transformer_mask_embedded_cpl_12 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_12",
    label="Embedded coupling 1-2",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_12_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_12, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_12_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_13 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_13",
    label="Embedded coupling 1-3",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_13_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_13, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_13_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_14 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_14",
    label="Embedded coupling 1-4",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_14_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_14, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_14_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_15 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_15",
    label="Embedded coupling 1-5",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_15_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_15, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_15_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_16 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_16",
    label="Embedded coupling 1-6",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_16_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_16, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_16_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_17 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_17",
    label="Embedded coupling 1-7",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_17_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_17, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_17_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_18 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_18",
    label="Embedded coupling 1-8",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_18_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_18, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_18_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_19 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_19",
    label="Embedded coupling 1-9",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_19_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_19, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_19_property_value_changed)

_Single_Phase_Transformer_mask_embedded_cpl_110 = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="embedded_cpl_110",
    label="Embedded coupling 1-10",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling:3",
    unit=""
)


_Single_Phase_Transformer_mask_embedded_cpl_110_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
prop_name = mdl.get_name(prop_handle)
inner_prop_handle = mdl.prop(T_handle, prop_name)
mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_embedded_cpl_110, "property_value_changed", _Single_Phase_Transformer_mask_embedded_cpl_110_property_value_changed)

_Single_Phase_Transformer_mask_KVs = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="KVs",
    label="Array of rated winding phase voltages",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="kV"
)

_Single_Phase_Transformer_mask_KVAs = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="KVAs",
    label="Array of winding kVA ratings",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="kVA"
)

_Single_Phase_Transformer_mask_percentRs = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="percentRs",
    label="Array of winding percent resistances",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Single_Phase_Transformer_mask_XArray = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="XArray",
    label="Winding reactances",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)


_Single_Phase_Transformer_mask_XArray_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.convert_all_properties(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_XArray, "property_value_changed", _Single_Phase_Transformer_mask_XArray_property_value_changed)

_Single_Phase_Transformer_mask_XscArray = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="XscArray",
    label="Array of short-circuit reactances",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit="%"
)

_Single_Phase_Transformer_mask_global_basefreq = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Single_Phase_Transformer_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_global_basefreq, "property_value_changed", _Single_Phase_Transformer_mask_global_basefreq_property_value_changed)


_Single_Phase_Transformer_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_frequency_prop(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_global_basefreq, "property_value_edited", _Single_Phase_Transformer_mask_global_basefreq_property_value_edited)

_Single_Phase_Transformer_mask_baseFreq = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit="Hz"
)

_Single_Phase_Transformer_mask_percentNoloadloss = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="percentNoloadloss",
    label="No-load losses",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Single_Phase_Transformer_mask_percentimag = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="percentimag",
    label="Magnetizing current",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Single_Phase_Transformer_mask_regcontrol_on = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="regcontrol_on",
    label="Activate RegControl",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="RegControl:4",
    unit=""
)


_Single_Phase_Transformer_mask_regcontrol_on_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_regcontrol_props(mdl, container_handle)
comp_script.vreg_connection(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_regcontrol_on, "property_value_changed", _Single_Phase_Transformer_mask_regcontrol_on_property_value_changed)


_Single_Phase_Transformer_mask_regcontrol_on_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_regcontrol_props(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_regcontrol_on, "property_value_edited", _Single_Phase_Transformer_mask_regcontrol_on_property_value_edited)

_Single_Phase_Transformer_mask_maxtap = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="maxtap",
    label="Maximum tap voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="pu"
)

_Single_Phase_Transformer_mask_mintap = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="mintap",
    label="Minimum tap voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="pu"
)

_Single_Phase_Transformer_mask_numtaps = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="numtaps",
    label="Number of taps",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit=""
)

_Single_Phase_Transformer_mask_ctrl_winding = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="ctrl_winding",
    label="Monitored winding",
    widget="combo",
    combo_values=['Winding 1', 'Winding 2'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit=""
)


_Single_Phase_Transformer_mask_ctrl_winding_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.vreg_connection(mdl, container_handle)
comp_script.update_regctrl_combo(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_ctrl_winding, "property_value_changed", _Single_Phase_Transformer_mask_ctrl_winding_property_value_changed)

_Single_Phase_Transformer_mask_vreg = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="vreg",
    label="Vreg",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)


_Single_Phase_Transformer_mask_vreg_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.calculate_winding_voltage(mdl, container_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_vreg, "property_value_edited", _Single_Phase_Transformer_mask_vreg_property_value_edited)

_Single_Phase_Transformer_mask_ptratio = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="ptratio",
    label="PT ratio",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)


_Single_Phase_Transformer_mask_ptratio_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_ptratio, "property_value_edited", _Single_Phase_Transformer_mask_ptratio_property_value_edited)

_Single_Phase_Transformer_mask_winding_voltage = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="winding_voltage",
    label="Voltage result",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)


_Single_Phase_Transformer_mask_winding_voltage_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask_winding_voltage, "property_value_edited", _Single_Phase_Transformer_mask_winding_voltage_property_value_edited)

_Single_Phase_Transformer_mask_band = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="band",
    label="Bandwidth",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)

_Single_Phase_Transformer_mask_delay = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="delay",
    label="Delay",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="s"
)

_Single_Phase_Transformer_mask_execution_rate = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="execution_rate",
    label="Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="s"
)

_Single_Phase_Transformer_mask_enable_monitoring = mdl.create_property(
    item_handle=_Single_Phase_Transformer_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring:5",
    unit=""
)


_Single_Phase_Transformer_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Single_Phase_Transformer_mask, "define_icon", _Single_Phase_Transformer_mask_define_icon)

_Single_Phase_Transformer_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_sptransf as comp_script
importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)


"""
mdl.set_handler_code(_Single_Phase_Transformer_mask, "init", _Single_Phase_Transformer_mask_init)

_Single_Phase_Transformer_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.update_frequency_property(mdl, item_handle)
# HEADER START
num_windings = mdl.get_property_value(mdl.prop(item_handle, "num_windings"))
KVs = mdl.get_property_value(mdl.prop(item_handle, "KVs"))
KVAs = mdl.get_property_value(mdl.prop(item_handle, "KVAs"))
percentRs = mdl.get_property_value(mdl.prop(item_handle, "percentRs"))
XscArray = mdl.get_property_value(mdl.prop(item_handle, "XscArray"))
Basefreq = mdl.get_property_value(mdl.prop(item_handle, "baseFreq"))
percentNoloadloss = mdl.get_property_value(mdl.prop(item_handle, "percentNoloadloss"))
percentimag = mdl.get_property_value(mdl.prop(item_handle, "percentimag"))
# HEADER STOP
comp_script.validate_properties(mdl, item_handle)
comp_script.convert_all_properties(mdl, item_handle)


"""
mdl.set_handler_code(_Single_Phase_Transformer_mask, "pre_compile", _Single_Phase_Transformer_mask_pre_compile)

_Single_Phase_Transformer_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The Single-Phase Transfomer is implemented as a multi-terminal power delivery element and consists of two or more windings.<br></br><br></br>Note that contrary to OpenDSS, individual reactances are defined in the mask. Reactances between windings will be calculated.</p></body></html>
'''
mdl.set_description(_Single_Phase_Transformer_mask, _Single_Phase_Transformer_mask_desc)
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_mask, "KVAs"), "[1000, 1000]")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_mask, "KVs"), "[12.47, 12.47]")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_mask, "XscArray"), "[2]")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_mask, "global_basefreq"), "False")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_mask, "percentNoloadloss"), "2")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_mask, "percentRs"), "[1, 1]")


# Component: Single-Phase Transformer.T1
_Single_Phase_Transformer_T1 = mdl.create_component(
    type_name="core/Single Phase Multi-Winding Transformer",
    parent=_Single_Phase_Transformer,
    name="T1",
    rotation="up",
    flip="flip_none",
    position=(8400, 8200),
    hide_name=False,
    size=(124, 256)
)
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "I_prim"), "0")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "I_sec"), "[0]")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "L_prim"), "0.004124789481706419")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "L_sec"), "[0.004124789481706419]")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "Lm"), "inf")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "R_prim"), "1.5550090000000003")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "R_sec"), "[1.5550090000000003]")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "Rm"), "7775.045")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "Sn"), "1000000")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "f"), "60")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "n_prim"), "12470.0")
mdl.set_property_value(mdl.prop(_Single_Phase_Transformer_T1, "n_sec"), "[12470.0]")


# Port: Single-Phase Transformer.A1
_Single_Phase_Transformer_A1 = mdl.create_port(
    name="A1",
    parent=_Single_Phase_Transformer,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, -16.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7992, 8104)
)

# Port: Single-Phase Transformer.B1
_Single_Phase_Transformer_B1 = mdl.create_port(
    name="B1",
    parent=_Single_Phase_Transformer,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, 16.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7992, 8296)
)

# Port: Single-Phase Transformer.A2
_Single_Phase_Transformer_A2 = mdl.create_port(
    name="A2",
    parent=_Single_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, -16),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(9376, 8192)
)

# Port: Single-Phase Transformer.B2
_Single_Phase_Transformer_B2 = mdl.create_port(
    name="B2",
    parent=_Single_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, 16),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(9376, 8288)
)

# Tag: Single-Phase Transformer.TagA1
_Single_Phase_Transformer_TagA1 = mdl.create_tag(
    value="TA_1",
    name="TagA1",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8104, 8104)
)

# Tag: Single-Phase Transformer.TagB1
_Single_Phase_Transformer_TagB1 = mdl.create_tag(
    value="TB_1",
    name="TagB1",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8096, 8296)
)

# Tag: Single-Phase Transformer.TagTA1
_Single_Phase_Transformer_TagTA1 = mdl.create_tag(
    value="TA_1",
    name="TagTA1",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(8240, 8104)
)

# Tag: Single-Phase Transformer.TagTB1
_Single_Phase_Transformer_TagTB1 = mdl.create_tag(
    value="TB_1",
    name="TagTB1",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(8240, 8296)
)

# Tag: Single-Phase Transformer.TagTA2
_Single_Phase_Transformer_TagTA2 = mdl.create_tag(
    value="TA_2",
    name="TagTA2",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8560, 8160)
)

# Tag: Single-Phase Transformer.TagTB2
_Single_Phase_Transformer_TagTB2 = mdl.create_tag(
    value="TB_2",
    name="TagTB2",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8560, 8240)
)

# Tag: Single-Phase Transformer.TagA2
_Single_Phase_Transformer_TagA2 = mdl.create_tag(
    value="TA_2",
    name="TagA2",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(9272, 8192)
)

# Tag: Single-Phase Transformer.TagB2
_Single_Phase_Transformer_TagB2 = mdl.create_tag(
    value="TB_2",
    name="TagB2",
    parent=_Single_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(9272, 8288)
)

# Component: Three-Phase Transformer
_Three_Phase_Transformer = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Three-Phase Transformer",
    rotation="up",
    flip="flip_none",
    position=(5096, 7376),
    hide_name=False,
    size=(64, 96)
)
_Three_Phase_Transformer_mask = mdl.create_mask(_Three_Phase_Transformer)
_Three_Phase_Transformer_mask_num_windings = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="num_windings",
    label="Number of windings",
    widget="combo",
    combo_values=['2', '3', '4'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Three_Phase_Transformer_mask_num_windings_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.topology_dynamics(mdl, container_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_num_windings, "property_value_changed", _Three_Phase_Transformer_mask_num_windings_property_value_changed)


_Three_Phase_Transformer_mask_num_windings_property_value_edited = """
num_windings = int(new_value)

comp_script = return_comp_script(mdl, container_handle)
comp_script.enable_disable_conn(mdl, container_handle)
comp_script.show_hide_couplings(mdl, container_handle)
comp_script.enable_disable_grounds(mdl, container_handle, num_windings)
comp_script.update_regctrl_combo(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_num_windings, "property_value_edited", _Three_Phase_Transformer_mask_num_windings_property_value_edited)

_Three_Phase_Transformer_mask_embedded_cpl = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="embedded_cpl",
    label="Embedded coupling",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Core coupling:3",
    unit=""
)


_Three_Phase_Transformer_mask_embedded_cpl_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
T_type = mdl.get_component_type_name(T_handle)
if "Two Winding" in T_type:
    prop_name = mdl.get_name(prop_handle)
    inner_prop_handle = mdl.prop(T_handle, prop_name)
    mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl, "property_value_changed", _Three_Phase_Transformer_mask_embedded_cpl_property_value_changed)


_Three_Phase_Transformer_mask_embedded_cpl_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
num_windings_prop = mdl.prop(container_handle, "num_windings")
num_windings = int(mdl.get_property_disp_value(num_windings_prop))

comp_script.enable_disable_grounds(mdl, container_handle, num_windings)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl, "property_value_edited", _Three_Phase_Transformer_mask_embedded_cpl_property_value_edited)

_Three_Phase_Transformer_mask_embedded_cpl_12 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="embedded_cpl_12",
    label="Embedded coupling 1-2",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling",
    unit=""
)


_Three_Phase_Transformer_mask_embedded_cpl_12_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
T_type = mdl.get_component_type_name(T_handle)
types = ["Three Winding", "Four Winding"]
if any(t in T_type for t in types):
    prop_name = mdl.get_name(prop_handle)
    inner_prop_handle = mdl.prop(T_handle, prop_name)
    mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl_12, "property_value_changed", _Three_Phase_Transformer_mask_embedded_cpl_12_property_value_changed)


_Three_Phase_Transformer_mask_embedded_cpl_12_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
num_windings_prop = mdl.prop(container_handle, "num_windings")
num_windings = int(mdl.get_property_disp_value(num_windings_prop))
comp_script.enable_disable_grounds(mdl, container_handle, num_windings)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl_12, "property_value_edited", _Three_Phase_Transformer_mask_embedded_cpl_12_property_value_edited)

_Three_Phase_Transformer_mask_embedded_cpl_13 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="embedded_cpl_13",
    label="Embedded coupling 1-3",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling",
    unit=""
)


_Three_Phase_Transformer_mask_embedded_cpl_13_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
T_type = mdl.get_component_type_name(T_handle)
types = ["Three Winding", "Four Winding"]
if any(t in T_type for t in types):
    prop_name = mdl.get_name(prop_handle)
    inner_prop_handle = mdl.prop(T_handle, prop_name)
    mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl_13, "property_value_changed", _Three_Phase_Transformer_mask_embedded_cpl_13_property_value_changed)


_Three_Phase_Transformer_mask_embedded_cpl_13_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
num_windings_prop = mdl.prop(container_handle, "num_windings")
num_windings = int(mdl.get_property_disp_value(num_windings_prop))
comp_script.enable_disable_grounds(mdl, container_handle, num_windings)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl_13, "property_value_edited", _Three_Phase_Transformer_mask_embedded_cpl_13_property_value_edited)

_Three_Phase_Transformer_mask_embedded_cpl_14 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="embedded_cpl_14",
    label="Embedded coupling 1-4",
    widget="combo",
    combo_values=['None', 'Ideal Transformer', 'TLM'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Core coupling",
    unit=""
)


_Three_Phase_Transformer_mask_embedded_cpl_14_property_value_changed = """
T_handle = mdl.get_item("T1", parent=mdl.get_parent(container_handle))
T_type = mdl.get_component_type_name(T_handle)
if "Four Winding" in T_type:
    prop_name = mdl.get_name(prop_handle)
    inner_prop_handle = mdl.prop(T_handle, prop_name)
    mdl.set_property_value(inner_prop_handle, new_value)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl_14, "property_value_changed", _Three_Phase_Transformer_mask_embedded_cpl_14_property_value_changed)


_Three_Phase_Transformer_mask_embedded_cpl_14_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
num_windings_prop = mdl.prop(container_handle, "num_windings")
num_windings = int(mdl.get_property_disp_value(num_windings_prop))
comp_script.enable_disable_grounds(mdl, container_handle, num_windings)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_embedded_cpl_14, "property_value_edited", _Three_Phase_Transformer_mask_embedded_cpl_14_property_value_edited)

_Three_Phase_Transformer_mask_KVs = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="KVs",
    label="Array of rated winding phase voltages",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="kV"
)

_Three_Phase_Transformer_mask_KVAs = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="KVAs",
    label="Array of winding kVA ratings",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="kVA"
)

_Three_Phase_Transformer_mask_percentRs = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="percentRs",
    label="Array of winding percent resistances",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Three_Phase_Transformer_mask_XArray = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="XArray",
    label="Winding reactances",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Three_Phase_Transformer_mask_XscArray = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="XscArray",
    label="Short circuit reactances",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit="%"
)

_Three_Phase_Transformer_mask_global_basefreq = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Three_Phase_Transformer_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_global_basefreq, "property_value_changed", _Three_Phase_Transformer_mask_global_basefreq_property_value_changed)


_Three_Phase_Transformer_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_frequency_prop(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_global_basefreq, "property_value_edited", _Three_Phase_Transformer_mask_global_basefreq_property_value_edited)

_Three_Phase_Transformer_mask_baseFreq = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit="Hz"
)

_Three_Phase_Transformer_mask_percentNoloadloss = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="percentNoloadloss",
    label="No-load losses",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Three_Phase_Transformer_mask_percentimag = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="percentimag",
    label="Magnetizing current",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Three_Phase_Transformer_mask_prim_conn = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="prim_conn",
    label="Primary",
    widget="combo",
    combo_values=['Y - Grounded', 'Y', 'Δ'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Winding connections:2",
    unit=""
)


_Three_Phase_Transformer_mask_prim_conn_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_prim_conn, "property_value_changed", _Three_Phase_Transformer_mask_prim_conn_property_value_changed)


_Three_Phase_Transformer_mask_prim_conn_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.enable_disable_conn(mdl, container_handle)


"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_prim_conn, "property_value_edited", _Three_Phase_Transformer_mask_prim_conn_property_value_edited)

_Three_Phase_Transformer_mask_Rneut_prim = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Rneut_prim",
    label="Rneut prim",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_Xneut_prim = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Xneut_prim",
    label="Xneut prim",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_sec1_conn = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="sec1_conn",
    label="Secondary 1",
    widget="combo",
    combo_values=['Y - Grounded', 'Y', 'Δ'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit=""
)


_Three_Phase_Transformer_mask_sec1_conn_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_sec1_conn, "property_value_changed", _Three_Phase_Transformer_mask_sec1_conn_property_value_changed)


_Three_Phase_Transformer_mask_sec1_conn_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.enable_disable_conn(mdl, container_handle)


"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_sec1_conn, "property_value_edited", _Three_Phase_Transformer_mask_sec1_conn_property_value_edited)

_Three_Phase_Transformer_mask_Rneut_sec1 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Rneut_sec1",
    label="Rneut sec 1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_Xneut_sec1 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Xneut_sec1",
    label="Xneut sec 1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_sec2_conn = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="sec2_conn",
    label="Secondary 2",
    widget="combo",
    combo_values=['Y - Grounded', 'Y', 'Δ'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit=""
)


_Three_Phase_Transformer_mask_sec2_conn_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_sec2_conn, "property_value_changed", _Three_Phase_Transformer_mask_sec2_conn_property_value_changed)


_Three_Phase_Transformer_mask_sec2_conn_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.enable_disable_conn(mdl, container_handle)


"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_sec2_conn, "property_value_edited", _Three_Phase_Transformer_mask_sec2_conn_property_value_edited)

_Three_Phase_Transformer_mask_Rneut_sec2 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Rneut_sec2",
    label="Rneut sec 2",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_Xneut_sec2 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Xneut_sec2",
    label="Xneut sec 2",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_sec3_conn = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="sec3_conn",
    label="Secondary 3",
    widget="combo",
    combo_values=['Y - Grounded', 'Y', 'Δ'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit=""
)


_Three_Phase_Transformer_mask_sec3_conn_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
if new_value != old_value:
    comp_script.topology_dynamics(mdl, container_handle)
    mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_sec3_conn, "property_value_changed", _Three_Phase_Transformer_mask_sec3_conn_property_value_changed)


_Three_Phase_Transformer_mask_sec3_conn_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
#comp_script.enable_disable_z_neut(mdl, container_handle)
comp_script.enable_disable_conn(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_sec3_conn, "property_value_edited", _Three_Phase_Transformer_mask_sec3_conn_property_value_edited)

_Three_Phase_Transformer_mask_Rneut_sec3 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Rneut_sec3",
    label="Rneut sec 3",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_Xneut_sec3 = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="Xneut_sec3",
    label="Xneut sec 3",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Winding connections",
    unit="Ω"
)

_Three_Phase_Transformer_mask_regcontrol_on = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="regcontrol_on",
    label="Activate RegControl",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="RegControl:4",
    unit=""
)


_Three_Phase_Transformer_mask_regcontrol_on_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_regcontrol_props(mdl, container_handle)
comp_script.vreg_connection(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_regcontrol_on, "property_value_changed", _Three_Phase_Transformer_mask_regcontrol_on_property_value_changed)


_Three_Phase_Transformer_mask_regcontrol_on_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_regcontrol_props(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_regcontrol_on, "property_value_edited", _Three_Phase_Transformer_mask_regcontrol_on_property_value_edited)

_Three_Phase_Transformer_mask_maxtap = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="maxtap",
    label="Maximum tap voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="pu"
)

_Three_Phase_Transformer_mask_mintap = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="mintap",
    label="Minimum tap voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="pu"
)

_Three_Phase_Transformer_mask_numtaps = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="numtaps",
    label="Number of taps",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit=""
)

_Three_Phase_Transformer_mask_ctrl_winding = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="ctrl_winding",
    label="Monitored winding",
    widget="combo",
    combo_values=['Winding 1', 'Winding 2'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit=""
)


_Three_Phase_Transformer_mask_ctrl_winding_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.vreg_connection(mdl, container_handle)
comp_script.update_regctrl_combo(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_ctrl_winding, "property_value_changed", _Three_Phase_Transformer_mask_ctrl_winding_property_value_changed)

_Three_Phase_Transformer_mask_vreg = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="vreg",
    label="Vreg",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)


_Three_Phase_Transformer_mask_vreg_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.calculate_winding_voltage(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_vreg, "property_value_edited", _Three_Phase_Transformer_mask_vreg_property_value_edited)

_Three_Phase_Transformer_mask_ptratio = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="ptratio",
    label="PT ratio",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)


_Three_Phase_Transformer_mask_ptratio_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.calculate_winding_voltage(mdl, container_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_ptratio, "property_value_edited", _Three_Phase_Transformer_mask_ptratio_property_value_edited)

_Three_Phase_Transformer_mask_winding_voltage = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="winding_voltage",
    label="Line voltage result",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)


_Three_Phase_Transformer_mask_winding_voltage_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask_winding_voltage, "property_value_edited", _Three_Phase_Transformer_mask_winding_voltage_property_value_edited)

_Three_Phase_Transformer_mask_band = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="band",
    label="Bandwidth",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="V"
)

_Three_Phase_Transformer_mask_delay = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="delay",
    label="Delay",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="s"
)

_Three_Phase_Transformer_mask_execution_rate = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="execution_rate",
    label="Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="RegControl:4",
    unit="s"
)

_Three_Phase_Transformer_mask_enable_monitoring = mdl.create_property(
    item_handle=_Three_Phase_Transformer_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring:5",
    unit=""
)


_Three_Phase_Transformer_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Three_Phase_Transformer_mask, "define_icon", _Three_Phase_Transformer_mask_define_icon)

_Three_Phase_Transformer_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_tptransf as comp_script
importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)


"""
mdl.set_handler_code(_Three_Phase_Transformer_mask, "init", _Three_Phase_Transformer_mask_init)

_Three_Phase_Transformer_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.update_frequency_property(mdl, item_handle)
# HEADER START
num_windings = mdl.get_property_value(mdl.prop(item_handle, "num_windings"))
embedded_cpl = mdl.get_property_value(mdl.prop(item_handle, "embedded_cpl"))
embedded_cpl_12 = mdl.get_property_value(mdl.prop(item_handle, "embedded_cpl_12"))
embedded_cpl_13 = mdl.get_property_value(mdl.prop(item_handle, "embedded_cpl_13"))
embedded_cpl_14 = mdl.get_property_value(mdl.prop(item_handle, "embedded_cpl_14"))
KVs = mdl.get_property_value(mdl.prop(item_handle, "KVs"))
KVAs = mdl.get_property_value(mdl.prop(item_handle, "KVAs"))
percentRs = mdl.get_property_value(mdl.prop(item_handle, "percentRs"))
XArray = mdl.get_property_value(mdl.prop(item_handle, "XArray"))
XscArray = mdl.get_property_value(mdl.prop(item_handle, "XscArray"))
Basefreq = mdl.get_property_value(mdl.prop(item_handle, "baseFreq"))
percentNoloadloss = mdl.get_property_value(mdl.prop(item_handle, "percentNoloadloss"))
percentimag = mdl.get_property_value(mdl.prop(item_handle, "percentimag"))
prim_conn = mdl.get_property_value(mdl.prop(item_handle, "prim_conn"))
#grounded_prim = mdl.get_property_value(mdl.prop(item_handle, "grounded_prim"))
sec1_conn = mdl.get_property_value(mdl.prop(item_handle, "sec1_conn"))
#grounded_sec1 = mdl.get_property_value(mdl.prop(item_handle, "grounded_sec1"))
sec2_conn = mdl.get_property_value(mdl.prop(item_handle, "sec2_conn"))
#grounded_sec2 = mdl.get_property_value(mdl.prop(item_handle, "grounded_sec2"))
sec3_conn = mdl.get_property_value(mdl.prop(item_handle, "sec3_conn"))
#grounded_sec3 = mdl.get_property_value(mdl.prop(item_handle, "grounded_sec3"))
# HEADER STOP

comp_script.validate_properties(mdl, item_handle)
comp_script.convert_all_properties(mdl, item_handle)


"""
mdl.set_handler_code(_Three_Phase_Transformer_mask, "pre_compile", _Three_Phase_Transformer_mask_pre_compile)

_Three_Phase_Transformer_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The Three-Phase Transfomer is implemented as a multi-terminal power delivery element and consists of two or more windings, with a default wye-wye connection.<br></br><br></br>Note that contrary to OpenDSS, individual reactances are defined in the mask. Reactances between windings will be calculated.</p></body></html>
'''
mdl.set_description(_Three_Phase_Transformer_mask, _Three_Phase_Transformer_mask_desc)
mdl.set_property_value(mdl.prop(_Three_Phase_Transformer_mask, "global_basefreq"), "False")


# Component: Three-Phase Transformer.T1
_Three_Phase_Transformer_T1 = mdl.create_component(
    type_name="core/Three Phase Two Winding Transformer",
    parent=_Three_Phase_Transformer,
    name="T1",
    rotation="up",
    flip="flip_none",
    position=(8448, 8192),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Three_Phase_Transformer_T1, "input"), "SI")


# Port: Three-Phase Transformer.A1
_Three_Phase_Transformer_A1 = mdl.create_port(
    name="A1",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, -48.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(8056, 8088)
)

# Port: Three-Phase Transformer.B1
_Three_Phase_Transformer_B1 = mdl.create_port(
    name="B1",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, -16.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(8056, 8160)
)

# Port: Three-Phase Transformer.C1
_Three_Phase_Transformer_C1 = mdl.create_port(
    name="C1",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, 16.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(8056, 8232)
)

# Port: Three-Phase Transformer.N1
_Three_Phase_Transformer_N1 = mdl.create_port(
    name="N1",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(-32.0, 48.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(8224, 8528)
)

# Port: Three-Phase Transformer.N2
_Three_Phase_Transformer_N2 = mdl.create_port(
    name="N2",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, 48),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(8600, 8520)
)

# Port: Three-Phase Transformer.A2
_Three_Phase_Transformer_A2 = mdl.create_port(
    name="A2",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, -48),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(9376, 8144)
)

# Port: Three-Phase Transformer.B2
_Three_Phase_Transformer_B2 = mdl.create_port(
    name="B2",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, -16),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(9376, 8240)
)

# Port: Three-Phase Transformer.C2
_Three_Phase_Transformer_C2 = mdl.create_port(
    name="C2",
    parent=_Three_Phase_Transformer,
    label="",
    kind="pe",
    direction="out",
    dimension=(1,),
    terminal_position=(32, 16),
    rotation="up",
    flip="flip_horizontal",
    hide_name=True,
    position=(9376, 8336)
)

# Tag: Three-Phase Transformer.TagA1
_Three_Phase_Transformer_TagA1 = mdl.create_tag(
    value="TA_1",
    name="TagA1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8136, 8088)
)

# Tag: Three-Phase Transformer.TagB1
_Three_Phase_Transformer_TagB1 = mdl.create_tag(
    value="TB_1",
    name="TagB1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8136, 8160)
)

# Tag: Three-Phase Transformer.TagC1
_Three_Phase_Transformer_TagC1 = mdl.create_tag(
    value="TC_1",
    name="TagC1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8136, 8232)
)

# Tag: Three-Phase Transformer.TagTA1
_Three_Phase_Transformer_TagTA1 = mdl.create_tag(
    value="TA_1",
    name="TagTA1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(8256, 8096)
)

# Tag: Three-Phase Transformer.TagTB1
_Three_Phase_Transformer_TagTB1 = mdl.create_tag(
    value="TB_1",
    name="TagTB1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(8256, 8192)
)

# Tag: Three-Phase Transformer.TagTC1
_Three_Phase_Transformer_TagTC1 = mdl.create_tag(
    value="TC_1",
    name="TagTC1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(8256, 8288)
)

# Tag: Three-Phase Transformer.TagTN1
_Three_Phase_Transformer_TagTN1 = mdl.create_tag(
    value="T_N1",
    name="TagTN1",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(8256, 8416)
)

# Tag: Three-Phase Transformer.TagTA2
_Three_Phase_Transformer_TagTA2 = mdl.create_tag(
    value="TA_2",
    name="TagTA2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8600, 8096)
)

# Tag: Three-Phase Transformer.TagTB2
_Three_Phase_Transformer_TagTB2 = mdl.create_tag(
    value="TB_2",
    name="TagTB2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8600, 8192)
)

# Tag: Three-Phase Transformer.TagTC2
_Three_Phase_Transformer_TagTC2 = mdl.create_tag(
    value="TC_2",
    name="TagTC2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8600, 8288)
)

# Tag: Three-Phase Transformer.TagTN2
_Three_Phase_Transformer_TagTN2 = mdl.create_tag(
    value="T_N2",
    name="TagTN2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_horizontal",
    position=(8600, 8464)
)

# Tag: Three-Phase Transformer.TagA2
_Three_Phase_Transformer_TagA2 = mdl.create_tag(
    value="TA_2",
    name="TagA2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(9272, 8144)
)

# Tag: Three-Phase Transformer.TagB2
_Three_Phase_Transformer_TagB2 = mdl.create_tag(
    value="TB_2",
    name="TagB2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(9272, 8240)
)

# Tag: Three-Phase Transformer.TagC2
_Three_Phase_Transformer_TagC2 = mdl.create_tag(
    value="TC_2",
    name="TagC2",
    parent=_Three_Phase_Transformer,
    scope="local",
    kind="pe",
    rotation="up",
    flip="flip_none",
    position=(9272, 8336)
)

# Component: VSConverter
_VSConverter = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="VSConverter",
    rotation="up",
    flip="flip_none",
    position=(5520, 7384),
    hide_name=False,
    size=(220, 175)
)
_VSConverter_mask = mdl.create_mask(_VSConverter)
_VSConverter_mask_ctrl_mode_str = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="ctrl_mode_str",
    label="Inverter control mode",
    widget="combo",
    combo_values=['PQ', 'PV', 'Vdc-Vac', 'Vdc-Q', 'Grid Forming', 'External Control'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Control mode:2",
    unit=""
)


_VSConverter_mask_ctrl_mode_str_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.set_control_mode(mdl, container_handle, new_value)
comp_script.inv_control_mode_value_edited(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_ctrl_mode_str, "property_value_changed", _VSConverter_mask_ctrl_mode_str_property_value_changed)


_VSConverter_mask_ctrl_mode_str_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.inv_control_mode_value_edited(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_ctrl_mode_str, "property_value_edited", _VSConverter_mask_ctrl_mode_str_property_value_edited)

_VSConverter_mask_ctrl_mode_int = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="ctrl_mode_int",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_ext_mode = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="ext_mode",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_P_ref_str = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="P_ref_str",
    label="Active power reference (kW)",
    widget="combo",
    combo_values=['External input', 'Converter nominal'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Control mode",
    unit=""
)


_VSConverter_mask_P_ref_str_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.set_external_input(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_P_ref_str, "property_value_changed", _VSConverter_mask_P_ref_str_property_value_changed)

_VSConverter_mask_P_sel = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="P_sel",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_Q_ref_str = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Q_ref_str",
    label="Reactive power reference (kVAR)",
    widget="combo",
    combo_values=['External input', 'Converter nominal'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Control mode",
    unit=""
)


_VSConverter_mask_Q_ref_str_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.set_external_input(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_Q_ref_str, "property_value_changed", _VSConverter_mask_Q_ref_str_property_value_changed)

_VSConverter_mask_Q_sel = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Q_sel",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_V_ref_str = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="V_ref_str",
    label="Line voltage reference (kV)",
    widget="combo",
    combo_values=['External input', 'Converter nominal'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Control mode",
    unit=""
)


_VSConverter_mask_V_ref_str_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.set_external_input(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_V_ref_str, "property_value_changed", _VSConverter_mask_V_ref_str_property_value_changed)

_VSConverter_mask_V_sel = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="V_sel",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_vdc_ref_str = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="vdc_ref_str",
    label="DC Link voltage (kV)",
    widget="combo",
    combo_values=['External input', 'Converter nominal'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Control mode",
    unit=""
)


_VSConverter_mask_vdc_ref_str_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.set_external_input(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_vdc_ref_str, "property_value_changed", _VSConverter_mask_vdc_ref_str_property_value_changed)

_VSConverter_mask_fs_ref_str = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="fs_ref_str",
    label="Frequency (Hz)",
    widget="combo",
    combo_values=['External input', 'Converter nominal'],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Control mode",
    unit=""
)


_VSConverter_mask_fs_ref_str_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.set_external_input(mdl, container_handle, prop_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_fs_ref_str, "property_value_changed", _VSConverter_mask_fs_ref_str_property_value_changed)

_VSConverter_mask_w_sel = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="w_sel",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_P_kp = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="P_kp",
    label="P Controller proportional gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Controller settings:3",
    unit=""
)

_VSConverter_mask_P_ki = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="P_ki",
    label="P Controller integral gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_Q_kp = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Q_kp",
    label="Q Controller proportional gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_Q_ki = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Q_ki",
    label="Q Controller integral gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_V_kp = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="V_kp",
    label="V Controller proportional gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_V_ki = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="V_ki",
    label="V Controller integral gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_vdc_kp = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="vdc_kp",
    label="DC-Link Voltage Controller proportional gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_vdc_ki = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="vdc_ki",
    label="DC-Link Voltage Controller integral gain",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=True,
    tab_name="Controller settings",
    unit=""
)

_VSConverter_mask_vdc_set = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="vdc_set",
    label="Inverter DC-Link Voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters:1",
    unit="kV"
)

_VSConverter_mask_dc_cap_en = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="dc_cap_en",
    label="Use Internal DC-Link Capacitor",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit=""
)


_VSConverter_mask_dc_cap_en_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.place_internal_dc_capacitor(mdl, container_handle, new_value)

comp_script.dc_link_cap_value_edited(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_dc_cap_en, "property_value_changed", _VSConverter_mask_dc_cap_en_property_value_changed)


_VSConverter_mask_dc_cap_en_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.dc_link_cap_value_edited(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_dc_cap_en, "property_value_edited", _VSConverter_mask_dc_cap_en_property_value_edited)

_VSConverter_mask_dc_cap = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="dc_cap",
    label="Internal DC-Link Capacitor",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="F"
)

_VSConverter_mask_dc_snub = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="dc_snub",
    label="DC-Link Snubber Resistance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="Ω"
)

_VSConverter_mask_vac_set = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="vac_set",
    label="Nominal AC Line voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="kV"
)

_VSConverter_mask_global_basefreq = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit=""
)


_VSConverter_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_VSConverter_mask_global_basefreq, "property_value_changed", _VSConverter_mask_global_basefreq_property_value_changed)


_VSConverter_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_frequency_prop(mdl, container_handle)

"""
mdl.set_handler_code(_VSConverter_mask_global_basefreq, "property_value_edited", _VSConverter_mask_global_basefreq_property_value_edited)

_VSConverter_mask_Fs = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Fs",
    label="Nominal Frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Inverter Parameters",
    unit="Hz"
)

_VSConverter_mask_Sinv = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Sinv",
    label="Nominal Active Power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="kW"
)

_VSConverter_mask_Qinv = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Qinv",
    label="Nominal Reactive Power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="kVAR"
)

_VSConverter_mask_Rac = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Rac",
    label="Series ac resistance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="Ω"
)

_VSConverter_mask_Lac = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Lac",
    label="Series ac inductance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter Parameters",
    unit="H"
)

_VSConverter_mask_execution_rate = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="execution_rate",
    label="Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Execution Rate:5",
    unit="s"
)

_VSConverter_mask_cont_t = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="cont_t",
    label="Controller start time ",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Initialization:4",
    unit="s"
)

_VSConverter_mask_dss_ctrl = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="dss_ctrl",
    label="OpenDSS control mode",
    widget="combo",
    combo_values=['Fixed', 'PacVac', 'PacQac', 'VdcVac', 'VdcQac'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="OpenDSS Setting:6",
    unit=""
)

_VSConverter_mask_Phases = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Phases",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_kv = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="kv",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_kw = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="kw",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_pf = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="pf",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_model = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="model",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_baseFreq = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="baseFreq",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_r0 = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="r0",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_r1 = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="r1",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_x0 = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="x0",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_x1 = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="x1",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_pu = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="pu",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_Angle = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Angle",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_Frequency = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Frequency",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_basekv = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="basekv",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_VSConverter_mask_gen_ts_en = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="gen_ts_en",
    label="Enable time series",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings:6",
    unit=""
)


_VSConverter_mask_gen_ts_en_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.enable_time_series_value_edited(mdl, container_handle, new_value)
comp_script.enable_time_series(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_gen_ts_en, "property_value_changed", _VSConverter_mask_gen_ts_en_property_value_changed)


_VSConverter_mask_gen_ts_en_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.enable_time_series_value_edited(mdl, container_handle, new_value)

"""
mdl.set_handler_code(_VSConverter_mask_gen_ts_en, "property_value_edited", _VSConverter_mask_gen_ts_en_property_value_edited)

_VSConverter_mask_load_loadshape = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="load_loadshape",
    label="LoadShape object",
    widget="button",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    button_label="Choose",
    unit=""
)


_VSConverter_mask_load_loadshape_button_clicked = """
comp_script_load = return_comp_script_load()
comp_script_load.load_loadshape(mdl, container_handle)

"""
mdl.set_handler_code(_VSConverter_mask_load_loadshape, "button_clicked", _VSConverter_mask_load_loadshape_button_clicked)

_VSConverter_mask_loadshape_name = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape_name",
    label="LoadShape name",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_VSConverter_mask_loadshape_name_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_VSConverter_mask_loadshape_name, "property_value_edited", _VSConverter_mask_loadshape_name_property_value_edited)

_VSConverter_mask_loadshape_from_file = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape_from_file",
    label="From CSV file",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_VSConverter_mask_loadshape_from_file_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_VSConverter_mask_loadshape_from_file, "property_value_edited", _VSConverter_mask_loadshape_from_file_property_value_edited)

_VSConverter_mask_useactual = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="useactual",
    label="Actual value",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_loadshape_from_file_path = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape_from_file_path",
    label="LoadShape from file - path",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_loadshape_from_file_column = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape_from_file_column",
    label="LoadShape from file - column",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_loadshape_from_file_header = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape_from_file_header",
    label="LoadShape from file - header",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_loadshape = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape",
    label="LoadShape points",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_VSConverter_mask_loadshape_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_VSConverter_mask_loadshape, "property_value_edited", _VSConverter_mask_loadshape_property_value_edited)

_VSConverter_mask_loadshape_int = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="loadshape_int",
    label="LoadShape interval",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="h"
)


_VSConverter_mask_loadshape_int_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_VSConverter_mask_loadshape_int, "property_value_edited", _VSConverter_mask_loadshape_int_property_value_edited)

_VSConverter_mask_gen_ts_en_bit = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="gen_ts_en_bit",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_T_Ts = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="T_Ts",
    label="LoadShape time range",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="h"
)

_VSConverter_mask_T_mode = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="T_mode",
    label="LoadShape input mode",
    widget="combo",
    combo_values=['Loadshape index', 'Time'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_VSConverter_mask_T_mode_property_value_edited = """
if new_value == "Time":
    mdl.enable_property(mdl.prop(container_handle, "T_Ts"))
else:
    mdl.disable_property(mdl.prop(container_handle, "T_Ts"))

"""
mdl.set_handler_code(_VSConverter_mask_T_mode, "property_value_edited", _VSConverter_mask_T_mode_property_value_edited)

_VSConverter_mask_S_Ts = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="S_Ts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_Q_Ts = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Q_Ts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_timespan = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="timespan",
    label="Loadshape time span",
    widget="combo",
    combo_values=['Daily', 'Yearly'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_T_Ts_internal = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="T_Ts_internal",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_dssT = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="dssT",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_dssnpts = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="dssnpts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_T_Ts_max = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="T_Ts_max",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_del_Ts = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="del_Ts",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_Slen = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Slen",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_T_lim_low = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="T_lim_low",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_T_lim_high = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="T_lim_high",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_Ts_switch = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="Ts_switch",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_VSConverter_mask_enable_monitoring = mdl.create_property(
    item_handle=_VSConverter_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring",
    unit=""
)


_VSConverter_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_VSConverter_mask, "define_icon", _VSConverter_mask_define_icon)

_VSConverter_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_vsc as comp_script
import dss_thcc_lib.component_scripts.comp_load as comp_script2
importlib.reload(comp_script)
importlib.reload(comp_script2)

def return_comp_script(mdl, item_handle):
    return comp_script

def return_comp_script_load():
    return comp_script2

"""
mdl.set_handler_code(_VSConverter_mask, "init", _VSConverter_mask_init)

_VSConverter_mask_pre_compile = """
# HEADER START
ctrl_mode_str = mdl.get_property_value(mdl.prop(item_handle, "ctrl_mode_str"))
ctrl_mode_int = mdl.get_property_value(mdl.prop(item_handle, "ctrl_mode_int"))
ext_mode = mdl.get_property_value(mdl.prop(item_handle, "ext_mode"))
P_ref_str = mdl.get_property_value(mdl.prop(item_handle, "P_ref_str"))
P_sel = mdl.get_property_value(mdl.prop(item_handle, "P_sel"))
Q_ref_str = mdl.get_property_value(mdl.prop(item_handle, "Q_ref_str"))
Q_sel = mdl.get_property_value(mdl.prop(item_handle, "Q_sel"))
V_ref_str = mdl.get_property_value(mdl.prop(item_handle, "V_ref_str"))
V_sel = mdl.get_property_value(mdl.prop(item_handle, "V_sel"))
vdc_ref_str = mdl.get_property_value(mdl.prop(item_handle, "vdc_ref_str"))
fs_ref_str = mdl.get_property_value(mdl.prop(item_handle, "fs_ref_str"))
w_sel = mdl.get_property_value(mdl.prop(item_handle, "w_sel"))
P_kp = mdl.get_property_value(mdl.prop(item_handle, "P_kp"))
P_ki = mdl.get_property_value(mdl.prop(item_handle, "P_ki"))
Q_kp = mdl.get_property_value(mdl.prop(item_handle, "Q_kp"))
Q_ki = mdl.get_property_value(mdl.prop(item_handle, "Q_ki"))
V_kp = mdl.get_property_value(mdl.prop(item_handle, "V_kp"))
V_ki = mdl.get_property_value(mdl.prop(item_handle, "V_ki"))
vdc_kp = mdl.get_property_value(mdl.prop(item_handle, "vdc_kp"))
vdc_ki = mdl.get_property_value(mdl.prop(item_handle, "vdc_ki"))
vdc_set = mdl.get_property_value(mdl.prop(item_handle, "vdc_set"))
dc_cap_en = mdl.get_property_value(mdl.prop(item_handle, "dc_cap_en"))
dc_cap = mdl.get_property_value(mdl.prop(item_handle, "dc_cap"))
dc_snub = mdl.get_property_value(mdl.prop(item_handle, "dc_snub"))
vac_set = mdl.get_property_value(mdl.prop(item_handle, "vac_set"))
global_basefreq = mdl.get_property_value(mdl.prop(item_handle, "global_basefreq"))
Fs = mdl.get_property_value(mdl.prop(item_handle, "Fs"))
Sinv = mdl.get_property_value(mdl.prop(item_handle, "Sinv"))
Qinv = mdl.get_property_value(mdl.prop(item_handle, "Qinv"))
Rac = mdl.get_property_value(mdl.prop(item_handle, "Rac"))
Lac = mdl.get_property_value(mdl.prop(item_handle, "Lac"))
execution_rate = mdl.get_property_value(mdl.prop(item_handle, "execution_rate"))
cont_t = mdl.get_property_value(mdl.prop(item_handle, "cont_t"))
dss_ctrl = mdl.get_property_value(mdl.prop(item_handle, "dss_ctrl"))
Phases = mdl.get_property_value(mdl.prop(item_handle, "Phases"))
kv = mdl.get_property_value(mdl.prop(item_handle, "kv"))
kw = mdl.get_property_value(mdl.prop(item_handle, "kw"))
pf = mdl.get_property_value(mdl.prop(item_handle, "pf"))
model = mdl.get_property_value(mdl.prop(item_handle, "model"))
basefreq = mdl.get_property_value(mdl.prop(item_handle, "baseFreq"))
r0 = mdl.get_property_value(mdl.prop(item_handle, "r0"))
r1 = mdl.get_property_value(mdl.prop(item_handle, "r1"))
x0 = mdl.get_property_value(mdl.prop(item_handle, "x0"))
x1 = mdl.get_property_value(mdl.prop(item_handle, "x1"))
pu = mdl.get_property_value(mdl.prop(item_handle, "pu"))
Angle = mdl.get_property_value(mdl.prop(item_handle, "Angle"))
Frequency = mdl.get_property_value(mdl.prop(item_handle, "Frequency"))
basekv = mdl.get_property_value(mdl.prop(item_handle, "basekv"))
gen_ts_en = mdl.get_property_value(mdl.prop(item_handle, "gen_ts_en"))
load_loadshape = mdl.get_property_value(mdl.prop(item_handle, "load_loadshape"))
loadshape_name = mdl.get_property_value(mdl.prop(item_handle, "loadshape_name"))
loadshape = mdl.get_property_value(mdl.prop(item_handle, "loadshape"))
loadshape_int = mdl.get_property_value(mdl.prop(item_handle, "loadshape_int"))
gen_ts_en_bit = mdl.get_property_value(mdl.prop(item_handle, "gen_ts_en_bit"))
T_mode = mdl.get_property_value(mdl.prop(item_handle, "T_mode"))
S_Ts = mdl.get_property_value(mdl.prop(item_handle, "S_Ts"))
Q_Ts = mdl.get_property_value(mdl.prop(item_handle, "Q_Ts"))
T_Ts = mdl.get_property_value(mdl.prop(item_handle, "T_Ts"))
T_Ts_internal = mdl.get_property_value(mdl.prop(item_handle, "T_Ts_internal"))
dssT = mdl.get_property_value(mdl.prop(item_handle, "dssT"))
dssnpts = mdl.get_property_value(mdl.prop(item_handle, "dssnpts"))
T_Ts_max = mdl.get_property_value(mdl.prop(item_handle, "T_Ts_max"))
del_Ts = mdl.get_property_value(mdl.prop(item_handle, "del_Ts"))
Slen = mdl.get_property_value(mdl.prop(item_handle, "Slen"))
T_lim_low = mdl.get_property_value(mdl.prop(item_handle, "T_lim_low"))
T_lim_high = mdl.get_property_value(mdl.prop(item_handle, "T_lim_high"))
Ts_switch = mdl.get_property_value(mdl.prop(item_handle, "Ts_switch"))
# HEADER STOP
prop_dict = {"vac_set": vac_set,
             "Sinv": Sinv,
             "Fs": Fs,
             "Qinv": Qinv,
             "ctrl_mode_str": ctrl_mode_str,
             "loadshape": loadshape,
             "loadshape_int": loadshape_int,
             "T_mode": T_mode,
             "T_Ts": T_Ts,
             }
comp_script = return_comp_script(mdl, item_handle)
comp_script.vsc_pre_compile_function(mdl, item_handle, prop_dict)


"""
mdl.set_handler_code(_VSConverter_mask, "pre_compile", _VSConverter_mask_pre_compile)

_VSConverter_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Voltage Source Converter</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This component provides an average model of a three-phase full bridge DC to AC converter.</p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Internal PI controllers (with adjustable gains) are used to implement multiple modes of steady state operations. Note that this component will be converted to a conventional generator mode with only PQ and PV modes when simulated in OpenDSS.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">When external control mode is selected, the operation mode can be selected and changed in real time using the following inputs to "Inverter control mode" input:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">0 = PV operation mode</p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1 = PQ operation mode</p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2 = Vdc-Vac operation mode</p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3 = Vdc-Q operation mode</p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4 = Grid forming operation mode</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Active power P (in kilo Watts), Reactive power Q (In kilo VARs), Line RMS voltage (in Kilo-Volts), DC-Link voltage (in Kilo-Volts) and Line frequency (in Hz) can be controlled individually depending on mode of operation. Controller coefficients for above variables can be set in "Controller settings" tab.</p></body></html>
'''
mdl.set_description(_VSConverter_mask, _VSConverter_mask_desc)
mdl.set_property_value(mdl.prop(_VSConverter_mask, "T_Ts"), "[0, 6, 12, 18, 24]")
mdl.set_property_value(mdl.prop(_VSConverter_mask, "T_mode"), "Loadshape index")
mdl.set_property_value(mdl.prop(_VSConverter_mask, "global_basefreq"), "False")
mdl.set_property_value(mdl.prop(_VSConverter_mask, "loadshape"), "[0.5, 0.8, 1, 0.4, 0.5]")
mdl.set_property_value(mdl.prop(_VSConverter_mask, "loadshape_int"), "1")
mdl.set_property_value(mdl.prop(_VSConverter_mask, "loadshape_name"), "vsc1")


# Component: VSConverter.abc to dq1
_VSConverter_abc_to_dq1 = mdl.create_component(
    type_name="core/abc to dq",
    parent=_VSConverter,
    name="abc to dq1",
    rotation="up",
    flip="flip_none",
    position=(7440, 8248),
    hide_name=True,
    size=(48, 80)
)


# Component: VSConverter.Constant3
_VSConverter_Constant3 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant3",
    rotation="left",
    flip="flip_none",
    position=(7096, 8360),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant3, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant3, "value"), "0")


# Component: VSConverter.abc to dq2
_VSConverter_abc_to_dq2 = mdl.create_component(
    type_name="core/abc to dq",
    parent=_VSConverter,
    name="abc to dq2",
    rotation="up",
    flip="flip_none",
    position=(9232, 8936),
    hide_name=True,
    size=(48, 80)
)


# Component: VSConverter.Product1
_VSConverter_Product1 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product1",
    rotation="up",
    flip="flip_none",
    position=(10296, 8792),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Gain9
_VSConverter_Gain9 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain9",
    rotation="up",
    flip="flip_none",
    position=(10376, 8792),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain9, "gain"), "1.5")


# Component: VSConverter.P_gen
_VSConverter_P_gen = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="P_gen",
    rotation="left",
    flip="flip_none",
    position=(10496, 8752),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_P_gen, "signal_name"), "P")
mdl.set_property_value(mdl.prop(_VSConverter_P_gen, "signal_type"), "active power")


# Component: VSConverter.Product4
_VSConverter_Product4 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product4",
    rotation="up",
    flip="flip_none",
    position=(10296, 8896),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Gain10
_VSConverter_Gain10 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain10",
    rotation="up",
    flip="flip_none",
    position=(10376, 8896),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain10, "gain"), "-1.5")


# Component: VSConverter.Q_gen
_VSConverter_Q_gen = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="Q_gen",
    rotation="left",
    flip="flip_none",
    position=(10496, 8856),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Q_gen, "signal_name"), "Q")
mdl.set_property_value(mdl.prop(_VSConverter_Q_gen, "signal_type"), "active power")


# Component: VSConverter.Sum7
_VSConverter_Sum7 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum7",
    rotation="up",
    flip="flip_none",
    position=(6712, 8792),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum7, "signs"), "+-")


# Component: VSConverter.Integrator3
_VSConverter_Integrator3 = mdl.create_component(
    type_name="core/Integrator",
    parent=_VSConverter,
    name="Integrator3",
    rotation="up",
    flip="flip_none",
    position=(7448, 9008),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Integrator3, "limit_lower"), "-1000*vdc_set*0.05")
mdl.set_property_value(mdl.prop(_VSConverter_Integrator3, "limit_output"), "True")
mdl.set_property_value(mdl.prop(_VSConverter_Integrator3, "limit_upper"), "1000*vdc_set*0.05")


# Component: VSConverter.Sum8
_VSConverter_Sum8 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum8",
    rotation="up",
    flip="flip_none",
    position=(7536, 8944),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum8, "signs"), "++")


# Component: VSConverter.Signal switch3
_VSConverter_Signal_switch3 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch3",
    rotation="up",
    flip="flip_none",
    position=(7016, 8928),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch3, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Constant4
_VSConverter_Constant4 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant4",
    rotation="left",
    flip="flip_none",
    position=(6984, 9056),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant4, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant4, "value"), "0")


# Component: VSConverter.Signal switch4
_VSConverter_Signal_switch4 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch4",
    rotation="up",
    flip="flip_none",
    position=(7152, 8944),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch4, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Sum9
_VSConverter_Sum9 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum9",
    rotation="up",
    flip="flip_none",
    position=(6808, 8400),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum9, "signs"), "+-")


# Component: VSConverter.Integrator4
_VSConverter_Integrator4 = mdl.create_component(
    type_name="core/Integrator",
    parent=_VSConverter,
    name="Integrator4",
    rotation="up",
    flip="flip_none",
    position=(7472, 8632),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Integrator4, "limit_lower"), "-1000*vdc_set*0.05")
mdl.set_property_value(mdl.prop(_VSConverter_Integrator4, "limit_output"), "True")
mdl.set_property_value(mdl.prop(_VSConverter_Integrator4, "limit_upper"), "1000*vdc_set*0.05")


# Component: VSConverter.Gain13
_VSConverter_Gain13 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain13",
    rotation="up",
    flip="flip_none",
    position=(7320, 8616),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain13, "gain"), "P_ki")


# Component: VSConverter.Gain14
_VSConverter_Gain14 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain14",
    rotation="up",
    flip="flip_none",
    position=(7320, 8496),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain14, "gain"), "P_kp")


# Component: VSConverter.Sum10
_VSConverter_Sum10 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum10",
    rotation="up",
    flip="flip_none",
    position=(7560, 8624),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum10, "signs"), "++")


# Component: VSConverter.Signal switch5
_VSConverter_Signal_switch5 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch5",
    rotation="up",
    flip="flip_none",
    position=(7112, 8560),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch5, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Constant5
_VSConverter_Constant5 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant5",
    rotation="left",
    flip="flip_none",
    position=(7080, 8648),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant5, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant5, "value"), "0")


# Component: VSConverter.Signal switch6
_VSConverter_Signal_switch6 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch6",
    rotation="up",
    flip="flip_none",
    position=(7200, 8576),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch6, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Sum11
_VSConverter_Sum11 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum11",
    rotation="up",
    flip="flip_none",
    position=(6720, 8960),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum11, "signs"), "+-")


# Component: VSConverter.V_gen
_VSConverter_V_gen = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="V_gen",
    rotation="up",
    flip="flip_none",
    position=(7872, 8064),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_V_gen, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_V_gen, "signal_type"), "voltage")


# Component: VSConverter.Gain21
_VSConverter_Gain21 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain21",
    rotation="up",
    flip="flip_none",
    position=(10464, 8792),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain21, "gain"), "0.001")


# Component: VSConverter.Gain22
_VSConverter_Gain22 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain22",
    rotation="up",
    flip="flip_none",
    position=(10464, 8896),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain22, "gain"), "0.001")


# Component: VSConverter.Gain23
_VSConverter_Gain23 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain23",
    rotation="up",
    flip="flip_none",
    position=(7768, 8120),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain23, "gain"), "1.224745")


# Component: VSConverter.Constant9
_VSConverter_Constant9 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant9",
    rotation="up",
    flip="flip_none",
    position=(7248, 9176),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant9, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant9, "value"), "ext_mode")


# Component: VSConverter.Signal switch12
_VSConverter_Signal_switch12 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch12",
    rotation="up",
    flip="flip_none",
    position=(6920, 8912),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch12, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Gain24
_VSConverter_Gain24 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain24",
    rotation="up",
    flip="flip_none",
    position=(7296, 8872),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain24, "gain"), "Q_kp")


# Component: VSConverter.Signal switch13
_VSConverter_Signal_switch13 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch13",
    rotation="up",
    flip="flip_none",
    position=(7392, 8888),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch13, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Gain25
_VSConverter_Gain25 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain25",
    rotation="up",
    flip="flip_none",
    position=(7296, 8904),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain25, "gain"), "V_kp")


# Component: VSConverter.Signal switch14
_VSConverter_Signal_switch14 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch14",
    rotation="up",
    flip="flip_none",
    position=(7368, 9008),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch14, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Gain26
_VSConverter_Gain26 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain26",
    rotation="up",
    flip="flip_none",
    position=(7280, 8992),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain26, "gain"), "Q_ki")


# Component: VSConverter.Gain27
_VSConverter_Gain27 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain27",
    rotation="up",
    flip="flip_none",
    position=(7280, 9024),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain27, "gain"), "V_ki")


# Component: VSConverter.C function1
_VSConverter_C_function1 = mdl.create_component(
    type_name="core/C function",
    parent=_VSConverter,
    name="C function1",
    rotation="up",
    flip="flip_none",
    position=(7432, 9200),
    hide_name=True,
    size=(192, 96)
)
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "input_terminals"), "real mode_external;inherit Mode_select_ext;inherit Mode_select_int;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "input_terminals_dimensions"), "inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "input_terminals_feedthrough"), "True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "input_terminals_show_labels"), "True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "output_fnc"), "/*Begin code section*/

if (mode_external) {

    if (Mode_select_ext==0) {

        dED_sel = 0;

        dEQ_sel = 1;

        GF_en = 0;

    }

    else if (Mode_select_ext==1) {

        dED_sel = 1;

        dEQ_sel = 1;

        GF_en = 0;

    }

    else if (Mode_select_ext==2) {

        dED_sel = 0;

        dEQ_sel = 0;

        GF_en = 0;

    }

    else if (Mode_select_ext==3) {

        dED_sel = 1;

        dEQ_sel = 0;

        GF_en = 0;

    }

    else if (Mode_select_ext==4) {

        dED_sel = 0;

        dEQ_sel = 0;

        GF_en = 1;

    }

    else {

        dED_sel = 0;

        dEQ_sel = 1;

        GF_en = 0;

    }

}

else {

    if (Mode_select_int==0) {

        dED_sel = 0;

        dEQ_sel = 1;

        GF_en = 0;

    }

    else if (Mode_select_int==1) {

        dED_sel = 1;

        dEQ_sel = 1;

        GF_en = 0;

    }

    else if (Mode_select_int==2) {

        dED_sel = 0;

        dEQ_sel = 0;

        GF_en = 0;

    }

    else if (Mode_select_int==3) {

        dED_sel = 1;

        dEQ_sel = 0;

        GF_en = 0;

    }

    else if (Mode_select_int==4) {

        dED_sel = 0;

        dEQ_sel = 0;

        GF_en = 1;

    }

    else {

        dED_sel = 0;

        dEQ_sel = 1;

        GF_en = 0;

    }

}

/*End code section*/")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "output_terminals"), "real dED_sel;real dEQ_sel;real GF_en;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "output_terminals_dimensions"), "inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "output_terminals_feedthrough"), "True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function1, "output_terminals_show_labels"), "True;True;True")


# Component: VSConverter.Constant13
_VSConverter_Constant13 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant13",
    rotation="up",
    flip="flip_none",
    position=(7248, 9224),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant13, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant13, "value"), "ctrl_mode_int")


# Component: VSConverter.Gain28
_VSConverter_Gain28 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain28",
    rotation="up",
    flip="flip_none",
    position=(7320, 8528),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain28, "gain"), "vdc_kp")


# Component: VSConverter.Gain29
_VSConverter_Gain29 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain29",
    rotation="up",
    flip="flip_none",
    position=(7320, 8648),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain29, "gain"), "vdc_ki")


# Component: VSConverter.Sum14
_VSConverter_Sum14 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum14",
    rotation="up",
    flip="flip_none",
    position=(6928, 8672),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum14, "signs"), "+-")


# Component: VSConverter.Gain30
_VSConverter_Gain30 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain30",
    rotation="up",
    flip="flip_none",
    position=(6768, 8664),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain30, "gain"), "1000")


# Component: VSConverter.Signal switch15
_VSConverter_Signal_switch15 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch15",
    rotation="up",
    flip="flip_none",
    position=(7392, 8512),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch15, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Signal switch16
_VSConverter_Signal_switch16 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch16",
    rotation="up",
    flip="flip_none",
    position=(7400, 8632),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch16, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Signal switch17
_VSConverter_Signal_switch17 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch17",
    rotation="up",
    flip="flip_none",
    position=(7024, 8544),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch17, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Constant14
_VSConverter_Constant14 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant14",
    rotation="up",
    flip="flip_none",
    position=(6688, 9200),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant14, "execution_rate"), "execution_rate")


# Component: VSConverter.Gain32
_VSConverter_Gain32 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain32",
    rotation="up",
    flip="flip_none",
    position=(7184, 9200),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Vinv_a
_VSConverter_Vinv_a = mdl.create_component(
    type_name="core/Signal Controlled Voltage Source",
    parent=_VSConverter,
    name="Vinv_a",
    rotation="left",
    flip="flip_vertical",
    position=(8304, 9568),
    hide_name=False,
    size=(64, 32)
)


# Component: VSConverter.Vinv_b
_VSConverter_Vinv_b = mdl.create_component(
    type_name="core/Signal Controlled Voltage Source",
    parent=_VSConverter,
    name="Vinv_b",
    rotation="left",
    flip="flip_vertical",
    position=(8376, 9632),
    hide_name=False,
    size=(64, 32)
)


# Component: VSConverter.Vinv_c
_VSConverter_Vinv_c = mdl.create_component(
    type_name="core/Signal Controlled Voltage Source",
    parent=_VSConverter,
    name="Vinv_c",
    rotation="left",
    flip="flip_vertical",
    position=(8448, 9704),
    hide_name=False,
    size=(64, 32)
)


# Component: VSConverter.Ra
_VSConverter_Ra = mdl.create_component(
    type_name="core/Resistor",
    parent=_VSConverter,
    name="Ra",
    rotation="up",
    flip="flip_none",
    position=(8560, 9424),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Ra, "resistance"), "Rac")


# Component: VSConverter.Rb
_VSConverter_Rb = mdl.create_component(
    type_name="core/Resistor",
    parent=_VSConverter,
    name="Rb",
    rotation="up",
    flip="flip_none",
    position=(8560, 9504),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Rb, "resistance"), "Rac")


# Component: VSConverter.Rc
_VSConverter_Rc = mdl.create_component(
    type_name="core/Resistor",
    parent=_VSConverter,
    name="Rc",
    rotation="up",
    flip="flip_none",
    position=(8560, 9584),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Rc, "resistance"), "Rac")


# Component: VSConverter.La
_VSConverter_La = mdl.create_component(
    type_name="core/Inductor",
    parent=_VSConverter,
    name="La",
    rotation="up",
    flip="flip_none",
    position=(8688, 9424),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_La, "inductance"), "Lac")


# Component: VSConverter.Lb
_VSConverter_Lb = mdl.create_component(
    type_name="core/Inductor",
    parent=_VSConverter,
    name="Lb",
    rotation="up",
    flip="flip_none",
    position=(8688, 9504),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Lb, "inductance"), "Lac")


# Component: VSConverter.Lc
_VSConverter_Lc = mdl.create_component(
    type_name="core/Inductor",
    parent=_VSConverter,
    name="Lc",
    rotation="up",
    flip="flip_none",
    position=(8696, 9584),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Lc, "inductance"), "Lac")


# Component: VSConverter.Ia
_VSConverter_Ia = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_VSConverter,
    name="Ia",
    rotation="up",
    flip="flip_none",
    position=(8808, 9424),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Ia, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Ia, "sig_output"), "True")


# Component: VSConverter.Ib
_VSConverter_Ib = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_VSConverter,
    name="Ib",
    rotation="up",
    flip="flip_none",
    position=(8808, 9504),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Ib, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Ib, "sig_output"), "True")


# Component: VSConverter.Ic
_VSConverter_Ic = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_VSConverter,
    name="Ic",
    rotation="up",
    flip="flip_none",
    position=(8808, 9584),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Ic, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Ic, "sig_output"), "True")


# Component: VSConverter.Va
_VSConverter_Va = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_VSConverter,
    name="Va",
    rotation="right",
    flip="flip_none",
    position=(8960, 9688),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Va, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Va, "sig_output"), "True")


# Component: VSConverter.Vb
_VSConverter_Vb = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_VSConverter,
    name="Vb",
    rotation="right",
    flip="flip_none",
    position=(9040, 9688),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Vb, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Vb, "sig_output"), "True")


# Component: VSConverter.Vc
_VSConverter_Vc = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_VSConverter,
    name="Vc",
    rotation="right",
    flip="flip_none",
    position=(9120, 9688),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Vc, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Vc, "sig_output"), "True")


# Component: VSConverter.Sum15
_VSConverter_Sum15 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum15",
    rotation="up",
    flip="flip_none",
    position=(10296, 8488),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum15, "signs"), "+-")


# Component: VSConverter.Sum16
_VSConverter_Sum16 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum16",
    rotation="up",
    flip="flip_none",
    position=(10296, 8592),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum16, "signs"), "+-")


# Component: VSConverter.Sum17
_VSConverter_Sum17 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum17",
    rotation="up",
    flip="flip_none",
    position=(10296, 8696),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum17, "signs"), "+-")


# Component: VSConverter.Vab
_VSConverter_Vab = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="Vab",
    rotation="up",
    flip="flip_none",
    position=(10384, 8488),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Vab, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_Vab, "signal_type"), "voltage")


# Component: VSConverter.Vbc
_VSConverter_Vbc = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="Vbc",
    rotation="up",
    flip="flip_none",
    position=(10384, 8592),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Vbc, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_Vbc, "signal_type"), "voltage")


# Component: VSConverter.Vca
_VSConverter_Vca = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="Vca",
    rotation="up",
    flip="flip_none",
    position=(10384, 8696),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Vca, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_Vca, "signal_type"), "voltage")


# Component: VSConverter.Subsystem8
_VSConverter_Subsystem8 = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_VSConverter,
    name="Subsystem8",
    rotation="right",
    flip="flip_vertical",
    position=(7584, 8176),
    hide_name=True,
    size=(48, 64)
)


# Component: VSConverter.Subsystem8.Product5
_VSConverter_Subsystem8_Product5 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter_Subsystem8,
    name="Product5",
    rotation="up",
    flip="flip_none",
    position=(8080, 7888),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem8.Signal switch14
_VSConverter_Subsystem8_Signal_switch14 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem8,
    name="Signal switch14",
    rotation="up",
    flip="flip_none",
    position=(9072, 8360),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Signal_switch14, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem8.Sum16
_VSConverter_Subsystem8_Sum16 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem8,
    name="Sum16",
    rotation="up",
    flip="flip_none",
    position=(8160, 7920),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem8.Sum19
_VSConverter_Subsystem8_Sum19 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem8,
    name="Sum19",
    rotation="up",
    flip="flip_none",
    position=(8232, 8072),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem8.Mathematical function2
_VSConverter_Subsystem8_Mathematical_function2 = mdl.create_component(
    type_name="core/Mathematical function",
    parent=_VSConverter_Subsystem8,
    name="Mathematical function2",
    rotation="up",
    flip="flip_none",
    position=(8264, 7920),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Mathematical_function2, "mathematical_fn"), "sqrt")


# Component: VSConverter.Subsystem8.Sum21
_VSConverter_Subsystem8_Sum21 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem8,
    name="Sum21",
    rotation="up",
    flip="flip_none",
    position=(8888, 8432),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Sum21, "signs"), "+-")


# Component: VSConverter.Subsystem8.Constant6
_VSConverter_Subsystem8_Constant6 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem8,
    name="Constant6",
    rotation="up",
    flip="flip_none",
    position=(8152, 8080),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant6, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant6, "value"), "0.001")


# Component: VSConverter.Subsystem8.Product4
_VSConverter_Subsystem8_Product4 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter_Subsystem8,
    name="Product4",
    rotation="up",
    flip="flip_none",
    position=(8080, 7968),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem8.Constant9
_VSConverter_Subsystem8_Constant9 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem8,
    name="Constant9",
    rotation="up",
    flip="flip_none",
    position=(8744, 8424),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant9, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant9, "value"), "-np.pi")


# Component: VSConverter.Subsystem8.Constant7
_VSConverter_Subsystem8_Constant7 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem8,
    name="Constant7",
    rotation="up",
    flip="flip_none",
    position=(8608, 8000),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant7, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant7, "value"), "0")


# Component: VSConverter.Subsystem8.Trigonometric function4
_VSConverter_Subsystem8_Trigonometric_function4 = mdl.create_component(
    type_name="core/Trigonometric function",
    parent=_VSConverter_Subsystem8,
    name="Trigonometric function4",
    rotation="up",
    flip="flip_none",
    position=(8688, 8032),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Trigonometric_function4, "trigonometric_fn"), "asin")


# Component: VSConverter.Subsystem8.Constant10
_VSConverter_Subsystem8_Constant10 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem8,
    name="Constant10",
    rotation="up",
    flip="flip_none",
    position=(8944, 8328),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant10, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant10, "value"), "0")


# Component: VSConverter.Subsystem8.Comparator4
_VSConverter_Subsystem8_Comparator4 = mdl.create_component(
    type_name="core/Comparator",
    parent=_VSConverter_Subsystem8,
    name="Comparator4",
    rotation="up",
    flip="flip_none",
    position=(8264, 8160),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Subsystem8.Signal switch12
_VSConverter_Subsystem8_Signal_switch12 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem8,
    name="Signal switch12",
    rotation="up",
    flip="flip_none",
    position=(8392, 8080),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Signal_switch12, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem8.Product7
_VSConverter_Subsystem8_Product7 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter_Subsystem8,
    name="Product7",
    rotation="up",
    flip="flip_none",
    position=(8512, 7872),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Product7, "signs"), "*/")


# Component: VSConverter.Subsystem8.Signal switch13
_VSConverter_Subsystem8_Signal_switch13 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem8,
    name="Signal switch13",
    rotation="up",
    flip="flip_none",
    position=(9000, 8208),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Signal_switch13, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem8.Relational operator2
_VSConverter_Subsystem8_Relational_operator2 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_VSConverter_Subsystem8,
    name="Relational operator2",
    rotation="up",
    flip="flip_none",
    position=(8344, 7992),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Subsystem8.Sum20
_VSConverter_Subsystem8_Sum20 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem8,
    name="Sum20",
    rotation="up",
    flip="flip_none",
    position=(8880, 8360),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Sum20, "signs"), "+-")


# Component: VSConverter.Subsystem8.Constant5
_VSConverter_Subsystem8_Constant5 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem8,
    name="Constant5",
    rotation="up",
    flip="flip_none",
    position=(8264, 8000),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant5, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant5, "value"), "0")


# Component: VSConverter.Subsystem8.Constant8
_VSConverter_Subsystem8_Constant8 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem8,
    name="Constant8",
    rotation="up",
    flip="flip_none",
    position=(8744, 8352),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant8, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Constant8, "value"), "np.pi")


# Component: VSConverter.Subsystem8.Signal switch4
_VSConverter_Subsystem8_Signal_switch4 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem8,
    name="Signal switch4",
    rotation="up",
    flip="flip_none",
    position=(8768, 8016),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem8_Signal_switch4, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem8.Comparator5
_VSConverter_Subsystem8_Comparator5 = mdl.create_component(
    type_name="core/Comparator",
    parent=_VSConverter_Subsystem8,
    name="Comparator5",
    rotation="up",
    flip="flip_none",
    position=(9008, 8312),
    hide_name=True,
    size=(None, None)
)


# Port: VSConverter.Subsystem8.mag
_VSConverter_Subsystem8_mag = mdl.create_port(
    name="mag",
    parent=_VSConverter_Subsystem8,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8336, 7920)
)

# Port: VSConverter.Subsystem8.d
_VSConverter_Subsystem8_d = mdl.create_port(
    name="d",
    parent=_VSConverter_Subsystem8,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 2),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7776, 8304)
)

# Port: VSConverter.Subsystem8.q
_VSConverter_Subsystem8_q = mdl.create_port(
    name="q",
    parent=_VSConverter_Subsystem8,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7696, 7872)
)

# Port: VSConverter.Subsystem8.Angle
_VSConverter_Subsystem8_Angle = mdl.create_port(
    name="Angle",
    parent=_VSConverter_Subsystem8,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 2),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(9072, 8208)
)

# Junction: VSConverter.Subsystem8.Junction38
_VSConverter_Subsystem8_Junction38 = mdl.create_junction(
    name="Junction38",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8304, 7984)
)

# Junction: VSConverter.Subsystem8.Junction39
_VSConverter_Subsystem8_Junction39 = mdl.create_junction(
    name="Junction39",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8304, 8024)
)

# Junction: VSConverter.Subsystem8.Junction40
_VSConverter_Subsystem8_Junction40 = mdl.create_junction(
    name="Junction40",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8184, 8080)
)

# Junction: VSConverter.Subsystem8.Junction43
_VSConverter_Subsystem8_Junction43 = mdl.create_junction(
    name="Junction43",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8816, 8192)
)

# Junction: VSConverter.Subsystem8.Junction44
_VSConverter_Subsystem8_Junction44 = mdl.create_junction(
    name="Junction44",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8816, 8304)
)

# Junction: VSConverter.Subsystem8.Junction45
_VSConverter_Subsystem8_Junction45 = mdl.create_junction(
    name="Junction45",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8816, 8368)
)

# Junction: VSConverter.Subsystem8.Junction46
_VSConverter_Subsystem8_Junction46 = mdl.create_junction(
    name="Junction46",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(7792, 7872)
)

# Junction: VSConverter.Subsystem8.Junction24
_VSConverter_Subsystem8_Junction24 = mdl.create_junction(
    name="Junction24",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8032, 7896)
)

# Junction: VSConverter.Subsystem8.Junction29
_VSConverter_Subsystem8_Junction29 = mdl.create_junction(
    name="Junction29",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8024, 7976)
)

# Junction: VSConverter.Subsystem8.Junction33
_VSConverter_Subsystem8_Junction33 = mdl.create_junction(
    name="Junction33",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(7824, 8304)
)

# Junction: VSConverter.Subsystem8.Junction35
_VSConverter_Subsystem8_Junction35 = mdl.create_junction(
    name="Junction35",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8304, 7920)
)

# Junction: VSConverter.Subsystem8.Junction37
_VSConverter_Subsystem8_Junction37 = mdl.create_junction(
    name="Junction37",
    parent=_VSConverter_Subsystem8,
    kind="sp",
    position=(8392, 7992)
)

# Component: VSConverter.Comparator1
_VSConverter_Comparator1 = mdl.create_component(
    type_name="core/Comparator",
    parent=_VSConverter,
    name="Comparator1",
    rotation="up",
    flip="flip_none",
    position=(8224, 8264),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Clock1
_VSConverter_Clock1 = mdl.create_component(
    type_name="core/Clock",
    parent=_VSConverter,
    name="Clock1",
    rotation="up",
    flip="flip_none",
    position=(8080, 8256),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Clock1, "execution_rate"), "execution_rate")


# Component: VSConverter.Constant21
_VSConverter_Constant21 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant21",
    rotation="up",
    flip="flip_none",
    position=(8128, 8296),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant21, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant21, "value"), "cont_t")


# Component: VSConverter.Constant22
_VSConverter_Constant22 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant22",
    rotation="up",
    flip="flip_none",
    position=(6224, 8384),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant22, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant22, "value"), "Sinv")


# Component: VSConverter.Constant23
_VSConverter_Constant23 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant23",
    rotation="up",
    flip="flip_none",
    position=(6224, 8424),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant23, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant23, "value"), "Qinv")


# Component: VSConverter.Constant24
_VSConverter_Constant24 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant24",
    rotation="up",
    flip="flip_none",
    position=(6224, 8344),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant24, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant24, "value"), "Fs")


# Component: VSConverter.Constant25
_VSConverter_Constant25 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant25",
    rotation="up",
    flip="flip_none",
    position=(6224, 8472),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant25, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant25, "value"), "vac_set")


# Component: VSConverter.dq to abc1
_VSConverter_dq_to_abc1 = mdl.create_component(
    type_name="core/dq to abc",
    parent=_VSConverter,
    name="dq to abc1",
    rotation="up",
    flip="flip_none",
    position=(8832, 8816),
    hide_name=False,
    size=(48, 80)
)
mdl.set_property_value(mdl.prop(_VSConverter_dq_to_abc1, "execution_rate"), "inherit")


# Component: VSConverter.Constant27
_VSConverter_Constant27 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant27",
    rotation="left",
    flip="flip_none",
    position=(8744, 8872),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant27, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant27, "value"), "0")


# Component: VSConverter.Gain33
_VSConverter_Gain33 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain33",
    rotation="up",
    flip="flip_none",
    position=(6976, 8248),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain33, "gain"), "2*np.pi")


# Component: VSConverter.Constant28
_VSConverter_Constant28 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant28",
    rotation="left",
    flip="flip_none",
    position=(7016, 8360),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant28, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant28, "value"), "2*np.pi")


# Component: VSConverter.C function2
_VSConverter_C_function2 = mdl.create_component(
    type_name="core/C function",
    parent=_VSConverter,
    name="C function2",
    rotation="up",
    flip="flip_none",
    position=(7208, 8272),
    hide_name=True,
    size=(112, 80)
)
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "global_variables"), "real out_mem;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "init_fnc"), "/*Begin code section*/

out_mem = ang_init;

/*End code section*/")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "input_terminals"), "real in;real reset_level;real dt;real ang_init;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "input_terminals_feedthrough"), "True;True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "input_terminals_show_labels"), "True;True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "output_fnc"), "/*Begin code section*/

out = dt * in + out_mem;

if (out>reset_level) {

    out = out - reset_level;

}



out_mem = out;

/*End code section*/")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "output_terminals_dimensions"), "inherit")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "output_terminals_feedthrough"), "True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function2, "output_terminals_show_labels"), "True")


# Component: VSConverter.Constant30
_VSConverter_Constant30 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant30",
    rotation="left",
    flip="flip_none",
    position=(7056, 8360),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant30, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant30, "value"), "execution_rate")


# Component: VSConverter.Sum19
_VSConverter_Sum19 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum19",
    rotation="up",
    flip="flip_none",
    position=(8736, 8952),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum19, "signs"), "++")


# Component: VSConverter.Constant31
_VSConverter_Constant31 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant31",
    rotation="up",
    flip="flip_none",
    position=(8664, 8960),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant31, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant31, "value"), "execution_rate*Fs*2*np.pi")


# Component: VSConverter.Sum23
_VSConverter_Sum23 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum23",
    rotation="up",
    flip="flip_none",
    position=(7944, 8584),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum23, "signs"), "++")


# Component: VSConverter.Limit1
_VSConverter_Limit1 = mdl.create_component(
    type_name="core/Limit",
    parent=_VSConverter,
    name="Limit1",
    rotation="up",
    flip="flip_none",
    position=(7632, 8624),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Limit1, "lower_limit"), "-1000*vdc_set*0.05")
mdl.set_property_value(mdl.prop(_VSConverter_Limit1, "upper_limit"), "1000*vdc_set*0.05")


# Component: VSConverter.Limit2
_VSConverter_Limit2 = mdl.create_component(
    type_name="core/Limit",
    parent=_VSConverter,
    name="Limit2",
    rotation="up",
    flip="flip_none",
    position=(7616, 8944),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Limit2, "lower_limit"), "-1000*vdc_set*0.05")
mdl.set_property_value(mdl.prop(_VSConverter_Limit2, "upper_limit"), "1000*vdc_set*0.05")


# Component: VSConverter.Sum24
_VSConverter_Sum24 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum24",
    rotation="up",
    flip="flip_none",
    position=(7936, 8736),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum24, "signs"), "+")


# Component: VSConverter.Sum25
_VSConverter_Sum25 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum25",
    rotation="up",
    flip="flip_none",
    position=(9304, 8704),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum25, "signs"), "++")


# Component: VSConverter.Sum26
_VSConverter_Sum26 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum26",
    rotation="up",
    flip="flip_none",
    position=(6912, 8528),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum26, "signs"), "+-")


# Component: VSConverter.Constant38
_VSConverter_Constant38 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant38",
    rotation="up",
    flip="flip_none",
    position=(6640, 8408),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant38, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant38, "value"), "0")


# Component: VSConverter.Rate Limiter1
_VSConverter_Rate_Limiter1 = mdl.create_component(
    type_name="core/Rate Limiter",
    parent=_VSConverter,
    name="Rate Limiter1",
    rotation="right",
    flip="flip_none",
    position=(6848, 8472),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Rate_Limiter1, "falling_limit"), "-1*Sinv*Fs*1000")
mdl.set_property_value(mdl.prop(_VSConverter_Rate_Limiter1, "rising_limit"), "1*Sinv*Fs*1000")


# Component: VSConverter.Sum27
_VSConverter_Sum27 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum27",
    rotation="up",
    flip="flip_none",
    position=(6832, 8896),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum27, "signs"), "+-")


# Component: VSConverter.Constant39
_VSConverter_Constant39 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant39",
    rotation="up",
    flip="flip_none",
    position=(6560, 8800),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant39, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant39, "value"), "0")


# Component: VSConverter.Rate Limiter4
_VSConverter_Rate_Limiter4 = mdl.create_component(
    type_name="core/Rate Limiter",
    parent=_VSConverter,
    name="Rate Limiter4",
    rotation="right",
    flip="flip_none",
    position=(6776, 8840),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Rate_Limiter4, "falling_limit"), "-1*Sinv*Fs*1000")
mdl.set_property_value(mdl.prop(_VSConverter_Rate_Limiter4, "rising_limit"), "1*Sinv*Fs*1000")


# Component: VSConverter.Isp1
_VSConverter_Isp1 = mdl.create_component(
    type_name="core/Signal Controlled Current Source",
    parent=_VSConverter,
    name="Isp1",
    rotation="right",
    flip="flip_none",
    position=(7880, 9520),
    hide_name=False,
    size=(64, 32)
)


# Component: VSConverter.C function3
_VSConverter_C_function3 = mdl.create_component(
    type_name="core/C function",
    parent=_VSConverter,
    name="C function3",
    rotation="up",
    flip="flip_none",
    position=(9824, 8776),
    hide_name=True,
    size=(120, 392)
)
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "global_variables"), "real ia_add;real ib_add;real ic_add;real ia_addn;real ib_addn;real ic_addn;real idcp;real idcn;real Emax;real Z;real VLL;real con_mode;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "init_fnc"), "/*Begin code section*/

Z = sqrt(Rac*Rac+Fs*Fs*4*Lac*Lac*9.8696);

/*End code section*/")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "input_terminals"), "real Vdc;real Ea;inherit Eb;inherit Ec;inherit ia;inherit ib;inherit ic;inherit va;inherit vb;inherit vc;inherit mc;inherit con_en;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "input_terminals_feedthrough"), "True;True;True;True;True;True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "input_terminals_show_labels"), "True;True;True;True;True;True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "output_fnc"), "/*Begin code section*/

Ea1 = Ea;

Eb1 = Eb;

Ec1 = Ec;

Emax = Ea-Eb;

VLL = va-vb;

con_mode = 1;

if ((vb-va)>VLL) {

    Emax = Eb-Ea;

    VLL = vb-va;

    con_mode = 2;

}

else if ((vb-vc)>VLL) {

    Emax = Eb-Ec;

    VLL = vb-vc;

    con_mode = 3;

}

else if ((vc-vb)>VLL) {

    Emax = Ec-Eb;

    VLL = vc-vb;

    con_mode = 4;

}

else if ((vc-va)>VLL) {

    Emax = Ec-Ea;

    VLL = vc-va;

    con_mode = 5;

}

else if ((va-vc)>VLL) {

    Emax = Ea-Ec;

    VLL = va-vc;

    con_mode = 6;

}







if (con_en==1) {

if (Vdc<VLL) {

    if (con_mode==1) {

        Ea1 = Vdc/2;

        Eb1 = -Vdc/2;

    }

    else if (con_mode==2) {

        Eb1 = Vdc/2;

        Ea1 = -Vdc/2;

    }

    else if (con_mode==3) {

        Eb1 = Vdc/2;

        Ec1 = -Vdc/2;

    }

    else if (con_mode==4) {

        Ec1 = Vdc/2;

        Eb1 = -Vdc/2;

    }

    else if (con_mode==5) {

        Ec1 = Vdc/2;

        Ea1 = -Vdc/2;

    }

    else if (con_mode==6) {

        Ea1 = Vdc/2;

        Ec1 = -Vdc/2;

    }



}

}















if (ia>=0) {

    if (Ea1>=0) {

        ia_add = -ia;

        ia_addn = 0;

    }

    else {

        ia_add = 0;

        ia_addn = ia;

    }

}

else {

    if (Ea1>=0) {

        ia_add = -ia;

        ia_addn = 0;

    }

    else {

        ia_add = 0;

        ia_addn = ia;

    }

}





if (ib>=0) {

    if (Eb1>=0) {

        ib_add = -ib;

        ib_addn = 0;

    }

    else {

        ib_add = 0;

        ib_addn = ib;

    }

}

else {

    if (Eb1>=0) {

        ib_add = -ib;

        ib_addn = 0;

    }

    else {

        ib_add = 0;

        ib_addn = ib;

    }

}





if (ic>=0) {

    if (Ec1>=0) {

        ic_add = -ic;

        ic_addn = 0;

    }

    else {

        ic_add = 0;

        ic_addn = ic;

    }

}

else {

    if (Ec1>=0) {

        ic_add = -ic;

        ic_addn = 0;

    }

    else {

        ic_add = 0;

        ic_addn = ic;

    }

}



idcp = mc*(ia_add + ib_add + ic_add);

idcn = mc*(ia_addn + ib_addn + ic_addn);



if (idcp>=0 && idcp>=idcn) {

    idc = idcp;

}

else if (idcp<0 && idcp>=idcn) {

    idc = idcn;

}

else if (idcp>=0 && idcp<idcn) {

    idc = idcn;

}

else if (idcp<0 && idcp<idcn) {

    idc = idcp;

}

else {

    idc = idcp;

}





if (Vdc<-2) {

    idc = -Vdc;

}

/*End code section*/")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "output_terminals"), "real idc;real Ea1;real Eb1;real Ec1;")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "output_terminals_dimensions"), "inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "output_terminals_feedthrough"), "True;True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "output_terminals_show_labels"), "True;True;True;True")
mdl.set_property_value(mdl.prop(_VSConverter_C_function3, "parameters"), "real Rac;real Lac;real Fs;")


# Component: VSConverter.Va1
_VSConverter_Va1 = mdl.create_component(
    type_name="core/Voltage Measurement",
    parent=_VSConverter,
    name="Va1",
    rotation="right",
    flip="flip_none",
    position=(7976, 9512),
    hide_name=False,
    size=(64, 32)
)
mdl.set_property_value(mdl.prop(_VSConverter_Va1, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Va1, "sig_output"), "True")


# Component: VSConverter.DC_C
_VSConverter_DC_C = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="DC_C",
    rotation="left",
    flip="flip_none",
    position=(9920, 8560),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_DC_C, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_DC_C, "signal_type"), "current")


# Component: VSConverter.DC_VDC
_VSConverter_DC_VDC = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="DC_VDC",
    rotation="up",
    flip="flip_none",
    position=(8056, 9568),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_DC_VDC, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_DC_VDC, "signal_type"), "voltage")


# Component: VSConverter.Subsystem9
_VSConverter_Subsystem9 = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_VSConverter,
    name="Subsystem9",
    rotation="up",
    flip="flip_vertical",
    position=(8064, 8672),
    hide_name=True,
    size=(48, 64)
)


# Component: VSConverter.Subsystem9.Constant10
_VSConverter_Subsystem9_Constant10 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem9,
    name="Constant10",
    rotation="up",
    flip="flip_none",
    position=(8944, 8328),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant10, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant10, "value"), "0")


# Component: VSConverter.Subsystem9.Comparator4
_VSConverter_Subsystem9_Comparator4 = mdl.create_component(
    type_name="core/Comparator",
    parent=_VSConverter_Subsystem9,
    name="Comparator4",
    rotation="up",
    flip="flip_none",
    position=(8264, 8160),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Subsystem9.Signal switch12
_VSConverter_Subsystem9_Signal_switch12 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem9,
    name="Signal switch12",
    rotation="up",
    flip="flip_none",
    position=(8392, 8080),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Signal_switch12, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem9.Product7
_VSConverter_Subsystem9_Product7 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter_Subsystem9,
    name="Product7",
    rotation="up",
    flip="flip_none",
    position=(8512, 7872),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Product7, "signs"), "*/")


# Component: VSConverter.Subsystem9.Signal switch13
_VSConverter_Subsystem9_Signal_switch13 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem9,
    name="Signal switch13",
    rotation="up",
    flip="flip_none",
    position=(9000, 8208),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Signal_switch13, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem9.Relational operator2
_VSConverter_Subsystem9_Relational_operator2 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_VSConverter_Subsystem9,
    name="Relational operator2",
    rotation="up",
    flip="flip_none",
    position=(8344, 7992),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Subsystem9.Sum20
_VSConverter_Subsystem9_Sum20 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem9,
    name="Sum20",
    rotation="up",
    flip="flip_none",
    position=(8880, 8360),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Sum20, "signs"), "+-")


# Component: VSConverter.Subsystem9.Constant5
_VSConverter_Subsystem9_Constant5 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem9,
    name="Constant5",
    rotation="up",
    flip="flip_none",
    position=(8264, 8000),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant5, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant5, "value"), "0")


# Component: VSConverter.Subsystem9.Constant8
_VSConverter_Subsystem9_Constant8 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem9,
    name="Constant8",
    rotation="up",
    flip="flip_none",
    position=(8744, 8352),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant8, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant8, "value"), "np.pi")


# Component: VSConverter.Subsystem9.Signal switch4
_VSConverter_Subsystem9_Signal_switch4 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem9,
    name="Signal switch4",
    rotation="up",
    flip="flip_none",
    position=(8768, 8016),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Signal_switch4, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem9.Comparator5
_VSConverter_Subsystem9_Comparator5 = mdl.create_component(
    type_name="core/Comparator",
    parent=_VSConverter_Subsystem9,
    name="Comparator5",
    rotation="up",
    flip="flip_none",
    position=(9008, 8312),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Subsystem9.Product5
_VSConverter_Subsystem9_Product5 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter_Subsystem9,
    name="Product5",
    rotation="up",
    flip="flip_none",
    position=(8080, 7888),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem9.Signal switch14
_VSConverter_Subsystem9_Signal_switch14 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter_Subsystem9,
    name="Signal switch14",
    rotation="up",
    flip="flip_none",
    position=(9072, 8360),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Signal_switch14, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Subsystem9.Sum16
_VSConverter_Subsystem9_Sum16 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem9,
    name="Sum16",
    rotation="up",
    flip="flip_none",
    position=(8160, 7920),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem9.Sum19
_VSConverter_Subsystem9_Sum19 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem9,
    name="Sum19",
    rotation="up",
    flip="flip_none",
    position=(8232, 8072),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem9.Mathematical function2
_VSConverter_Subsystem9_Mathematical_function2 = mdl.create_component(
    type_name="core/Mathematical function",
    parent=_VSConverter_Subsystem9,
    name="Mathematical function2",
    rotation="up",
    flip="flip_none",
    position=(8264, 7920),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Mathematical_function2, "mathematical_fn"), "sqrt")


# Component: VSConverter.Subsystem9.Sum21
_VSConverter_Subsystem9_Sum21 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter_Subsystem9,
    name="Sum21",
    rotation="up",
    flip="flip_none",
    position=(8888, 8432),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Sum21, "signs"), "+-")


# Component: VSConverter.Subsystem9.Constant6
_VSConverter_Subsystem9_Constant6 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem9,
    name="Constant6",
    rotation="up",
    flip="flip_none",
    position=(8152, 8080),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant6, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant6, "value"), "0.001")


# Component: VSConverter.Subsystem9.Product4
_VSConverter_Subsystem9_Product4 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter_Subsystem9,
    name="Product4",
    rotation="up",
    flip="flip_none",
    position=(8080, 7968),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Subsystem9.Constant9
_VSConverter_Subsystem9_Constant9 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem9,
    name="Constant9",
    rotation="up",
    flip="flip_none",
    position=(8744, 8424),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant9, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant9, "value"), "-np.pi")


# Component: VSConverter.Subsystem9.Constant7
_VSConverter_Subsystem9_Constant7 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter_Subsystem9,
    name="Constant7",
    rotation="up",
    flip="flip_none",
    position=(8608, 8000),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant7, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Constant7, "value"), "0")


# Component: VSConverter.Subsystem9.Trigonometric function4
_VSConverter_Subsystem9_Trigonometric_function4 = mdl.create_component(
    type_name="core/Trigonometric function",
    parent=_VSConverter_Subsystem9,
    name="Trigonometric function4",
    rotation="up",
    flip="flip_none",
    position=(8688, 8032),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Subsystem9_Trigonometric_function4, "trigonometric_fn"), "asin")


# Port: VSConverter.Subsystem9.mag
_VSConverter_Subsystem9_mag = mdl.create_port(
    name="mag",
    parent=_VSConverter_Subsystem9,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8336, 7920)
)

# Port: VSConverter.Subsystem9.d
_VSConverter_Subsystem9_d = mdl.create_port(
    name="d",
    parent=_VSConverter_Subsystem9,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 2),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7776, 8304)
)

# Port: VSConverter.Subsystem9.q
_VSConverter_Subsystem9_q = mdl.create_port(
    name="q",
    parent=_VSConverter_Subsystem9,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7696, 7872)
)

# Port: VSConverter.Subsystem9.Angle
_VSConverter_Subsystem9_Angle = mdl.create_port(
    name="Angle",
    parent=_VSConverter_Subsystem9,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 2),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(9072, 8208)
)

# Junction: VSConverter.Subsystem9.Junction24
_VSConverter_Subsystem9_Junction24 = mdl.create_junction(
    name="Junction24",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8032, 7896)
)

# Junction: VSConverter.Subsystem9.Junction29
_VSConverter_Subsystem9_Junction29 = mdl.create_junction(
    name="Junction29",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8024, 7976)
)

# Junction: VSConverter.Subsystem9.Junction33
_VSConverter_Subsystem9_Junction33 = mdl.create_junction(
    name="Junction33",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(7824, 8304)
)

# Junction: VSConverter.Subsystem9.Junction35
_VSConverter_Subsystem9_Junction35 = mdl.create_junction(
    name="Junction35",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8304, 7920)
)

# Junction: VSConverter.Subsystem9.Junction37
_VSConverter_Subsystem9_Junction37 = mdl.create_junction(
    name="Junction37",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8392, 7992)
)

# Junction: VSConverter.Subsystem9.Junction38
_VSConverter_Subsystem9_Junction38 = mdl.create_junction(
    name="Junction38",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8304, 7984)
)

# Junction: VSConverter.Subsystem9.Junction39
_VSConverter_Subsystem9_Junction39 = mdl.create_junction(
    name="Junction39",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8304, 8024)
)

# Junction: VSConverter.Subsystem9.Junction40
_VSConverter_Subsystem9_Junction40 = mdl.create_junction(
    name="Junction40",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8184, 8080)
)

# Junction: VSConverter.Subsystem9.Junction43
_VSConverter_Subsystem9_Junction43 = mdl.create_junction(
    name="Junction43",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8816, 8192)
)

# Junction: VSConverter.Subsystem9.Junction44
_VSConverter_Subsystem9_Junction44 = mdl.create_junction(
    name="Junction44",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8816, 8304)
)

# Junction: VSConverter.Subsystem9.Junction45
_VSConverter_Subsystem9_Junction45 = mdl.create_junction(
    name="Junction45",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(8816, 8368)
)

# Junction: VSConverter.Subsystem9.Junction46
_VSConverter_Subsystem9_Junction46 = mdl.create_junction(
    name="Junction46",
    parent=_VSConverter_Subsystem9,
    kind="sp",
    position=(7792, 7872)
)

# Component: VSConverter.Limit3
_VSConverter_Limit3 = mdl.create_component(
    type_name="core/Limit",
    parent=_VSConverter,
    name="Limit3",
    rotation="up",
    flip="flip_none",
    position=(8168, 8776),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Limit3, "lower_limit"), "0.1")
mdl.set_property_value(mdl.prop(_VSConverter_Limit3, "upper_limit"), "1e9")


# Component: VSConverter.Product12
_VSConverter_Product12 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product12",
    rotation="up",
    flip="flip_none",
    position=(8296, 8720),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Product12, "signs"), "*/")


# Component: VSConverter.Limit4
_VSConverter_Limit4 = mdl.create_component(
    type_name="core/Limit",
    parent=_VSConverter,
    name="Limit4",
    rotation="up",
    flip="flip_none",
    position=(8136, 8688),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Limit4, "lower_limit"), "0.1")
mdl.set_property_value(mdl.prop(_VSConverter_Limit4, "upper_limit"), "1e9")


# Component: VSConverter.Limit5
_VSConverter_Limit5 = mdl.create_component(
    type_name="core/Limit",
    parent=_VSConverter,
    name="Limit5",
    rotation="up",
    flip="flip_none",
    position=(8376, 8720),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Limit5, "lower_limit"), "0")
mdl.set_property_value(mdl.prop(_VSConverter_Limit5, "upper_limit"), "1")


# Component: VSConverter.Product13
_VSConverter_Product13 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product13",
    rotation="up",
    flip="flip_none",
    position=(8584, 8592),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Product14
_VSConverter_Product14 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product14",
    rotation="up",
    flip="flip_none",
    position=(8600, 8792),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.Signal switch18
_VSConverter_Signal_switch18 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch18",
    rotation="up",
    flip="flip_vertical",
    position=(8672, 8576),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch18, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Signal switch19
_VSConverter_Signal_switch19 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch19",
    rotation="up",
    flip="flip_none",
    position=(8704, 8808),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch19, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Gain35
_VSConverter_Gain35 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain35",
    rotation="up",
    flip="flip_none",
    position=(8104, 8776),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain35, "gain"), "0.6366")


# Component: VSConverter.Product15
_VSConverter_Product15 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product15",
    rotation="up",
    flip="flip_none",
    position=(8296, 8632),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Product15, "signs"), "*/")


# Component: VSConverter.Limit6
_VSConverter_Limit6 = mdl.create_component(
    type_name="core/Limit",
    parent=_VSConverter,
    name="Limit6",
    rotation="up",
    flip="flip_none",
    position=(8376, 8632),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Limit6, "lower_limit"), "0")
mdl.set_property_value(mdl.prop(_VSConverter_Limit6, "upper_limit"), "1")


# Component: VSConverter.Constant43
_VSConverter_Constant43 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant43",
    rotation="up",
    flip="flip_none",
    position=(9688, 8952),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant43, "execution_rate"), "execution_rate")


# Component: VSConverter.DC_m0
_VSConverter_DC_m0 = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="DC_m0",
    rotation="right",
    flip="flip_none",
    position=(9736, 9056),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_DC_m0, "signal_name"), "V")


# Component: VSConverter.Product16
_VSConverter_Product16 = mdl.create_component(
    type_name="core/Product",
    parent=_VSConverter,
    name="Product16",
    rotation="up",
    flip="flip_none",
    position=(10296, 9008),
    hide_name=True,
    size=(0, 0)
)


# Component: VSConverter.DC_Pow
_VSConverter_DC_Pow = mdl.create_component(
    type_name="core/Probe",
    parent=_VSConverter,
    name="DC_Pow",
    rotation="up",
    flip="flip_none",
    position=(10472, 9008),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_DC_Pow, "signal_name"), "V")
mdl.set_property_value(mdl.prop(_VSConverter_DC_Pow, "signal_type"), "active power")


# Component: VSConverter.Gain36
_VSConverter_Gain36 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain36",
    rotation="up",
    flip="flip_none",
    position=(10376, 9008),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain36, "gain"), "0.001")


# Component: VSConverter.Constant44
_VSConverter_Constant44 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant44",
    rotation="up",
    flip="flip_none",
    position=(6224, 8304),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant44, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant44, "value"), "vdc_set")


# Component: VSConverter.Gain37
_VSConverter_Gain37 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain37",
    rotation="up",
    flip="flip_none",
    position=(6288, 8472),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Gain38
_VSConverter_Gain38 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain38",
    rotation="left",
    flip="flip_none",
    position=(6968, 8600),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain38, "gain"), "-1")


# Component: VSConverter.R_SN
_VSConverter_R_SN = mdl.create_component(
    type_name="core/Resistor",
    parent=_VSConverter,
    name="R_SN",
    rotation="right",
    flip="flip_none",
    position=(7808, 9520),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_R_SN, "resistance"), "dc_snub")


# Component: VSConverter.Gain39
_VSConverter_Gain39 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain39",
    rotation="up",
    flip="flip_none",
    position=(6824, 8960),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain39, "gain"), "1000")


# Component: VSConverter.Gain40
_VSConverter_Gain40 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain40",
    rotation="up",
    flip="flip_none",
    position=(6616, 8968),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain40, "gain"), "0.001")


# Component: VSConverter.Signal switch20
_VSConverter_Signal_switch20 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch20",
    rotation="up",
    flip="flip_none",
    position=(8472, 8248),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch20, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Constant45
_VSConverter_Constant45 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant45",
    rotation="up",
    flip="flip_none",
    position=(8392, 8232),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant45, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant45, "value"), "0")


# Component: VSConverter.Signal switch21
_VSConverter_Signal_switch21 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch21",
    rotation="up",
    flip="flip_none",
    position=(9152, 8696),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch21, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Unit Delay1
_VSConverter_Unit_Delay1 = mdl.create_component(
    type_name="core/Unit Delay",
    parent=_VSConverter,
    name="Unit Delay1",
    rotation="down",
    flip="flip_none",
    position=(9064, 8608),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Termination100
_VSConverter_Termination100 = mdl.create_component(
    type_name="core/Termination",
    parent=_VSConverter,
    name="Termination100",
    rotation="right",
    flip="flip_none",
    position=(9288, 9016),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Termination101
_VSConverter_Termination101 = mdl.create_component(
    type_name="core/Termination",
    parent=_VSConverter,
    name="Termination101",
    rotation="right",
    flip="flip_none",
    position=(7480, 8312),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.Termination102
_VSConverter_Termination102 = mdl.create_component(
    type_name="core/Termination",
    parent=_VSConverter,
    name="Termination102",
    rotation="left",
    flip="flip_none",
    position=(8112, 8608),
    hide_name=True,
    size=(None, None)
)


# Component: VSConverter.dccap
_VSConverter_dccap = mdl.create_component(
    type_name="core/Capacitor",
    parent=_VSConverter,
    name="dccap",
    rotation="right",
    flip="flip_none",
    position=(7712, 9520),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_dccap, "capacitance"), "dc_cap")
mdl.set_property_value(mdl.prop(_VSConverter_dccap, "initial_voltage"), "1000*vdc_set")


# Component: VSConverter.Discrete Transfer Function1
_VSConverter_Discrete_Transfer_Function1 = mdl.create_component(
    type_name="core/Discrete Transfer Function",
    parent=_VSConverter,
    name="Discrete Transfer Function1",
    rotation="up",
    flip="flip_none",
    position=(7832, 8408),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Discrete_Transfer_Function1, "a_coeff"), "[.001,1]")
mdl.set_property_value(mdl.prop(_VSConverter_Discrete_Transfer_Function1, "b_coeff"), "[1]")
mdl.set_property_value(mdl.prop(_VSConverter_Discrete_Transfer_Function1, "domain"), "S-domain")
mdl.set_property_value(mdl.prop(_VSConverter_Discrete_Transfer_Function1, "method"), "Euler")


# Component: VSConverter.Sum28
_VSConverter_Sum28 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum28",
    rotation="up",
    flip="flip_none",
    position=(7744, 8408),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum28, "signs"), "+-")


# Component: VSConverter.Constant47
_VSConverter_Constant47 = mdl.create_component(
    type_name="core/Constant",
    parent=_VSConverter,
    name="Constant47",
    rotation="up",
    flip="flip_none",
    position=(7592, 8440),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Constant47, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_VSConverter_Constant47, "value"), "vac_set")


# Component: VSConverter.Sum29
_VSConverter_Sum29 = mdl.create_component(
    type_name="core/Sum",
    parent=_VSConverter,
    name="Sum29",
    rotation="up",
    flip="flip_none",
    position=(7920, 8432),
    hide_name=True,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_VSConverter_Sum29, "signs"), "++")


# Component: VSConverter.Gain42
_VSConverter_Gain42 = mdl.create_component(
    type_name="core/Gain",
    parent=_VSConverter,
    name="Gain42",
    rotation="up",
    flip="flip_none",
    position=(7664, 8440),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Gain42, "gain"), "1000/1.224745")


# Component: VSConverter.Signal switch24
_VSConverter_Signal_switch24 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_VSConverter,
    name="Signal switch24",
    rotation="up",
    flip="flip_none",
    position=(7848, 8536),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Signal_switch24, "criterion"), "ctrl >= threshold")


# Component: VSConverter.Open Circuit1
_VSConverter_Open_Circuit1 = mdl.create_component(
    type_name="core/Open Circuit",
    parent=_VSConverter,
    name="Open Circuit1",
    rotation="up",
    flip="flip_none",
    position=(8128, 9760),
    hide_name=True,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_VSConverter_Open_Circuit1, "circuit_connector"), "true")


# Port: VSConverter.A1
_VSConverter_A1 = mdl.create_port(
    name="A1",
    parent=_VSConverter,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, -32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(9224, 9424)
)

# Port: VSConverter.B1
_VSConverter_B1 = mdl.create_port(
    name="B1",
    parent=_VSConverter,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, 0.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(9224, 9504)
)

# Port: VSConverter.C1
_VSConverter_C1 = mdl.create_port(
    name="C1",
    parent=_VSConverter,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32.0, 32.0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(9224, 9584)
)

# Port: VSConverter.DC+
_VSConverter_DC_ = mdl.create_port(
    name="DC+",
    parent=_VSConverter,
    label="DC+",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, -32.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7640, 9424)
)

# Port: VSConverter.DC-
_VSConverter_DC_ = mdl.create_port(
    name="DC-",
    parent=_VSConverter,
    label="DC-",
    kind="pe",
    dimension=(1,),
    terminal_position=(-32.0, 32.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7640, 9608)
)

# Tag: VSConverter.Goto5
_VSConverter_Goto5 = mdl.create_tag(
    value="P_out",
    name="Goto5",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(10568, 8792)
)

# Tag: VSConverter.Goto6
_VSConverter_Goto6 = mdl.create_tag(
    value="Q_out",
    name="Goto6",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(10568, 8896)
)

# Tag: VSConverter.Goto7
_VSConverter_Goto7 = mdl.create_tag(
    value="V_en",
    name="Goto7",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8312, 8296)
)

# Tag: VSConverter.Goto8
_VSConverter_Goto8 = mdl.create_tag(
    value="M_en",
    name="Goto8",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8552, 8248)
)

# Tag: VSConverter.Goto9
_VSConverter_Goto9 = mdl.create_tag(
    value="ctrl_en",
    name="Goto9",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8312, 8232)
)

# Tag: VSConverter.From4
_VSConverter_From4 = mdl.create_tag(
    value="Q_out",
    name="From4",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6728, 8904)
)

# Tag: VSConverter.From5
_VSConverter_From5 = mdl.create_tag(
    value="ctrl_en",
    name="From5",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6976, 8864)
)

# Tag: VSConverter.From6
_VSConverter_From6 = mdl.create_tag(
    value="V_en",
    name="From6",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7096, 8896)
)

# Tag: VSConverter.From7
_VSConverter_From7 = mdl.create_tag(
    value="P_out",
    name="From7",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6824, 8536)
)

# Tag: VSConverter.From8
_VSConverter_From8 = mdl.create_tag(
    value="ctrl_en",
    name="From8",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(7112, 8480)
)

# Tag: VSConverter.From9
_VSConverter_From9 = mdl.create_tag(
    value="M_en",
    name="From9",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(7200, 8488)
)

# Tag: VSConverter.Goto10
_VSConverter_Goto10 = mdl.create_tag(
    value="Watt",
    name="Goto10",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6328, 8384)
)

# Tag: VSConverter.Goto11
_VSConverter_Goto11 = mdl.create_tag(
    value="VAR",
    name="Goto11",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6328, 8424)
)

# Tag: VSConverter.From10
_VSConverter_From10 = mdl.create_tag(
    value="VAR",
    name="From10",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6336, 8752)
)

# Tag: VSConverter.From11
_VSConverter_From11 = mdl.create_tag(
    value="Watt",
    name="From11",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6480, 8352)
)

# Tag: VSConverter.Goto12
_VSConverter_Goto12 = mdl.create_tag(
    value="VLL",
    name="Goto12",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6392, 8472)
)

# Tag: VSConverter.Goto13
_VSConverter_Goto13 = mdl.create_tag(
    value="Gen_V_mag",
    name="Goto13",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7872, 8120)
)

# Tag: VSConverter.From14
_VSConverter_From14 = mdl.create_tag(
    value="Gen_V_mag",
    name="From14",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6512, 8968)
)

# Tag: VSConverter.From15
_VSConverter_From15 = mdl.create_tag(
    value="VLL",
    name="From15",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6280, 8928)
)

# Tag: VSConverter.Goto14
_VSConverter_Goto14 = mdl.create_tag(
    value="dED_sel",
    name="Goto14",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7624, 9176)
)

# Tag: VSConverter.Goto15
_VSConverter_Goto15 = mdl.create_tag(
    value="dEQ_sel",
    name="Goto15",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7624, 9200)
)

# Tag: VSConverter.From16
_VSConverter_From16 = mdl.create_tag(
    value="dED_sel",
    name="From16",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6872, 8848)
)

# Tag: VSConverter.From17
_VSConverter_From17 = mdl.create_tag(
    value="dEQ_sel",
    name="From17",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7336, 8456)
)

# Tag: VSConverter.From18
_VSConverter_From18 = mdl.create_tag(
    value="dED_sel",
    name="From18",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7320, 8832)
)

# Tag: VSConverter.From19
_VSConverter_From19 = mdl.create_tag(
    value="dED_sel",
    name="From19",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7320, 8952)
)

# Tag: VSConverter.Goto16
_VSConverter_Goto16 = mdl.create_tag(
    value="fs",
    name="Goto16",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6328, 8344)
)

# Tag: VSConverter.From20
_VSConverter_From20 = mdl.create_tag(
    value="Vdc",
    name="From20",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6832, 8680)
)

# Tag: VSConverter.From22
_VSConverter_From22 = mdl.create_tag(
    value="vdc_ref",
    name="From22",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6528, 8664)
)

# Tag: VSConverter.From23
_VSConverter_From23 = mdl.create_tag(
    value="dEQ_sel",
    name="From23",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7328, 8576)
)

# Tag: VSConverter.From24
_VSConverter_From24 = mdl.create_tag(
    value="dEQ_sel",
    name="From24",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6984, 8488)
)

# Tag: VSConverter.Goto19
_VSConverter_Goto19 = mdl.create_tag(
    value="mod_internal",
    name="Goto19",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6784, 9200)
)

# Tag: VSConverter.From25
_VSConverter_From25 = mdl.create_tag(
    value="mod_internal",
    name="From25",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6936, 9200)
)

# Tag: VSConverter.Goto20
_VSConverter_Goto20 = mdl.create_tag(
    value="I_a",
    name="Goto20",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8872, 9392)
)

# Tag: VSConverter.Goto21
_VSConverter_Goto21 = mdl.create_tag(
    value="I_b",
    name="Goto21",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8872, 9472)
)

# Tag: VSConverter.Goto22
_VSConverter_Goto22 = mdl.create_tag(
    value="I_c",
    name="Goto22",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8872, 9552)
)

# Tag: VSConverter.Goto23
_VSConverter_Goto23 = mdl.create_tag(
    value="V_a",
    name="Goto23",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="left",
    flip="flip_none",
    position=(8992, 9624)
)

# Tag: VSConverter.Goto24
_VSConverter_Goto24 = mdl.create_tag(
    value="V_b",
    name="Goto24",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="left",
    flip="flip_none",
    position=(9072, 9624)
)

# Tag: VSConverter.Goto25
_VSConverter_Goto25 = mdl.create_tag(
    value="V_c",
    name="Goto25",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="left",
    flip="flip_none",
    position=(9152, 9624)
)

# Tag: VSConverter.From26
_VSConverter_From26 = mdl.create_tag(
    value="E_a",
    name="From26",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8464)
)

# Tag: VSConverter.From27
_VSConverter_From27 = mdl.create_tag(
    value="E_b",
    name="From27",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8496)
)

# Tag: VSConverter.From28
_VSConverter_From28 = mdl.create_tag(
    value="V_b",
    name="From28",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8576)
)

# Tag: VSConverter.From29
_VSConverter_From29 = mdl.create_tag(
    value="V_c",
    name="From29",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8600)
)

# Tag: VSConverter.From30
_VSConverter_From30 = mdl.create_tag(
    value="V_c",
    name="From30",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8680)
)

# Tag: VSConverter.From31
_VSConverter_From31 = mdl.create_tag(
    value="V_a",
    name="From31",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8704)
)

# Tag: VSConverter.From32
_VSConverter_From32 = mdl.create_tag(
    value="V_a",
    name="From32",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(7344, 8176)
)

# Tag: VSConverter.From33
_VSConverter_From33 = mdl.create_tag(
    value="V_b",
    name="From33",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(7320, 8176)
)

# Tag: VSConverter.From34
_VSConverter_From34 = mdl.create_tag(
    value="V_c",
    name="From34",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(7296, 8176)
)

# Tag: VSConverter.From35
_VSConverter_From35 = mdl.create_tag(
    value="I_a",
    name="From35",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(9176, 8848)
)

# Tag: VSConverter.From36
_VSConverter_From36 = mdl.create_tag(
    value="I_b",
    name="From36",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(9152, 8848)
)

# Tag: VSConverter.From37
_VSConverter_From37 = mdl.create_tag(
    value="I_c",
    name="From37",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(9128, 8848)
)

# Tag: VSConverter.Goto26
_VSConverter_Goto26 = mdl.create_tag(
    value="V_mag",
    name="Goto26",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7696, 8136)
)

# Tag: VSConverter.Goto27
_VSConverter_Goto27 = mdl.create_tag(
    value="V_ang",
    name="Goto27",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7696, 8104)
)

# Tag: VSConverter.From38
_VSConverter_From38 = mdl.create_tag(
    value="wst",
    name="From38",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(9104, 8848)
)

# Tag: VSConverter.Goto28
_VSConverter_Goto28 = mdl.create_tag(
    value="I_d",
    name="Goto28",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9328, 8912)
)

# Tag: VSConverter.Goto29
_VSConverter_Goto29 = mdl.create_tag(
    value="I_q",
    name="Goto29",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9328, 8936)
)

# Tag: VSConverter.Goto30
_VSConverter_Goto30 = mdl.create_tag(
    value="E_a",
    name="Goto30",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8920, 8792)
)

# Tag: VSConverter.Goto31
_VSConverter_Goto31 = mdl.create_tag(
    value="E_b",
    name="Goto31",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8920, 8816)
)

# Tag: VSConverter.Goto32
_VSConverter_Goto32 = mdl.create_tag(
    value="E_c",
    name="Goto32",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8920, 8840)
)

# Tag: VSConverter.From41
_VSConverter_From41 = mdl.create_tag(
    value="E_a1",
    name="From41",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8224, 9568)
)

# Tag: VSConverter.From42
_VSConverter_From42 = mdl.create_tag(
    value="E_b1",
    name="From42",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8224, 9632)
)

# Tag: VSConverter.From43
_VSConverter_From43 = mdl.create_tag(
    value="E_c1",
    name="From43",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8224, 9704)
)

# Tag: VSConverter.From44
_VSConverter_From44 = mdl.create_tag(
    value="fs",
    name="From44",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(6672, 8248)
)

# Tag: VSConverter.From45
_VSConverter_From45 = mdl.create_tag(
    value="I_d",
    name="From45",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8800)
)

# Tag: VSConverter.From46
_VSConverter_From46 = mdl.create_tag(
    value="V_mag",
    name="From46",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8776)
)

# Tag: VSConverter.From47
_VSConverter_From47 = mdl.create_tag(
    value="V_mag",
    name="From47",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8880)
)

# Tag: VSConverter.From48
_VSConverter_From48 = mdl.create_tag(
    value="I_q",
    name="From48",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8904)
)

# Tag: VSConverter.Goto33
_VSConverter_Goto33 = mdl.create_tag(
    value="dEq",
    name="Goto33",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7712, 8624)
)

# Tag: VSConverter.From49
_VSConverter_From49 = mdl.create_tag(
    value="dEq",
    name="From49",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7840, 8736)
)

# Tag: VSConverter.Goto34
_VSConverter_Goto34 = mdl.create_tag(
    value="dEd",
    name="Goto34",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7704, 8944)
)

# Tag: VSConverter.From50
_VSConverter_From50 = mdl.create_tag(
    value="dEd",
    name="From50",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7848, 8592)
)

# Tag: VSConverter.Goto39
_VSConverter_Goto39 = mdl.create_tag(
    value="wt",
    name="Goto39",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7368, 8312)
)

# Tag: VSConverter.From59
_VSConverter_From59 = mdl.create_tag(
    value="wst",
    name="From59",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8624, 8912)
)

# Tag: VSConverter.From60
_VSConverter_From60 = mdl.create_tag(
    value="V_ang",
    name="From60",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9072, 8712)
)

# Tag: VSConverter.From61
_VSConverter_From61 = mdl.create_tag(
    value="wt",
    name="From61",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9216, 8728)
)

# Tag: VSConverter.Goto40
_VSConverter_Goto40 = mdl.create_tag(
    value="wst",
    name="Goto40",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9392, 8704)
)

# Tag: VSConverter.Goto41
_VSConverter_Goto41 = mdl.create_tag(
    value="Vdc",
    name="Goto41",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8072, 9488)
)

# Tag: VSConverter.From63
_VSConverter_From63 = mdl.create_tag(
    value="I_a",
    name="From63",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8728)
)

# Tag: VSConverter.From64
_VSConverter_From64 = mdl.create_tag(
    value="I_b",
    name="From64",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8760)
)

# Tag: VSConverter.From65
_VSConverter_From65 = mdl.create_tag(
    value="I_c",
    name="From65",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8792)
)

# Tag: VSConverter.From66
_VSConverter_From66 = mdl.create_tag(
    value="E_a",
    name="From66",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8632)
)

# Tag: VSConverter.From67
_VSConverter_From67 = mdl.create_tag(
    value="E_b",
    name="From67",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8664)
)

# Tag: VSConverter.From68
_VSConverter_From68 = mdl.create_tag(
    value="E_c",
    name="From68",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8696)
)

# Tag: VSConverter.Goto42
_VSConverter_Goto42 = mdl.create_tag(
    value="idc",
    name="Goto42",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9976, 8608)
)

# Tag: VSConverter.From69
_VSConverter_From69 = mdl.create_tag(
    value="idc",
    name="From69",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="right",
    flip="flip_none",
    position=(7912, 9464)
)

# Tag: VSConverter.From70
_VSConverter_From70 = mdl.create_tag(
    value="Vdc",
    name="From70",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8600)
)

# Tag: VSConverter.From71
_VSConverter_From71 = mdl.create_tag(
    value="V_a",
    name="From71",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8824)
)

# Tag: VSConverter.From72
_VSConverter_From72 = mdl.create_tag(
    value="V_b",
    name="From72",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8856)
)

# Tag: VSConverter.From73
_VSConverter_From73 = mdl.create_tag(
    value="V_c",
    name="From73",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8888)
)

# Tag: VSConverter.From74
_VSConverter_From74 = mdl.create_tag(
    value="Vdc",
    name="From74",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8024, 8776)
)

# Tag: VSConverter.From75
_VSConverter_From75 = mdl.create_tag(
    value="ctrl_en",
    name="From75",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8624, 8640)
)

# Tag: VSConverter.From76
_VSConverter_From76 = mdl.create_tag(
    value="ctrl_en",
    name="From76",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8656, 8744)
)

# Tag: VSConverter.Goto43
_VSConverter_Goto43 = mdl.create_tag(
    value="mc",
    name="Goto43",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8464, 8632)
)

# Tag: VSConverter.From77
_VSConverter_From77 = mdl.create_tag(
    value="mc",
    name="From77",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8920)
)

# Tag: VSConverter.Goto44
_VSConverter_Goto44 = mdl.create_tag(
    value="E_a1",
    name="Goto44",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9976, 8720)
)

# Tag: VSConverter.Goto45
_VSConverter_Goto45 = mdl.create_tag(
    value="E_b1",
    name="Goto45",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9976, 8832)
)

# Tag: VSConverter.Goto46
_VSConverter_Goto46 = mdl.create_tag(
    value="E_c1",
    name="Goto46",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9976, 8944)
)

# Tag: VSConverter.From78
_VSConverter_From78 = mdl.create_tag(
    value="ctrl_en",
    name="From78",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9608, 8952)
)

# Tag: VSConverter.From79
_VSConverter_From79 = mdl.create_tag(
    value="idc",
    name="From79",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 8992)
)

# Tag: VSConverter.From80
_VSConverter_From80 = mdl.create_tag(
    value="Vdc",
    name="From80",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(10200, 9016)
)

# Tag: VSConverter.Goto47
_VSConverter_Goto47 = mdl.create_tag(
    value="vdc_ref",
    name="Goto47",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(6328, 8304)
)

# Tag: VSConverter.Goto48
_VSConverter_Goto48 = mdl.create_tag(
    value="GF_en",
    name="Goto48",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7624, 9224)
)

# Tag: VSConverter.From81
_VSConverter_From81 = mdl.create_tag(
    value="GF_en",
    name="From81",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8408, 8200)
)

# Tag: VSConverter.From82
_VSConverter_From82 = mdl.create_tag(
    value="GF_en",
    name="From82",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(9088, 8648)
)

# Tag: VSConverter.From39
_VSConverter_From39 = mdl.create_tag(
    value="V_mag",
    name="From39",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7600, 8400)
)

# Tag: VSConverter.From85
_VSConverter_From85 = mdl.create_tag(
    value="GF_en",
    name="From85",
    parent=_VSConverter,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7648, 8488)
)

# Junction: VSConverter.Junction13
_VSConverter_Junction13 = mdl.create_junction(
    name="Junction13",
    parent=_VSConverter,
    kind="sp",
    position=(6984, 9016)
)

# Junction: VSConverter.Junction15
_VSConverter_Junction15 = mdl.create_junction(
    name="Junction15",
    parent=_VSConverter,
    kind="sp",
    position=(7080, 8608)
)

# Junction: VSConverter.Junction23
_VSConverter_Junction23 = mdl.create_junction(
    name="Junction23",
    parent=_VSConverter,
    kind="sp",
    position=(7808, 8120)
)

# Junction: VSConverter.Junction29
_VSConverter_Junction29 = mdl.create_junction(
    name="Junction29",
    parent=_VSConverter,
    kind="sp",
    position=(7216, 8904)
)

# Junction: VSConverter.Junction33
_VSConverter_Junction33 = mdl.create_junction(
    name="Junction33",
    parent=_VSConverter,
    kind="sp",
    position=(7248, 8528)
)

# Junction: VSConverter.Junction34
_VSConverter_Junction34 = mdl.create_junction(
    name="Junction34",
    parent=_VSConverter,
    kind="sp",
    position=(7248, 8616)
)

# Junction: VSConverter.Junction35
_VSConverter_Junction35 = mdl.create_junction(
    name="Junction35",
    parent=_VSConverter,
    kind="pe",
    position=(8376, 9760)
)

# Junction: VSConverter.Junction39
_VSConverter_Junction39 = mdl.create_junction(
    name="Junction39",
    parent=_VSConverter,
    kind="pe",
    position=(8960, 9424)
)

# Junction: VSConverter.Junction40
_VSConverter_Junction40 = mdl.create_junction(
    name="Junction40",
    parent=_VSConverter,
    kind="pe",
    position=(9040, 9504)
)

# Junction: VSConverter.Junction41
_VSConverter_Junction41 = mdl.create_junction(
    name="Junction41",
    parent=_VSConverter,
    kind="pe",
    position=(9120, 9584)
)

# Junction: VSConverter.Junction47
_VSConverter_Junction47 = mdl.create_junction(
    name="Junction47",
    parent=_VSConverter,
    kind="sp",
    position=(8264, 8264)
)

# Junction: VSConverter.Junction50
_VSConverter_Junction50 = mdl.create_junction(
    name="Junction50",
    parent=_VSConverter,
    kind="sp",
    position=(7640, 8120)
)

# Junction: VSConverter.Junction68
_VSConverter_Junction68 = mdl.create_junction(
    name="Junction68",
    parent=_VSConverter,
    kind="sp",
    position=(7320, 8272)
)

# Junction: VSConverter.Junction72
_VSConverter_Junction72 = mdl.create_junction(
    name="Junction72",
    parent=_VSConverter,
    kind="sp",
    position=(7248, 8576)
)

# Junction: VSConverter.Junction88
_VSConverter_Junction88 = mdl.create_junction(
    name="Junction88",
    parent=_VSConverter,
    kind="sp",
    position=(7216, 8944)
)

# Junction: VSConverter.Junction89
_VSConverter_Junction89 = mdl.create_junction(
    name="Junction89",
    parent=_VSConverter,
    kind="sp",
    position=(7216, 8992)
)

# Junction: VSConverter.Junction94
_VSConverter_Junction94 = mdl.create_junction(
    name="Junction94",
    parent=_VSConverter,
    kind="pe",
    position=(7880, 9608)
)

# Junction: VSConverter.Junction95
_VSConverter_Junction95 = mdl.create_junction(
    name="Junction95",
    parent=_VSConverter,
    kind="pe",
    position=(7880, 9424)
)

# Junction: VSConverter.Junction97
_VSConverter_Junction97 = mdl.create_junction(
    name="Junction97",
    parent=_VSConverter,
    kind="sp",
    position=(9920, 8608)
)

# Junction: VSConverter.Junction98
_VSConverter_Junction98 = mdl.create_junction(
    name="Junction98",
    parent=_VSConverter,
    kind="sp",
    position=(8016, 9512)
)

# Junction: VSConverter.Junction99
_VSConverter_Junction99 = mdl.create_junction(
    name="Junction99",
    parent=_VSConverter,
    kind="sp",
    position=(8512, 8720)
)

# Junction: VSConverter.Junction100
_VSConverter_Junction100 = mdl.create_junction(
    name="Junction100",
    parent=_VSConverter,
    kind="sp",
    position=(8000, 8584)
)

# Junction: VSConverter.Junction103
_VSConverter_Junction103 = mdl.create_junction(
    name="Junction103",
    parent=_VSConverter,
    kind="sp",
    position=(8528, 8584)
)

# Junction: VSConverter.Junction104
_VSConverter_Junction104 = mdl.create_junction(
    name="Junction104",
    parent=_VSConverter,
    kind="sp",
    position=(7976, 8736)
)

# Junction: VSConverter.Junction105
_VSConverter_Junction105 = mdl.create_junction(
    name="Junction105",
    parent=_VSConverter,
    kind="sp",
    position=(8536, 8800)
)

# Junction: VSConverter.Junction106
_VSConverter_Junction106 = mdl.create_junction(
    name="Junction106",
    parent=_VSConverter,
    kind="sp",
    position=(8208, 8712)
)

# Junction: VSConverter.Junction107
_VSConverter_Junction107 = mdl.create_junction(
    name="Junction107",
    parent=_VSConverter,
    kind="sp",
    position=(8184, 8688)
)

# Junction: VSConverter.Junction108
_VSConverter_Junction108 = mdl.create_junction(
    name="Junction108",
    parent=_VSConverter,
    kind="sp",
    position=(9736, 8920)
)

# Junction: VSConverter.Junction110
_VSConverter_Junction110 = mdl.create_junction(
    name="Junction110",
    parent=_VSConverter,
    kind="pe",
    position=(7808, 9424)
)

# Junction: VSConverter.Junction111
_VSConverter_Junction111 = mdl.create_junction(
    name="Junction111",
    parent=_VSConverter,
    kind="pe",
    position=(7808, 9608)
)

# Junction: VSConverter.Junction113
_VSConverter_Junction113 = mdl.create_junction(
    name="Junction113",
    parent=_VSConverter,
    kind="sp",
    position=(9200, 8696)
)

# Junction: VSConverter.Junction114
_VSConverter_Junction114 = mdl.create_junction(
    name="Junction114",
    parent=_VSConverter,
    kind="sp",
    position=(10496, 8792)
)

# Junction: VSConverter.Junction115
_VSConverter_Junction115 = mdl.create_junction(
    name="Junction115",
    parent=_VSConverter,
    kind="sp",
    position=(10496, 8896)
)

# Junction: VSConverter.Junction116
_VSConverter_Junction116 = mdl.create_junction(
    name="Junction116",
    parent=_VSConverter,
    kind="pe",
    position=(9040, 9760)
)

# Junction: VSConverter.Junction117
_VSConverter_Junction117 = mdl.create_junction(
    name="Junction117",
    parent=_VSConverter,
    kind="pe",
    position=(8960, 9760)
)

# Junction: VSConverter.Junction118
_VSConverter_Junction118 = mdl.create_junction(
    name="Junction118",
    parent=_VSConverter,
    kind="pe",
    position=(8448, 9760)
)

# Junction: VSConverter.Junction119
_VSConverter_Junction119 = mdl.create_junction(
    name="Junction119",
    parent=_VSConverter,
    kind="sp",
    position=(8264, 8264)
)

# Junction: VSConverter.Junction120
_VSConverter_Junction120 = mdl.create_junction(
    name="Junction120",
    parent=_VSConverter,
    kind="pe",
    position=(7712, 9608)
)

# Junction: VSConverter.Junction121
_VSConverter_Junction121 = mdl.create_junction(
    name="Junction121",
    parent=_VSConverter,
    kind="pe",
    position=(7712, 9424)
)

# Junction: VSConverter.Junction126
_VSConverter_Junction126 = mdl.create_junction(
    name="Junction126",
    parent=_VSConverter,
    kind="sp",
    position=(7704, 8440)
)

# Junction: VSConverter.Junction127
_VSConverter_Junction127 = mdl.create_junction(
    name="Junction127",
    parent=_VSConverter,
    kind="sp",
    position=(7696, 8400)
)

# Junction: VSConverter.Junction128
_VSConverter_Junction128 = mdl.create_junction(
    name="Junction128",
    parent=_VSConverter,
    kind="pe",
    position=(8304, 9760)
)

# Junction: VSConverter.Junction129
_VSConverter_Junction129 = mdl.create_junction(
    name="Junction129",
    parent=_VSConverter,
    kind="pe",
    position=(7976, 9608)
)

# Component: Vsource
_Vsource = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Vsource",
    rotation="up",
    flip="flip_none",
    position=(5856, 7384),
    hide_name=False,
    size=(64, 96)
)
_Vsource_mask = mdl.create_mask(_Vsource)
_Vsource_mask_basekv = mdl.create_property(
    item_handle=_Vsource_mask,
    name="basekv",
    label="Base Voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General:1",
    unit="kV"
)

_Vsource_mask_baseMVA = mdl.create_property(
    item_handle=_Vsource_mask,
    name="baseMVA",
    label="Base Power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General",
    unit="MVA"
)

_Vsource_mask_global_basefreq = mdl.create_property(
    item_handle=_Vsource_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Vsource_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Vsource_mask_global_basefreq, "property_value_changed", _Vsource_mask_global_basefreq_property_value_changed)


_Vsource_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Vsource_mask_global_basefreq, "property_value_edited", _Vsource_mask_global_basefreq_property_value_edited)

_Vsource_mask_baseFreq = mdl.create_property(
    item_handle=_Vsource_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="General",
    unit="Hz"
)

_Vsource_mask_tp_connection = mdl.create_property(
    item_handle=_Vsource_mask,
    name="tp_connection",
    label="Connection method",
    widget="combo",
    combo_values=['Y - Grounded', 'In series'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="General",
    unit=""
)


_Vsource_mask_tp_connection_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
ports, _ = comp_script.port_dynamics(mdl, container_handle)
comp_script.update_connections(mdl, container_handle, ports)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Vsource_mask_tp_connection, "property_value_changed", _Vsource_mask_tp_connection_property_value_changed)

_Vsource_mask_pu = mdl.create_property(
    item_handle=_Vsource_mask,
    name="pu",
    label="Voltage [pu]",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters:2",
    unit=""
)

_Vsource_mask_Angle = mdl.create_property(
    item_handle=_Vsource_mask,
    name="Angle",
    label="Phase [°]",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit=""
)

_Vsource_mask_Frequency = mdl.create_property(
    item_handle=_Vsource_mask,
    name="Frequency",
    label="Frequency [Hz]",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit=""
)

_Vsource_mask_input_method = mdl.create_property(
    item_handle=_Vsource_mask,
    name="input_method",
    label="Input Method",
    widget="combo",
    combo_values=['Z', 'Zpu', 'MVAsc', 'Isc'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit=""
)


_Vsource_mask_input_method_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Vsource_mask_input_method, "property_value_changed", _Vsource_mask_input_method_property_value_changed)


_Vsource_mask_input_method_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.mask_dialog_dynamics(mdl, container_handle, prop_handle)

"""
mdl.set_handler_code(_Vsource_mask_input_method, "property_value_edited", _Vsource_mask_input_method_property_value_edited)

_Vsource_mask_r1 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="r1",
    label="R1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit="Ω"
)

_Vsource_mask_x1 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="x1",
    label="X1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit="Ω"
)

_Vsource_mask_r0 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="r0",
    label="R0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit="Ω"
)

_Vsource_mask_x0 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="x0",
    label="X0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Parameters",
    unit="Ω"
)

_Vsource_mask_r1_pu = mdl.create_property(
    item_handle=_Vsource_mask,
    name="r1_pu",
    label="R1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="pu"
)

_Vsource_mask_x1_pu = mdl.create_property(
    item_handle=_Vsource_mask,
    name="x1_pu",
    label="X1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="pu"
)

_Vsource_mask_r0_pu = mdl.create_property(
    item_handle=_Vsource_mask,
    name="r0_pu",
    label="R0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="pu"
)

_Vsource_mask_x0_pu = mdl.create_property(
    item_handle=_Vsource_mask,
    name="x0_pu",
    label="X0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="pu"
)

_Vsource_mask_mva_sc3 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="mva_sc3",
    label="3ph Short Circuit Power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="MVA"
)

_Vsource_mask_mva_sc1 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="mva_sc1",
    label="1ph Short Circuit Power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="MVA"
)

_Vsource_mask_i_sc3 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="i_sc3",
    label="3ph Short Circuit Current",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="A"
)

_Vsource_mask_i_sc1 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="i_sc1",
    label="1ph Short Circuit Current",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit="A"
)

_Vsource_mask_x1r1 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="x1r1",
    label="X1/R1",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit=""
)

_Vsource_mask_x0r0 = mdl.create_property(
    item_handle=_Vsource_mask,
    name="x0r0",
    label="X0/R0",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Parameters",
    unit=""
)

_Vsource_mask_enable_monitoring = mdl.create_property(
    item_handle=_Vsource_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring:3",
    unit=""
)


_Vsource_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Vsource_mask, "define_icon", _Vsource_mask_define_icon)

_Vsource_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_vsource as comp_script
importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)
comp_script.retro_compatibility(mdl, item_handle)

"""
mdl.set_handler_code(_Vsource_mask, "init", _Vsource_mask_init)

_Vsource_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
r_matrix, l_matrix = comp_script.get_r_l_matrices(mdl, item_handle)
vrms, phase, freq = comp_script.get_source_values(mdl, item_handle)

"""
mdl.set_handler_code(_Vsource_mask, "pre_compile", _Vsource_mask_pre_compile)

_Vsource_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">A Vsource object is a voltage source behind an impedance. The most common way to use a voltage source object is with the first terminal connected to one bus with the second terminal connected to ground or neutral point. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p><p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> It is possible to connect it to two different buses by selecting “In series” on the connection method property.</p></body></html>
'''
mdl.set_description(_Vsource_mask, _Vsource_mask_desc)
mdl.set_property_value(mdl.prop(_Vsource_mask, "basekv"), "115")
mdl.set_property_value(mdl.prop(_Vsource_mask, "global_basefreq"), "True")
mdl.set_property_value(mdl.prop(_Vsource_mask, "pu"), "1")


# Component: Vsource.Va
_Vsource_Va = mdl.create_component(
    type_name="core/Voltage Source",
    parent=_Vsource,
    name="Va",
    rotation="down",
    flip="flip_none",
    position=(8112, 8096),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Vsource_Va, "init_frequency"), "freq")
mdl.set_property_value(mdl.prop(_Vsource_Va, "init_phase"), "phase - 0")
mdl.set_property_value(mdl.prop(_Vsource_Va, "init_rms_value"), "vrms")
mdl.set_property_value(mdl.prop(_Vsource_Va, "init_source_nature"), "Sine")


# Component: Vsource.Vb
_Vsource_Vb = mdl.create_component(
    type_name="core/Voltage Source",
    parent=_Vsource,
    name="Vb",
    rotation="down",
    flip="flip_none",
    position=(8112, 8192),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Vsource_Vb, "init_frequency"), "freq")
mdl.set_property_value(mdl.prop(_Vsource_Vb, "init_phase"), "phase - 120")
mdl.set_property_value(mdl.prop(_Vsource_Vb, "init_rms_value"), "vrms")
mdl.set_property_value(mdl.prop(_Vsource_Vb, "init_source_nature"), "Sine")


# Component: Vsource.Vc
_Vsource_Vc = mdl.create_component(
    type_name="core/Voltage Source",
    parent=_Vsource,
    name="Vc",
    rotation="down",
    flip="flip_none",
    position=(8112, 8288),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Vsource_Vc, "init_frequency"), "freq")
mdl.set_property_value(mdl.prop(_Vsource_Vc, "init_phase"), "phase - 240")
mdl.set_property_value(mdl.prop(_Vsource_Vc, "init_rms_value"), "vrms")
mdl.set_property_value(mdl.prop(_Vsource_Vc, "init_source_nature"), "Sine")


# Component: Vsource.gnd1
_Vsource_gnd1 = mdl.create_component(
    type_name="core/Ground",
    parent=_Vsource,
    name="gnd1",
    rotation="right",
    flip="flip_none",
    position=(7888, 8192),
    hide_name=False,
    size=(None, None)
)


# Component: Vsource.TL1
_Vsource_TL1 = mdl.create_component(
    type_name="core/Transmission Line",
    parent=_Vsource,
    name="TL1",
    rotation="up",
    flip="flip_none",
    position=(8304, 8192),
    hide_name=False,
    size=(256, 72)
)
mdl.set_property_value(mdl.prop(_Vsource_TL1, "Frequency"), "60")
mdl.set_property_value(mdl.prop(_Vsource_TL1, "L_metric"), "l_matrix")
mdl.set_property_value(mdl.prop(_Vsource_TL1, "Length_metric"), "1")
mdl.set_property_value(mdl.prop(_Vsource_TL1, "R_metric"), "r_matrix")
mdl.set_property_value(mdl.prop(_Vsource_TL1, "model_def"), "RLC")
mdl.set_property_value(mdl.prop(_Vsource_TL1, "unit_sys"), "metric")


# Port: Vsource.A1
_Vsource_A1 = mdl.create_port(
    name="A1",
    parent=_Vsource,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32, -32),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8496, 8096)
)

# Port: Vsource.B1
_Vsource_B1 = mdl.create_port(
    name="B1",
    parent=_Vsource,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32, 0),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8496, 8192)
)

# Port: Vsource.C1
_Vsource_C1 = mdl.create_port(
    name="C1",
    parent=_Vsource,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(32, 32),
    rotation="down",
    flip="flip_none",
    hide_name=True,
    position=(8496, 8288)
)

# Junction: Vsource.junction_abc
_Vsource_junction_abc = mdl.create_junction(
    name="junction_abc",
    parent=_Vsource,
    kind="pe",
    position=(7992, 8192)
)

# Component: Storage
_Storage = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=None,
    name="Storage",
    rotation="up",
    flip="flip_none",
    position=(6192, 7384),
    hide_name=False,
    size=(64, 96)
)
_Storage_mask = mdl.create_mask(_Storage)
_Storage_mask_dispatch_p = mdl.create_property(
    item_handle=_Storage_mask,
    name="dispatch_p",
    label="Dispatch P",
    widget="combo",
    combo_values=['Default', 'Follow'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Storage_mask_dispatch_p_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_dispatch_mode(mdl, container_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Storage_mask_dispatch_p, "property_value_edited", _Storage_mask_dispatch_p_property_value_edited)

_Storage_mask_dispatch_q = mdl.create_property(
    item_handle=_Storage_mask,
    name="dispatch_q",
    label="Dispatch Q",
    widget="combo",
    combo_values=['Unit PF', 'Constant PF', 'Constant kVAr'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Storage_mask_dispatch_q_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_dispatch_mode(mdl, container_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Storage_mask_dispatch_q, "property_value_changed", _Storage_mask_dispatch_q_property_value_changed)


_Storage_mask_dispatch_q_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_dispatch_mode(mdl, container_handle)
mdl.refresh_icon(container_handle)

"""
mdl.set_handler_code(_Storage_mask_dispatch_q, "property_value_edited", _Storage_mask_dispatch_q_property_value_edited)

_Storage_mask_snap_status = mdl.create_property(
    item_handle=_Storage_mask,
    name="snap_status",
    label="Snap solve status",
    widget="combo",
    combo_values=['Charging', 'Discharging', 'Idling'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)

_Storage_mask_kv = mdl.create_property(
    item_handle=_Storage_mask,
    name="kv",
    label="Nominal voltage",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="kV"
)

_Storage_mask_global_basefreq = mdl.create_property(
    item_handle=_Storage_mask,
    name="global_basefreq",
    label="Global base frequency",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit=""
)


_Storage_mask_global_basefreq_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.update_frequency_property(mdl, container_handle)

"""
mdl.set_handler_code(_Storage_mask_global_basefreq, "property_value_changed", _Storage_mask_global_basefreq_property_value_changed)


_Storage_mask_global_basefreq_property_value_edited = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.toggle_frequency_prop(mdl, container_handle)

"""
mdl.set_handler_code(_Storage_mask_global_basefreq, "property_value_edited", _Storage_mask_global_basefreq_property_value_edited)

_Storage_mask_baseFreq = mdl.create_property(
    item_handle=_Storage_mask,
    name="baseFreq",
    label="Base frequency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="Hz"
)

_Storage_mask_kwrated = mdl.create_property(
    item_handle=_Storage_mask,
    name="kwrated",
    label="Rated kW",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="kW"
)

_Storage_mask_kwhrated = mdl.create_property(
    item_handle=_Storage_mask,
    name="kwhrated",
    label="Rated kWh",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="kWh"
)

_Storage_mask_chargetrigger = mdl.create_property(
    item_handle=_Storage_mask,
    name="chargetrigger",
    label="ChargeTrigger",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)

_Storage_mask_dischargetrigger = mdl.create_property(
    item_handle=_Storage_mask,
    name="dischargetrigger",
    label="DischargeTrigger",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)

_Storage_mask_pct_charge = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_charge",
    label="%Charge",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Storage_mask_pct_discharge = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_discharge",
    label="%Discharge",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Storage_mask_pct_effcharge = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_effcharge",
    label="Charge efficiency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="%"
)

_Storage_mask_pct_effdischarge = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_effdischarge",
    label="Discharge efficiency",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="%"
)

_Storage_mask_kvar = mdl.create_property(
    item_handle=_Storage_mask,
    name="kvar",
    label="Reactive power",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Ratings:3",
    unit="kVAr"
)

_Storage_mask_pf = mdl.create_property(
    item_handle=_Storage_mask,
    name="pf",
    label="Power factor",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Ratings:3",
    unit=""
)

_Storage_mask_pct_idlingkvar = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_idlingkvar",
    label="%IdlingkVAr",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="Ratings:3",
    unit="%"
)

_Storage_mask_pct_idlingkw = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_idlingkw",
    label="Idling losses",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="%"
)

_Storage_mask_pct_reserve = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_reserve",
    label="Reserve mode SOC",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Ratings:3",
    unit="%"
)

_Storage_mask_load_loadshape = mdl.create_property(
    item_handle=_Storage_mask,
    name="load_loadshape",
    label="LoadShape object",
    widget="button",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings:2",
    button_label="Choose",
    unit=""
)


_Storage_mask_load_loadshape_button_clicked = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.load_loadshape(mdl, container_handle)

"""
mdl.set_handler_code(_Storage_mask_load_loadshape, "button_clicked", _Storage_mask_load_loadshape_button_clicked)

_Storage_mask_loadshape_name = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_name",
    label="LoadShape name",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Storage_mask_loadshape_name_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Storage_mask_loadshape_name, "property_value_edited", _Storage_mask_loadshape_name_property_value_edited)

_Storage_mask_loadshape_from_file = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_from_file",
    label="From CSV file",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Storage_mask_loadshape_from_file_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Storage_mask_loadshape_from_file, "property_value_edited", _Storage_mask_loadshape_from_file_property_value_edited)

_Storage_mask_useactual = mdl.create_property(
    item_handle=_Storage_mask,
    name="useactual",
    label="Actual value",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=False,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)


_Storage_mask_useactual_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Storage_mask_useactual, "property_value_edited", _Storage_mask_useactual_property_value_edited)

_Storage_mask_loadshape_from_file_path = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_from_file_path",
    label="LoadShape from file - path",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Storage_mask_loadshape_from_file_column = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_from_file_column",
    label="LoadShape from file - column",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Storage_mask_loadshape_from_file_header = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_from_file_header",
    label="LoadShape from file - header",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Storage_mask_loadshape = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape",
    label="LoadShape points",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="pu"
)


_Storage_mask_loadshape_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Storage_mask_loadshape, "property_value_edited", _Storage_mask_loadshape_property_value_edited)

_Storage_mask_loadshape_int = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_int",
    label="LoadShape interval",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Storage_mask_loadshape_int_property_value_edited = """
old_value = mdl.get_property_value(prop_handle)
mdl.set_property_value(prop_handle, old_value)

"""
mdl.set_handler_code(_Storage_mask_loadshape_int, "property_value_edited", _Storage_mask_loadshape_int_property_value_edited)

_Storage_mask_timespan = mdl.create_property(
    item_handle=_Storage_mask,
    name="timespan",
    label="Loadshape time span",
    widget="combo",
    combo_values=['Daily', 'Yearly'],
    evaluate=False,
    enabled=True,
    visible=False,
    tab_name="Time Series Settings",
    unit=""
)

_Storage_mask_T_Ts = mdl.create_property(
    item_handle=_Storage_mask,
    name="T_Ts",
    label="LoadShape time range",
    widget="edit",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit="h"
)


_Storage_mask_T_Ts_property_value_changed = """
comp_script = return_comp_script(mdl, container_handle)
comp_script.verify_time_loadshape_sizes(mdl, container_handle)

"""
mdl.set_handler_code(_Storage_mask_T_Ts, "property_value_changed", _Storage_mask_T_Ts_property_value_changed)

_Storage_mask_T_mode = mdl.create_property(
    item_handle=_Storage_mask,
    name="T_mode",
    label="LoadShape input mode",
    widget="combo",
    combo_values=['Loadshape index', 'Time'],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Time Series Settings",
    unit=""
)


_Storage_mask_T_mode_property_value_edited = """
if new_value == "Time":
    mdl.enable_property(mdl.prop(container_handle, "T_Ts"))
else:
    mdl.disable_property(mdl.prop(container_handle, "T_Ts"))

"""
mdl.set_handler_code(_Storage_mask_T_mode, "property_value_edited", _Storage_mask_T_mode_property_value_edited)

_Storage_mask_pct_stored = mdl.create_property(
    item_handle=_Storage_mask,
    name="pct_stored",
    label="Initial SOC",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit="%"
)

_Storage_mask_execution_rate = mdl.create_property(
    item_handle=_Storage_mask,
    name="execution_rate",
    label="Execution rate",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)

_Storage_mask_vmaxpu = mdl.create_property(
    item_handle=_Storage_mask,
    name="vmaxpu",
    label="vmaxpu",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Storage_mask_vminpu = mdl.create_property(
    item_handle=_Storage_mask,
    name="vminpu",
    label="vminpu",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Storage_mask_kva = mdl.create_property(
    item_handle=_Storage_mask,
    name="kva",
    label="kva",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Storage_mask_inv_r = mdl.create_property(
    item_handle=_Storage_mask,
    name="inv_r",
    label="AC-side resistance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter:4",
    unit="Ω"
)

_Storage_mask_inv_l = mdl.create_property(
    item_handle=_Storage_mask,
    name="inv_l",
    label="AC-side inductance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter:4",
    unit="H"
)

_Storage_mask_inv_rf = mdl.create_property(
    item_handle=_Storage_mask,
    name="inv_rf",
    label="Filter resistance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter:4",
    unit="Ω"
)

_Storage_mask_inv_cf = mdl.create_property(
    item_handle=_Storage_mask,
    name="inv_cf",
    label="Filter capacitance",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter:4",
    unit="F"
)

_Storage_mask_inv_kp = mdl.create_property(
    item_handle=_Storage_mask,
    name="inv_kp",
    label="Controller Kp",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter:4",
    unit=""
)

_Storage_mask_inv_ki = mdl.create_property(
    item_handle=_Storage_mask,
    name="inv_ki",
    label="Controller Ki",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="Inverter:4",
    unit=""
)

_Storage_mask_loadshape_n_points = mdl.create_property(
    item_handle=_Storage_mask,
    name="loadshape_n_points",
    label="",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=False,
    tab_name="",
    unit=""
)

_Storage_mask_enable_monitoring = mdl.create_property(
    item_handle=_Storage_mask,
    name="enable_monitoring",
    label="Enable monitoring",
    widget="checkbox",
    combo_values=[],
    evaluate=False,
    enabled=True,
    visible=True,
    tab_name="Monitoring:5",
    unit=""
)


_Storage_mask_define_icon = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Storage_mask, "define_icon", _Storage_mask_define_icon)

_Storage_mask_init = """
import importlib

import dss_thcc_lib.component_scripts.comp_storage as comp_script
importlib.reload(comp_script)
def return_comp_script(mdl, item_handle):
    return comp_script

comp_script.define_icon(mdl, item_handle)

"""
mdl.set_handler_code(_Storage_mask, "init", _Storage_mask_init)

_Storage_mask_pre_compile = """
comp_script = return_comp_script(mdl, item_handle)
comp_script.update_frequency_property(mdl, item_handle)
comp_script.restore_all_storages_points(mdl, item_handle)
# HEADER START
dispatch_p = mdl.get_property_value(mdl.prop(item_handle, "dispatch_p"))
dispatch_q = mdl.get_property_value(mdl.prop(item_handle, "dispatch_q"))
snap_status = mdl.get_property_value(mdl.prop(item_handle, "snap_status"))
kv = mdl.get_property_value(mdl.prop(item_handle, "kv"))
basefreq = mdl.get_property_value(mdl.prop(item_handle, "baseFreq"))
kwrated = mdl.get_property_value(mdl.prop(item_handle, "kwrated"))
kwhrated = mdl.get_property_value(mdl.prop(item_handle, "kwhrated"))
chargetrigger = mdl.get_property_value(mdl.prop(item_handle, "chargetrigger"))
dischargetrigger = mdl.get_property_value(mdl.prop(item_handle, "dischargetrigger"))
pct_charge = mdl.get_property_value(mdl.prop(item_handle, "pct_charge"))
pct_discharge = mdl.get_property_value(mdl.prop(item_handle, "pct_discharge"))
pct_effcharge = mdl.get_property_value(mdl.prop(item_handle, "pct_effcharge"))
pct_effdischarge = mdl.get_property_value(mdl.prop(item_handle, "pct_effdischarge"))
kvar = mdl.get_property_value(mdl.prop(item_handle, "kvar"))
pf = mdl.get_property_value(mdl.prop(item_handle, "pf"))
pct_idlingkvar = mdl.get_property_value(mdl.prop(item_handle, "pct_idlingkvar"))
pct_idlingkw = mdl.get_property_value(mdl.prop(item_handle, "pct_idlingkw"))
pct_reserve = mdl.get_property_value(mdl.prop(item_handle, "pct_reserve"))
loadshape = mdl.get_property_value(mdl.prop(item_handle, "loadshape"))
pct_stored = mdl.get_property_value(mdl.prop(item_handle, "pct_stored"))
execution_rate = mdl.get_property_value(mdl.prop(item_handle, "execution_rate"))
vmaxpu = mdl.get_property_value(mdl.prop(item_handle, "vmaxpu"))
vminpu = mdl.get_property_value(mdl.prop(item_handle, "vminpu"))
kva = mdl.get_property_value(mdl.prop(item_handle, "kva"))
inv_r = mdl.get_property_value(mdl.prop(item_handle, "inv_r"))
inv_l = mdl.get_property_value(mdl.prop(item_handle, "inv_l"))
inv_rf = mdl.get_property_value(mdl.prop(item_handle, "inv_rf"))
inv_cf = mdl.get_property_value(mdl.prop(item_handle, "inv_cf"))
inv_kp = mdl.get_property_value(mdl.prop(item_handle, "inv_kp"))
inv_ki = mdl.get_property_value(mdl.prop(item_handle, "inv_ki"))

# HEADER STOP

comp_script.update_dispatch_int_comp(mdl, item_handle)
comp_script.update_mode_int_comp(mdl, item_handle)
comp_script.time_loadshape_preprocessing(mdl, item_handle)

comp_name = mdl.get_name(mdl.get_parent(item_handle))

try:
    pf_value = mdl.get_property_value(mdl.prop(item_handle, "pf"))
    float(pf_value) # test
except:
    raise Exception(f"Invalid power factor value for component {comp_name}")

comp_script.calculate_kva(mdl, item_handle)

"""
mdl.set_handler_code(_Storage_mask, "pre_compile", _Storage_mask_pre_compile)

_Storage_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p>A detailed explanation of the OpenDSS Storage model can be found by clicking on the help button.</p><p>The Storage component time-domain model is comprised of an ideal battery and a Simple Battery inverter (average) from the Microgrid library.</p></body></html>
'''
mdl.set_description(_Storage_mask, _Storage_mask_desc)
mdl.set_property_value(mdl.prop(_Storage_mask, "global_basefreq"), "False")
mdl.set_property_value(mdl.prop(_Storage_mask, "loadshape"), "")
mdl.set_property_value(mdl.prop(_Storage_mask, "loadshape_name"), "")


# Component: Storage.chtrigger
_Storage_chtrigger = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="chtrigger",
    rotation="up",
    flip="flip_none",
    position=(8200, 7416),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_chtrigger, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_chtrigger, "value"), "chargetrigger")


# Component: Storage.dchtrigger
_Storage_dchtrigger = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="dchtrigger",
    rotation="up",
    flip="flip_none",
    position=(8272, 7368),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_dchtrigger, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_dchtrigger, "value"), "dischargetrigger")


# Component: Storage.Dispatch kW Reference Calculation
_Storage_Dispatch_kW_Reference_Calculation = mdl.create_component(
    type_name="core/C function",
    parent=_Storage,
    name="Dispatch kW Reference Calculation",
    rotation="up",
    flip="flip_none",
    position=(8464, 7416),
    hide_name=False,
    size=(272, 360)
)
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "input_terminals"), "real loadshape_value;inherit kwrated;real dchtrigger;real chtrigger;int dispatch_mode;real pct_charge;real pct_discharge;")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "input_terminals_feedthrough"), "True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "input_terminals_show_labels"), "True;True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "output_fnc"), "/*Begin code section*/

if (dispatch_mode == 1 || dispatch_mode == 2 || dispatch_mode == 3){

    // Discharge mode

    if (loadshape_value > dchtrigger)

        {

            close_contactor = 1;

            p_inv = kwrated*1000*pct_discharge/100;

            //p_bat = kwrated*1000*pct_discharge/100;

        }

    // Charge mode

    else if (loadshape_value < chtrigger)

        {

            close_contactor = 1;

            p_inv = -kwrated*1000*pct_charge/100;

            //p_bat = -kwrated*1000*pct_charge/100;

        }

    // Idle mode

    else

        {

            close_contactor = 0;

            p_inv = -kwrated*1000*pct_idlingkw/100;

            //p_bat = 0;

        }

}

else if (dispatch_mode == 4 || dispatch_mode == 5 || dispatch_mode == 6){

    // Idle mode

    if (loadshape_value == -pct_idlingkw/100)

        {

            close_contactor = 0;

           // p_inv = -kwrated*1000*pct_idlingkw/100;

            //p_bat = 0;

        }

    else

        {

            close_contactor = 1;

            //p_inv = loadshape_value*kwrated*1000;

            //p_bat = loadshape_value*kwrated*1000;

        }

    p_inv = loadshape_value*kwrated*1000;

}

/*End code section*/")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "output_terminals"), "real close_contactor;real p_inv;")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "output_terminals_dimensions"), "inherit;inherit")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "output_terminals_feedthrough"), "True;True")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "output_terminals_show_labels"), "True;True")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_kW_Reference_Calculation, "parameters"), "real pct_idlingkw;")


# Component: Storage.Enable Inverter
_Storage_Enable_Inverter = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="Enable Inverter",
    rotation="up",
    flip="flip_none",
    position=(8704, 7320),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Simple Battery inverter (Average)1
_Storage_Simple_Battery_inverter__Average_1 = mdl.create_component(
    type_name="core/Simple Battery inverter (Average)",
    parent=_Storage,
    name="Simple Battery inverter (Average)1",
    rotation="up",
    flip="flip_horizontal",
    position=(7768, 8312),
    hide_name=False,
    size=(288, 239)
)
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "Cf"), "inv_cf")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "Ki"), "inv_ki")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "Kp"), "inv_kp")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "L"), "inv_l")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "R"), "inv_r")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "Rf"), "inv_rf")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "Sn"), "4*kva*1000")
mdl.set_property_value(mdl.prop(_Storage_Simple_Battery_inverter__Average_1, "Ts"), "execution_rate")


# Component: Storage.Inverter Power Reference
_Storage_Inverter_Power_Reference = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage,
    name="Inverter Power Reference",
    rotation="up",
    flip="flip_none",
    position=(7704, 7952),
    hide_name=False,
    size=(144, 176)
)


# Component: Storage.Inverter Power Reference.Product23
_Storage_Inverter_Power_Reference_Product23 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Inverter_Power_Reference,
    name="Product23",
    rotation="up",
    flip="flip_none",
    position=(7272, 7760),
    hide_name=False,
    size=(0, 0)
)


# Component: Storage.Inverter Power Reference.const_p_mult
_Storage_Inverter_Power_Reference_const_p_mult = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference,
    name="const_p_mult",
    rotation="up",
    flip="flip_none",
    position=(7344, 7840),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_const_p_mult, "execution_rate"), "execution_rate")


# Component: Storage.Inverter Power Reference.Signal switch2
_Storage_Inverter_Power_Reference_Signal_switch2 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Storage_Inverter_Power_Reference,
    name="Signal switch2",
    rotation="up",
    flip="flip_none",
    position=(7448, 7776),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Signal_switch2, "threshold"), "0.1")


# Component: Storage.Inverter Power Reference.kvar calculation
_Storage_Inverter_Power_Reference_kvar_calculation = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage_Inverter_Power_Reference,
    name="kvar calculation",
    rotation="up",
    flip="flip_none",
    position=(7448, 8224),
    hide_name=False,
    size=(120, 80)
)


# Component: Storage.Inverter Power Reference.kvar calculation.Gain1
_Storage_Inverter_Power_Reference_kvar_calculation_Gain1 = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    name="Gain1",
    rotation="up",
    flip="flip_none",
    position=(8752, 8272),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_Gain1, "gain"), "np.sqrt(1/(pf*pf)-1)")


# Component: Storage.Inverter Power Reference.kvar calculation.kwrated
_Storage_Inverter_Power_Reference_kvar_calculation_kwrated = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    name="kwrated",
    rotation="up",
    flip="flip_none",
    position=(8664, 8272),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_kwrated, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_kwrated, "value"), "kwrated*1000")


# Component: Storage.Inverter Power Reference.kvar calculation.unit pf
_Storage_Inverter_Power_Reference_kvar_calculation_unit_pf = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    name="unit pf",
    rotation="up",
    flip="flip_none",
    position=(8664, 8208),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_unit_pf, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_unit_pf, "value"), "0")


# Component: Storage.Inverter Power Reference.kvar calculation.kvar_kvar
_Storage_Inverter_Power_Reference_kvar_calculation_kvar_kvar = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    name="kvar_kvar",
    rotation="up",
    flip="flip_none",
    position=(8664, 8352),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_kvar_kvar, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_kvar_kvar, "value"), "kvar*1000")


# Component: Storage.Inverter Power Reference.kvar calculation.kVAr
_Storage_Inverter_Power_Reference_kvar_calculation_kVAr = mdl.create_component(
    type_name="core/Multiport signal switch",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    name="kVAr",
    rotation="up",
    flip="flip_none",
    position=(8872, 8240),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "number_of_input_terminals"), "6")


# Port: Storage.Inverter Power Reference.kvar calculation.kvar_out
_Storage_Inverter_Power_Reference_kvar_calculation_kvar_out = mdl.create_port(
    name="kvar_out",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8952, 8240)
)

# Port: Storage.Inverter Power Reference.kvar calculation.dispatch_int
_Storage_Inverter_Power_Reference_kvar_calculation_dispatch_int = mdl.create_port(
    name="dispatch_int",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 2),
    rotation="right",
    flip="flip_none",
    hide_name=False,
    position=(8824, 8152)
)

# Junction: Storage.Inverter Power Reference.kvar calculation.Junction1
_Storage_Inverter_Power_Reference_kvar_calculation_Junction1 = mdl.create_junction(
    name="Junction1",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    kind="sp",
    position=(8808, 8208)
)

# Junction: Storage.Inverter Power Reference.kvar calculation.Junction2
_Storage_Inverter_Power_Reference_kvar_calculation_Junction2 = mdl.create_junction(
    name="Junction2",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    kind="sp",
    position=(8832, 8272)
)

# Junction: Storage.Inverter Power Reference.kvar calculation.Junction3
_Storage_Inverter_Power_Reference_kvar_calculation_Junction3 = mdl.create_junction(
    name="Junction3",
    parent=_Storage_Inverter_Power_Reference_kvar_calculation,
    kind="sp",
    position=(8800, 8288)
)

# Component: Storage.Inverter Power Reference.Inverter P Reference
_Storage_Inverter_Power_Reference_Inverter_P_Reference = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Inverter_Power_Reference,
    name="Inverter P Reference",
    rotation="left",
    flip="flip_none",
    position=(7712, 7832),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Inverter Power Reference.vmin
_Storage_Inverter_Power_Reference_vmin = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference,
    name="vmin",
    rotation="up",
    flip="flip_none",
    position=(6928, 7712),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_vmin, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_vmin, "value"), "kv*1000*vminpu")


# Component: Storage.Inverter Power Reference.Product16
_Storage_Inverter_Power_Reference_Product16 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Inverter_Power_Reference,
    name="Product16",
    rotation="up",
    flip="flip_none",
    position=(7176, 7760),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Product16, "signs"), "/*")


# Component: Storage.Inverter Power Reference.Gain3
_Storage_Inverter_Power_Reference_Gain3 = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Inverter_Power_Reference,
    name="Gain3",
    rotation="up",
    flip="flip_none",
    position=(8112, 8216),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Gain3, "gain"), "-1")


# Component: Storage.Inverter Power Reference.ctZ
_Storage_Inverter_Power_Reference_ctZ = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Inverter_Power_Reference,
    name="ctZ",
    rotation="up",
    flip="flip_none",
    position=(7496, 7520),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Inverter Power Reference.Product20
_Storage_Inverter_Power_Reference_Product20 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Inverter_Power_Reference,
    name="Product20",
    rotation="up",
    flip="flip_none",
    position=(7616, 7912),
    hide_name=False,
    size=(0, 0)
)


# Component: Storage.Inverter Power Reference.ctz_multiplier
_Storage_Inverter_Power_Reference_ctz_multiplier = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Inverter_Power_Reference,
    name="ctz_multiplier",
    rotation="up",
    flip="flip_none",
    position=(7392, 7696),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Inverter Power Reference.Inverter Q Reference
_Storage_Inverter_Power_Reference_Inverter_Q_Reference = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Inverter_Power_Reference,
    name="Inverter Q Reference",
    rotation="right",
    flip="flip_none",
    position=(8392, 8288),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Inverter Power Reference.Constant Z mode check
_Storage_Inverter_Power_Reference_Constant_Z_mode_check = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage_Inverter_Power_Reference,
    name="Constant Z mode check",
    rotation="up",
    flip="flip_none",
    position=(7032, 7520),
    hide_name=False,
    size=(152, 88)
)


# Component: Storage.Inverter Power Reference.Constant Z mode check.vminpu
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vminpu = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    name="vminpu",
    rotation="up",
    flip="flip_none",
    position=(8088, 8248),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vminpu, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vminpu, "value"), "vminpu*kv*1000")


# Component: Storage.Inverter Power Reference.Constant Z mode check.Relational operator2
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator2 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    name="Relational operator2",
    rotation="up",
    flip="flip_none",
    position=(8184, 8240),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator2, "relational_op"), "<")


# Component: Storage.Inverter Power Reference.Constant Z mode check.vmaxpu
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vmaxpu = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    name="vmaxpu",
    rotation="up",
    flip="flip_none",
    position=(8088, 8152),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vmaxpu, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vmaxpu, "value"), "vmaxpu*kv*1000")


# Component: Storage.Inverter Power Reference.Constant Z mode check.Relational operator1
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator1 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    name="Relational operator1",
    rotation="up",
    flip="flip_none",
    position=(8184, 8144),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator1, "relational_op"), ">")


# Component: Storage.Inverter Power Reference.Constant Z mode check.Logical operator1
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Logical_operator1 = mdl.create_component(
    type_name="core/Logical operator",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    name="Logical operator1",
    rotation="up",
    flip="flip_none",
    position=(8296, 8192),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Logical_operator1, "operator"), "OR")


# Port: Storage.Inverter Power Reference.Constant Z mode check.constant_z_mode
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_constant_z_mode = mdl.create_port(
    name="constant_z_mode",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8408, 8192)
)

# Port: Storage.Inverter Power Reference.Constant Z mode check.v_line
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_v_line = mdl.create_port(
    name="v_line",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8088, 8080)
)

# Junction: Storage.Inverter Power Reference.Constant Z mode check.Junction560
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Junction560 = mdl.create_junction(
    name="Junction560",
    parent=_Storage_Inverter_Power_Reference_Constant_Z_mode_check,
    kind="sp",
    position=(8120, 8136)
)

# Component: Storage.Inverter Power Reference.vmax
_Storage_Inverter_Power_Reference_vmax = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Inverter_Power_Reference,
    name="vmax",
    rotation="up",
    flip="flip_none",
    position=(6928, 7648),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_vmax, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_vmax, "value"), "kv*1000*vmaxpu")


# Component: Storage.Inverter Power Reference.Product21
_Storage_Inverter_Power_Reference_Product21 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Inverter_Power_Reference,
    name="Product21",
    rotation="up",
    flip="flip_none",
    position=(7680, 8216),
    hide_name=False,
    size=(0, 0)
)


# Component: Storage.Inverter Power Reference.Data Type Conversion1
_Storage_Inverter_Power_Reference_Data_Type_Conversion1 = mdl.create_component(
    type_name="core/Data Type Conversion",
    parent=_Storage_Inverter_Power_Reference,
    name="Data Type Conversion1",
    rotation="up",
    flip="flip_none",
    position=(7792, 8216),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Inverter Power Reference.Signal switch4
_Storage_Inverter_Power_Reference_Signal_switch4 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Storage_Inverter_Power_Reference,
    name="Signal switch4",
    rotation="up",
    flip="flip_none",
    position=(7024, 7680),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Inverter_Power_Reference_Signal_switch4, "threshold"), "kv*1000")


# Port: Storage.Inverter Power Reference.v_line
_Storage_Inverter_Power_Reference_v_line = mdl.create_port(
    name="v_line",
    parent=_Storage_Inverter_Power_Reference,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 2),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6720, 7872)
)

# Port: Storage.Inverter Power Reference.dss_kw
_Storage_Inverter_Power_Reference_dss_kw = mdl.create_port(
    name="dss_kw",
    parent=_Storage_Inverter_Power_Reference,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 3),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7464, 7920)
)

# Port: Storage.Inverter Power Reference.ctz_p_mult
_Storage_Inverter_Power_Reference_ctz_p_mult = mdl.create_port(
    name="ctz_p_mult",
    parent=_Storage_Inverter_Power_Reference,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('auto', 'auto'),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7592, 7704)
)

# Port: Storage.Inverter Power Reference.inv_q
_Storage_Inverter_Power_Reference_inv_q = mdl.create_port(
    name="inv_q",
    parent=_Storage_Inverter_Power_Reference,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('auto', 'auto'),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8448, 8216)
)

# Port: Storage.Inverter Power Reference.inv_p
_Storage_Inverter_Power_Reference_inv_p = mdl.create_port(
    name="inv_p",
    parent=_Storage_Inverter_Power_Reference,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('auto', 'auto'),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7760, 7912)
)

# Port: Storage.Inverter Power Reference.dispatch_mode_int
_Storage_Inverter_Power_Reference_dispatch_mode_int = mdl.create_port(
    name="dispatch_mode_int",
    parent=_Storage_Inverter_Power_Reference,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7296, 8224)
)

# Junction: Storage.Inverter Power Reference.Junction585
_Storage_Inverter_Power_Reference_Junction585 = mdl.create_junction(
    name="Junction585",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(7224, 7760)
)

# Junction: Storage.Inverter Power Reference.Junction562
_Storage_Inverter_Power_Reference_Junction562 = mdl.create_junction(
    name="Junction562",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(7448, 7520)
)

# Junction: Storage.Inverter Power Reference.Junction587
_Storage_Inverter_Power_Reference_Junction587 = mdl.create_junction(
    name="Junction587",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(8392, 8216)
)

# Junction: Storage.Inverter Power Reference.Junction563
_Storage_Inverter_Power_Reference_Junction563 = mdl.create_junction(
    name="Junction563",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(6800, 7616)
)

# Junction: Storage.Inverter Power Reference.Junction588
_Storage_Inverter_Power_Reference_Junction588 = mdl.create_junction(
    name="Junction588",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(7712, 7912)
)

# Junction: Storage.Inverter Power Reference.Junction564
_Storage_Inverter_Power_Reference_Junction564 = mdl.create_junction(
    name="Junction564",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(7536, 7904)
)

# Junction: Storage.Inverter Power Reference.Junction580
_Storage_Inverter_Power_Reference_Junction580 = mdl.create_junction(
    name="Junction580",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(7536, 7776)
)

# Junction: Storage.Inverter Power Reference.Junction584
_Storage_Inverter_Power_Reference_Junction584 = mdl.create_junction(
    name="Junction584",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(7344, 7760)
)

# Junction: Storage.Inverter Power Reference.Junction583
_Storage_Inverter_Power_Reference_Junction583 = mdl.create_junction(
    name="Junction583",
    parent=_Storage_Inverter_Power_Reference,
    kind="sp",
    position=(6800, 7872)
)

# Comment: Storage.Inverter Power Reference.Comment8
_Storage_Inverter_Power_Reference_Comment8 = mdl.create_comment(
    text="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\"><html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">p, li { white-space: pre-wrap; }</style></head><body style=\" font-family:\'Arial\'; font-size:12pt; font-weight:400; font-style:normal;\"><p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Multiplier</p></body></html> ",
    parent=_Storage_Inverter_Power_Reference,
    position=(7552, 7656)
)

# Component: Storage.Vline
_Storage_Vline = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="Vline",
    rotation="left",
    flip="flip_none",
    position=(7424, 7872),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.dss_inv_ref
_Storage_dss_inv_ref = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="dss_inv_ref",
    rotation="up",
    flip="flip_none",
    position=(8736, 7576),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Active status
_Storage_Active_status = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage,
    name="Active status",
    rotation="up",
    flip="flip_none",
    position=(7696, 7696),
    hide_name=False,
    size=(104, 96)
)


# Component: Storage.Active status.bool_to_real
_Storage_Active_status_bool_to_real = mdl.create_component(
    type_name="core/Data Type Conversion",
    parent=_Storage_Active_status,
    name="bool_to_real",
    rotation="up",
    flip="flip_none",
    position=(8296, 8192),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Active status.Logical operator1
_Storage_Active_status_Logical_operator1 = mdl.create_component(
    type_name="core/Logical operator",
    parent=_Storage_Active_status,
    name="Logical operator1",
    rotation="up",
    flip="flip_none",
    position=(8192, 8192),
    hide_name=False,
    size=(0, 0)
)


# Port: Storage.Active status.Out3
_Storage_Active_status_Out3 = mdl.create_port(
    name="Out3",
    parent=_Storage_Active_status,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8384, 8192)
)

# Port: Storage.Active status.In1
_Storage_Active_status_In1 = mdl.create_port(
    name="In1",
    parent=_Storage_Active_status,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8072, 8144)
)

# Port: Storage.Active status.In2
_Storage_Active_status_In2 = mdl.create_port(
    name="In2",
    parent=_Storage_Active_status,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 2),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8072, 8240)
)

# Component: Storage.Battery Active
_Storage_Battery_Active = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="Battery Active",
    rotation="up",
    flip="flip_none",
    position=(7864, 7632),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Three-phase Meter1
_Storage_Three_phase_Meter1 = mdl.create_component(
    type_name="core/Three-phase Meter",
    parent=_Storage,
    name="Three-phase Meter1",
    rotation="up",
    flip="flip_horizontal",
    position=(7240, 8312),
    hide_name=False,
    size=(56, 240)
)
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "P_meas"), "True")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "Ts"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "VAB"), "True")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "VBC"), "True")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "VCA"), "True")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "VLL_avg_rms"), "True")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "VLL_rms"), "True")
mdl.set_property_value(mdl.prop(_Storage_Three_phase_Meter1, "freq"), "True")


# Component: Storage.Meter Split1
_Storage_Meter_Split1 = mdl.create_component(
    type_name="core/Meter Split",
    parent=_Storage,
    name="Meter Split1",
    rotation="up",
    flip="flip_none",
    position=(7320, 8008),
    hide_name=False,
    size=(88, 200)
)
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "power_p"), "True")
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "power_pf"), "True")
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "power_q"), "True")
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "van"), "False")
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "vbn"), "False")
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "vcn"), "False")
mdl.set_property_value(mdl.prop(_Storage_Meter_Split1, "vll_rms"), "True")


# Component: Storage.P
_Storage_P = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="P",
    rotation="up",
    flip="flip_none",
    position=(7432, 7984),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Q
_Storage_Q = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="Q",
    rotation="up",
    flip="flip_none",
    position=(7456, 8032),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.pf
_Storage_pf = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="pf",
    rotation="up",
    flip="flip_none",
    position=(7488, 8080),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Dispatch Mode Integer
_Storage_Dispatch_Mode_Integer = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage,
    name="Dispatch Mode Integer",
    rotation="up",
    flip="flip_none",
    position=(7944, 7464),
    hide_name=False,
    size=(152, 56)
)
_Storage_Dispatch_Mode_Integer_mask = mdl.create_mask(_Storage_Dispatch_Mode_Integer)
_Storage_Dispatch_Mode_Integer_mask_dispatch_mode_int = mdl.create_property(
    item_handle=_Storage_Dispatch_Mode_Integer_mask,
    name="dispatch_mode_int",
    label="Dispatch Mode",
    widget="edit",
    combo_values=[],
    evaluate=True,
    enabled=True,
    visible=True,
    tab_name="",
    unit=""
)


_Storage_Dispatch_Mode_Integer_mask_init = """

"""
mdl.set_handler_code(_Storage_Dispatch_Mode_Integer_mask, "init", _Storage_Dispatch_Mode_Integer_mask_init)

_Storage_Dispatch_Mode_Integer_mask_pre_compile = """

"""
mdl.set_handler_code(_Storage_Dispatch_Mode_Integer_mask, "pre_compile", _Storage_Dispatch_Mode_Integer_mask_pre_compile)

_Storage_Dispatch_Mode_Integer_mask_desc = '''
<html><head><meta name="qrichtext" content="1"></meta><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=""><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br></br></p></body></html>
'''
mdl.set_description(_Storage_Dispatch_Mode_Integer_mask, _Storage_Dispatch_Mode_Integer_mask_desc)


# Component: Storage.Dispatch Mode Integer.kw_mode
_Storage_Dispatch_Mode_Integer_kw_mode = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Dispatch_Mode_Integer,
    name="kw_mode",
    rotation="up",
    flip="flip_none",
    position=(8352, 8168),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Dispatch_Mode_Integer_kw_mode, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_Mode_Integer_kw_mode, "signal_type"), "int")
mdl.set_property_value(mdl.prop(_Storage_Dispatch_Mode_Integer_kw_mode, "value"), "dispatch_mode_int")


# Port: Storage.Dispatch Mode Integer.dispatch_mode_int
_Storage_Dispatch_Mode_Integer_dispatch_mode_int = mdl.create_port(
    name="dispatch_mode_int",
    parent=_Storage_Dispatch_Mode_Integer,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8440, 8168)
)

# Component: Storage.pct_charge
_Storage_pct_charge = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="pct_charge",
    rotation="up",
    flip="flip_none",
    position=(8200, 7512),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_pct_charge, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_pct_charge, "value"), "pct_charge")


# Component: Storage.pct_discharge
_Storage_pct_discharge = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="pct_discharge",
    rotation="up",
    flip="flip_none",
    position=(8272, 7560),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_pct_discharge, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_pct_discharge, "value"), "pct_discharge")


# Component: Storage.kwrated
_Storage_kwrated = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="kwrated",
    rotation="up",
    flip="flip_none",
    position=(8200, 7320),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_kwrated, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_kwrated, "value"), "kwrated")


# Component: Storage.Battery Energy
_Storage_Battery_Energy = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage,
    name="Battery Energy",
    rotation="up",
    flip="flip_none",
    position=(8528, 8304),
    hide_name=False,
    size=(184, 216)
)


# Component: Storage.Battery Energy.charge_gain
_Storage_Battery_Energy_charge_gain = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Battery_Energy,
    name="charge_gain",
    rotation="up",
    flip="flip_none",
    position=(7952, 8360),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_charge_gain, "gain"), "pct_effcharge/100")


# Component: Storage.Battery Energy.Product2
_Storage_Battery_Energy_Product2 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Battery_Energy,
    name="Product2",
    rotation="up",
    flip="flip_none",
    position=(8464, 8288),
    hide_name=False,
    size=(0, 0)
)


# Component: Storage.Battery Energy.Relational operator1
_Storage_Battery_Energy_Relational_operator1 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_Storage_Battery_Energy,
    name="Relational operator1",
    rotation="up",
    flip="flip_none",
    position=(8944, 8640),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Relational_operator1, "relational_op"), "<")


# Component: Storage.Battery Energy.Step1
_Storage_Battery_Energy_Step1 = mdl.create_component(
    type_name="core/Step",
    parent=_Storage_Battery_Energy,
    name="Step1",
    rotation="up",
    flip="flip_none",
    position=(8384, 8240),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Step1, "execution_rate"), "execution_rate")


# Component: Storage.Battery Energy.discharge_gain
_Storage_Battery_Energy_discharge_gain = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Battery_Energy,
    name="discharge_gain",
    rotation="up",
    flip="flip_none",
    position=(7944, 8136),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_discharge_gain, "gain"), "1/(pct_effdischarge/100 + 1e-7)")


# Component: Storage.Battery Energy.reserve
_Storage_Battery_Energy_reserve = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Battery_Energy,
    name="reserve",
    rotation="up",
    flip="flip_none",
    position=(8752, 8504),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_reserve, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_reserve, "value"), "pct_reserve/100")


# Component: Storage.Battery Energy.Energy
_Storage_Battery_Energy_Energy = mdl.create_component(
    type_name="core/Integrator",
    parent=_Storage_Battery_Energy,
    name="Energy",
    rotation="up",
    flip="flip_none",
    position=(8656, 8288),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Energy, "init_value"), "pct_stored/100*kwhrated*1000")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Energy, "limit_lower"), "kwhrated*1000*pct_reserve/100")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Energy, "limit_output"), "True")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Energy, "limit_upper"), "kwhrated*1000")


# Component: Storage.Battery Energy.Relational operator2
_Storage_Battery_Energy_Relational_operator2 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_Storage_Battery_Energy,
    name="Relational operator2",
    rotation="up",
    flip="flip_none",
    position=(8896, 8752),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Relational_operator2, "relational_op"), "!=")


# Component: Storage.Battery Energy.SOC
_Storage_Battery_Energy_SOC = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Battery_Energy,
    name="SOC",
    rotation="up",
    flip="flip_none",
    position=(9024, 8224),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Battery Energy.zero
_Storage_Battery_Energy_zero = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Battery_Energy,
    name="zero",
    rotation="up",
    flip="flip_none",
    position=(8752, 8760),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_zero, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_zero, "value"), "0")


# Component: Storage.Battery Energy.Gain3
_Storage_Battery_Energy_Gain3 = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Battery_Energy,
    name="Gain3",
    rotation="up",
    flip="flip_none",
    position=(8864, 8224),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Gain3, "gain"), "100/(kwhrated*1000)")


# Component: Storage.Battery Energy.idle_losses
_Storage_Battery_Energy_idle_losses = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Battery_Energy,
    name="idle_losses",
    rotation="up",
    flip="flip_none",
    position=(7392, 8392),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_idle_losses, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_idle_losses, "value"), "kwrated*1000*pct_idlingkw/100")


# Component: Storage.Battery Energy.Sum7
_Storage_Battery_Energy_Sum7 = mdl.create_component(
    type_name="core/Sum",
    parent=_Storage_Battery_Energy,
    name="Sum7",
    rotation="up",
    flip="flip_none",
    position=(7736, 8248),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Sum7, "signs"), "++")


# Component: Storage.Battery Energy.Signal switch6
_Storage_Battery_Energy_Signal_switch6 = mdl.create_component(
    type_name="core/Signal switch",
    parent=_Storage_Battery_Energy,
    name="Signal switch6",
    rotation="up",
    flip="flip_none",
    position=(8088, 8296),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Signal_switch6, "criterion"), "ctrl >= threshold")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Signal_switch6, "threshold"), "0")


# Component: Storage.Battery Energy.reserve1
_Storage_Battery_Energy_reserve1 = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Battery_Energy,
    name="reserve1",
    rotation="up",
    flip="flip_none",
    position=(8752, 8648),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_reserve1, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_reserve1, "value"), "100")


# Component: Storage.Battery Energy.Product3
_Storage_Battery_Energy_Product3 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Battery_Energy,
    name="Product3",
    rotation="up",
    flip="flip_none",
    position=(7528, 8440),
    hide_name=False,
    size=(0, 0)
)


# Component: Storage.Battery Energy.Gain4
_Storage_Battery_Energy_Gain4 = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Battery_Energy,
    name="Gain4",
    rotation="up",
    flip="flip_none",
    position=(8560, 8288),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Gain4, "gain"), "-1")


# Component: Storage.Battery Energy.p_ch_dch
_Storage_Battery_Energy_p_ch_dch = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Battery_Energy,
    name="p_ch_dch",
    rotation="up",
    flip="flip_none",
    position=(8272, 8208),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Battery Energy.Relational operator3
_Storage_Battery_Energy_Relational_operator3 = mdl.create_component(
    type_name="core/Relational operator",
    parent=_Storage_Battery_Energy,
    name="Relational operator3",
    rotation="up",
    flip="flip_none",
    position=(8944, 8496),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Relational_operator3, "relational_op"), ">")


# Component: Storage.Battery Energy.C function1
_Storage_Battery_Energy_C_function1 = mdl.create_component(
    type_name="core/C function",
    parent=_Storage_Battery_Energy,
    name="C function1",
    rotation="up",
    flip="flip_none",
    position=(7080, 8056),
    hide_name=False,
    size=(120, 168)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "global_variables"), "int old_point;")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "input_terminals"), "int load_point;inherit p_in;int idle_signal;int mode_int;")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "input_terminals_feedthrough"), "True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "input_terminals_show_labels"), "False;False;False;False")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "output_fnc"), "/*Begin code section*/

if (mode_int == 1){

    // Loadshape time mode

    // input is the time

    if (load_point < 1){kw = 0;}

    else{

        if (load_point != old_point){

            kw = p_in;

            old_point = load_point;

            //kw = p_in*kwrated*1000;

        }

    }

}

else{

    // Loadshape index mode

    // input is the index

    kw = p_in;

}





kw = kw * idle_signal;

/*End code section*/")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "output_terminals"), "real kw;")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "output_terminals_dimensions"), "1")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "output_terminals_feedthrough"), "True")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "output_terminals_show_labels"), "False")
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_C_function1, "parameters"), "real kwrated;")


# Component: Storage.Battery Energy.Product1
_Storage_Battery_Energy_Product1 = mdl.create_component(
    type_name="core/Product",
    parent=_Storage_Battery_Energy,
    name="Product1",
    rotation="up",
    flip="flip_none",
    position=(7464, 8128),
    hide_name=False,
    size=(0, 0)
)


# Component: Storage.Battery Energy.p_idl_losses
_Storage_Battery_Energy_p_idl_losses = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Battery_Energy,
    name="p_idl_losses",
    rotation="up",
    flip="flip_none",
    position=(7712, 8440),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Battery Energy.Logical operator1
_Storage_Battery_Energy_Logical_operator1 = mdl.create_component(
    type_name="core/Logical operator",
    parent=_Storage_Battery_Energy,
    name="Logical operator1",
    rotation="up",
    flip="flip_none",
    position=(9056, 8576),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Battery_Energy_Logical_operator1, "inputs"), "3")


# Component: Storage.Battery Energy.inv_eff
_Storage_Battery_Energy_inv_eff = mdl.create_component(
    type_name="core/Gain",
    parent=_Storage_Battery_Energy,
    name="inv_eff",
    rotation="up",
    flip="flip_none",
    position=(7576, 8128),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Battery Energy.pmult
_Storage_Battery_Energy_pmult = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Battery_Energy,
    name="pmult",
    rotation="up",
    flip="flip_none",
    position=(7464, 8216),
    hide_name=False,
    size=(None, None)
)


# Port: Storage.Battery Energy.bat_energy
_Storage_Battery_Energy_bat_energy = mdl.create_port(
    name="bat_energy",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8944, 8288)
)

# Port: Storage.Battery Energy.ctz_p_mult
_Storage_Battery_Energy_ctz_p_mult = mdl.create_port(
    name="ctz_p_mult",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 3),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7216, 8136)
)

# Port: Storage.Battery Energy.p_in
_Storage_Battery_Energy_p_in = mdl.create_port(
    name="p_in",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6872, 8040)
)

# Port: Storage.Battery Energy.bat_active
_Storage_Battery_Energy_bat_active = mdl.create_port(
    name="bat_active",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(9184, 8576)
)

# Port: Storage.Battery Energy.bat_soc
_Storage_Battery_Energy_bat_soc = mdl.create_port(
    name="bat_soc",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8960, 8168)
)

# Port: Storage.Battery Energy.load_point
_Storage_Battery_Energy_load_point = mdl.create_port(
    name="load_point",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6920, 7992)
)

# Port: Storage.Battery Energy.idle_signal
_Storage_Battery_Energy_idle_signal = mdl.create_port(
    name="idle_signal",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6928, 8072)
)

# Port: Storage.Battery Energy.mode
_Storage_Battery_Energy_mode = mdl.create_port(
    name="mode",
    parent=_Storage_Battery_Energy,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(6864, 8120)
)

# Tag: Storage.Battery Energy.Tag1
_Storage_Battery_Energy_Tag1 = mdl.create_tag(
    value="bat_active",
    name="Tag1",
    parent=_Storage_Battery_Energy,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(9184, 8712)
)

# Tag: Storage.Battery Energy.Tag4
_Storage_Battery_Energy_Tag4 = mdl.create_tag(
    value="(C function1)(kw)",
    name="Tag4",
    parent=_Storage_Battery_Energy,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8808, 8744)
)

# Tag: Storage.Battery Energy.Tag3
_Storage_Battery_Energy_Tag3 = mdl.create_tag(
    value="bat_active",
    name="Tag3",
    parent=_Storage_Battery_Energy,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7384, 8480)
)

# Tag: Storage.Battery Energy.Tag7
_Storage_Battery_Energy_Tag7 = mdl.create_tag(
    value="(C function1)(kw)",
    name="Tag7",
    parent=_Storage_Battery_Energy,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7512, 8024)
)

# Junction: Storage.Battery Energy.Junction667
_Storage_Battery_Energy_Junction667 = mdl.create_junction(
    name="Junction667",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(8896, 8488)
)

# Junction: Storage.Battery Energy.Junction668
_Storage_Battery_Energy_Junction668 = mdl.create_junction(
    name="Junction668",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(9120, 8576)
)

# Junction: Storage.Battery Energy.Junction673
_Storage_Battery_Energy_Junction673 = mdl.create_junction(
    name="Junction673",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(8816, 8288)
)

# Junction: Storage.Battery Energy.Junction680
_Storage_Battery_Energy_Junction680 = mdl.create_junction(
    name="Junction680",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(7872, 8136)
)

# Junction: Storage.Battery Energy.Junction681
_Storage_Battery_Energy_Junction681 = mdl.create_junction(
    name="Junction681",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(7872, 8248)
)

# Junction: Storage.Battery Energy.Junction682
_Storage_Battery_Energy_Junction682 = mdl.create_junction(
    name="Junction682",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(7296, 8056)
)

# Junction: Storage.Battery Energy.Junction656
_Storage_Battery_Energy_Junction656 = mdl.create_junction(
    name="Junction656",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(7384, 8136)
)

# Junction: Storage.Battery Energy.Junction657
_Storage_Battery_Energy_Junction657 = mdl.create_junction(
    name="Junction657",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(8176, 8296)
)

# Junction: Storage.Battery Energy.Junction663
_Storage_Battery_Energy_Junction663 = mdl.create_junction(
    name="Junction663",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(7648, 8440)
)

# Junction: Storage.Battery Energy.Junction666
_Storage_Battery_Energy_Junction666 = mdl.create_junction(
    name="Junction666",
    parent=_Storage_Battery_Energy,
    kind="sp",
    position=(8896, 8224)
)

# Comment: Storage.Battery Energy.Comment2
_Storage_Battery_Energy_Comment2 = mdl.create_comment(
    text="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\"><html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">p, li { white-space: pre-wrap; }</style></head><body style=\" font-family:\'Arial\'; font-size:12pt; font-weight:400; font-style:normal;\"><p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Not implemented</p></body></html> ",
    parent=_Storage_Battery_Energy,
    position=(7520, 8072)
)

# Component: Storage.Disconnect if on reserve or charged
_Storage_Disconnect_if_on_reserve_or_charged = mdl.create_component(
    type_name="core/C function",
    parent=_Storage,
    name="Disconnect if on reserve or charged",
    rotation="up",
    flip="flip_none",
    position=(7552, 7400),
    hide_name=False,
    size=(216, 280)
)
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "input_terminals"), "real energy;inherit kwhrated;inherit pct_reserve;inherit kwref;inherit active_inverter;")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "input_terminals_feedthrough"), "True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "input_terminals_show_labels"), "True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "output_fnc"), "/*Begin code section*/

if (active_inverter){

    if (energy >= kwhrated*1000){

        if (kwref >= 0){

            connect_battery = 1;

        }

        else{

            connect_battery = 0;

        }

    }

    else if (energy <= kwhrated*1000*pct_reserve/100){

            if (kwref < 0){

                connect_battery = 1;

            }

            else{

                connect_battery = 0;

            }

        }

    else {

            connect_battery = 1;

        }

}

else{

    connect_battery = 0;

}

/*End code section*/")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "output_terminals"), "real connect_battery;")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "output_terminals_dimensions"), "inherit")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "output_terminals_feedthrough"), "True")
mdl.set_property_value(mdl.prop(_Storage_Disconnect_if_on_reserve_or_charged, "output_terminals_show_labels"), "True")


# Component: Storage.kwhrated
_Storage_kwhrated = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="kwhrated",
    rotation="up",
    flip="flip_none",
    position=(7352, 7344),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_kwhrated, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_kwhrated, "value"), "kwhrated")


# Component: Storage.pct_reserve
_Storage_pct_reserve = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="pct_reserve",
    rotation="up",
    flip="flip_none",
    position=(7352, 7400),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_pct_reserve, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_pct_reserve, "value"), "pct_reserve")


# Component: Storage.Termination2
_Storage_Termination2 = mdl.create_component(
    type_name="core/Termination",
    parent=_Storage,
    name="Termination2",
    rotation="left",
    flip="flip_none",
    position=(7656, 8160),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Loadshape Point Calculator
_Storage_Loadshape_Point_Calculator = mdl.create_component(
    type_name="core/Empty Subsystem",
    parent=_Storage,
    name="Loadshape Point Calculator",
    rotation="up",
    flip="flip_none",
    position=(7928, 7320),
    hide_name=False,
    size=(152, 136)
)


# Component: Storage.Loadshape Point Calculator.time
_Storage_Loadshape_Point_Calculator_time = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Loadshape_Point_Calculator,
    name="time",
    rotation="up",
    flip="flip_none",
    position=(8216, 8168),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_time, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_time, "value"), "T_Ts")


# Component: Storage.Loadshape Point Calculator.loadshape
_Storage_Loadshape_Point_Calculator_loadshape = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Loadshape_Point_Calculator,
    name="loadshape",
    rotation="up",
    flip="flip_none",
    position=(8136, 8136),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_loadshape, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_loadshape, "value"), "loadshape")


# Component: Storage.Loadshape Point Calculator.toint
_Storage_Loadshape_Point_Calculator_toint = mdl.create_component(
    type_name="core/Data Type Conversion",
    parent=_Storage_Loadshape_Point_Calculator,
    name="toint",
    rotation="up",
    flip="flip_none",
    position=(8216, 8248),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_toint, "output_type"), "int")


# Component: Storage.Loadshape Point Calculator.mode_int
_Storage_Loadshape_Point_Calculator_mode_int = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage_Loadshape_Point_Calculator,
    name="mode_int",
    rotation="up",
    flip="flip_none",
    position=(7992, 8216),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_mode_int, "execution_rate"), "execution_rate")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_mode_int, "value"), "0")


# Component: Storage.Loadshape Point Calculator.Loadshape Value
_Storage_Loadshape_Point_Calculator_Loadshape_Value = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage_Loadshape_Point_Calculator,
    name="Loadshape Value",
    rotation="up",
    flip="flip_none",
    position=(8520, 8032),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Loadshape Point Calculator.Advanced C function1
_Storage_Loadshape_Point_Calculator_Advanced_C_function1 = mdl.create_component(
    type_name="core/C function",
    parent=_Storage_Loadshape_Point_Calculator,
    name="Advanced C function1",
    rotation="up",
    flip="flip_none",
    position=(8336, 8232),
    hide_name=False,
    size=(144, 240)
)
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "arb_defs"), "/*Begin code section*/

double slopes[loadshape_n_points] = {0};

/*End code section*/")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "global_variables"), "real out_value;real ls_interval;int idx;real end_point;real bat_full;real bat_on_reserve;real saved_point;int old_index;real var_input_time;real start_point;")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "init_fnc"), "/*Begin code section*/

start_index = 0;

old_index = start_index;

end_index = 1;

/*End code section*/")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_terminals"), "real loadshape_array;inherit time_array;int input_mode;int input_idx;real input_time;real bat_soc;")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_terminals_dimensions"), "inherit;inherit;inherit;inherit;inherit;inherit")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_terminals_feedthrough"), "True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_terminals_show_labels"), "True;True;True;True;True;True")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "output_fnc"), "/*Begin code section*/

if (bat_soc <= 1.001*pct_reserve){

    bat_full = 0;

    bat_on_reserve = 1;

    }

else if (bat_soc >= 99.999){

    bat_full = 1;

    bat_on_reserve = 0;

    }

else {

    bat_full = 0;

    bat_on_reserve = 0;

    }



if (input_mode == 0){

    // Loadshape index mode

    // input is the index



    // Limit the index values

    if (input_idx > loadshape_n_points - 1) {

        out_value = loadshape_array[loadshape_n_points - 1];

    }

    else if (input_idx < 0) {

        out_value = loadshape_array[0];

    }

}

else if (input_mode == 1){

    // Time mode

    // input is the time



    if (input_time < 1) {

        // Preset value for the first step

        out_value = 0;

        saved_point = loadshape_array[0];

        }



    else{

        idle_signal = 1;



        if (loadshape_int == 0){

            // Variable time interval

            if (input_time >= (time_array[loadshape_n_points - 1])){

                start_index = loadshape_n_points - 1;

                end_index = 0;

                var_input_time = fmod(input_time, time_array[loadshape_n_points - 1]);

            }

            else{

                start_index = 0;

                end_index = 1;

                var_input_time = input_time;

            }

            for (idx = 0; idx < loadshape_n_points; idx++){

                if (var_input_time >= time_array[idx]){

                    start_index = idx;

                    end_index = start_index + 1;

                }

            }



            // If last index, next index should be 0

            if (start_index == (loadshape_n_points - 1)){

                end_index = 0;

                ls_interval = 1;

            }

            else{

                ls_interval = time_array[end_index] - time_array[start_index];

            }

        }

        else{

            // Fixed time interval

            var_input_time = fmod(input_time - 1, loadshape_int*loadshape_n_points);

            start_index = var_input_time / loadshape_int;

            end_index = start_index + 1;



            ls_interval = loadshape_int;

            if (start_index == (loadshape_n_points - 1)){

                end_index = 0;

            }

        }



        start_point = loadshape_array[start_index];

        if (start_point == 0){

            start_point = -pct_idlingkw/100;

            idle_signal = 0;

        }

        end_point = loadshape_array[end_index];

        if (end_point == 0){

            end_point = -pct_idlingkw/100;

        }



        slope = (end_point - start_point)/ls_interval;



        if (old_index != start_index){

            saved_point = out_value;

            old_index = start_index;

        }



         // If the battery will be full / on reserve on the next step, power reference becomes just the idle power

        if (((end_point >= -pct_idlingkw/100) & (bat_on_reserve == 1)) | ((end_point <= -pct_idlingkw/100) & (bat_full == 1))){

            end_point = -pct_idlingkw/100;

            //idle_signal = 0;

            //end_point = 0;

            //slope = (end_point - saved_point)/ls_interval;;

            //start_point = saved_point;

        }

        //else{

        slope = (end_point - saved_point)/ls_interval;

        start_point = saved_point;

        //}



        if (loadshape_int == 0){

            if (start_index == (loadshape_n_points - 1)){

                out_value = start_point + slope * var_input_time;

            }

            else{

                out_value = start_point + slope * (var_input_time - time_array[start_index]);

            }

        }

        else{

            out_value = start_point + slope * (var_input_time - ls_interval * start_index);

        }

    }

}



// Saturation

if (out_value > 1) {

    out_value = 1;

}

else if (out_value < -1) {

    out_value = -1;

}



out = out_value;

/*End code section*/")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "output_terminals"), "real out;int idle_signal;")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "output_terminals_dimensions"), "1;1")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "output_terminals_feedthrough"), "True;True")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "output_terminals_show_labels"), "True;True")
mdl.set_property_value(mdl.prop(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "parameters"), "int loadshape_n_points;int loadshape_int;real pct_idlingkw;real pct_reserve;")


# Port: Storage.Loadshape Point Calculator.input
_Storage_Loadshape_Point_Calculator_input = mdl.create_port(
    name="input",
    parent=_Storage_Loadshape_Point_Calculator,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8136, 8248)
)

# Port: Storage.Loadshape Point Calculator.bat_soc
_Storage_Loadshape_Point_Calculator_bat_soc = mdl.create_port(
    name="bat_soc",
    parent=_Storage_Loadshape_Point_Calculator,
    label="",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=('left', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8112, 8328)
)

# Port: Storage.Loadshape Point Calculator.mode
_Storage_Loadshape_Point_Calculator_mode = mdl.create_port(
    name="mode",
    parent=_Storage_Loadshape_Point_Calculator,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8080, 8184)
)

# Port: Storage.Loadshape Point Calculator.idle_signal
_Storage_Loadshape_Point_Calculator_idle_signal = mdl.create_port(
    name="idle_signal",
    parent=_Storage_Loadshape_Point_Calculator,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8512, 8328)
)

# Port: Storage.Loadshape Point Calculator.loadshape_value
_Storage_Loadshape_Point_Calculator_loadshape_value = mdl.create_port(
    name="loadshape_value",
    parent=_Storage_Loadshape_Point_Calculator,
    label="",
    kind="sp",
    direction="out",
    dimension=(1,),
    terminal_position=('right', 1),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(8520, 8136)
)

# Junction: Storage.Loadshape Point Calculator.Junction2
_Storage_Loadshape_Point_Calculator_Junction2 = mdl.create_junction(
    name="Junction2",
    parent=_Storage_Loadshape_Point_Calculator,
    kind="sp",
    position=(8472, 8136)
)

# Junction: Storage.Loadshape Point Calculator.Junction4
_Storage_Loadshape_Point_Calculator_Junction4 = mdl.create_junction(
    name="Junction4",
    parent=_Storage_Loadshape_Point_Calculator,
    kind="sp",
    position=(8048, 8216)
)

# Junction: Storage.Loadshape Point Calculator.Junction1
_Storage_Loadshape_Point_Calculator_Junction1 = mdl.create_junction(
    name="Junction1",
    parent=_Storage_Loadshape_Point_Calculator,
    kind="sp",
    position=(8168, 8248)
)

# Component: Storage.Battery Active1
_Storage_Battery_Active1 = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="Battery Active1",
    rotation="up",
    flip="flip_none",
    position=(7776, 7472),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Battery Active2
_Storage_Battery_Active2 = mdl.create_component(
    type_name="core/Probe",
    parent=_Storage,
    name="Battery Active2",
    rotation="up",
    flip="flip_none",
    position=(7776, 7584),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.gnd1
_Storage_gnd1 = mdl.create_component(
    type_name="core/Ground",
    parent=_Storage,
    name="gnd1",
    rotation="up",
    flip="flip_none",
    position=(7240, 8504),
    hide_name=False,
    size=(None, None)
)


# Component: Storage.Vs1
_Storage_Vs1 = mdl.create_component(
    type_name="core/Voltage Source",
    parent=_Storage,
    name="Vs1",
    rotation="right",
    flip="flip_none",
    position=(8264, 8312),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_Vs1, "init_const_value"), "2*kv*1000*vmaxpu")


# Component: Storage.Bus Join1
_Storage_Bus_Join1 = mdl.create_component(
    type_name="core/Bus Join",
    parent=_Storage,
    name="Bus Join1",
    rotation="up",
    flip="flip_none",
    position=(7840, 7952),
    hide_name=False,
    size=(0, 0)
)
mdl.set_property_value(mdl.prop(_Storage_Bus_Join1, "inputs"), "3")


# Component: Storage.enable_inverter
_Storage_enable_inverter = mdl.create_component(
    type_name="core/Constant",
    parent=_Storage,
    name="enable_inverter",
    rotation="down",
    flip="flip_vertical",
    position=(8032, 7912),
    hide_name=False,
    size=(None, None)
)
mdl.set_property_value(mdl.prop(_Storage_enable_inverter, "execution_rate"), "execution_rate")


# Component: Storage.iDC
_Storage_iDC = mdl.create_component(
    type_name="core/Current Measurement",
    parent=_Storage,
    name="iDC",
    rotation="up",
    flip="flip_none",
    position=(8080, 8216),
    hide_name=False,
    size=(64, 32)
)


# Port: Storage.A1
_Storage_A1 = mdl.create_port(
    name="A1",
    parent=_Storage,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-40.0, -32.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7104, 8216)
)

# Port: Storage.B1
_Storage_B1 = mdl.create_port(
    name="B1",
    parent=_Storage,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-40.0, 0.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7104, 8312)
)

# Port: Storage.C1
_Storage_C1 = mdl.create_port(
    name="C1",
    parent=_Storage,
    label="",
    kind="pe",
    dimension=(1,),
    terminal_position=(-40.0, 32.0),
    rotation="up",
    flip="flip_none",
    hide_name=True,
    position=(7104, 8408)
)

# Port: Storage.Load point
_Storage_Load_point = mdl.create_port(
    name="Load point",
    parent=_Storage,
    label="t",
    kind="sp",
    direction="in",
    dimension=(1,),
    terminal_position=(0.0, -48.0),
    rotation="up",
    flip="flip_none",
    hide_name=False,
    position=(7792, 7272)
)

# Tag: Storage.Goto5
_Storage_Goto5 = mdl.create_tag(
    value="dss_p_inv",
    name="Goto5",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8752, 7656)
)

# Tag: Storage.From4
_Storage_From4 = mdl.create_tag(
    value="dispatch_int",
    name="From4",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7552, 7888)
)

# Tag: Storage.Goto8
_Storage_Goto8 = mdl.create_tag(
    value="active_inverter",
    name="Goto8",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8704, 7256)
)

# Tag: Storage.From7
_Storage_From7 = mdl.create_tag(
    value="active_inverter",
    name="From7",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7568, 7664)
)

# Tag: Storage.From12
_Storage_From12 = mdl.create_tag(
    value="active_battery",
    name="From12",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7568, 7728)
)

# Tag: Storage.Goto9
_Storage_Goto9 = mdl.create_tag(
    value="active_status",
    name="Goto9",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7864, 7696)
)

# Tag: Storage.Goto10
_Storage_Goto10 = mdl.create_tag(
    value="dispatch_int",
    name="Goto10",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="right",
    flip="flip_none",
    position=(8064, 7528)
)

# Tag: Storage.From22
_Storage_From22 = mdl.create_tag(
    value="dss_p_inv",
    name="From22",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7552, 8016)
)

# Tag: Storage.Goto11
_Storage_Goto11 = mdl.create_tag(
    value="bat_energy",
    name="Goto11",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8720, 8216)
)

# Tag: Storage.From24
_Storage_From24 = mdl.create_tag(
    value="bat_energy",
    name="From24",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7352, 7288)
)

# Tag: Storage.Goto4
_Storage_Goto4 = mdl.create_tag(
    value="active_battery",
    name="Goto4",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7728, 7400)
)

# Tag: Storage.From3
_Storage_From3 = mdl.create_tag(
    value="dss_p_inv",
    name="From3",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7352, 7456)
)

# Tag: Storage.From20
_Storage_From20 = mdl.create_tag(
    value="active_inverter",
    name="From20",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7352, 7512)
)

# Tag: Storage.Tag11
_Storage_Tag11 = mdl.create_tag(
    value="(Inverter Power Reference)(ctz_p_mult)",
    name="Tag11",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7888, 7888)
)

# Tag: Storage.Tag12
_Storage_Tag12 = mdl.create_tag(
    value="(Inverter Power Reference)(ctz_p_mult)",
    name="Tag12",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8368, 8384)
)

# Tag: Storage.Goto13
_Storage_Goto13 = mdl.create_tag(
    value="load_p",
    name="Goto13",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(7872, 7216)
)

# Tag: Storage.Goto14
_Storage_Goto14 = mdl.create_tag(
    value="end_point",
    name="Goto14",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8072, 7368)
)

# Tag: Storage.Tag13
_Storage_Tag13 = mdl.create_tag(
    value="bat_active",
    name="Tag13",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8720, 8304)
)

# Tag: Storage.Tag14
_Storage_Tag14 = mdl.create_tag(
    value="bat_next_soc",
    name="Tag14",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(7768, 7368)
)

# Tag: Storage.Goto15
_Storage_Goto15 = mdl.create_tag(
    value="bat_next_soc",
    name="Goto15",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8720, 8392)
)

# Tag: Storage.From30
_Storage_From30 = mdl.create_tag(
    value="load_p",
    name="From30",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8368, 8264)
)

# Tag: Storage.Tag17
_Storage_Tag17 = mdl.create_tag(
    value="(Loadshape Point Calculator)(idle_signal)",
    name="Tag17",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8368, 8304)
)

# Tag: Storage.Tag18
_Storage_Tag18 = mdl.create_tag(
    value="(Loadshape Point Calculator)(idle_signal)",
    name="Tag18",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8072, 7336)
)

# Tag: Storage.Tag19
_Storage_Tag19 = mdl.create_tag(
    value="(Loadshape Point Calculator)(mode)",
    name="Tag19",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="in",
    rotation="up",
    flip="flip_none",
    position=(8072, 7304)
)

# Tag: Storage.Tag20
_Storage_Tag20 = mdl.create_tag(
    value="(Loadshape Point Calculator)(mode)",
    name="Tag20",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8368, 8344)
)

# Tag: Storage.Tag24
_Storage_Tag24 = mdl.create_tag(
    value="dss_p_inv",
    name="Tag24",
    parent=_Storage,
    scope="local",
    kind="sp",
    direction="out",
    rotation="up",
    flip="flip_none",
    position=(8368, 8224)
)

# Junction: Storage.Junction581
_Storage_Junction581 = mdl.create_junction(
    name="Junction581",
    parent=_Storage,
    kind="sp",
    position=(7784, 7696)
)

# Junction: Storage.Junction619
_Storage_Junction619 = mdl.create_junction(
    name="Junction619",
    parent=_Storage,
    kind="sp",
    position=(8640, 7256)
)

# Junction: Storage.Junction622
_Storage_Junction622 = mdl.create_junction(
    name="Junction622",
    parent=_Storage,
    kind="sp",
    position=(8064, 7464)
)

# Junction: Storage.Junction635
_Storage_Junction635 = mdl.create_junction(
    name="Junction635",
    parent=_Storage,
    kind="sp",
    position=(7680, 7400)
)

# Junction: Storage.Junction636
_Storage_Junction636 = mdl.create_junction(
    name="Junction636",
    parent=_Storage,
    kind="sp",
    position=(7632, 7664)
)

# Junction: Storage.Junction638
_Storage_Junction638 = mdl.create_junction(
    name="Junction638",
    parent=_Storage,
    kind="sp",
    position=(7424, 7936)
)

# Junction: Storage.Junction640
_Storage_Junction640 = mdl.create_junction(
    name="Junction640",
    parent=_Storage,
    kind="sp",
    position=(7824, 7272)
)

# Junction: Storage.Junction641
_Storage_Junction641 = mdl.create_junction(
    name="Junction641",
    parent=_Storage,
    kind="sp",
    position=(8640, 7576)
)

# Connections
_Capacitor_Bank_Connection26 = mdl.create_connection(
    start=mdl.term(_Capacitor_Bank_Ca, "p_node"),
    end=_Capacitor_Bank_A1,
    name="Connection26",
    breakpoints=[],
)
_Capacitor_Bank_Connection27 = mdl.create_connection(
    start=_Capacitor_Bank_j,
    end=mdl.term(_Capacitor_Bank_Ca, "n_node"),
    name="Connection27",
    breakpoints=[],
)
_Capacitor_Bank_Connection28 = mdl.create_connection(
    start=_Capacitor_Bank_j,
    end=mdl.term(_Capacitor_Bank_Cb, "n_node"),
    name="Connection28",
    breakpoints=[],
)
_Capacitor_Bank_Connection29 = mdl.create_connection(
    start=_Capacitor_Bank_j,
    end=mdl.term(_Capacitor_Bank_Cc, "n_node"),
    name="Connection29",
    breakpoints=[],
)
_Capacitor_Bank_b1_conn = mdl.create_connection(
    start=_Capacitor_Bank_B1,
    end=mdl.term(_Capacitor_Bank_Cb, "p_node"),
    name="b1_conn",
    breakpoints=[],
)
_Capacitor_Bank_Connection30 = mdl.create_connection(
    start=mdl.term(_Capacitor_Bank_Cc, "p_node"),
    end=_Capacitor_Bank_C1,
    name="Connection30",
    breakpoints=[],
)
_Controlled_Switch_Connection1 = mdl.create_connection(
    start=_Controlled_Switch_A1,
    end=mdl.term(_Controlled_Switch_S, "a_in"),
    name="Connection1",
    breakpoints=[],
)
_Controlled_Switch_Connection2 = mdl.create_connection(
    start=_Controlled_Switch_B1,
    end=mdl.term(_Controlled_Switch_S, "b_in"),
    name="Connection2",
    breakpoints=[],
)
_Controlled_Switch_Connection3 = mdl.create_connection(
    start=_Controlled_Switch_C1,
    end=mdl.term(_Controlled_Switch_S, "c_in"),
    name="Connection3",
    breakpoints=[],
)
_Controlled_Switch_Connection4 = mdl.create_connection(
    start=_Controlled_Switch_A2,
    end=mdl.term(_Controlled_Switch_S, "a_out"),
    name="Connection4",
    breakpoints=[],
)
_Controlled_Switch_Connection5 = mdl.create_connection(
    start=_Controlled_Switch_B2,
    end=mdl.term(_Controlled_Switch_S, "b_out"),
    name="Connection5",
    breakpoints=[],
)
_Controlled_Switch_Connection6 = mdl.create_connection(
    start=_Controlled_Switch_C2,
    end=mdl.term(_Controlled_Switch_S, "c_out"),
    name="Connection6",
    breakpoints=[],
)
_Controlled_Switch_Connection7 = mdl.create_connection(
    start=_Controlled_Switch_ctrl,
    end=mdl.term(_Controlled_Switch_S, "ctrl_in"),
    name="Connection7",
    breakpoints=[],
)
_Fault_Connection1 = mdl.create_connection(
    start=_Fault_A1,
    end=mdl.term(_Fault_F1, "A1"),
    name="Connection1",
    breakpoints=[],
)
_Fault_Connection2 = mdl.create_connection(
    start=_Fault_B1,
    end=mdl.term(_Fault_F1, "B1"),
    name="Connection2",
    breakpoints=[],
)
_Fault_Connection3 = mdl.create_connection(
    start=_Fault_C1,
    end=mdl.term(_Fault_F1, "C1"),
    name="Connection3",
    breakpoints=[],
)
_Fault_Connection4 = mdl.create_connection(
    start=_Fault_A2,
    end=mdl.term(_Fault_F1, "A2"),
    name="Connection4",
    breakpoints=[],
)
_Fault_Connection5 = mdl.create_connection(
    start=_Fault_B2,
    end=mdl.term(_Fault_F1, "B2"),
    name="Connection5",
    breakpoints=[],
)
_Fault_Connection6 = mdl.create_connection(
    start=_Fault_C2,
    end=mdl.term(_Fault_F1, "C2"),
    name="Connection6",
    breakpoints=[],
)
_Fault_Connection7 = mdl.create_connection(
    start=mdl.term(_Fault_gnd, "node"),
    end=mdl.term(_Fault_F1, "GND"),
    name="Connection7",
    breakpoints=[],
)
_Generator_Connection110 = mdl.create_connection(
    start=_Generator_From32,
    end=mdl.term(_Generator_eb, "in"),
    name="Connection110",
    breakpoints=[],
)
_Generator_Connection109 = mdl.create_connection(
    start=_Generator_From31,
    end=mdl.term(_Generator_ea, "in"),
    name="Connection109",
    breakpoints=[],
)
_Generator_Connection102 = mdl.create_connection(
    start=mdl.term(_Generator_ec, "p_node"),
    end=mdl.term(_Generator_R3, "n_node"),
    name="Connection102",
    breakpoints=[],
)
_Generator_Connection414 = mdl.create_connection(
    start=mdl.term(_Generator_L3, "n_node"),
    end=mdl.term(_Generator_R3, "p_node"),
    name="Connection414",
    breakpoints=[],
)
_Generator_Connection103 = mdl.create_connection(
    start=mdl.term(_Generator_eb, "p_node"),
    end=mdl.term(_Generator_R2, "n_node"),
    name="Connection103",
    breakpoints=[],
)
_Generator_Connection104 = mdl.create_connection(
    start=mdl.term(_Generator_ea, "p_node"),
    end=mdl.term(_Generator_R1, "n_node"),
    name="Connection104",
    breakpoints=[],
)
_Generator_Connection426 = mdl.create_connection(
    start=mdl.term(_Generator_L2, "n_node"),
    end=mdl.term(_Generator_R2, "p_node"),
    name="Connection426",
    breakpoints=[],
)
_Generator_Connection111 = mdl.create_connection(
    start=_Generator_From33,
    end=mdl.term(_Generator_ec, "in"),
    name="Connection111",
    breakpoints=[],
)
_Generator_Connection434 = mdl.create_connection(
    start=mdl.term(_Generator_L1, "n_node"),
    end=mdl.term(_Generator_R1, "p_node"),
    name="Connection434",
    breakpoints=[],
)
_Generator_Connection4607 = mdl.create_connection(
    start=mdl.term(_Generator_Vb, "n_node"),
    end=_Generator_Junction160,
    name="Connection4607",
    breakpoints=[],
)
_Generator_Connection4609 = mdl.create_connection(
    start=mdl.term(_Generator_Va, "n_node"),
    end=_Generator_Junction160,
    name="Connection4609",
    breakpoints=[],
)
_Generator_Connection4610 = mdl.create_connection(
    start=_Generator_A1,
    end=mdl.term(_Generator_Ia, "p_node"),
    name="Connection4610",
    breakpoints=[],
)
_Generator_Connection4611 = mdl.create_connection(
    start=_Generator_B1,
    end=mdl.term(_Generator_Ib, "p_node"),
    name="Connection4611",
    breakpoints=[],
)
_Generator_Connection4612 = mdl.create_connection(
    start=_Generator_C1,
    end=mdl.term(_Generator_Ic, "p_node"),
    name="Connection4612",
    breakpoints=[],
)
_Generator_Connection97 = mdl.create_connection(
    start=mdl.term(_Generator_Constant3, "out"),
    end=mdl.term(_Generator_dq_to_abc1, "zero_input"),
    name="Connection97",
    breakpoints=[],
)
_Generator_Connection96 = mdl.create_connection(
    start=_Generator_From27,
    end=mdl.term(_Generator_dq_to_abc1, "q_input"),
    name="Connection96",
    breakpoints=[],
)
_Generator_Connection95 = mdl.create_connection(
    start=_Generator_From28,
    end=mdl.term(_Generator_dq_to_abc1, "d_input"),
    name="Connection95",
    breakpoints=[],
)
_Generator_Connection90 = mdl.create_connection(
    start=_Generator_From18,
    end=mdl.term(_Generator_abc_to_dq1, "vb"),
    name="Connection90",
    breakpoints=[],
)
_Generator_Connection89 = mdl.create_connection(
    start=_Generator_From46,
    end=mdl.term(_Generator_abc_to_dq1, "va"),
    name="Connection89",
    breakpoints=[],
)
_Generator_Connection91 = mdl.create_connection(
    start=_Generator_From19,
    end=mdl.term(_Generator_abc_to_dq1, "vc"),
    name="Connection91",
    breakpoints=[],
)
_Generator_Connection4629 = mdl.create_connection(
    start=_Generator_From48,
    end=mdl.term(_Generator_C_function2, "isq"),
    name="Connection4629",
    breakpoints=[],
)
_Generator_Connection4630 = mdl.create_connection(
    start=_Generator_From47,
    end=mdl.term(_Generator_C_function2, "isd"),
    name="Connection4630",
    breakpoints=[],
)
_Generator_Connection4632 = mdl.create_connection(
    start=mdl.term(_Generator_Constant4, "out"),
    end=mdl.term(_Generator_C_function2, "dt"),
    name="Connection4632",
    breakpoints=[],
)
_Generator_Connection4633 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay2, "out"),
    end=mdl.term(_Generator_C_function2, "Tm_mem"),
    name="Connection4633",
    breakpoints=[],
)
_Generator_Connection4638 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "thet_r"),
    end=_Generator_Goto69,
    name="Connection4638",
    breakpoints=[],
)
_Generator_Connection4641 = mdl.create_connection(
    start=_Generator_From51,
    end=_Generator_Junction162,
    name="Connection4641",
    breakpoints=[],
)
_Generator_Connection4642 = mdl.create_connection(
    start=_Generator_Junction162,
    end=mdl.term(_Generator_Gain1, "in"),
    name="Connection4642",
    breakpoints=[],
)
_Generator_Connection4643 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay3, "in"),
    end=_Generator_Junction162,
    name="Connection4643",
    breakpoints=[],
)
_Generator_Connection4645 = mdl.create_connection(
    start=mdl.term(_Generator_Gain1, "out"),
    end=mdl.term(_Generator_Sum1, "in"),
    name="Connection4645",
    breakpoints=[],
)
_Generator_Connection4646 = mdl.create_connection(
    start=mdl.term(_Generator_Sum1, "out"),
    end=mdl.term(_Generator_Product1, "in"),
    name="Connection4646",
    breakpoints=[],
)
_Generator_Connection4647 = mdl.create_connection(
    start=mdl.term(_Generator_Constant6, "out"),
    end=mdl.term(_Generator_Product1, "in1"),
    name="Connection4647",
    breakpoints=[],
)
_Generator_Connection4649 = mdl.create_connection(
    start=mdl.term(_Generator_Gain2, "out"),
    end=mdl.term(_Generator_Sum1, "in1"),
    name="Connection4649",
    breakpoints=[],
)
_Generator_Connection4650 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay3, "out"),
    end=_Generator_Junction163,
    name="Connection4650",
    breakpoints=[],
)
_Generator_Connection4651 = mdl.create_connection(
    start=_Generator_Junction163,
    end=mdl.term(_Generator_Gain2, "in"),
    name="Connection4651",
    breakpoints=[],
)
_Generator_Connection4652 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay4, "in"),
    end=_Generator_Junction163,
    name="Connection4652",
    breakpoints=[],
)
_Generator_Connection4653 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay4, "out"),
    end=mdl.term(_Generator_Sum1, "in2"),
    name="Connection4653",
    breakpoints=[],
)
_Generator_Connection4654 = mdl.create_connection(
    start=_Generator_From52,
    end=mdl.term(_Generator_C_function2, "pisq"),
    name="Connection4654",
    breakpoints=[],
)
_Generator_Connection4655 = mdl.create_connection(
    start=_Generator_From30,
    end=mdl.term(_Generator_dq_to_abc1, "wt"),
    name="Connection4655",
    breakpoints=[],
)
_Generator_Connection4656 = mdl.create_connection(
    start=_Generator_From26,
    end=mdl.term(_Generator_abc_to_dq1, "wt"),
    name="Connection4656",
    breakpoints=[],
)
_Generator_Connection4668 = mdl.create_connection(
    start=_Generator_Goto18,
    end=mdl.term(_Generator_Unit_Delay8, "out"),
    name="Connection4668",
    breakpoints=[],
)
_Generator_Connection4669 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay8, "in"),
    end=mdl.term(_Generator_abc_to_dq1, "d_axis"),
    name="Connection4669",
    breakpoints=[],
)
_Generator_Connection4670 = mdl.create_connection(
    start=_Generator_Goto19,
    end=mdl.term(_Generator_Unit_Delay9, "out"),
    name="Connection4670",
    breakpoints=[],
)
_Generator_Connection4671 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay9, "in"),
    end=mdl.term(_Generator_abc_to_dq1, "q_axis"),
    name="Connection4671",
    breakpoints=[],
)
_Generator_Connection4672 = mdl.create_connection(
    start=mdl.term(_Generator_dq_to_abc1, "phase_a"),
    end=_Generator_Goto20,
    name="Connection4672",
    breakpoints=[],
)
_Generator_Connection4673 = mdl.create_connection(
    start=mdl.term(_Generator_dq_to_abc1, "phase_b"),
    end=_Generator_Goto21,
    name="Connection4673",
    breakpoints=[],
)
_Generator_Connection4674 = mdl.create_connection(
    start=mdl.term(_Generator_dq_to_abc1, "phase_c"),
    end=_Generator_Goto22,
    name="Connection4674",
    breakpoints=[],
)
_Generator_Connection4685 = mdl.create_connection(
    start=mdl.term(_Generator_Constant13, "out"),
    end=mdl.term(_Generator_C_function2, "Wm_inp"),
    name="Connection4685",
    breakpoints=[],
)
_Generator_Connection4692 = mdl.create_connection(
    start=mdl.term(_Generator_Gain3, "out"),
    end=mdl.term(_Generator_Sum2, "in"),
    name="Connection4692",
    breakpoints=[],
)
_Generator_Connection4693 = mdl.create_connection(
    start=mdl.term(_Generator_Gain4, "out"),
    end=mdl.term(_Generator_Sum2, "in1"),
    name="Connection4693",
    breakpoints=[],
)
_Generator_Connection4723 = mdl.create_connection(
    start=mdl.term(_Generator_Constant14, "out"),
    end=_Generator_Goto73,
    name="Connection4723",
    breakpoints=[],
)
_Generator_Connection4724 = mdl.create_connection(
    start=_Generator_From55,
    end=mdl.term(_Generator_C_function2, "eq_init"),
    name="Connection4724",
    breakpoints=[],
)
_Generator_Connection4725 = mdl.create_connection(
    start=_Generator_From56,
    end=mdl.term(_Generator_C_function2, "ed_init"),
    name="Connection4725",
    breakpoints=[],
)
_Generator_Connection4726 = mdl.create_connection(
    start=_Generator_From57,
    end=mdl.term(_Generator_Gain3, "in"),
    name="Connection4726",
    breakpoints=[],
)
_Generator_Connection4734 = mdl.create_connection(
    start=mdl.term(_Generator_Gain6, "out"),
    end=mdl.term(_Generator_Limit1, "in"),
    name="Connection4734",
    breakpoints=[],
)
_Generator_Connection4737 = mdl.create_connection(
    start=_Generator_From58,
    end=mdl.term(_Generator_Signal_switch1, "in2"),
    name="Connection4737",
    breakpoints=[],
)
_Generator_Connection4739 = mdl.create_connection(
    start=_Generator_From60,
    end=mdl.term(_Generator_Sum3, "in1"),
    name="Connection4739",
    breakpoints=[],
)
_Generator_Connection4745 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay10, "in"),
    end=_Generator_Junction169,
    name="Connection4745",
    breakpoints=[],
)
_Generator_Connection4747 = mdl.create_connection(
    start=mdl.term(_Generator_vfd_p, "in"),
    end=_Generator_Junction169,
    name="Connection4747",
    breakpoints=[],
)
_Generator_Connection4751 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch1, "in1"),
    end=mdl.term(_Generator_Limit1, "out"),
    name="Connection4751",
    breakpoints=[],
)
_Generator_Connection4752 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay10, "out"),
    end=mdl.term(_Generator_Signal_switch1, "in"),
    name="Connection4752",
    breakpoints=[],
)
_Generator_Connection4775 = mdl.create_connection(
    start=mdl.term(_Generator_Discrete_Transfer_Function1, "out"),
    end=_Generator_Goto70,
    name="Connection4775",
    breakpoints=[],
)
_Generator_Connection4786 = mdl.create_connection(
    start=_Generator_From66,
    end=mdl.term(_Generator_Signal_switch2, "in2"),
    name="Connection4786",
    breakpoints=[],
)
_Generator_Connection4791 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay11, "out"),
    end=mdl.term(_Generator_Signal_switch2, "in"),
    name="Connection4791",
    breakpoints=[],
)
_Generator_Connection4801 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch2, "out"),
    end=_Generator_Junction175,
    name="Connection4801",
    breakpoints=[],
)
_Generator_Connection4802 = mdl.create_connection(
    start=_Generator_Junction175,
    end=mdl.term(_Generator_Unit_Delay11, "in"),
    name="Connection4802",
    breakpoints=[],
)
_Generator_Connection4807 = mdl.create_connection(
    start=_Generator_From65,
    end=_Generator_Junction176,
    name="Connection4807",
    breakpoints=[],
)
_Generator_Connection4808 = mdl.create_connection(
    start=_Generator_Junction176,
    end=mdl.term(_Generator_Signal_switch2, "in1"),
    name="Connection4808",
    breakpoints=[],
)
_Generator_Connection4814 = mdl.create_connection(
    start=_Generator_From67,
    end=mdl.term(_Generator_C_function2, "angle_in"),
    name="Connection4814",
    breakpoints=[],
)
_Generator_Connection4816 = mdl.create_connection(
    start=mdl.term(_Generator_Unit_Delay13, "in"),
    end=_Generator_Junction175,
    name="Connection4816",
    breakpoints=[],
)
_Generator_Connection4817 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "Te"),
    end=_Generator_Goto78,
    name="Connection4817",
    breakpoints=[],
)
_Generator_Connection4824 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "M_inp"),
    end=mdl.term(_Generator_Constant5, "out"),
    name="Connection4824",
    breakpoints=[],
)
_Generator_Connection4825 = mdl.create_connection(
    start=_Generator_From64,
    end=mdl.term(_Generator_Sum4, "in1"),
    name="Connection4825",
    breakpoints=[],
)
_Generator_Connection4833 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "psimq"),
    end=mdl.term(_Generator_psimq, "in"),
    name="Connection4833",
    breakpoints=[],
)
_Generator_Connection4834 = mdl.create_connection(
    start=mdl.term(_Generator_psimd, "in"),
    end=mdl.term(_Generator_C_function2, "psimd"),
    name="Connection4834",
    breakpoints=[],
)
_Generator_Connection4835 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "psifd"),
    end=mdl.term(_Generator_psifd, "in"),
    name="Connection4835",
    breakpoints=[],
)
_Generator_Connection4840 = mdl.create_connection(
    start=mdl.term(_Generator_Product1, "out"),
    end=mdl.term(_Generator_Discrete_Transfer_Function1, "in"),
    name="Connection4840",
    breakpoints=[],
)
_Generator_Connection4841 = mdl.create_connection(
    start=_Generator_From53,
    end=mdl.term(_Generator_Gain4, "in"),
    name="Connection4841",
    breakpoints=[],
)
_Generator_Connection4842 = mdl.create_connection(
    start=_Generator_Goto79,
    end=_Generator_Junction178,
    name="Connection4842",
    breakpoints=[],
)
_Generator_Connection4843 = mdl.create_connection(
    start=_Generator_Junction178,
    end=mdl.term(_Generator_Unit_Delay13, "out"),
    name="Connection4843",
    breakpoints=[],
)
_Generator_Connection4844 = mdl.create_connection(
    start=mdl.term(_Generator_Tm_p, "in"),
    end=_Generator_Junction178,
    name="Connection4844",
    breakpoints=[],
)
_Generator_Connection4847 = mdl.create_connection(
    start=mdl.term(_Generator_Sum3, "out"),
    end=mdl.term(_Generator_Signal_switch3, "in"),
    name="Connection4847",
    breakpoints=[],
)
_Generator_Connection4850 = mdl.create_connection(
    start=_Generator_From49,
    end=_Generator_Junction179,
    name="Connection4850",
    breakpoints=[],
)
_Generator_Connection4851 = mdl.create_connection(
    start=_Generator_Junction179,
    end=mdl.term(_Generator_Sum3, "in"),
    name="Connection4851",
    breakpoints=[],
)
_Generator_Connection4852 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch3, "in1"),
    end=_Generator_Junction179,
    name="Connection4852",
    breakpoints=[],
)
_Generator_Connection4857 = mdl.create_connection(
    start=mdl.term(_Generator_Sum4, "out"),
    end=mdl.term(_Generator_Signal_switch4, "in"),
    name="Connection4857",
    breakpoints=[],
)
_Generator_Connection4858 = mdl.create_connection(
    start=mdl.term(_Generator_Sum4, "in"),
    end=_Generator_Junction181,
    name="Connection4858",
    breakpoints=[],
)
_Generator_Connection4859 = mdl.create_connection(
    start=_Generator_Junction181,
    end=_Generator_From50,
    name="Connection4859",
    breakpoints=[],
)
_Generator_Connection4860 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch4, "in1"),
    end=_Generator_Junction181,
    name="Connection4860",
    breakpoints=[],
)
_Generator_Connection4861 = mdl.create_connection(
    start=mdl.term(_Generator_Constant18, "out"),
    end=_Generator_Junction182,
    name="Connection4861",
    breakpoints=[],
)
_Generator_Connection4862 = mdl.create_connection(
    start=_Generator_Junction182,
    end=mdl.term(_Generator_Signal_switch3, "in2"),
    name="Connection4862",
    breakpoints=[],
)
_Generator_Connection4867 = mdl.create_connection(
    start=mdl.term(_Generator_Comparator2, "out"),
    end=_Generator_Goto77,
    name="Connection4867",
    breakpoints=[],
)
_Generator_Connection4868 = mdl.create_connection(
    start=mdl.term(_Generator_Constant19, "out"),
    end=_Generator_Goto80,
    name="Connection4868",
    breakpoints=[],
)
_Generator_Connection4869 = mdl.create_connection(
    start=mdl.term(_Generator_Constant20, "out"),
    end=mdl.term(_Generator_Gain7, "in"),
    name="Connection4869",
    breakpoints=[],
)
_Generator_Connection4870 = mdl.create_connection(
    start=mdl.term(_Generator_Gain7, "out"),
    end=_Generator_Goto74,
    name="Connection4870",
    breakpoints=[],
)
_Generator_Connection4875 = mdl.create_connection(
    start=mdl.term(_Generator_Constant21, "out"),
    end=mdl.term(_Generator_Comparator1, "in2"),
    name="Connection4875",
    breakpoints=[],
)
_Generator_Connection4876 = mdl.create_connection(
    start=mdl.term(_Generator_Constant23, "out"),
    end=mdl.term(_Generator_Comparator2, "in2"),
    name="Connection4876",
    breakpoints=[],
)
_Generator_Connection4884 = mdl.create_connection(
    start=mdl.term(_Generator_Comparator2, "in1"),
    end=_Generator_Junction183,
    name="Connection4884",
    breakpoints=[],
)
_Generator_Connection4885 = mdl.create_connection(
    start=_Generator_Junction183,
    end=mdl.term(_Generator_Comparator1, "in1"),
    name="Connection4885",
    breakpoints=[],
)
_Generator_Connection4886 = mdl.create_connection(
    start=mdl.term(_Generator_Clock1, "out"),
    end=_Generator_Junction183,
    name="Connection4886",
    breakpoints=[],
)
_Generator_Connection4894 = mdl.create_connection(
    start=_Generator_Junction169,
    end=_Generator_Junction184,
    name="Connection4894",
    breakpoints=[],
)
_Generator_Connection4895 = mdl.create_connection(
    start=_Generator_Junction184,
    end=mdl.term(_Generator_Signal_switch1, "out"),
    name="Connection4895",
    breakpoints=[],
)
_Generator_Connection4896 = mdl.create_connection(
    start=_Generator_Goto75,
    end=_Generator_Junction184,
    name="Connection4896",
    breakpoints=[],
)
_Generator_Connection4899 = mdl.create_connection(
    start=_Generator_Junction185,
    end=mdl.term(_Generator_C_function2, "Tm"),
    name="Connection4899",
    breakpoints=[],
)
_Generator_Connection4901 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch3, "out"),
    end=mdl.term(_Generator_C_function2, "vfd"),
    name="Connection4901",
    breakpoints=[],
)
_Generator_Connection4902 = mdl.create_connection(
    start=_Generator_Vfd_in,
    end=mdl.term(_Generator_Rate_Transition1, "in"),
    name="Connection4902",
    breakpoints=[],
)
_Generator_Connection4903 = mdl.create_connection(
    start=mdl.term(_Generator_Rate_Transition1, "out"),
    end=_Generator_Goto71,
    name="Connection4903",
    breakpoints=[],
)
_Generator_Connection4904 = mdl.create_connection(
    start=_Generator_Tm_in,
    end=mdl.term(_Generator_Rate_Transition2, "in"),
    name="Connection4904",
    breakpoints=[],
)
_Generator_Connection4905 = mdl.create_connection(
    start=mdl.term(_Generator_Rate_Transition2, "out"),
    end=_Generator_Goto72,
    name="Connection4905",
    breakpoints=[],
)
_Generator_Connection4906 = mdl.create_connection(
    start=mdl.term(_Generator_Gain5, "in"),
    end=mdl.term(_Generator_Sum2, "out"),
    name="Connection4906",
    breakpoints=[],
)
_Generator_Connection4910 = mdl.create_connection(
    start=_Generator_From59,
    end=mdl.term(_Generator_Signal_switch5, "in"),
    name="Connection4910",
    breakpoints=[],
)
_Generator_Connection4911 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch5, "out"),
    end=mdl.term(_Generator_C_function2, "V2S"),
    name="Connection4911",
    breakpoints=[],
)
_Generator_Connection4917 = mdl.create_connection(
    start=_Generator_From63,
    end=mdl.term(_Generator_Signal_switch6, "in"),
    name="Connection4917",
    breakpoints=[],
)
_Generator_Connection4927 = mdl.create_connection(
    start=mdl.term(_Generator_Constant25, "out"),
    end=_Generator_Junction189,
    name="Connection4927",
    breakpoints=[],
)
_Generator_Connection4928 = mdl.create_connection(
    start=_Generator_Junction189,
    end=mdl.term(_Generator_Signal_switch6, "in1"),
    name="Connection4928",
    breakpoints=[],
)
_Generator_Connection4929 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch5, "in1"),
    end=_Generator_Junction189,
    name="Connection4929",
    breakpoints=[],
)
_Generator_Connection4930 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch4, "in2"),
    end=_Generator_Junction182,
    name="Connection4930",
    breakpoints=[],
)
_Generator_Connection4931 = mdl.create_connection(
    start=mdl.term(_Generator_Gain6, "in"),
    end=mdl.term(_Generator_Gain5, "out"),
    name="Connection4931",
    breakpoints=[],
)
_Generator_Connection4982 = mdl.create_connection(
    start=mdl.term(_Generator_Ia, "out"),
    end=_Generator_Goto64,
    name="Connection4982",
    breakpoints=[],
)
_Generator_Connection4983 = mdl.create_connection(
    start=mdl.term(_Generator_Ib, "out"),
    end=_Generator_Goto65,
    name="Connection4983",
    breakpoints=[],
)
_Generator_Connection4984 = mdl.create_connection(
    start=_Generator_Goto66,
    end=mdl.term(_Generator_Ic, "out"),
    name="Connection4984",
    breakpoints=[],
)
_Generator_Connection4985 = mdl.create_connection(
    start=_Generator_Goto38,
    end=mdl.term(_Generator_Vc, "out"),
    name="Connection4985",
    breakpoints=[],
)
_Generator_Connection4986 = mdl.create_connection(
    start=_Generator_Goto37,
    end=mdl.term(_Generator_Vb, "out"),
    name="Connection4986",
    breakpoints=[],
)
_Generator_Connection4987 = mdl.create_connection(
    start=mdl.term(_Generator_Va, "out"),
    end=_Generator_Goto36,
    name="Connection4987",
    breakpoints=[],
)
_Generator_Connection4991 = mdl.create_connection(
    start=_Generator_Junction176,
    end=mdl.term(_Generator_Te, "in"),
    name="Connection4991",
    breakpoints=[],
)
_Generator_Connection4993 = mdl.create_connection(
    start=mdl.term(_Generator_Bus_Join3, "out"),
    end=_Generator_meas,
    name="Connection4993",
    breakpoints=[],
)
_Generator_Connection4994 = mdl.create_connection(
    start=_Generator_From73,
    end=mdl.term(_Generator_Bus_Join3, "in"),
    name="Connection4994",
    breakpoints=[],
)
_Generator_Connection4995 = mdl.create_connection(
    start=_Generator_From74,
    end=mdl.term(_Generator_Bus_Join3, "in1"),
    name="Connection4995",
    breakpoints=[],
)
_Generator_Connection4996 = mdl.create_connection(
    start=_Generator_From75,
    end=mdl.term(_Generator_Bus_Join3, "in2"),
    name="Connection4996",
    breakpoints=[],
)
_Generator_Connection4997 = mdl.create_connection(
    start=_Generator_From70,
    end=mdl.term(_Generator_Bus_Join3, "in3"),
    name="Connection4997",
    breakpoints=[],
)
_Generator_Connection4998 = mdl.create_connection(
    start=_Generator_From71,
    end=mdl.term(_Generator_Bus_Join3, "in4"),
    name="Connection4998",
    breakpoints=[],
)
_Generator_Connection4999 = mdl.create_connection(
    start=_Generator_From72,
    end=mdl.term(_Generator_Bus_Join3, "in5"),
    name="Connection4999",
    breakpoints=[],
)
_Generator_Connection5000 = mdl.create_connection(
    start=_Generator_From76,
    end=mdl.term(_Generator_Bus_Join3, "in6"),
    name="Connection5000",
    breakpoints=[],
)
_Generator_Connection5011 = mdl.create_connection(
    start=_Generator_From78,
    end=mdl.term(_Generator_Bus_Join4, "in"),
    name="Connection5011",
    breakpoints=[],
)
_Generator_Connection5012 = mdl.create_connection(
    start=_Generator_From77,
    end=mdl.term(_Generator_Bus_Join4, "in1"),
    name="Connection5012",
    breakpoints=[],
)
_Generator_Connection5013 = mdl.create_connection(
    start=mdl.term(_Generator_Constant26, "out"),
    end=mdl.term(_Generator_Bus_Join4, "in2"),
    name="Connection5013",
    breakpoints=[],
)
_Generator_Connection5014 = mdl.create_connection(
    start=mdl.term(_Generator_Bus_Join4, "out"),
    end=_Generator_ctrl,
    name="Connection5014",
    breakpoints=[],
)
_Generator_Connection5015 = mdl.create_connection(
    start=mdl.term(_Generator_Constant27, "out"),
    end=mdl.term(_Generator_Bus_Join4, "in3"),
    name="Connection5015",
    breakpoints=[],
)
_Generator_Connection5016 = mdl.create_connection(
    start=mdl.term(_Generator_Constant28, "out"),
    end=mdl.term(_Generator_Bus_Join4, "in4"),
    name="Connection5016",
    breakpoints=[],
)
_Generator_Connection5017 = mdl.create_connection(
    start=mdl.term(_Generator_Constant29, "out"),
    end=mdl.term(_Generator_Bus_Join4, "in5"),
    name="Connection5017",
    breakpoints=[],
)
_Generator_Connection5027 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "ed"),
    end=_Generator_Goto67,
    name="Connection5027",
    breakpoints=[],
)
_Generator_Connection5028 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "eq"),
    end=_Generator_Goto68,
    name="Connection5028",
    breakpoints=[],
)
_Generator_Connection5037 = mdl.create_connection(
    start=_Generator_Goto76,
    end=mdl.term(_Generator_Comparator1, "out"),
    name="Connection5037",
    breakpoints=[],
)
_Generator_Connection5038 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch6, "out"),
    end=mdl.term(_Generator_C_function2, "S2M"),
    name="Connection5038",
    breakpoints=[],
)
_Generator_Connection5042 = mdl.create_connection(
    start=mdl.term(_Generator_Constant30, "out"),
    end=mdl.term(_Generator_Bus_Join4, "in7"),
    name="Connection5042",
    breakpoints=[],
)
_Generator_Connection5043 = mdl.create_connection(
    start=mdl.term(_Generator_Constant31, "out"),
    end=mdl.term(_Generator_Bus_Join4, "in6"),
    name="Connection5043",
    breakpoints=[],
)
_Generator_Connection5046 = mdl.create_connection(
    start=mdl.term(_Generator_C_function2, "psikq2"),
    end=mdl.term(_Generator_Termination60, "in"),
    name="Connection5046",
    breakpoints=[],
)
_Generator_Connection5047 = mdl.create_connection(
    start=mdl.term(_Generator_Termination62, "in"),
    end=mdl.term(_Generator_C_function2, "wr"),
    name="Connection5047",
    breakpoints=[],
)
_Generator_Connection5048 = mdl.create_connection(
    start=mdl.term(_Generator_Termination61, "in"),
    end=mdl.term(_Generator_C_function2, "psikd"),
    name="Connection5048",
    breakpoints=[],
)
_Generator_Connection5049 = mdl.create_connection(
    start=mdl.term(_Generator_Termination63, "in"),
    end=mdl.term(_Generator_abc_to_dq1, "zero_axis"),
    name="Connection5049",
    breakpoints=[],
)
_Generator_Connection5050 = mdl.create_connection(
    start=mdl.term(_Generator_Termination64, "in"),
    end=mdl.term(_Generator_C_function2, "psikq"),
    name="Connection5050",
    breakpoints=[],
)
_Generator_Connection5056 = mdl.create_connection(
    start=mdl.term(_Generator_L1, "p_node"),
    end=_Generator_Junction201,
    name="Connection5056",
    breakpoints=[],
)
_Generator_Connection5058 = mdl.create_connection(
    start=mdl.term(_Generator_Va, "p_node"),
    end=_Generator_Junction201,
    name="Connection5058",
    breakpoints=[],
)
_Generator_Connection5060 = mdl.create_connection(
    start=_Generator_Junction202,
    end=mdl.term(_Generator_L2, "p_node"),
    name="Connection5060",
    breakpoints=[],
)
_Generator_Connection5061 = mdl.create_connection(
    start=mdl.term(_Generator_Vb, "p_node"),
    end=_Generator_Junction202,
    name="Connection5061",
    breakpoints=[],
)
_Generator_Connection5063 = mdl.create_connection(
    start=_Generator_Junction203,
    end=mdl.term(_Generator_L3, "p_node"),
    name="Connection5063",
    breakpoints=[],
)
_Generator_Connection5064 = mdl.create_connection(
    start=mdl.term(_Generator_Vc, "p_node"),
    end=_Generator_Junction203,
    name="Connection5064",
    breakpoints=[],
)
_Generator_Connection5065 = mdl.create_connection(
    start=_Generator_Junction160,
    end=_Generator_Junction204,
    name="Connection5065",
    breakpoints=[],
)
_Generator_Connection5066 = mdl.create_connection(
    start=_Generator_Junction204,
    end=mdl.term(_Generator_Vc, "n_node"),
    name="Connection5066",
    breakpoints=[],
)
_Generator_Connection5067 = mdl.create_connection(
    start=mdl.term(_Generator_ec, "n_node"),
    end=_Generator_Junction205,
    name="Connection5067",
    breakpoints=[],
)
_Generator_Connection5069 = mdl.create_connection(
    start=_Generator_Junction204,
    end=_Generator_Junction205,
    name="Connection5069",
    breakpoints=[],
)
_Generator_Connection5075 = mdl.create_connection(
    start=_Generator_Junction206,
    end=mdl.term(_Generator_Ia, "n_node"),
    name="Connection5075",
    breakpoints=[],
)
_Generator_Connection5076 = mdl.create_connection(
    start=mdl.term(_Generator_Vab, "p_node"),
    end=_Generator_Junction206,
    name="Connection5076",
    breakpoints=[],
)
_Generator_Connection5077 = mdl.create_connection(
    start=mdl.term(_Generator_Ib, "n_node"),
    end=_Generator_Junction207,
    name="Connection5077",
    breakpoints=[],
)
_Generator_Connection5078 = mdl.create_connection(
    start=_Generator_Junction207,
    end=_Generator_Junction202,
    name="Connection5078",
    breakpoints=[],
)
_Generator_Connection5081 = mdl.create_connection(
    start=_Generator_Junction208,
    end=_Generator_Junction203,
    name="Connection5081",
    breakpoints=[],
)
_Generator_Connection5082 = mdl.create_connection(
    start=mdl.term(_Generator_Vca, "p_node"),
    end=_Generator_Junction208,
    name="Connection5082",
    breakpoints=[],
)
_Generator_Connection5083 = mdl.create_connection(
    start=_Generator_Junction201,
    end=_Generator_Junction209,
    name="Connection5083",
    breakpoints=[],
)
_Generator_Connection5084 = mdl.create_connection(
    start=_Generator_Junction209,
    end=_Generator_Junction206,
    name="Connection5084",
    breakpoints=[],
)
_Generator_Connection5085 = mdl.create_connection(
    start=mdl.term(_Generator_Vca, "n_node"),
    end=_Generator_Junction209,
    name="Connection5085",
    breakpoints=[],
)
_Generator_Connection5086 = mdl.create_connection(
    start=mdl.term(_Generator_Vab, "n_node"),
    end=_Generator_Junction210,
    name="Connection5086",
    breakpoints=[],
)
_Generator_Connection5087 = mdl.create_connection(
    start=_Generator_Junction210,
    end=_Generator_Junction207,
    name="Connection5087",
    breakpoints=[],
)
_Generator_Connection5088 = mdl.create_connection(
    start=mdl.term(_Generator_Vbc, "p_node"),
    end=_Generator_Junction210,
    name="Connection5088",
    breakpoints=[],
)
_Generator_Connection5089 = mdl.create_connection(
    start=mdl.term(_Generator_Ic, "n_node"),
    end=_Generator_Junction211,
    name="Connection5089",
    breakpoints=[],
)
_Generator_Connection5090 = mdl.create_connection(
    start=_Generator_Junction211,
    end=_Generator_Junction208,
    name="Connection5090",
    breakpoints=[],
)
_Generator_Connection5091 = mdl.create_connection(
    start=mdl.term(_Generator_Vbc, "n_node"),
    end=_Generator_Junction211,
    name="Connection5091",
    breakpoints=[],
)
_Generator_Connection5093 = mdl.create_connection(
    start=mdl.term(_Generator_eb, "n_node"),
    end=_Generator_Junction212,
    name="Connection5093",
    breakpoints=[],
)
_Generator_Connection5094 = mdl.create_connection(
    start=_Generator_Junction212,
    end=_Generator_Junction205,
    name="Connection5094",
    breakpoints=[],
)
_Generator_Connection5095 = mdl.create_connection(
    start=mdl.term(_Generator_ea, "n_node"),
    end=_Generator_Junction212,
    name="Connection5095",
    breakpoints=[],
)
_Generator_Connection5097 = mdl.create_connection(
    start=_Generator_Goto81,
    end=mdl.term(_Generator_C_function2, "wm"),
    name="Connection5097",
    breakpoints=[],
)
_Generator_Connection5098 = mdl.create_connection(
    start=mdl.term(_Generator_Bus_Join3, "in7"),
    end=_Generator_Junction213,
    name="Connection5098",
    breakpoints=[],
)
_Generator_Connection5099 = mdl.create_connection(
    start=_Generator_Junction213,
    end=mdl.term(_Generator_w_mech, "in"),
    name="Connection5099",
    breakpoints=[],
)
_Generator_Connection5100 = mdl.create_connection(
    start=_Generator_From79,
    end=_Generator_Junction213,
    name="Connection5100",
    breakpoints=[],
)
_Generator_Connection5102 = mdl.create_connection(
    start=mdl.term(_Generator_Constant24, "out"),
    end=_Generator_Junction214,
    name="Connection5102",
    breakpoints=[],
)
_Generator_Connection5103 = mdl.create_connection(
    start=_Generator_Junction214,
    end=mdl.term(_Generator_Signal_switch6, "in2"),
    name="Connection5103",
    breakpoints=[],
)
_Generator_Connection5104 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch5, "in2"),
    end=_Generator_Junction214,
    name="Connection5104",
    breakpoints=[],
)
_Generator_Connection5105 = mdl.create_connection(
    start=_Generator_Junction185,
    end=mdl.term(_Generator_Unit_Delay2, "in"),
    name="Connection5105",
    breakpoints=[],
)
_Generator_Connection5106 = mdl.create_connection(
    start=mdl.term(_Generator_Signal_switch4, "out"),
    end=_Generator_Junction215,
    name="Connection5106",
    breakpoints=[],
)
_Generator_Connection5107 = mdl.create_connection(
    start=_Generator_Junction215,
    end=_Generator_Junction185,
    name="Connection5107",
    breakpoints=[],
)
_Generator_Connection5108 = mdl.create_connection(
    start=mdl.term(_Generator_Tm, "in"),
    end=_Generator_Junction215,
    name="Connection5108",
    breakpoints=[],
)
_Generator_Connection5109 = mdl.create_connection(
    start=_Generator_Junction184,
    end=_Generator_Vfd0,
    name="Connection5109",
    breakpoints=[],
)
_Generator_Connection5110 = mdl.create_connection(
    start=_Generator_Junction178,
    end=_Generator_Tm0,
    name="Connection5110",
    breakpoints=[],
)
_Generator_Connection5115 = mdl.create_connection(
    start=mdl.term(_Generator_Bus_Join4, "in8"),
    end=mdl.term(_Generator_Constant32, "out"),
    name="Connection5115",
    breakpoints=[],
)
_Generator_connP = mdl.create_connection(
    start=mdl.term(_Generator_Bus_Join4, "in9"),
    end=mdl.term(_Generator_Constant33, "out"),
    name="connP",
    breakpoints=[],
)
_Generator_connQ = mdl.create_connection(
    start=mdl.term(_Generator_Bus_Join4, "in10"),
    end=mdl.term(_Generator_Constant33, "out"),
    name="connQ",
    breakpoints=[],
)
_Isource_Connection25 = mdl.create_connection(
    start=mdl.term(_Isource_Ib, "p_node"),
    end=_Isource_B1,
    name="Connection25",
    breakpoints=[],
)
_Isource_Connection26 = mdl.create_connection(
    start=mdl.term(_Isource_Ia, "p_node"),
    end=_Isource_A1,
    name="Connection26",
    breakpoints=[],
)
_Isource_Connection27 = mdl.create_connection(
    start=mdl.term(_Isource_Ic, "p_node"),
    end=_Isource_C1,
    name="Connection27",
    breakpoints=[],
)
_Isource_Connection31 = mdl.create_connection(
    start=mdl.term(_Isource_gnd1, "node"),
    end=mdl.term(_Isource_Ia, "n_node"),
    name="Connection31",
    breakpoints=[],
)
_Isource_Connection32 = mdl.create_connection(
    start=mdl.term(_Isource_Ic, "n_node"),
    end=mdl.term(_Isource_gnd1, "node"),
    name="Connection32",
    breakpoints=[],
)
_Isource_Connection33 = mdl.create_connection(
    start=mdl.term(_Isource_Ib, "n_node"),
    end=mdl.term(_Isource_gnd1, "node"),
    name="Connection33",
    breakpoints=[],
)
_Line_Connection42 = mdl.create_connection(
    start=mdl.term(_Line_TL, "gnd"),
    end=mdl.term(_Line_G1, "node"),
    name="Connection42",
    breakpoints=[],
)
_Line_Connection43 = mdl.create_connection(
    start=_Line_A1,
    end=mdl.term(_Line_TL, "a_in"),
    name="Connection43",
    breakpoints=[],
)
_Line_Connection44 = mdl.create_connection(
    start=_Line_A2,
    end=mdl.term(_Line_TL, "a_out"),
    name="Connection44",
    breakpoints=[],
)
_Line_Connection45 = mdl.create_connection(
    start=_Line_B1,
    end=mdl.term(_Line_TL, "b_in"),
    name="Connection45",
    breakpoints=[],
)
_Line_Connection46 = mdl.create_connection(
    start=_Line_B2,
    end=mdl.term(_Line_TL, "b_out"),
    name="Connection46",
    breakpoints=[],
)
_Line_Connection47 = mdl.create_connection(
    start=_Line_C1,
    end=mdl.term(_Line_TL, "c_in"),
    name="Connection47",
    breakpoints=[],
)
_Line_Connection48 = mdl.create_connection(
    start=_Line_C2,
    end=mdl.term(_Line_TL, "c_out"),
    name="Connection48",
    breakpoints=[],
)
_Load_Conn_N = mdl.create_connection(
    start=_Load_JN,
    end=_Load_N1,
    name="Conn_N",
    breakpoints=[],
)
_Load_Conn_AN = mdl.create_connection(
    start=mdl.term(_Load_CIL, "N"),
    end=_Load_JN,
    name="Conn_AN",
    breakpoints=[],
)
_Load_Connection10 = mdl.create_connection(
    start=_Load_TagA1,
    end=_Load_A1,
    name="Connection10",
    breakpoints=[],
)
_Load_Connection11 = mdl.create_connection(
    start=_Load_TagB1,
    end=_Load_B1,
    name="Connection11",
    breakpoints=[],
)
_Load_Connection12 = mdl.create_connection(
    start=_Load_TagC1,
    end=_Load_C1,
    name="Connection12",
    breakpoints=[],
)
_Load_Connection13 = mdl.create_connection(
    start=_Load_TagA2,
    end=mdl.term(_Load_CIL, "A1"),
    name="Connection13",
    breakpoints=[],
)
_Load_Connection14 = mdl.create_connection(
    start=_Load_TagB2,
    end=mdl.term(_Load_CIL, "B1"),
    name="Connection14",
    breakpoints=[],
)
_Load_Connection15 = mdl.create_connection(
    start=_Load_TagC2,
    end=mdl.term(_Load_CIL, "C1"),
    name="Connection15",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection91 = mdl.create_connection(
    start=_Single_Phase_Transformer_A1,
    end=_Single_Phase_Transformer_TagA1,
    name="Connection91",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection92 = mdl.create_connection(
    start=_Single_Phase_Transformer_TagB1,
    end=_Single_Phase_Transformer_B1,
    name="Connection92",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection93 = mdl.create_connection(
    start=mdl.term(_Single_Phase_Transformer_T1, "prm_1"),
    end=_Single_Phase_Transformer_TagTA1,
    name="Connection93",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection94 = mdl.create_connection(
    start=mdl.term(_Single_Phase_Transformer_T1, "prm_2"),
    end=_Single_Phase_Transformer_TagTB1,
    name="Connection94",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection95 = mdl.create_connection(
    start=mdl.term(_Single_Phase_Transformer_T1, "sec_1"),
    end=_Single_Phase_Transformer_TagTA2,
    name="Connection95",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection96 = mdl.create_connection(
    start=mdl.term(_Single_Phase_Transformer_T1, "sec_2"),
    end=_Single_Phase_Transformer_TagTB2,
    name="Connection96",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection97 = mdl.create_connection(
    start=_Single_Phase_Transformer_TagA2,
    end=_Single_Phase_Transformer_A2,
    name="Connection97",
    breakpoints=[],
)
_Single_Phase_Transformer_Connection98 = mdl.create_connection(
    start=_Single_Phase_Transformer_TagB2,
    end=_Single_Phase_Transformer_B2,
    name="Connection98",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection42 = mdl.create_connection(
    start=_Three_Phase_Transformer_TagA1,
    end=_Three_Phase_Transformer_A1,
    name="Connection42",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection43 = mdl.create_connection(
    start=_Three_Phase_Transformer_B1,
    end=_Three_Phase_Transformer_TagB1,
    name="Connection43",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection44 = mdl.create_connection(
    start=_Three_Phase_Transformer_TagC1,
    end=_Three_Phase_Transformer_C1,
    name="Connection44",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection56 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "prm_1"),
    end=_Three_Phase_Transformer_TagTA1,
    name="Connection56",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection57 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "prm_2"),
    end=_Three_Phase_Transformer_TagTB1,
    name="Connection57",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection58 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "prm_3"),
    end=_Three_Phase_Transformer_TagTC1,
    name="Connection58",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection59 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "n1"),
    end=_Three_Phase_Transformer_TagTN1,
    name="Connection59",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection60 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "sec_1"),
    end=_Three_Phase_Transformer_TagTA2,
    name="Connection60",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection61 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "sec_2"),
    end=_Three_Phase_Transformer_TagTB2,
    name="Connection61",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection62 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "sec_3"),
    end=_Three_Phase_Transformer_TagTC2,
    name="Connection62",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection63 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "n2"),
    end=_Three_Phase_Transformer_TagTN2,
    name="Connection63",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection64 = mdl.create_connection(
    start=_Three_Phase_Transformer_TagA2,
    end=_Three_Phase_Transformer_A2,
    name="Connection64",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection65 = mdl.create_connection(
    start=_Three_Phase_Transformer_TagB2,
    end=_Three_Phase_Transformer_B2,
    name="Connection65",
    breakpoints=[],
)
_Three_Phase_Transformer_Connection66 = mdl.create_connection(
    start=_Three_Phase_Transformer_TagC2,
    end=_Three_Phase_Transformer_C2,
    name="Connection66",
    breakpoints=[],
)
_Three_Phase_Transformer_N1n1 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "n1"),
    end=_Three_Phase_Transformer_N1,
    name="N1n1",
    breakpoints=[],
)
_Three_Phase_Transformer_N2n2 = mdl.create_connection(
    start=mdl.term(_Three_Phase_Transformer_T1, "n2"),
    end=_Three_Phase_Transformer_N2,
    name="N2n2",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection301 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction45,
    end=_VSConverter_Subsystem8_Junction44,
    name="Connection301",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection302 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum21, "in1"),
    end=_VSConverter_Subsystem8_Junction45,
    name="Connection302",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection303 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum20, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch14, "in"),
    name="Connection303",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection304 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum21, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch14, "in1"),
    name="Connection304",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection305 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Constant10, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Comparator5, "in2"),
    name="Connection305",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection306 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Signal_switch14, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch13, "in1"),
    name="Connection306",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection307 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Angle,
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch13, "out"),
    name="Connection307",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection312 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Comparator4, "in1"),
    end=_VSConverter_Subsystem8_Junction33,
    name="Connection312",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection314 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product7, "in"),
    end=_VSConverter_Subsystem8_Junction46,
    name="Connection314",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection315 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction46,
    end=_VSConverter_Subsystem8_Junction24,
    name="Connection315",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection316 = mdl.create_connection(
    start=_VSConverter_Subsystem8_q,
    end=_VSConverter_Subsystem8_Junction46,
    name="Connection316",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection222 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product4, "in1"),
    end=_VSConverter_Subsystem8_Junction29,
    name="Connection222",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection224 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product4, "in"),
    end=_VSConverter_Subsystem8_Junction29,
    name="Connection224",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection236 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product4, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Sum16, "in1"),
    name="Connection236",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection228 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product5, "in1"),
    end=_VSConverter_Subsystem8_Junction24,
    name="Connection228",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection235 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product5, "in"),
    end=_VSConverter_Subsystem8_Junction24,
    name="Connection235",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection238 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction33,
    end=_VSConverter_Subsystem8_d,
    name="Connection238",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection234 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Mathematical_function2, "in"),
    end=mdl.term(_VSConverter_Subsystem8_Sum16, "out"),
    name="Connection234",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection231 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum16, "in"),
    end=mdl.term(_VSConverter_Subsystem8_Product5, "out"),
    name="Connection231",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection252 = mdl.create_connection(
    start=_VSConverter_Subsystem8_mag,
    end=_VSConverter_Subsystem8_Junction35,
    name="Connection252",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection253 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction35,
    end=mdl.term(_VSConverter_Subsystem8_Mathematical_function2, "out"),
    name="Connection253",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection255 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Constant5, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Relational_operator2, "in1"),
    name="Connection255",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection257 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction33,
    end=_VSConverter_Subsystem8_Junction29,
    name="Connection257",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection262 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Trigonometric_function4, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch4, "in1"),
    name="Connection262",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection263 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Relational_operator2, "out"),
    end=_VSConverter_Subsystem8_Junction37,
    name="Connection263",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection264 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction37,
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch4, "in2"),
    name="Connection264",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection265 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Signal_switch12, "in2"),
    end=_VSConverter_Subsystem8_Junction37,
    name="Connection265",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection266 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Product7, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Trigonometric_function4, "in"),
    name="Connection266",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection267 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Relational_operator2, "in"),
    end=_VSConverter_Subsystem8_Junction38,
    name="Connection267",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection268 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction38,
    end=_VSConverter_Subsystem8_Junction35,
    name="Connection268",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection270 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Signal_switch12, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Product7, "in1"),
    name="Connection270",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection271 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Signal_switch12, "in1"),
    end=_VSConverter_Subsystem8_Junction39,
    name="Connection271",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection272 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction39,
    end=_VSConverter_Subsystem8_Junction38,
    name="Connection272",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection273 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum19, "in"),
    end=_VSConverter_Subsystem8_Junction39,
    name="Connection273",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection275 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum19, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch12, "in"),
    name="Connection275",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection276 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Constant7, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch4, "in"),
    name="Connection276",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection277 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Constant6, "out"),
    end=_VSConverter_Subsystem8_Junction40,
    name="Connection277",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection278 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction40,
    end=mdl.term(_VSConverter_Subsystem8_Sum19, "in1"),
    name="Connection278",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection279 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Comparator4, "in2"),
    end=_VSConverter_Subsystem8_Junction40,
    name="Connection279",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection283 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Comparator4, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch13, "in2"),
    name="Connection283",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection290 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction43,
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch13, "in"),
    name="Connection290",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection292 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Comparator5, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Signal_switch14, "in2"),
    name="Connection292",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection294 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Signal_switch4, "out"),
    end=_VSConverter_Subsystem8_Junction43,
    name="Connection294",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection295 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Constant8, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Sum20, "in"),
    name="Connection295",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection296 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Comparator5, "in1"),
    end=_VSConverter_Subsystem8_Junction44,
    name="Connection296",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection297 = mdl.create_connection(
    start=_VSConverter_Subsystem8_Junction44,
    end=_VSConverter_Subsystem8_Junction43,
    name="Connection297",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection299 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Constant9, "out"),
    end=mdl.term(_VSConverter_Subsystem8_Sum21, "in"),
    name="Connection299",
    breakpoints=[],
)
_VSConverter_Subsystem8_Connection300 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8_Sum20, "in1"),
    end=_VSConverter_Subsystem8_Junction45,
    name="Connection300",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection253 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction35,
    end=mdl.term(_VSConverter_Subsystem9_Mathematical_function2, "out"),
    name="Connection253",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection255 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Constant5, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Relational_operator2, "in1"),
    name="Connection255",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection257 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction33,
    end=_VSConverter_Subsystem9_Junction29,
    name="Connection257",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection262 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Trigonometric_function4, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch4, "in1"),
    name="Connection262",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection263 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Relational_operator2, "out"),
    end=_VSConverter_Subsystem9_Junction37,
    name="Connection263",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection264 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction37,
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch4, "in2"),
    name="Connection264",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection265 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Signal_switch12, "in2"),
    end=_VSConverter_Subsystem9_Junction37,
    name="Connection265",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection266 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product7, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Trigonometric_function4, "in"),
    name="Connection266",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection267 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Relational_operator2, "in"),
    end=_VSConverter_Subsystem9_Junction38,
    name="Connection267",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection268 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction38,
    end=_VSConverter_Subsystem9_Junction35,
    name="Connection268",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection270 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Signal_switch12, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Product7, "in1"),
    name="Connection270",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection271 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Signal_switch12, "in1"),
    end=_VSConverter_Subsystem9_Junction39,
    name="Connection271",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection272 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction39,
    end=_VSConverter_Subsystem9_Junction38,
    name="Connection272",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection273 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum19, "in"),
    end=_VSConverter_Subsystem9_Junction39,
    name="Connection273",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection275 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum19, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch12, "in"),
    name="Connection275",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection276 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Constant7, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch4, "in"),
    name="Connection276",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection277 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Constant6, "out"),
    end=_VSConverter_Subsystem9_Junction40,
    name="Connection277",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection278 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction40,
    end=mdl.term(_VSConverter_Subsystem9_Sum19, "in1"),
    name="Connection278",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection279 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Comparator4, "in2"),
    end=_VSConverter_Subsystem9_Junction40,
    name="Connection279",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection283 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Comparator4, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch13, "in2"),
    name="Connection283",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection290 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction43,
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch13, "in"),
    name="Connection290",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection292 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Comparator5, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch14, "in2"),
    name="Connection292",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection294 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Signal_switch4, "out"),
    end=_VSConverter_Subsystem9_Junction43,
    name="Connection294",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection295 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Constant8, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Sum20, "in"),
    name="Connection295",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection296 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Comparator5, "in1"),
    end=_VSConverter_Subsystem9_Junction44,
    name="Connection296",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection297 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction44,
    end=_VSConverter_Subsystem9_Junction43,
    name="Connection297",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection299 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Constant9, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Sum21, "in"),
    name="Connection299",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection300 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum20, "in1"),
    end=_VSConverter_Subsystem9_Junction45,
    name="Connection300",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection301 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction45,
    end=_VSConverter_Subsystem9_Junction44,
    name="Connection301",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection302 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum21, "in1"),
    end=_VSConverter_Subsystem9_Junction45,
    name="Connection302",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection303 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum20, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch14, "in"),
    name="Connection303",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection304 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum21, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch14, "in1"),
    name="Connection304",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection305 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Constant10, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Comparator5, "in2"),
    name="Connection305",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection306 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Signal_switch14, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch13, "in1"),
    name="Connection306",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection307 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Angle,
    end=mdl.term(_VSConverter_Subsystem9_Signal_switch13, "out"),
    name="Connection307",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection312 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Comparator4, "in1"),
    end=_VSConverter_Subsystem9_Junction33,
    name="Connection312",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection314 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product7, "in"),
    end=_VSConverter_Subsystem9_Junction46,
    name="Connection314",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection315 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction46,
    end=_VSConverter_Subsystem9_Junction24,
    name="Connection315",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection316 = mdl.create_connection(
    start=_VSConverter_Subsystem9_q,
    end=_VSConverter_Subsystem9_Junction46,
    name="Connection316",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection222 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product4, "in1"),
    end=_VSConverter_Subsystem9_Junction29,
    name="Connection222",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection224 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product4, "in"),
    end=_VSConverter_Subsystem9_Junction29,
    name="Connection224",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection236 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product4, "out"),
    end=mdl.term(_VSConverter_Subsystem9_Sum16, "in1"),
    name="Connection236",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection228 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product5, "in1"),
    end=_VSConverter_Subsystem9_Junction24,
    name="Connection228",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection235 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Product5, "in"),
    end=_VSConverter_Subsystem9_Junction24,
    name="Connection235",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection238 = mdl.create_connection(
    start=_VSConverter_Subsystem9_Junction33,
    end=_VSConverter_Subsystem9_d,
    name="Connection238",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection234 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Mathematical_function2, "in"),
    end=mdl.term(_VSConverter_Subsystem9_Sum16, "out"),
    name="Connection234",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection231 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9_Sum16, "in"),
    end=mdl.term(_VSConverter_Subsystem9_Product5, "out"),
    name="Connection231",
    breakpoints=[],
)
_VSConverter_Subsystem9_Connection252 = mdl.create_connection(
    start=_VSConverter_Subsystem9_mag,
    end=_VSConverter_Subsystem9_Junction35,
    name="Connection252",
    breakpoints=[],
)
_VSConverter_Connection136 = mdl.create_connection(
    start=mdl.term(_VSConverter_Integrator3, "out"),
    end=mdl.term(_VSConverter_Sum8, "in1"),
    name="Connection136",
    breakpoints=[],
)
_VSConverter_Connection142 = mdl.create_connection(
    start=_VSConverter_From5,
    end=mdl.term(_VSConverter_Signal_switch3, "in2"),
    name="Connection142",
    breakpoints=[],
)
_VSConverter_Connection146 = mdl.create_connection(
    start=_VSConverter_Junction13,
    end=mdl.term(_VSConverter_Signal_switch3, "in1"),
    name="Connection146",
    breakpoints=[],
)
_VSConverter_Connection147 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch4, "in1"),
    end=_VSConverter_Junction13,
    name="Connection147",
    breakpoints=[],
)
_VSConverter_Connection148 = mdl.create_connection(
    start=_VSConverter_From6,
    end=mdl.term(_VSConverter_Signal_switch4, "in2"),
    name="Connection148",
    breakpoints=[],
)
_VSConverter_Connection158 = mdl.create_connection(
    start=mdl.term(_VSConverter_Integrator4, "out"),
    end=mdl.term(_VSConverter_Sum10, "in1"),
    name="Connection158",
    breakpoints=[],
)
_VSConverter_Connection160 = mdl.create_connection(
    start=_VSConverter_From8,
    end=mdl.term(_VSConverter_Signal_switch5, "in2"),
    name="Connection160",
    breakpoints=[],
)
_VSConverter_Connection161 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch5, "out"),
    end=mdl.term(_VSConverter_Signal_switch6, "in"),
    name="Connection161",
    breakpoints=[],
)
_VSConverter_Connection162 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant5, "out"),
    end=_VSConverter_Junction15,
    name="Connection162",
    breakpoints=[],
)
_VSConverter_Connection163 = mdl.create_connection(
    start=_VSConverter_Junction15,
    end=mdl.term(_VSConverter_Signal_switch5, "in1"),
    name="Connection163",
    breakpoints=[],
)
_VSConverter_Connection164 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch6, "in1"),
    end=_VSConverter_Junction15,
    name="Connection164",
    breakpoints=[],
)
_VSConverter_Connection165 = mdl.create_connection(
    start=_VSConverter_From9,
    end=mdl.term(_VSConverter_Signal_switch6, "in2"),
    name="Connection165",
    breakpoints=[],
)
_VSConverter_Connection251 = mdl.create_connection(
    start=mdl.term(_VSConverter_V_gen, "in"),
    end=_VSConverter_Junction23,
    name="Connection251",
    breakpoints=[],
)
_VSConverter_Connection252 = mdl.create_connection(
    start=_VSConverter_Junction23,
    end=mdl.term(_VSConverter_Gain23, "out"),
    name="Connection252",
    breakpoints=[],
)
_VSConverter_Connection282 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain24, "out"),
    end=mdl.term(_VSConverter_Signal_switch13, "in"),
    name="Connection282",
    breakpoints=[],
)
_VSConverter_Connection283 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain25, "out"),
    end=mdl.term(_VSConverter_Signal_switch13, "in1"),
    name="Connection283",
    breakpoints=[],
)
_VSConverter_Connection287 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain24, "in"),
    end=_VSConverter_Junction29,
    name="Connection287",
    breakpoints=[],
)
_VSConverter_Connection290 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch13, "out"),
    end=mdl.term(_VSConverter_Sum8, "in"),
    name="Connection290",
    breakpoints=[],
)
_VSConverter_Connection292 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain26, "out"),
    end=mdl.term(_VSConverter_Signal_switch14, "in"),
    name="Connection292",
    breakpoints=[],
)
_VSConverter_Connection293 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain27, "out"),
    end=mdl.term(_VSConverter_Signal_switch14, "in1"),
    name="Connection293",
    breakpoints=[],
)
_VSConverter_Connection300 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch14, "out"),
    end=mdl.term(_VSConverter_Integrator3, "in"),
    name="Connection300",
    breakpoints=[],
)
_VSConverter_Connection309 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function1, "dED_sel"),
    end=_VSConverter_Goto14,
    name="Connection309",
    breakpoints=[],
)
_VSConverter_Connection315 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant9, "out"),
    end=mdl.term(_VSConverter_C_function1, "mode_external"),
    name="Connection315",
    breakpoints=[],
)
_VSConverter_Connection316 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant13, "out"),
    end=mdl.term(_VSConverter_C_function1, "Mode_select_int"),
    name="Connection316",
    breakpoints=[],
)
_VSConverter_Connection318 = mdl.create_connection(
    start=_VSConverter_From18,
    end=mdl.term(_VSConverter_Signal_switch13, "in2"),
    name="Connection318",
    breakpoints=[],
)
_VSConverter_Connection319 = mdl.create_connection(
    start=_VSConverter_From19,
    end=mdl.term(_VSConverter_Signal_switch14, "in2"),
    name="Connection319",
    breakpoints=[],
)
_VSConverter_Connection323 = mdl.create_connection(
    start=_VSConverter_From20,
    end=mdl.term(_VSConverter_Sum14, "in1"),
    name="Connection323",
    breakpoints=[],
)
_VSConverter_Connection329 = mdl.create_connection(
    start=_VSConverter_From17,
    end=mdl.term(_VSConverter_Signal_switch15, "in2"),
    name="Connection329",
    breakpoints=[],
)
_VSConverter_Connection331 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain28, "out"),
    end=mdl.term(_VSConverter_Signal_switch15, "in1"),
    name="Connection331",
    breakpoints=[],
)
_VSConverter_Connection332 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain14, "in"),
    end=_VSConverter_Junction33,
    name="Connection332",
    breakpoints=[],
)
_VSConverter_Connection334 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain28, "in"),
    end=_VSConverter_Junction33,
    name="Connection334",
    breakpoints=[],
)
_VSConverter_Connection335 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain29, "out"),
    end=mdl.term(_VSConverter_Signal_switch16, "in1"),
    name="Connection335",
    breakpoints=[],
)
_VSConverter_Connection336 = mdl.create_connection(
    start=_VSConverter_From23,
    end=mdl.term(_VSConverter_Signal_switch16, "in2"),
    name="Connection336",
    breakpoints=[],
)
_VSConverter_Connection341 = mdl.create_connection(
    start=_VSConverter_Junction34,
    end=mdl.term(_VSConverter_Gain13, "in"),
    name="Connection341",
    breakpoints=[],
)
_VSConverter_Connection342 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain29, "in"),
    end=_VSConverter_Junction34,
    name="Connection342",
    breakpoints=[],
)
_VSConverter_Connection349 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch17, "out"),
    end=mdl.term(_VSConverter_Signal_switch5, "in"),
    name="Connection349",
    breakpoints=[],
)
_VSConverter_Connection368 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain32, "out"),
    end=mdl.term(_VSConverter_C_function1, "Mode_select_ext"),
    name="Connection368",
    breakpoints=[],
)
_VSConverter_Connection374 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant14, "out"),
    end=_VSConverter_Goto19,
    name="Connection374",
    breakpoints=[],
)
_VSConverter_Connection382 = mdl.create_connection(
    start=_VSConverter_Junction13,
    end=mdl.term(_VSConverter_Constant4, "out"),
    name="Connection382",
    breakpoints=[],
)
_VSConverter_Connection381 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch3, "in"),
    end=mdl.term(_VSConverter_Signal_switch12, "out"),
    name="Connection381",
    breakpoints=[],
)
_VSConverter_Connection393 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain14, "out"),
    end=mdl.term(_VSConverter_Signal_switch15, "in"),
    name="Connection393",
    breakpoints=[],
)
_VSConverter_Connection394 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch15, "out"),
    end=mdl.term(_VSConverter_Sum10, "in"),
    name="Connection394",
    breakpoints=[],
)
_VSConverter_Connection395 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch16, "in"),
    end=mdl.term(_VSConverter_Gain13, "out"),
    name="Connection395",
    breakpoints=[],
)
_VSConverter_Connection396 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch16, "out"),
    end=mdl.term(_VSConverter_Integrator4, "in"),
    name="Connection396",
    breakpoints=[],
)
_VSConverter_Connection399 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function1, "dEQ_sel"),
    end=_VSConverter_Goto15,
    name="Connection399",
    breakpoints=[],
)
_VSConverter_Connection419 = mdl.create_connection(
    start=_VSConverter_Junction35,
    end=mdl.term(_VSConverter_Vinv_b, "n_node"),
    name="Connection419",
    breakpoints=[],
)
_VSConverter_Connection421 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_a, "p_node"),
    end=mdl.term(_VSConverter_Ra, "p_node"),
    name="Connection421",
    breakpoints=[],
)
_VSConverter_Connection422 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_b, "p_node"),
    end=mdl.term(_VSConverter_Rb, "p_node"),
    name="Connection422",
    breakpoints=[],
)
_VSConverter_Connection423 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_c, "p_node"),
    end=mdl.term(_VSConverter_Rc, "p_node"),
    name="Connection423",
    breakpoints=[],
)
_VSConverter_Connection424 = mdl.create_connection(
    start=mdl.term(_VSConverter_Ra, "n_node"),
    end=mdl.term(_VSConverter_La, "p_node"),
    name="Connection424",
    breakpoints=[],
)
_VSConverter_Connection425 = mdl.create_connection(
    start=mdl.term(_VSConverter_Rb, "n_node"),
    end=mdl.term(_VSConverter_Lb, "p_node"),
    name="Connection425",
    breakpoints=[],
)
_VSConverter_Connection426 = mdl.create_connection(
    start=mdl.term(_VSConverter_Rc, "n_node"),
    end=mdl.term(_VSConverter_Lc, "p_node"),
    name="Connection426",
    breakpoints=[],
)
_VSConverter_Connection427 = mdl.create_connection(
    start=mdl.term(_VSConverter_La, "n_node"),
    end=mdl.term(_VSConverter_Ia, "p_node"),
    name="Connection427",
    breakpoints=[],
)
_VSConverter_Connection428 = mdl.create_connection(
    start=mdl.term(_VSConverter_Lb, "n_node"),
    end=mdl.term(_VSConverter_Ib, "p_node"),
    name="Connection428",
    breakpoints=[],
)
_VSConverter_Connection429 = mdl.create_connection(
    start=mdl.term(_VSConverter_Lc, "n_node"),
    end=mdl.term(_VSConverter_Ic, "p_node"),
    name="Connection429",
    breakpoints=[],
)
_VSConverter_Connection439 = mdl.create_connection(
    start=_VSConverter_Goto20,
    end=mdl.term(_VSConverter_Ia, "out"),
    name="Connection439",
    breakpoints=[],
)
_VSConverter_Connection443 = mdl.create_connection(
    start=mdl.term(_VSConverter_Ia, "n_node"),
    end=_VSConverter_Junction39,
    name="Connection443",
    breakpoints=[],
)
_VSConverter_Connection444 = mdl.create_connection(
    start=_VSConverter_Junction39,
    end=_VSConverter_A1,
    name="Connection444",
    breakpoints=[],
)
_VSConverter_Connection445 = mdl.create_connection(
    start=mdl.term(_VSConverter_Va, "p_node"),
    end=_VSConverter_Junction39,
    name="Connection445",
    breakpoints=[],
)
_VSConverter_Connection446 = mdl.create_connection(
    start=mdl.term(_VSConverter_Ib, "n_node"),
    end=_VSConverter_Junction40,
    name="Connection446",
    breakpoints=[],
)
_VSConverter_Connection447 = mdl.create_connection(
    start=_VSConverter_Junction40,
    end=_VSConverter_B1,
    name="Connection447",
    breakpoints=[],
)
_VSConverter_Connection448 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vb, "p_node"),
    end=_VSConverter_Junction40,
    name="Connection448",
    breakpoints=[],
)
_VSConverter_Connection449 = mdl.create_connection(
    start=mdl.term(_VSConverter_Ic, "n_node"),
    end=_VSConverter_Junction41,
    name="Connection449",
    breakpoints=[],
)
_VSConverter_Connection450 = mdl.create_connection(
    start=_VSConverter_Junction41,
    end=_VSConverter_C1,
    name="Connection450",
    breakpoints=[],
)
_VSConverter_Connection451 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vc, "p_node"),
    end=_VSConverter_Junction41,
    name="Connection451",
    breakpoints=[],
)
_VSConverter_Connection452 = mdl.create_connection(
    start=_VSConverter_Goto21,
    end=mdl.term(_VSConverter_Ib, "out"),
    name="Connection452",
    breakpoints=[],
)
_VSConverter_Connection453 = mdl.create_connection(
    start=_VSConverter_Goto22,
    end=mdl.term(_VSConverter_Ic, "out"),
    name="Connection453",
    breakpoints=[],
)
_VSConverter_Connection454 = mdl.create_connection(
    start=_VSConverter_Goto23,
    end=mdl.term(_VSConverter_Va, "out"),
    name="Connection454",
    breakpoints=[],
)
_VSConverter_Connection455 = mdl.create_connection(
    start=_VSConverter_Goto24,
    end=mdl.term(_VSConverter_Vb, "out"),
    name="Connection455",
    breakpoints=[],
)
_VSConverter_Connection456 = mdl.create_connection(
    start=_VSConverter_Goto25,
    end=mdl.term(_VSConverter_Vc, "out"),
    name="Connection456",
    breakpoints=[],
)
_VSConverter_Connection457 = mdl.create_connection(
    start=_VSConverter_From26,
    end=mdl.term(_VSConverter_Sum15, "in"),
    name="Connection457",
    breakpoints=[],
)
_VSConverter_Connection458 = mdl.create_connection(
    start=_VSConverter_From27,
    end=mdl.term(_VSConverter_Sum15, "in1"),
    name="Connection458",
    breakpoints=[],
)
_VSConverter_Connection459 = mdl.create_connection(
    start=_VSConverter_From28,
    end=mdl.term(_VSConverter_Sum16, "in"),
    name="Connection459",
    breakpoints=[],
)
_VSConverter_Connection460 = mdl.create_connection(
    start=_VSConverter_From29,
    end=mdl.term(_VSConverter_Sum16, "in1"),
    name="Connection460",
    breakpoints=[],
)
_VSConverter_Connection461 = mdl.create_connection(
    start=_VSConverter_From30,
    end=mdl.term(_VSConverter_Sum17, "in"),
    name="Connection461",
    breakpoints=[],
)
_VSConverter_Connection462 = mdl.create_connection(
    start=_VSConverter_From31,
    end=mdl.term(_VSConverter_Sum17, "in1"),
    name="Connection462",
    breakpoints=[],
)
_VSConverter_Connection463 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum15, "out"),
    end=mdl.term(_VSConverter_Vab, "in"),
    name="Connection463",
    breakpoints=[],
)
_VSConverter_Connection464 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum16, "out"),
    end=mdl.term(_VSConverter_Vbc, "in"),
    name="Connection464",
    breakpoints=[],
)
_VSConverter_Connection465 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum17, "out"),
    end=mdl.term(_VSConverter_Vca, "in"),
    name="Connection465",
    breakpoints=[],
)
_VSConverter_Connection469 = mdl.create_connection(
    start=_VSConverter_From35,
    end=mdl.term(_VSConverter_abc_to_dq2, "va"),
    name="Connection469",
    breakpoints=[],
)
_VSConverter_Connection470 = mdl.create_connection(
    start=_VSConverter_From36,
    end=mdl.term(_VSConverter_abc_to_dq2, "vb"),
    name="Connection470",
    breakpoints=[],
)
_VSConverter_Connection471 = mdl.create_connection(
    start=_VSConverter_From37,
    end=mdl.term(_VSConverter_abc_to_dq2, "vc"),
    name="Connection471",
    breakpoints=[],
)
_VSConverter_Connection475 = mdl.create_connection(
    start=_VSConverter_Goto13,
    end=_VSConverter_Junction23,
    name="Connection475",
    breakpoints=[],
)
_VSConverter_Connection485 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8, "Angle"),
    end=_VSConverter_Goto27,
    name="Connection485",
    breakpoints=[],
)
_VSConverter_Connection489 = mdl.create_connection(
    start=_VSConverter_From38,
    end=mdl.term(_VSConverter_abc_to_dq2, "wt"),
    name="Connection489",
    breakpoints=[],
)
_VSConverter_Connection4875 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant21, "out"),
    end=mdl.term(_VSConverter_Comparator1, "in2"),
    name="Connection4875",
    breakpoints=[],
)
_VSConverter_Connection5040 = mdl.create_connection(
    start=_VSConverter_Goto9,
    end=_VSConverter_Junction47,
    name="Connection5040",
    breakpoints=[],
)
_VSConverter_Connection5041 = mdl.create_connection(
    start=_VSConverter_Junction47,
    end=mdl.term(_VSConverter_Comparator1, "out"),
    name="Connection5041",
    breakpoints=[],
)
_VSConverter_Connection5048 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant24, "out"),
    end=_VSConverter_Goto16,
    name="Connection5048",
    breakpoints=[],
)
_VSConverter_Connection5054 = mdl.create_connection(
    start=mdl.term(_VSConverter_dq_to_abc1, "phase_a"),
    end=_VSConverter_Goto30,
    name="Connection5054",
    breakpoints=[],
)
_VSConverter_Connection5055 = mdl.create_connection(
    start=mdl.term(_VSConverter_dq_to_abc1, "phase_b"),
    end=_VSConverter_Goto31,
    name="Connection5055",
    breakpoints=[],
)
_VSConverter_Connection5056 = mdl.create_connection(
    start=mdl.term(_VSConverter_dq_to_abc1, "phase_c"),
    end=_VSConverter_Goto32,
    name="Connection5056",
    breakpoints=[],
)
_VSConverter_Connection5073 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8, "mag"),
    end=_VSConverter_Junction50,
    name="Connection5073",
    breakpoints=[],
)
_VSConverter_Connection5074 = mdl.create_connection(
    start=_VSConverter_Junction50,
    end=_VSConverter_Goto26,
    name="Connection5074",
    breakpoints=[],
)
_VSConverter_Connection5075 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain23, "in"),
    end=_VSConverter_Junction50,
    name="Connection5075",
    breakpoints=[],
)
_VSConverter_Connection5080 = mdl.create_connection(
    start=_VSConverter_From46,
    end=mdl.term(_VSConverter_Product1, "in"),
    name="Connection5080",
    breakpoints=[],
)
_VSConverter_Connection5081 = mdl.create_connection(
    start=_VSConverter_From45,
    end=mdl.term(_VSConverter_Product1, "in1"),
    name="Connection5081",
    breakpoints=[],
)
_VSConverter_Connection5082 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product1, "out"),
    end=mdl.term(_VSConverter_Gain9, "in"),
    name="Connection5082",
    breakpoints=[],
)
_VSConverter_Connection5085 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product4, "out"),
    end=mdl.term(_VSConverter_Gain10, "in"),
    name="Connection5085",
    breakpoints=[],
)
_VSConverter_Connection5090 = mdl.create_connection(
    start=_VSConverter_From47,
    end=mdl.term(_VSConverter_Product4, "in"),
    name="Connection5090",
    breakpoints=[],
)
_VSConverter_Connection5091 = mdl.create_connection(
    start=_VSConverter_From48,
    end=mdl.term(_VSConverter_Product4, "in1"),
    name="Connection5091",
    breakpoints=[],
)
_VSConverter_Connection5103 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain33, "out"),
    end=mdl.term(_VSConverter_C_function2, "in"),
    name="Connection5103",
    breakpoints=[],
)
_VSConverter_Connection5105 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant28, "out"),
    end=mdl.term(_VSConverter_C_function2, "reset_level"),
    name="Connection5105",
    breakpoints=[],
)
_VSConverter_Connection5122 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant31, "out"),
    end=mdl.term(_VSConverter_Sum19, "in1"),
    name="Connection5122",
    breakpoints=[],
)
_VSConverter_Connection5189 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8, "d"),
    end=mdl.term(_VSConverter_abc_to_dq1, "d_axis"),
    name="Connection5189",
    breakpoints=[],
)
_VSConverter_Connection5190 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem8, "q"),
    end=mdl.term(_VSConverter_abc_to_dq1, "q_axis"),
    name="Connection5190",
    breakpoints=[],
)
_VSConverter_Connection5199 = mdl.create_connection(
    start=_VSConverter_From50,
    end=mdl.term(_VSConverter_Sum23, "in1"),
    name="Connection5199",
    breakpoints=[],
)
_VSConverter_Connection5206 = mdl.create_connection(
    start=mdl.term(_VSConverter_Limit2, "out"),
    end=_VSConverter_Goto34,
    name="Connection5206",
    breakpoints=[],
)
_VSConverter_Connection5216 = mdl.create_connection(
    start=_VSConverter_From49,
    end=mdl.term(_VSConverter_Sum24, "in"),
    name="Connection5216",
    breakpoints=[],
)
_VSConverter_Connection5238 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant30, "out"),
    end=mdl.term(_VSConverter_C_function2, "dt"),
    name="Connection5238",
    breakpoints=[],
)
_VSConverter_Connection5241 = mdl.create_connection(
    start=_VSConverter_Goto39,
    end=_VSConverter_Junction68,
    name="Connection5241",
    breakpoints=[],
)
_VSConverter_Connection5242 = mdl.create_connection(
    start=_VSConverter_Junction68,
    end=mdl.term(_VSConverter_C_function2, "out"),
    name="Connection5242",
    breakpoints=[],
)
_VSConverter_Connection5243 = mdl.create_connection(
    start=mdl.term(_VSConverter_abc_to_dq1, "wt"),
    end=_VSConverter_Junction68,
    name="Connection5243",
    breakpoints=[],
)
_VSConverter_Connection5245 = mdl.create_connection(
    start=_VSConverter_From61,
    end=mdl.term(_VSConverter_Sum25, "in1"),
    name="Connection5245",
    breakpoints=[],
)
_VSConverter_Connection5263 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum10, "out"),
    end=mdl.term(_VSConverter_Limit1, "in"),
    name="Connection5263",
    breakpoints=[],
)
_VSConverter_Connection5272 = mdl.create_connection(
    start=_VSConverter_From7,
    end=mdl.term(_VSConverter_Sum26, "in1"),
    name="Connection5272",
    breakpoints=[],
)
_VSConverter_Connection5273 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant38, "out"),
    end=mdl.term(_VSConverter_Sum9, "in1"),
    name="Connection5273",
    breakpoints=[],
)
_VSConverter_Connection5274 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum26, "out"),
    end=mdl.term(_VSConverter_Signal_switch17, "in"),
    name="Connection5274",
    breakpoints=[],
)
_VSConverter_Connection5277 = mdl.create_connection(
    start=_VSConverter_Junction33,
    end=_VSConverter_Junction72,
    name="Connection5277",
    breakpoints=[],
)
_VSConverter_Connection5278 = mdl.create_connection(
    start=_VSConverter_Junction72,
    end=_VSConverter_Junction34,
    name="Connection5278",
    breakpoints=[],
)
_VSConverter_Connection5279 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch6, "out"),
    end=_VSConverter_Junction72,
    name="Connection5279",
    breakpoints=[],
)
_VSConverter_Connection5281 = mdl.create_connection(
    start=mdl.term(_VSConverter_Rate_Limiter1, "out"),
    end=mdl.term(_VSConverter_Sum26, "in"),
    name="Connection5281",
    breakpoints=[],
)
_VSConverter_Connection5286 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum27, "out"),
    end=mdl.term(_VSConverter_Signal_switch12, "in"),
    name="Connection5286",
    breakpoints=[],
)
_VSConverter_Connection5287 = mdl.create_connection(
    start=_VSConverter_From4,
    end=mdl.term(_VSConverter_Sum27, "in1"),
    name="Connection5287",
    breakpoints=[],
)
_VSConverter_Connection5288 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant39, "out"),
    end=mdl.term(_VSConverter_Sum7, "in1"),
    name="Connection5288",
    breakpoints=[],
)
_VSConverter_Connection5289 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum27, "in"),
    end=mdl.term(_VSConverter_Rate_Limiter4, "out"),
    name="Connection5289",
    breakpoints=[],
)
_VSConverter_Connection5290 = mdl.create_connection(
    start=mdl.term(_VSConverter_Rate_Limiter4, "in"),
    end=mdl.term(_VSConverter_Sum7, "out"),
    name="Connection5290",
    breakpoints=[],
)
_VSConverter_Connection5291 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch3, "out"),
    end=mdl.term(_VSConverter_Signal_switch4, "in"),
    name="Connection5291",
    breakpoints=[],
)
_VSConverter_Connection5334 = mdl.create_connection(
    start=_VSConverter_Goto29,
    end=mdl.term(_VSConverter_abc_to_dq2, "q_axis"),
    name="Connection5334",
    breakpoints=[],
)
_VSConverter_Connection5335 = mdl.create_connection(
    start=mdl.term(_VSConverter_abc_to_dq2, "d_axis"),
    end=_VSConverter_Goto28,
    name="Connection5335",
    breakpoints=[],
)
_VSConverter_Connection5347 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum19, "out"),
    end=mdl.term(_VSConverter_dq_to_abc1, "wt"),
    name="Connection5347",
    breakpoints=[],
)
_VSConverter_Connection5361 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch4, "out"),
    end=_VSConverter_Junction88,
    name="Connection5361",
    breakpoints=[],
)
_VSConverter_Connection5362 = mdl.create_connection(
    start=_VSConverter_Junction88,
    end=_VSConverter_Junction29,
    name="Connection5362",
    breakpoints=[],
)
_VSConverter_Connection5364 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain26, "in"),
    end=_VSConverter_Junction89,
    name="Connection5364",
    breakpoints=[],
)
_VSConverter_Connection5365 = mdl.create_connection(
    start=_VSConverter_Junction89,
    end=_VSConverter_Junction88,
    name="Connection5365",
    breakpoints=[],
)
_VSConverter_Connection5366 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain27, "in"),
    end=_VSConverter_Junction89,
    name="Connection5366",
    breakpoints=[],
)
_VSConverter_Connection5381 = mdl.create_connection(
    start=mdl.term(_VSConverter_Isp1, "n_node"),
    end=_VSConverter_Junction94,
    name="Connection5381",
    breakpoints=[],
)
_VSConverter_Connection5384 = mdl.create_connection(
    start=mdl.term(_VSConverter_Isp1, "p_node"),
    end=_VSConverter_Junction95,
    name="Connection5384",
    breakpoints=[],
)
_VSConverter_Connection5386 = mdl.create_connection(
    start=mdl.term(_VSConverter_Va1, "p_node"),
    end=_VSConverter_Junction95,
    name="Connection5386",
    breakpoints=[],
)
_VSConverter_Connection5390 = mdl.create_connection(
    start=_VSConverter_From67,
    end=mdl.term(_VSConverter_C_function3, "Eb"),
    name="Connection5390",
    breakpoints=[],
)
_VSConverter_Connection5391 = mdl.create_connection(
    start=_VSConverter_From68,
    end=mdl.term(_VSConverter_C_function3, "Ec"),
    name="Connection5391",
    breakpoints=[],
)
_VSConverter_Connection5392 = mdl.create_connection(
    start=_VSConverter_From63,
    end=mdl.term(_VSConverter_C_function3, "ia"),
    name="Connection5392",
    breakpoints=[],
)
_VSConverter_Connection5393 = mdl.create_connection(
    start=_VSConverter_From64,
    end=mdl.term(_VSConverter_C_function3, "ib"),
    name="Connection5393",
    breakpoints=[],
)
_VSConverter_Connection5394 = mdl.create_connection(
    start=_VSConverter_From65,
    end=mdl.term(_VSConverter_C_function3, "ic"),
    name="Connection5394",
    breakpoints=[],
)
_VSConverter_Connection5400 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function3, "idc"),
    end=_VSConverter_Junction97,
    name="Connection5400",
    breakpoints=[],
)
_VSConverter_Connection5401 = mdl.create_connection(
    start=_VSConverter_Junction97,
    end=mdl.term(_VSConverter_DC_C, "in"),
    name="Connection5401",
    breakpoints=[],
)
_VSConverter_Connection5402 = mdl.create_connection(
    start=_VSConverter_Goto42,
    end=_VSConverter_Junction97,
    name="Connection5402",
    breakpoints=[],
)
_VSConverter_Connection5403 = mdl.create_connection(
    start=_VSConverter_From69,
    end=mdl.term(_VSConverter_Isp1, "in"),
    name="Connection5403",
    breakpoints=[],
)
_VSConverter_Connection5404 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function3, "Ea"),
    end=_VSConverter_From66,
    name="Connection5404",
    breakpoints=[],
)
_VSConverter_Connection5405 = mdl.create_connection(
    start=_VSConverter_Goto41,
    end=_VSConverter_Junction98,
    name="Connection5405",
    breakpoints=[],
)
_VSConverter_Connection5406 = mdl.create_connection(
    start=_VSConverter_Junction98,
    end=mdl.term(_VSConverter_Va1, "out"),
    name="Connection5406",
    breakpoints=[],
)
_VSConverter_Connection5407 = mdl.create_connection(
    start=mdl.term(_VSConverter_DC_VDC, "in"),
    end=_VSConverter_Junction98,
    name="Connection5407",
    breakpoints=[],
)
_VSConverter_Connection5408 = mdl.create_connection(
    start=_VSConverter_From70,
    end=mdl.term(_VSConverter_C_function3, "Vdc"),
    name="Connection5408",
    breakpoints=[],
)
_VSConverter_Connection5409 = mdl.create_connection(
    start=_VSConverter_From71,
    end=mdl.term(_VSConverter_C_function3, "va"),
    name="Connection5409",
    breakpoints=[],
)
_VSConverter_Connection5410 = mdl.create_connection(
    start=_VSConverter_From72,
    end=mdl.term(_VSConverter_C_function3, "vb"),
    name="Connection5410",
    breakpoints=[],
)
_VSConverter_Connection5411 = mdl.create_connection(
    start=_VSConverter_From73,
    end=mdl.term(_VSConverter_C_function3, "vc"),
    name="Connection5411",
    breakpoints=[],
)
_VSConverter_Connection5416 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain25, "in"),
    end=_VSConverter_Junction29,
    name="Connection5416",
    breakpoints=[],
)
_VSConverter_Connection5419 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant27, "out"),
    end=mdl.term(_VSConverter_dq_to_abc1, "zero_input"),
    name="Connection5419",
    breakpoints=[],
)
_VSConverter_Connection5421 = mdl.create_connection(
    start=mdl.term(_VSConverter_Clock1, "out"),
    end=mdl.term(_VSConverter_Comparator1, "in1"),
    name="Connection5421",
    breakpoints=[],
)
_VSConverter_Connection5422 = mdl.create_connection(
    start=_VSConverter_From59,
    end=mdl.term(_VSConverter_Sum19, "in"),
    name="Connection5422",
    breakpoints=[],
)
_VSConverter_Connection5432 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9, "mag"),
    end=mdl.term(_VSConverter_Limit4, "in"),
    name="Connection5432",
    breakpoints=[],
)
_VSConverter_Connection5435 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product12, "out"),
    end=mdl.term(_VSConverter_Limit5, "in"),
    name="Connection5435",
    breakpoints=[],
)
_VSConverter_Connection5446 = mdl.create_connection(
    start=_VSConverter_Junction99,
    end=mdl.term(_VSConverter_Limit5, "out"),
    name="Connection5446",
    breakpoints=[],
)
_VSConverter_Connection5447 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product14, "in"),
    end=_VSConverter_Junction99,
    name="Connection5447",
    breakpoints=[],
)
_VSConverter_Connection5448 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum23, "out"),
    end=_VSConverter_Junction100,
    name="Connection5448",
    breakpoints=[],
)
_VSConverter_Connection5450 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9, "d"),
    end=_VSConverter_Junction100,
    name="Connection5450",
    breakpoints=[],
)
_VSConverter_Connection5459 = mdl.create_connection(
    start=_VSConverter_Junction100,
    end=_VSConverter_Junction103,
    name="Connection5459",
    breakpoints=[],
)
_VSConverter_Connection5460 = mdl.create_connection(
    start=_VSConverter_Junction103,
    end=mdl.term(_VSConverter_Product13, "in"),
    name="Connection5460",
    breakpoints=[],
)
_VSConverter_Connection5461 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch18, "in1"),
    end=_VSConverter_Junction103,
    name="Connection5461",
    breakpoints=[],
)
_VSConverter_Connection5462 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch18, "in"),
    end=mdl.term(_VSConverter_Product13, "out"),
    name="Connection5462",
    breakpoints=[],
)
_VSConverter_Connection5463 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch18, "out"),
    end=mdl.term(_VSConverter_dq_to_abc1, "d_input"),
    name="Connection5463",
    breakpoints=[],
)
_VSConverter_Connection5466 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product14, "out"),
    end=mdl.term(_VSConverter_Signal_switch19, "in"),
    name="Connection5466",
    breakpoints=[],
)
_VSConverter_Connection5467 = mdl.create_connection(
    start=mdl.term(_VSConverter_Subsystem9, "q"),
    end=_VSConverter_Junction104,
    name="Connection5467",
    breakpoints=[],
)
_VSConverter_Connection5468 = mdl.create_connection(
    start=_VSConverter_Junction104,
    end=mdl.term(_VSConverter_Sum24, "out"),
    name="Connection5468",
    breakpoints=[],
)
_VSConverter_Connection5470 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product14, "in1"),
    end=_VSConverter_Junction105,
    name="Connection5470",
    breakpoints=[],
)
_VSConverter_Connection5471 = mdl.create_connection(
    start=_VSConverter_Junction105,
    end=_VSConverter_Junction104,
    name="Connection5471",
    breakpoints=[],
)
_VSConverter_Connection5472 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch19, "in1"),
    end=_VSConverter_Junction105,
    name="Connection5472",
    breakpoints=[],
)
_VSConverter_Connection5473 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch19, "out"),
    end=mdl.term(_VSConverter_dq_to_abc1, "q_input"),
    name="Connection5473",
    breakpoints=[],
)
_VSConverter_Connection5474 = mdl.create_connection(
    start=_VSConverter_From74,
    end=mdl.term(_VSConverter_Gain35, "in"),
    name="Connection5474",
    breakpoints=[],
)
_VSConverter_Connection5475 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain35, "out"),
    end=mdl.term(_VSConverter_Limit3, "in"),
    name="Connection5475",
    breakpoints=[],
)
_VSConverter_Connection5481 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product13, "in1"),
    end=_VSConverter_Junction99,
    name="Connection5481",
    breakpoints=[],
)
_VSConverter_Connection5482 = mdl.create_connection(
    start=mdl.term(_VSConverter_Limit3, "out"),
    end=_VSConverter_Junction106,
    name="Connection5482",
    breakpoints=[],
)
_VSConverter_Connection5483 = mdl.create_connection(
    start=_VSConverter_Junction106,
    end=mdl.term(_VSConverter_Product12, "in"),
    name="Connection5483",
    breakpoints=[],
)
_VSConverter_Connection5484 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product15, "in1"),
    end=_VSConverter_Junction106,
    name="Connection5484",
    breakpoints=[],
)
_VSConverter_Connection5485 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product12, "in1"),
    end=_VSConverter_Junction107,
    name="Connection5485",
    breakpoints=[],
)
_VSConverter_Connection5486 = mdl.create_connection(
    start=_VSConverter_Junction107,
    end=mdl.term(_VSConverter_Limit4, "out"),
    name="Connection5486",
    breakpoints=[],
)
_VSConverter_Connection5487 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product15, "in"),
    end=_VSConverter_Junction107,
    name="Connection5487",
    breakpoints=[],
)
_VSConverter_Connection5488 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product15, "out"),
    end=mdl.term(_VSConverter_Limit6, "in"),
    name="Connection5488",
    breakpoints=[],
)
_VSConverter_Connection5489 = mdl.create_connection(
    start=mdl.term(_VSConverter_Limit6, "out"),
    end=_VSConverter_Goto43,
    name="Connection5489",
    breakpoints=[],
)
_VSConverter_Connection5491 = mdl.create_connection(
    start=_VSConverter_From76,
    end=mdl.term(_VSConverter_Signal_switch19, "in2"),
    name="Connection5491",
    breakpoints=[],
)
_VSConverter_Connection5492 = mdl.create_connection(
    start=_VSConverter_From75,
    end=mdl.term(_VSConverter_Signal_switch18, "in2"),
    name="Connection5492",
    breakpoints=[],
)
_VSConverter_Connection5493 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function3, "Ea1"),
    end=_VSConverter_Goto44,
    name="Connection5493",
    breakpoints=[],
)
_VSConverter_Connection5494 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function3, "Eb1"),
    end=_VSConverter_Goto45,
    name="Connection5494",
    breakpoints=[],
)
_VSConverter_Connection5495 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function3, "Ec1"),
    end=_VSConverter_Goto46,
    name="Connection5495",
    breakpoints=[],
)
_VSConverter_Connection5500 = mdl.create_connection(
    start=_VSConverter_From77,
    end=_VSConverter_Junction108,
    name="Connection5500",
    breakpoints=[],
)
_VSConverter_Connection5501 = mdl.create_connection(
    start=_VSConverter_Junction108,
    end=mdl.term(_VSConverter_C_function3, "mc"),
    name="Connection5501",
    breakpoints=[],
)
_VSConverter_Connection5502 = mdl.create_connection(
    start=mdl.term(_VSConverter_DC_m0, "in"),
    end=_VSConverter_Junction108,
    name="Connection5502",
    breakpoints=[],
)
_VSConverter_Connection5503 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant43, "out"),
    end=mdl.term(_VSConverter_C_function3, "con_en"),
    name="Connection5503",
    breakpoints=[],
)
_VSConverter_Connection5504 = mdl.create_connection(
    start=_VSConverter_From79,
    end=mdl.term(_VSConverter_Product16, "in"),
    name="Connection5504",
    breakpoints=[],
)
_VSConverter_Connection5505 = mdl.create_connection(
    start=_VSConverter_From80,
    end=mdl.term(_VSConverter_Product16, "in1"),
    name="Connection5505",
    breakpoints=[],
)
_VSConverter_Connection5506 = mdl.create_connection(
    start=mdl.term(_VSConverter_Product16, "out"),
    end=mdl.term(_VSConverter_Gain36, "in"),
    name="Connection5506",
    breakpoints=[],
)
_VSConverter_Connection5507 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain36, "out"),
    end=mdl.term(_VSConverter_DC_Pow, "in"),
    name="Connection5507",
    breakpoints=[],
)
_VSConverter_Connection5508 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain30, "out"),
    end=mdl.term(_VSConverter_Sum14, "in"),
    name="Connection5508",
    breakpoints=[],
)
_VSConverter_Connection5509 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant44, "out"),
    end=_VSConverter_Goto47,
    name="Connection5509",
    breakpoints=[],
)
_VSConverter_Connection5510 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant25, "out"),
    end=mdl.term(_VSConverter_Gain37, "in"),
    name="Connection5510",
    breakpoints=[],
)
_VSConverter_Connection5511 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain37, "out"),
    end=_VSConverter_Goto12,
    name="Connection5511",
    breakpoints=[],
)
_VSConverter_Connection5513 = mdl.create_connection(
    start=mdl.term(_VSConverter_abc_to_dq1, "va"),
    end=_VSConverter_From32,
    name="Connection5513",
    breakpoints=[],
)
_VSConverter_Connection5515 = mdl.create_connection(
    start=_VSConverter_From33,
    end=mdl.term(_VSConverter_abc_to_dq1, "vb"),
    name="Connection5515",
    breakpoints=[],
)
_VSConverter_Connection5512 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum25, "out"),
    end=_VSConverter_Goto40,
    name="Connection5512",
    breakpoints=[],
)
_VSConverter_Connection5514 = mdl.create_connection(
    start=mdl.term(_VSConverter_abc_to_dq1, "vc"),
    end=_VSConverter_From34,
    name="Connection5514",
    breakpoints=[],
)
_VSConverter_Connection5522 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum14, "out"),
    end=mdl.term(_VSConverter_Gain38, "in"),
    name="Connection5522",
    breakpoints=[],
)
_VSConverter_Connection5530 = mdl.create_connection(
    start=_VSConverter_From16,
    end=mdl.term(_VSConverter_Signal_switch12, "in2"),
    name="Connection5530",
    breakpoints=[],
)
_VSConverter_Connection5531 = mdl.create_connection(
    start=_VSConverter_From24,
    end=mdl.term(_VSConverter_Signal_switch17, "in2"),
    name="Connection5531",
    breakpoints=[],
)
_VSConverter_Connection5536 = mdl.create_connection(
    start=_VSConverter_Junction110,
    end=_VSConverter_Junction95,
    name="Connection5536",
    breakpoints=[],
)
_VSConverter_Connection5537 = mdl.create_connection(
    start=mdl.term(_VSConverter_R_SN, "p_node"),
    end=_VSConverter_Junction110,
    name="Connection5537",
    breakpoints=[],
)
_VSConverter_Connection5539 = mdl.create_connection(
    start=_VSConverter_Junction111,
    end=_VSConverter_Junction94,
    name="Connection5539",
    breakpoints=[],
)
_VSConverter_Connection5540 = mdl.create_connection(
    start=mdl.term(_VSConverter_R_SN, "n_node"),
    end=_VSConverter_Junction111,
    name="Connection5540",
    breakpoints=[],
)
_VSConverter_Connection5541 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain38, "out"),
    end=mdl.term(_VSConverter_Signal_switch17, "in1"),
    name="Connection5541",
    breakpoints=[],
)
_VSConverter_Connection5542 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant3, "out"),
    end=mdl.term(_VSConverter_C_function2, "ang_init"),
    name="Connection5542",
    breakpoints=[],
)
_VSConverter_Connection5543 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum11, "out"),
    end=mdl.term(_VSConverter_Gain39, "in"),
    name="Connection5543",
    breakpoints=[],
)
_VSConverter_Connection5544 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain39, "out"),
    end=mdl.term(_VSConverter_Signal_switch12, "in1"),
    name="Connection5544",
    breakpoints=[],
)
_VSConverter_Connection5545 = mdl.create_connection(
    start=_VSConverter_From14,
    end=mdl.term(_VSConverter_Gain40, "in"),
    name="Connection5545",
    breakpoints=[],
)
_VSConverter_Connection5546 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain40, "out"),
    end=mdl.term(_VSConverter_Sum11, "in1"),
    name="Connection5546",
    breakpoints=[],
)
_VSConverter_Connection5547 = mdl.create_connection(
    start=mdl.term(_VSConverter_C_function1, "GF_en"),
    end=_VSConverter_Goto48,
    name="Connection5547",
    breakpoints=[],
)
_VSConverter_Connection5548 = mdl.create_connection(
    start=_VSConverter_From81,
    end=mdl.term(_VSConverter_Signal_switch20, "in2"),
    name="Connection5548",
    breakpoints=[],
)
_VSConverter_Connection5550 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch20, "out"),
    end=_VSConverter_Goto8,
    name="Connection5550",
    breakpoints=[],
)
_VSConverter_Connection5554 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant45, "out"),
    end=mdl.term(_VSConverter_Signal_switch20, "in"),
    name="Connection5554",
    breakpoints=[],
)
_VSConverter_Connection5563 = mdl.create_connection(
    start=_VSConverter_From82,
    end=mdl.term(_VSConverter_Signal_switch21, "in2"),
    name="Connection5563",
    breakpoints=[],
)
_VSConverter_Connection5565 = mdl.create_connection(
    start=_VSConverter_From60,
    end=mdl.term(_VSConverter_Signal_switch21, "in1"),
    name="Connection5565",
    breakpoints=[],
)
_VSConverter_Connection5566 = mdl.create_connection(
    start=mdl.term(_VSConverter_Unit_Delay1, "out"),
    end=mdl.term(_VSConverter_Signal_switch21, "in"),
    name="Connection5566",
    breakpoints=[],
)
_VSConverter_Connection5567 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch21, "out"),
    end=_VSConverter_Junction113,
    name="Connection5567",
    breakpoints=[],
)
_VSConverter_Connection5568 = mdl.create_connection(
    start=_VSConverter_Junction113,
    end=mdl.term(_VSConverter_Sum25, "in"),
    name="Connection5568",
    breakpoints=[],
)
_VSConverter_Connection5569 = mdl.create_connection(
    start=mdl.term(_VSConverter_Unit_Delay1, "in"),
    end=_VSConverter_Junction113,
    name="Connection5569",
    breakpoints=[],
)
_VSConverter_Connection5570 = mdl.create_connection(
    start=mdl.term(_VSConverter_Limit2, "in"),
    end=mdl.term(_VSConverter_Sum8, "out"),
    name="Connection5570",
    breakpoints=[],
)
_VSConverter_Connection5571 = mdl.create_connection(
    start=mdl.term(_VSConverter_Limit1, "out"),
    end=_VSConverter_Goto33,
    name="Connection5571",
    breakpoints=[],
)
_VSConverter_Connection5574 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_b, "in"),
    end=_VSConverter_From42,
    name="Connection5574",
    breakpoints=[],
)
_VSConverter_Connection5573 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_a, "in"),
    end=_VSConverter_From41,
    name="Connection5573",
    breakpoints=[],
)
_VSConverter_Connection5572 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_c, "in"),
    end=_VSConverter_From43,
    name="Connection5572",
    breakpoints=[],
)
_VSConverter_Connection5577 = mdl.create_connection(
    start=mdl.term(_VSConverter_abc_to_dq2, "zero_axis"),
    end=mdl.term(_VSConverter_Termination100, "in"),
    name="Connection5577",
    breakpoints=[],
)
_VSConverter_Connection5578 = mdl.create_connection(
    start=mdl.term(_VSConverter_Termination101, "in"),
    end=mdl.term(_VSConverter_abc_to_dq1, "zero_axis"),
    name="Connection5578",
    breakpoints=[],
)
_VSConverter_Connection5579 = mdl.create_connection(
    start=mdl.term(_VSConverter_Termination102, "in"),
    end=mdl.term(_VSConverter_Subsystem9, "Angle"),
    name="Connection5579",
    breakpoints=[],
)
_VSConverter_Connection5582 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain21, "in"),
    end=mdl.term(_VSConverter_Gain9, "out"),
    name="Connection5582",
    breakpoints=[],
)
_VSConverter_Connection5583 = mdl.create_connection(
    start=mdl.term(_VSConverter_P_gen, "in"),
    end=_VSConverter_Junction114,
    name="Connection5583",
    breakpoints=[],
)
_VSConverter_Connection5584 = mdl.create_connection(
    start=_VSConverter_Junction114,
    end=mdl.term(_VSConverter_Gain21, "out"),
    name="Connection5584",
    breakpoints=[],
)
_VSConverter_Connection5585 = mdl.create_connection(
    start=_VSConverter_Goto5,
    end=_VSConverter_Junction114,
    name="Connection5585",
    breakpoints=[],
)
_VSConverter_Connection5586 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain10, "out"),
    end=mdl.term(_VSConverter_Gain22, "in"),
    name="Connection5586",
    breakpoints=[],
)
_VSConverter_Connection5587 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain22, "out"),
    end=_VSConverter_Junction115,
    name="Connection5587",
    breakpoints=[],
)
_VSConverter_Connection5588 = mdl.create_connection(
    start=_VSConverter_Junction115,
    end=mdl.term(_VSConverter_Q_gen, "in"),
    name="Connection5588",
    breakpoints=[],
)
_VSConverter_Connection5589 = mdl.create_connection(
    start=_VSConverter_Goto6,
    end=_VSConverter_Junction115,
    name="Connection5589",
    breakpoints=[],
)
_VSConverter_Connection5597 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vc, "n_node"),
    end=_VSConverter_Junction116,
    name="Connection5597",
    breakpoints=[],
)
_VSConverter_Connection5598 = mdl.create_connection(
    start=_VSConverter_Junction116,
    end=mdl.term(_VSConverter_Vb, "n_node"),
    name="Connection5598",
    breakpoints=[],
)
_VSConverter_Connection5600 = mdl.create_connection(
    start=mdl.term(_VSConverter_Va, "n_node"),
    end=_VSConverter_Junction117,
    name="Connection5600",
    breakpoints=[],
)
_VSConverter_Connection5601 = mdl.create_connection(
    start=_VSConverter_Junction117,
    end=_VSConverter_Junction116,
    name="Connection5601",
    breakpoints=[],
)
_VSConverter_Connection5602 = mdl.create_connection(
    start=mdl.term(_VSConverter_Vinv_c, "n_node"),
    end=_VSConverter_Junction118,
    name="Connection5602",
    breakpoints=[],
)
_VSConverter_Connection5603 = mdl.create_connection(
    start=_VSConverter_Junction118,
    end=_VSConverter_Junction35,
    name="Connection5603",
    breakpoints=[],
)
_VSConverter_Connection5604 = mdl.create_connection(
    start=_VSConverter_Junction117,
    end=_VSConverter_Junction118,
    name="Connection5604",
    breakpoints=[],
)
_VSConverter_Connection5605 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum9, "out"),
    end=mdl.term(_VSConverter_Rate_Limiter1, "in"),
    name="Connection5605",
    breakpoints=[],
)
_VSConverter_Connection5607 = mdl.create_connection(
    start=_VSConverter_Junction47,
    end=_VSConverter_Junction119,
    name="Connection5607",
    breakpoints=[],
)
_VSConverter_Connection5608 = mdl.create_connection(
    start=_VSConverter_Junction119,
    end=_VSConverter_Goto7,
    name="Connection5608",
    breakpoints=[],
)
_VSConverter_Connection5609 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch20, "in1"),
    end=_VSConverter_Junction119,
    name="Connection5609",
    breakpoints=[],
)
_VSConverter_Connection5610 = mdl.create_connection(
    start=_VSConverter_DC_,
    end=_VSConverter_Junction120,
    name="Connection5610",
    breakpoints=[],
)
_VSConverter_Connection5611 = mdl.create_connection(
    start=_VSConverter_Junction120,
    end=_VSConverter_Junction111,
    name="Connection5611",
    breakpoints=[],
)
_VSConverter_Connection5612 = mdl.create_connection(
    start=_VSConverter_DC_,
    end=_VSConverter_Junction121,
    name="Connection5612",
    breakpoints=[],
)
_VSConverter_Connection5613 = mdl.create_connection(
    start=_VSConverter_Junction121,
    end=_VSConverter_Junction110,
    name="Connection5613",
    breakpoints=[],
)
_VSConverter_dcConnp = mdl.create_connection(
    start=mdl.term(_VSConverter_dccap, "p_node"),
    end=_VSConverter_Junction121,
    name="dcConnp",
    breakpoints=[],
)
_VSConverter_dcConnn = mdl.create_connection(
    start=mdl.term(_VSConverter_dccap, "n_node"),
    end=_VSConverter_Junction120,
    name="dcConnn",
    breakpoints=[],
)
_VSConverter_Connection5644 = mdl.create_connection(
    start=mdl.term(_VSConverter_Discrete_Transfer_Function1, "out"),
    end=mdl.term(_VSConverter_Sum29, "in"),
    name="Connection5644",
    breakpoints=[],
)
_VSConverter_Connection5645 = mdl.create_connection(
    start=mdl.term(_VSConverter_Discrete_Transfer_Function1, "in"),
    end=mdl.term(_VSConverter_Sum28, "out"),
    name="Connection5645",
    breakpoints=[],
)
_VSConverter_Connection5647 = mdl.create_connection(
    start=_VSConverter_Junction126,
    end=mdl.term(_VSConverter_Sum28, "in1"),
    name="Connection5647",
    breakpoints=[],
)
_VSConverter_Connection5648 = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum29, "in1"),
    end=_VSConverter_Junction126,
    name="Connection5648",
    breakpoints=[],
)
_VSConverter_Connection5650 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant47, "out"),
    end=mdl.term(_VSConverter_Gain42, "in"),
    name="Connection5650",
    breakpoints=[],
)
_VSConverter_Connection5651 = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain42, "out"),
    end=_VSConverter_Junction126,
    name="Connection5651",
    breakpoints=[],
)
_VSConverter_Connection5652 = mdl.create_connection(
    start=_VSConverter_From85,
    end=mdl.term(_VSConverter_Signal_switch24, "in2"),
    name="Connection5652",
    breakpoints=[],
)
_VSConverter_Connection5653 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch24, "in"),
    end=mdl.term(_VSConverter_Sum29, "out"),
    name="Connection5653",
    breakpoints=[],
)
_VSConverter_Connection5654 = mdl.create_connection(
    start=_VSConverter_From39,
    end=_VSConverter_Junction127,
    name="Connection5654",
    breakpoints=[],
)
_VSConverter_Connection5655 = mdl.create_connection(
    start=_VSConverter_Junction127,
    end=mdl.term(_VSConverter_Sum28, "in"),
    name="Connection5655",
    breakpoints=[],
)
_VSConverter_Connection5656 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch24, "in1"),
    end=_VSConverter_Junction127,
    name="Connection5656",
    breakpoints=[],
)
_VSConverter_Connection5657 = mdl.create_connection(
    start=mdl.term(_VSConverter_Signal_switch24, "out"),
    end=mdl.term(_VSConverter_Sum23, "in"),
    name="Connection5657",
    breakpoints=[],
)
_VSConverter_connmode = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain32, "in"),
    end=_VSConverter_From25,
    name="connmode",
    breakpoints=[],
)
_VSConverter_connP = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum9, "in"),
    end=_VSConverter_From11,
    name="connP",
    breakpoints=[],
)
_VSConverter_connQ = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum7, "in"),
    end=_VSConverter_From10,
    name="connQ",
    breakpoints=[],
)
_VSConverter_connV = mdl.create_connection(
    start=mdl.term(_VSConverter_Sum11, "in"),
    end=_VSConverter_From15,
    name="connV",
    breakpoints=[],
)
_VSConverter_connw = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain30, "in"),
    end=_VSConverter_From22,
    name="connw",
    breakpoints=[],
)
_VSConverter_connfs = mdl.create_connection(
    start=mdl.term(_VSConverter_Gain33, "in"),
    end=_VSConverter_From44,
    name="connfs",
    breakpoints=[],
)
_VSConverter_connPint = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant22, "out"),
    end=_VSConverter_Goto10,
    name="connPint",
    breakpoints=[],
)
_VSConverter_Connection5658 = mdl.create_connection(
    start=mdl.term(_VSConverter_Constant23, "out"),
    end=_VSConverter_Goto11,
    name="Connection5658",
    breakpoints=[],
)
_VSConverter_Connection5659 = mdl.create_connection(
    start=_VSConverter_Junction35,
    end=_VSConverter_Junction128,
    name="Connection5659",
    breakpoints=[],
)
_VSConverter_Connection5660 = mdl.create_connection(
    start=_VSConverter_Junction128,
    end=mdl.term(_VSConverter_Vinv_a, "n_node"),
    name="Connection5660",
    breakpoints=[],
)
_VSConverter_Connection5661 = mdl.create_connection(
    start=mdl.term(_VSConverter_Open_Circuit1, "n_node"),
    end=_VSConverter_Junction128,
    name="Connection5661",
    breakpoints=[],
)
_VSConverter_Connection5662 = mdl.create_connection(
    start=mdl.term(_VSConverter_Va1, "n_node"),
    end=_VSConverter_Junction129,
    name="Connection5662",
    breakpoints=[],
)
_VSConverter_Connection5663 = mdl.create_connection(
    start=_VSConverter_Junction129,
    end=_VSConverter_Junction94,
    name="Connection5663",
    breakpoints=[],
)
_VSConverter_Connection5664 = mdl.create_connection(
    start=mdl.term(_VSConverter_Open_Circuit1, "p_node"),
    end=_VSConverter_Junction129,
    name="Connection5664",
    breakpoints=[],
)
_Vsource_Connection25 = mdl.create_connection(
    start=mdl.term(_Vsource_Vb, "p_node"),
    end=mdl.term(_Vsource_TL1, "b_in"),
    name="Connection25",
    breakpoints=[],
)
_Vsource_Connection26 = mdl.create_connection(
    start=mdl.term(_Vsource_Va, "p_node"),
    end=mdl.term(_Vsource_TL1, "a_in"),
    name="Connection26",
    breakpoints=[],
)
_Vsource_Connection27 = mdl.create_connection(
    start=mdl.term(_Vsource_Vc, "p_node"),
    end=mdl.term(_Vsource_TL1, "c_in"),
    name="Connection27",
    breakpoints=[],
)
_Vsource_Connection28 = mdl.create_connection(
    start=mdl.term(_Vsource_TL1, "a_out"),
    end=_Vsource_A1,
    name="Connection28",
    breakpoints=[],
)
_Vsource_Connection29 = mdl.create_connection(
    start=_Vsource_B1,
    end=mdl.term(_Vsource_TL1, "b_out"),
    name="Connection29",
    breakpoints=[],
)
_Vsource_Connection30 = mdl.create_connection(
    start=mdl.term(_Vsource_TL1, "c_out"),
    end=_Vsource_C1,
    name="Connection30",
    breakpoints=[],
)
_Vsource_Connection31 = mdl.create_connection(
    start=mdl.term(_Vsource_gnd1, "node"),
    end=_Vsource_junction_abc,
    name="Connection31",
    breakpoints=[],
)
_Vsource_Connection32 = mdl.create_connection(
    start=mdl.term(_Vsource_Vc, "n_node"),
    end=_Vsource_junction_abc,
    name="Connection32",
    breakpoints=[],
)
_Vsource_Connection33 = mdl.create_connection(
    start=mdl.term(_Vsource_Vb, "n_node"),
    end=_Vsource_junction_abc,
    name="Connection33",
    breakpoints=[],
)
_Vsource_Connection34 = mdl.create_connection(
    start=mdl.term(_Vsource_Va, "n_node"),
    end=_Vsource_junction_abc,
    name="Connection34",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection113 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "in5"),
    end=_Storage_Inverter_Power_Reference_kvar_calculation_Junction3,
    name="Connection113",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection47 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_kvar_calculation_kvar_out,
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "out"),
    name="Connection47",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection74 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_kvar_calculation_dispatch_int,
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "ctrl"),
    name="Connection74",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection101 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kwrated, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_Gain1, "in"),
    name="Connection101",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection103 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "in"),
    end=_Storage_Inverter_Power_Reference_kvar_calculation_Junction1,
    name="Connection103",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection104 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_kvar_calculation_Junction1,
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_unit_pf, "out"),
    name="Connection104",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection105 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "in3"),
    end=_Storage_Inverter_Power_Reference_kvar_calculation_Junction1,
    name="Connection105",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection107 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_Gain1, "out"),
    end=_Storage_Inverter_Power_Reference_kvar_calculation_Junction2,
    name="Connection107",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection108 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_kvar_calculation_Junction2,
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "in1"),
    name="Connection108",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection109 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "in4"),
    end=_Storage_Inverter_Power_Reference_kvar_calculation_Junction2,
    name="Connection109",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection111 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kvar_kvar, "out"),
    end=_Storage_Inverter_Power_Reference_kvar_calculation_Junction3,
    name="Connection111",
    breakpoints=[(8800, 8352)],
)
_Storage_Inverter_Power_Reference_kvar_calculation_Connection112 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_kvar_calculation_Junction3,
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation_kVAr, "in2"),
    name="Connection112",
    breakpoints=[(8800, 8240)],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2879 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator1, "in"),
    end=_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Junction560,
    name="Connection2879",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2885 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Logical_operator1, "out"),
    end=_Storage_Inverter_Power_Reference_Constant_Z_mode_check_constant_z_mode,
    name="Connection2885",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2884 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Junction560,
    end=_Storage_Inverter_Power_Reference_Constant_Z_mode_check_v_line,
    name="Connection2884",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2881 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator2, "in"),
    end=_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Junction560,
    name="Connection2881",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2877 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vmaxpu, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator1, "in1"),
    name="Connection2877",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2882 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Logical_operator1, "in"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator1, "out"),
    name="Connection2882",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2878 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_vminpu, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator2, "in1"),
    name="Connection2878",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Connection2883 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Relational_operator2, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check_Logical_operator1, "in1"),
    name="Connection2883",
    breakpoints=[(8216, 8240), (8216, 8200)],
)
_Storage_Inverter_Power_Reference_Connection3514 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product16, "in1"),
    end=_Storage_Inverter_Power_Reference_Junction583,
    name="Connection3514",
    breakpoints=[(7136, 7872), (6800, 7872)],
)
_Storage_Inverter_Power_Reference_Connection3178 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product21, "in1"),
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation, "kvar_out"),
    name="Connection3178",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3855 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction588,
    end=_Storage_Inverter_Power_Reference_inv_p,
    name="Connection3855",
    breakpoints=[(7712, 7912), (7712, 7912), (7712, 7912), (7712, 7912), (7712, 7912), (7712, 7912), (7712, 7912)],
)
_Storage_Inverter_Power_Reference_Connection2900 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check, "constant_z_mode"),
    end=_Storage_Inverter_Power_Reference_Junction562,
    name="Connection2900",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection2902 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_ctZ, "in"),
    end=_Storage_Inverter_Power_Reference_Junction562,
    name="Connection2902",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3515 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product16, "in"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch4, "out"),
    name="Connection3515",
    breakpoints=[(7136, 7744), (7136, 7680)],
)
_Storage_Inverter_Power_Reference_Connection3578 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Gain3, "in"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Data_Type_Conversion1, "out"),
    name="Connection3578",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3856 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product20, "out"),
    end=_Storage_Inverter_Power_Reference_Junction588,
    name="Connection3856",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3518 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction584,
    end=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch2, "in"),
    name="Connection3518",
    breakpoints=[(7344, 7760)],
)
_Storage_Inverter_Power_Reference_Connection3579 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch2, "in2"),
    end=_Storage_Inverter_Power_Reference_Junction562,
    name="Connection3579",
    breakpoints=[(7448, 7584)],
)
_Storage_Inverter_Power_Reference_Connection3519 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product23, "out"),
    end=_Storage_Inverter_Power_Reference_Junction584,
    name="Connection3519",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3600 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_dss_kw,
    end=mdl.term(_Storage_Inverter_Power_Reference_Product20, "in1"),
    name="Connection3600",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3183 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch4, "in2"),
    end=_Storage_Inverter_Power_Reference_Junction563,
    name="Connection3183",
    breakpoints=[(7024, 7616)],
)
_Storage_Inverter_Power_Reference_Connection3185 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Constant_Z_mode_check, "v_line"),
    end=_Storage_Inverter_Power_Reference_Junction563,
    name="Connection3185",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3521 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product16, "out"),
    end=_Storage_Inverter_Power_Reference_Junction585,
    name="Connection3521",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3623 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product21, "in"),
    end=_Storage_Inverter_Power_Reference_Junction564,
    name="Connection3623",
    breakpoints=[(7536, 8072), (7536, 8056), (7536, 8032)],
)
_Storage_Inverter_Power_Reference_Connection3854 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Inverter_P_Reference, "in"),
    end=_Storage_Inverter_Power_Reference_Junction588,
    name="Connection3854",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3188 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_const_p_mult, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch2, "in1"),
    name="Connection3188",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3522 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction585,
    end=mdl.term(_Storage_Inverter_Power_Reference_Product23, "in1"),
    name="Connection3522",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3189 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product20, "in"),
    end=_Storage_Inverter_Power_Reference_Junction564,
    name="Connection3189",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3523 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Product23, "in"),
    end=_Storage_Inverter_Power_Reference_Junction585,
    name="Connection3523",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3112 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_dispatch_mode_int,
    end=mdl.term(_Storage_Inverter_Power_Reference_kvar_calculation, "dispatch_int"),
    name="Connection3112",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3208 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Data_Type_Conversion1, "in"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Product21, "out"),
    name="Connection3208",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3529 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Inverter_Q_Reference, "in"),
    end=_Storage_Inverter_Power_Reference_Junction587,
    name="Connection3529",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3492 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch2, "out"),
    end=_Storage_Inverter_Power_Reference_Junction580,
    name="Connection3492",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3531 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_inv_q,
    end=_Storage_Inverter_Power_Reference_Junction587,
    name="Connection3531",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3517 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_ctz_multiplier, "in"),
    end=_Storage_Inverter_Power_Reference_Junction584,
    name="Connection3517",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3493 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction580,
    end=_Storage_Inverter_Power_Reference_Junction564,
    name="Connection3493",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3513 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction583,
    end=_Storage_Inverter_Power_Reference_Junction563,
    name="Connection3513",
    breakpoints=[(6800, 7872), (6800, 7872), (6800, 7872), (6800, 7872), (6800, 7832), (6800, 7712), (6800, 7688)],
)
_Storage_Inverter_Power_Reference_Connection3552 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction580,
    end=_Storage_Inverter_Power_Reference_ctz_p_mult,
    name="Connection3552",
    breakpoints=[(7536, 7776), (7536, 7704)],
)
_Storage_Inverter_Power_Reference_Connection3577 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_Junction587,
    end=mdl.term(_Storage_Inverter_Power_Reference_Gain3, "out"),
    name="Connection3577",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3155 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_vmax, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch4, "in"),
    name="Connection3155",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3512 = mdl.create_connection(
    start=_Storage_Inverter_Power_Reference_v_line,
    end=_Storage_Inverter_Power_Reference_Junction583,
    name="Connection3512",
    breakpoints=[],
)
_Storage_Inverter_Power_Reference_Connection3156 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference_vmin, "out"),
    end=mdl.term(_Storage_Inverter_Power_Reference_Signal_switch4, "in1"),
    name="Connection3156",
    breakpoints=[],
)
_Storage_Active_status_Connection3 = mdl.create_connection(
    start=mdl.term(_Storage_Active_status_Logical_operator1, "out"),
    end=mdl.term(_Storage_Active_status_bool_to_real, "in"),
    name="Connection3",
    breakpoints=[],
)
_Storage_Active_status_Connection4 = mdl.create_connection(
    start=mdl.term(_Storage_Active_status_bool_to_real, "out"),
    end=_Storage_Active_status_Out3,
    name="Connection4",
    breakpoints=[],
)
_Storage_Active_status_Connection2 = mdl.create_connection(
    start=mdl.term(_Storage_Active_status_Logical_operator1, "in"),
    end=_Storage_Active_status_In1,
    name="Connection2",
    breakpoints=[],
)
_Storage_Active_status_Connection1 = mdl.create_connection(
    start=mdl.term(_Storage_Active_status_Logical_operator1, "in1"),
    end=_Storage_Active_status_In2,
    name="Connection1",
    breakpoints=[],
)
_Storage_Dispatch_Mode_Integer_Connection95 = mdl.create_connection(
    start=_Storage_Dispatch_Mode_Integer_dispatch_mode_int,
    end=mdl.term(_Storage_Dispatch_Mode_Integer_kw_mode, "out"),
    name="Connection95",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3899 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_C_function1, "load_point"),
    end=_Storage_Battery_Energy_load_point,
    name="Connection3899",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3901 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_C_function1, "mode_int"),
    end=_Storage_Battery_Energy_mode,
    name="Connection3901",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3906 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction656,
    end=_Storage_Battery_Energy_ctz_p_mult,
    name="Connection3906",
    breakpoints=[(7384, 8136), (7304, 8136)],
)
_Storage_Battery_Energy_Connection3916 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction666,
    end=_Storage_Battery_Energy_bat_soc,
    name="Connection3916",
    breakpoints=[(8896, 8224), (8896, 8168)],
)
_Storage_Battery_Energy_Connection3919 = mdl.create_connection(
    start=_Storage_Battery_Energy_bat_energy,
    end=_Storage_Battery_Energy_Junction673,
    name="Connection3919",
    breakpoints=[(8864, 8288)],
)
_Storage_Battery_Energy_Connection3920 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction673,
    end=mdl.term(_Storage_Battery_Energy_Gain3, "in"),
    name="Connection3920",
    breakpoints=[(8816, 8288)],
)
_Storage_Battery_Energy_Connection3921 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Energy, "out"),
    end=_Storage_Battery_Energy_Junction673,
    name="Connection3921",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3677 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Gain4, "out"),
    end=mdl.term(_Storage_Battery_Energy_Energy, "in"),
    name="Connection3677",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3930 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_charge_gain, "out"),
    end=mdl.term(_Storage_Battery_Energy_Signal_switch6, "in1"),
    name="Connection3930",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3690 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_inv_eff, "in"),
    end=mdl.term(_Storage_Battery_Energy_Product1, "out"),
    name="Connection3690",
    breakpoints=[(7544, 8128), (7528, 8128)],
)
_Storage_Battery_Energy_Connection3696 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Step1, "out"),
    end=mdl.term(_Storage_Battery_Energy_Product2, "in"),
    name="Connection3696",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3936 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_discharge_gain, "out"),
    end=mdl.term(_Storage_Battery_Energy_Signal_switch6, "in"),
    name="Connection3936",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3952 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Sum7, "in"),
    end=mdl.term(_Storage_Battery_Energy_inv_eff, "out"),
    name="Connection3952",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3950 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Sum7, "in1"),
    end=_Storage_Battery_Energy_Junction663,
    name="Connection3950",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3960 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction680,
    end=mdl.term(_Storage_Battery_Energy_discharge_gain, "in"),
    name="Connection3960",
    breakpoints=[(7872, 8136)],
)
_Storage_Battery_Energy_Connection3961 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Sum7, "out"),
    end=_Storage_Battery_Energy_Junction681,
    name="Connection3961",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3721 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Product2, "out"),
    end=mdl.term(_Storage_Battery_Energy_Gain4, "in"),
    name="Connection3721",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3774 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction656,
    end=mdl.term(_Storage_Battery_Energy_Product1, "in1"),
    name="Connection3774",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3962 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction681,
    end=mdl.term(_Storage_Battery_Energy_charge_gain, "in"),
    name="Connection3962",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3775 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_pmult, "in"),
    end=_Storage_Battery_Energy_Junction656,
    name="Connection3775",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3963 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction680,
    end=_Storage_Battery_Energy_Junction681,
    name="Connection3963",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3777 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Signal_switch6, "out"),
    end=_Storage_Battery_Energy_Junction657,
    name="Connection3777",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3964 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Signal_switch6, "in2"),
    end=_Storage_Battery_Energy_Junction680,
    name="Connection3964",
    breakpoints=[(8088, 8080), (8088, 8080), (8088, 8080), (7872, 8136), (7872, 8136), (7872, 8136)],
)
_Storage_Battery_Energy_Connection3965 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_C_function1, "kw"),
    end=_Storage_Battery_Energy_Junction682,
    name="Connection3965",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3778 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction657,
    end=mdl.term(_Storage_Battery_Energy_p_ch_dch, "in"),
    name="Connection3778",
    breakpoints=[(8176, 8296)],
)
_Storage_Battery_Energy_Connection3779 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Product2, "in1"),
    end=_Storage_Battery_Energy_Junction657,
    name="Connection3779",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3831 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_zero, "out"),
    end=mdl.term(_Storage_Battery_Energy_Relational_operator2, "in1"),
    name="Connection3831",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3843 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_p_idl_losses, "in"),
    end=_Storage_Battery_Energy_Junction663,
    name="Connection3843",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3844 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction663,
    end=mdl.term(_Storage_Battery_Energy_Product3, "out"),
    name="Connection3844",
    breakpoints=[(7640, 8440), (7640, 8440)],
)
_Storage_Battery_Energy_Connection3864 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Gain3, "out"),
    end=_Storage_Battery_Energy_Junction666,
    name="Connection3864",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3966 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction682,
    end=mdl.term(_Storage_Battery_Energy_Product1, "in"),
    name="Connection3966",
    breakpoints=[(7296, 8056), (7296, 8056), (7296, 8056)],
)
_Storage_Battery_Energy_Connection3967 = mdl.create_connection(
    start=_Storage_Battery_Energy_Tag7,
    end=_Storage_Battery_Energy_Junction682,
    name="Connection3967",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3865 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction666,
    end=mdl.term(_Storage_Battery_Energy_SOC, "in"),
    name="Connection3865",
    breakpoints=[(8896, 8224)],
)
_Storage_Battery_Energy_Connection3867 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_reserve, "out"),
    end=mdl.term(_Storage_Battery_Energy_Relational_operator3, "in1"),
    name="Connection3867",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3968 = mdl.create_connection(
    start=_Storage_Battery_Energy_idle_signal,
    end=mdl.term(_Storage_Battery_Energy_C_function1, "idle_signal"),
    name="Connection3968",
    breakpoints=[(6976, 8072)],
)
_Storage_Battery_Energy_Connection3868 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Relational_operator3, "in"),
    end=_Storage_Battery_Energy_Junction667,
    name="Connection3868",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3969 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_idle_losses, "out"),
    end=mdl.term(_Storage_Battery_Energy_Product3, "in"),
    name="Connection3969",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3869 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction667,
    end=_Storage_Battery_Energy_Junction666,
    name="Connection3869",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3870 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Relational_operator1, "in"),
    end=_Storage_Battery_Energy_Junction667,
    name="Connection3870",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3871 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_reserve1, "out"),
    end=mdl.term(_Storage_Battery_Energy_Relational_operator1, "in1"),
    name="Connection3871",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3873 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Relational_operator3, "out"),
    end=mdl.term(_Storage_Battery_Energy_Logical_operator1, "in"),
    name="Connection3873",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3874 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Relational_operator1, "out"),
    end=mdl.term(_Storage_Battery_Energy_Logical_operator1, "in1"),
    name="Connection3874",
    breakpoints=[(8992, 8640), (8992, 8576)],
)
_Storage_Battery_Energy_Connection3875 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Logical_operator1, "out"),
    end=_Storage_Battery_Energy_Junction668,
    name="Connection3875",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3876 = mdl.create_connection(
    start=_Storage_Battery_Energy_Junction668,
    end=_Storage_Battery_Energy_Tag1,
    name="Connection3876",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3877 = mdl.create_connection(
    start=_Storage_Battery_Energy_bat_active,
    end=_Storage_Battery_Energy_Junction668,
    name="Connection3877",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3878 = mdl.create_connection(
    start=_Storage_Battery_Energy_Tag3,
    end=mdl.term(_Storage_Battery_Energy_Product3, "in1"),
    name="Connection3878",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3880 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Relational_operator2, "out"),
    end=mdl.term(_Storage_Battery_Energy_Logical_operator1, "in2"),
    name="Connection3880",
    breakpoints=[],
)
_Storage_Battery_Energy__C_function1__kw___1 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_Relational_operator2, "in"),
    end=_Storage_Battery_Energy_Tag4,
    name="(C function1)(kw)--1",
    breakpoints=[],
)
_Storage_Battery_Energy_Connection3895 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy_C_function1, "p_in"),
    end=_Storage_Battery_Energy_p_in,
    name="Connection3895",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection46 = mdl.create_connection(
    start=_Storage_Loadshape_Point_Calculator_loadshape_value,
    end=_Storage_Loadshape_Point_Calculator_Junction2,
    name="Connection46",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection47 = mdl.create_connection(
    start=_Storage_Loadshape_Point_Calculator_Junction2,
    end=mdl.term(_Storage_Loadshape_Point_Calculator_Loadshape_Value, "in"),
    name="Connection47",
    breakpoints=[(8472, 8136), (8472, 8032)],
)
_Storage_Loadshape_Point_Calculator_Connection48 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "out"),
    end=_Storage_Loadshape_Point_Calculator_Junction2,
    name="Connection48",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection39 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "loadshape_array"),
    end=mdl.term(_Storage_Loadshape_Point_Calculator_loadshape, "out"),
    name="Connection39",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection60 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_mode"),
    end=_Storage_Loadshape_Point_Calculator_Junction4,
    name="Connection60",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection40 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "time_array"),
    end=mdl.term(_Storage_Loadshape_Point_Calculator_time, "out"),
    name="Connection40",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection61 = mdl.create_connection(
    start=_Storage_Loadshape_Point_Calculator_Junction4,
    end=mdl.term(_Storage_Loadshape_Point_Calculator_mode_int, "out"),
    name="Connection61",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection42 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_idx"),
    end=mdl.term(_Storage_Loadshape_Point_Calculator_toint, "out"),
    name="Connection42",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection62 = mdl.create_connection(
    start=_Storage_Loadshape_Point_Calculator_mode,
    end=_Storage_Loadshape_Point_Calculator_Junction4,
    name="Connection62",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection43 = mdl.create_connection(
    start=_Storage_Loadshape_Point_Calculator_input,
    end=_Storage_Loadshape_Point_Calculator_Junction1,
    name="Connection43",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection71 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "bat_soc"),
    end=_Storage_Loadshape_Point_Calculator_bat_soc,
    name="Connection71",
    breakpoints=[(8168, 8328)],
)
_Storage_Loadshape_Point_Calculator_Connection77 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "idle_signal"),
    end=_Storage_Loadshape_Point_Calculator_idle_signal,
    name="Connection77",
    breakpoints=[],
)
_Storage_Loadshape_Point_Calculator_Connection44 = mdl.create_connection(
    start=_Storage_Loadshape_Point_Calculator_Junction1,
    end=mdl.term(_Storage_Loadshape_Point_Calculator_toint, "in"),
    name="Connection44",
    breakpoints=[(8168, 8248), (8184, 8248)],
)
_Storage_Loadshape_Point_Calculator_Connection45 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator_Advanced_C_function1, "input_time"),
    end=_Storage_Loadshape_Point_Calculator_Junction1,
    name="Connection45",
    breakpoints=[],
)
_Storage_Connection26 = mdl.create_connection(
    start=mdl.term(_Storage_dchtrigger, "out"),
    end=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "dchtrigger"),
    name="Connection26",
    breakpoints=[],
)
_Storage_Connection27 = mdl.create_connection(
    start=mdl.term(_Storage_chtrigger, "out"),
    end=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "chtrigger"),
    name="Connection27",
    breakpoints=[],
)
_Storage_Connection2953 = mdl.create_connection(
    start=_Storage_From12,
    end=mdl.term(_Storage_Active_status, "In2"),
    name="Connection2953",
    breakpoints=[],
)
_Storage_Connection3009 = mdl.create_connection(
    start=mdl.term(_Storage_Active_status, "Out3"),
    end=_Storage_Junction581,
    name="Connection3009",
    breakpoints=[],
)
_Storage_Connection3010 = mdl.create_connection(
    start=_Storage_Junction581,
    end=_Storage_Goto9,
    name="Connection3010",
    breakpoints=[],
)
_Storage_Connection3011 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Active, "in"),
    end=_Storage_Junction581,
    name="Connection3011",
    breakpoints=[],
)
_Storage_Connection3266 = mdl.create_connection(
    start=mdl.term(_Storage_Three_phase_Meter1, "A+"),
    end=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "A"),
    name="Connection3266",
    breakpoints=[],
)
_Storage_Connection3267 = mdl.create_connection(
    start=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "B"),
    end=mdl.term(_Storage_Three_phase_Meter1, "B+"),
    name="Connection3267",
    breakpoints=[],
)
_Storage_Connection3269 = mdl.create_connection(
    start=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "C"),
    end=mdl.term(_Storage_Three_phase_Meter1, "C+"),
    name="Connection3269",
    breakpoints=[],
)
_Storage_Connection3271 = mdl.create_connection(
    start=mdl.term(_Storage_Meter_Split1, "Input"),
    end=mdl.term(_Storage_Three_phase_Meter1, "Out"),
    name="Connection3271",
    breakpoints=[],
)
_Storage_Connection3278 = mdl.create_connection(
    start=_Storage_A1,
    end=mdl.term(_Storage_Three_phase_Meter1, "A-"),
    name="Connection3278",
    breakpoints=[],
)
_Storage_Connection3281 = mdl.create_connection(
    start=_Storage_C1,
    end=mdl.term(_Storage_Three_phase_Meter1, "C-"),
    name="Connection3281",
    breakpoints=[],
)
_Storage_Connection3280 = mdl.create_connection(
    start=_Storage_B1,
    end=mdl.term(_Storage_Three_phase_Meter1, "B-"),
    name="Connection3280",
    breakpoints=[],
)
_Storage_Connection3282 = mdl.create_connection(
    start=mdl.term(_Storage_Q, "in"),
    end=mdl.term(_Storage_Meter_Split1, "POWER_Q"),
    name="Connection3282",
    breakpoints=[],
)
_Storage_Connection3283 = mdl.create_connection(
    start=mdl.term(_Storage_pf, "in"),
    end=mdl.term(_Storage_Meter_Split1, "POWER_PF"),
    name="Connection3283",
    breakpoints=[],
)
_Storage_Connection3295 = mdl.create_connection(
    start=mdl.term(_Storage_pct_charge, "out"),
    end=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "pct_charge"),
    name="Connection3295",
    breakpoints=[],
)
_Storage_Connection3296 = mdl.create_connection(
    start=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "pct_discharge"),
    end=mdl.term(_Storage_pct_discharge, "out"),
    name="Connection3296",
    breakpoints=[],
)
_Storage_Connection3297 = mdl.create_connection(
    start=mdl.term(_Storage_kwrated, "out"),
    end=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "kwrated"),
    name="Connection3297",
    breakpoints=[],
)
_Storage_Connection3316 = mdl.create_connection(
    start=mdl.term(_Storage_Enable_Inverter, "in"),
    end=_Storage_Junction619,
    name="Connection3316",
    breakpoints=[],
)
_Storage_Connection3317 = mdl.create_connection(
    start=_Storage_Junction619,
    end=_Storage_Goto8,
    name="Connection3317",
    breakpoints=[],
)
_Storage_Connection3318 = mdl.create_connection(
    start=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "close_contactor"),
    end=_Storage_Junction619,
    name="Connection3318",
    breakpoints=[],
)
_Storage_Connection3341 = mdl.create_connection(
    start=mdl.term(_Storage_Dispatch_Mode_Integer, "dispatch_mode_int"),
    end=_Storage_Junction622,
    name="Connection3341",
    breakpoints=[],
)
_Storage_Connection3343 = mdl.create_connection(
    start=_Storage_Goto10,
    end=_Storage_Junction622,
    name="Connection3343",
    breakpoints=[],
)
_Storage_Connection3357 = mdl.create_connection(
    start=_Storage_From4,
    end=mdl.term(_Storage_Inverter_Power_Reference, "dispatch_mode_int"),
    name="Connection3357",
    breakpoints=[],
)
_Storage_Connection2716 = mdl.create_connection(
    start=mdl.term(_Storage_kwhrated, "out"),
    end=mdl.term(_Storage_Disconnect_if_on_reserve_or_charged, "kwhrated"),
    name="Connection2716",
    breakpoints=[],
)
_Storage_Connection2717 = mdl.create_connection(
    start=mdl.term(_Storage_pct_reserve, "out"),
    end=mdl.term(_Storage_Disconnect_if_on_reserve_or_charged, "pct_reserve"),
    name="Connection2717",
    breakpoints=[],
)
_Storage_Connection3137 = mdl.create_connection(
    start=_Storage_From3,
    end=mdl.term(_Storage_Disconnect_if_on_reserve_or_charged, "kwref"),
    name="Connection3137",
    breakpoints=[],
)
_Storage_Connection3229 = mdl.create_connection(
    start=_Storage_From20,
    end=mdl.term(_Storage_Disconnect_if_on_reserve_or_charged, "active_inverter"),
    name="Connection3229",
    breakpoints=[],
)
_Storage_Connection3448 = mdl.create_connection(
    start=_Storage_From24,
    end=mdl.term(_Storage_Disconnect_if_on_reserve_or_charged, "energy"),
    name="Connection3448",
    breakpoints=[],
)
_Storage_Connection3450 = mdl.create_connection(
    start=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "dispatch_mode"),
    end=_Storage_Junction622,
    name="Connection3450",
    breakpoints=[],
)
_Storage_Connection3451 = mdl.create_connection(
    start=mdl.term(_Storage_Termination2, "in"),
    end=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "Outputs"),
    name="Connection3451",
    breakpoints=[],
)
_Storage_Connection3455 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator, "loadshape_value"),
    end=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "loadshape_value"),
    name="Connection3455",
    breakpoints=[],
)
_Storage_Connection3456 = mdl.create_connection(
    start=mdl.term(_Storage_Disconnect_if_on_reserve_or_charged, "connect_battery"),
    end=_Storage_Junction635,
    name="Connection3456",
    breakpoints=[],
)
_Storage_Connection3457 = mdl.create_connection(
    start=_Storage_Junction635,
    end=_Storage_Goto4,
    name="Connection3457",
    breakpoints=[(7664, 7400)],
)
_Storage_Connection3458 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Active1, "in"),
    end=_Storage_Junction635,
    name="Connection3458",
    breakpoints=[],
)
_Storage_Connection3459 = mdl.create_connection(
    start=_Storage_From7,
    end=_Storage_Junction636,
    name="Connection3459",
    breakpoints=[],
)
_Storage_Connection3460 = mdl.create_connection(
    start=_Storage_Junction636,
    end=mdl.term(_Storage_Active_status, "In1"),
    name="Connection3460",
    breakpoints=[],
)
_Storage_Connection3461 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Active2, "in"),
    end=_Storage_Junction636,
    name="Connection3461",
    breakpoints=[],
)
_Storage_Connection3462 = mdl.create_connection(
    start=mdl.term(_Storage_gnd1, "node"),
    end=mdl.term(_Storage_Three_phase_Meter1, "GND"),
    name="Connection3462",
    breakpoints=[],
)
_Storage_Connection3472 = mdl.create_connection(
    start=_Storage_Goto11,
    end=mdl.term(_Storage_Battery_Energy, "bat_energy"),
    name="Connection3472",
    breakpoints=[],
)
_Storage_Connection3530 = mdl.create_connection(
    start=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "DC-"),
    end=mdl.term(_Storage_Vs1, "n_node"),
    name="Connection3530",
    breakpoints=[(8072, 8408), (8264, 8408)],
)
_Storage_Connection3531 = mdl.create_connection(
    start=_Storage_From22,
    end=mdl.term(_Storage_Inverter_Power_Reference, "dss_kw"),
    name="Connection3531",
    breakpoints=[],
)
_Storage_Connection3537 = mdl.create_connection(
    start=mdl.term(_Storage_Meter_Split1, "VLL_RMS"),
    end=_Storage_Junction638,
    name="Connection3537",
    breakpoints=[],
)
_Storage_Connection3539 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference, "v_line"),
    end=_Storage_Junction638,
    name="Connection3539",
    breakpoints=[],
)
_Storage__Inverter_Power_Reference__ctz_p_mult___1 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference, "ctz_p_mult"),
    end=_Storage_Tag11,
    name="(Inverter Power Reference)(ctz_p_mult)--1",
    breakpoints=[],
)
_Storage_Connection3543 = mdl.create_connection(
    start=mdl.term(_Storage_Vline, "in"),
    end=_Storage_Junction638,
    name="Connection3543",
    breakpoints=[],
)
_Storage_Connection3544 = mdl.create_connection(
    start=_Storage_Tag12,
    end=mdl.term(_Storage_Battery_Energy, "ctz_p_mult"),
    name="Connection3544",
    breakpoints=[],
)
_Storage_Connection3550 = mdl.create_connection(
    start=_Storage_Load_point,
    end=_Storage_Junction640,
    name="Connection3550",
    breakpoints=[],
)
_Storage_Connection3551 = mdl.create_connection(
    start=_Storage_Junction640,
    end=mdl.term(_Storage_Loadshape_Point_Calculator, "input"),
    name="Connection3551",
    breakpoints=[],
)
_Storage_Connection3552 = mdl.create_connection(
    start=_Storage_Goto13,
    end=_Storage_Junction640,
    name="Connection3552",
    breakpoints=[],
)
_Storage_Connection3553 = mdl.create_connection(
    start=mdl.term(_Storage_P, "in"),
    end=mdl.term(_Storage_Meter_Split1, "POWER_P"),
    name="Connection3553",
    breakpoints=[(7384, 7984)],
)
_Storage_Connection3382 = mdl.create_connection(
    start=mdl.term(_Storage_Bus_Join1, "in"),
    end=mdl.term(_Storage_enable_inverter, "out"),
    name="Connection3382",
    breakpoints=[],
)
_Storage_Connection3554 = mdl.create_connection(
    start=mdl.term(_Storage_Bus_Join1, "in1"),
    end=mdl.term(_Storage_Inverter_Power_Reference, "inv_p"),
    name="Connection3554",
    breakpoints=[],
)
_Storage_Connection3555 = mdl.create_connection(
    start=mdl.term(_Storage_Inverter_Power_Reference, "inv_q"),
    end=mdl.term(_Storage_Bus_Join1, "in2"),
    name="Connection3555",
    breakpoints=[],
)
_Storage_Connection3560 = mdl.create_connection(
    start=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "Inputs"),
    end=mdl.term(_Storage_Bus_Join1, "out"),
    name="Connection3560",
    breakpoints=[(7880, 8112)],
)
_Storage_Connection3565 = mdl.create_connection(
    start=mdl.term(_Storage_Simple_Battery_inverter__Average_1, "DC+"),
    end=mdl.term(_Storage_iDC, "p_node"),
    name="Connection3565",
    breakpoints=[],
)
_Storage_Connection3566 = mdl.create_connection(
    start=mdl.term(_Storage_iDC, "n_node"),
    end=mdl.term(_Storage_Vs1, "p_node"),
    name="Connection3566",
    breakpoints=[],
)
_Storage__Battery_Energy__bat_on_reserve___1 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy, "bat_active"),
    end=_Storage_Tag13,
    name="(Battery Energy)(bat_on_reserve)--1",
    breakpoints=[],
)
_Storage_Connection3570 = mdl.create_connection(
    start=_Storage_Tag14,
    end=mdl.term(_Storage_Loadshape_Point_Calculator, "bat_soc"),
    name="Connection3570",
    breakpoints=[],
)
_Storage_Connection3571 = mdl.create_connection(
    start=_Storage_Goto15,
    end=mdl.term(_Storage_Battery_Energy, "bat_soc"),
    name="Connection3571",
    breakpoints=[],
)
_Storage_Connection3573 = mdl.create_connection(
    start=_Storage_From30,
    end=mdl.term(_Storage_Battery_Energy, "load_point"),
    name="Connection3573",
    breakpoints=[],
)
_Storage__Loadshape_Point_Calculator__idle_signal___1 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy, "idle_signal"),
    end=_Storage_Tag17,
    name="(Loadshape Point Calculator)(idle_signal)--1",
    breakpoints=[],
)
_Storage__Loadshape_Point_Calculator__idle_signal___2 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator, "idle_signal"),
    end=_Storage_Tag18,
    name="(Loadshape Point Calculator)(idle_signal)--2",
    breakpoints=[],
)
_Storage__Loadshape_Point_Calculator__mode___1 = mdl.create_connection(
    start=mdl.term(_Storage_Loadshape_Point_Calculator, "mode"),
    end=_Storage_Tag19,
    name="(Loadshape Point Calculator)(mode)--1",
    breakpoints=[],
)
_Storage__Loadshape_Point_Calculator__mode___2 = mdl.create_connection(
    start=mdl.term(_Storage_Battery_Energy, "mode"),
    end=_Storage_Tag20,
    name="(Loadshape Point Calculator)(mode)--2",
    breakpoints=[],
)
_Storage_Connection3590 = mdl.create_connection(
    start=mdl.term(_Storage_dss_inv_ref, "in"),
    end=_Storage_Junction641,
    name="Connection3590",
    breakpoints=[],
)
_Storage_Connection3591 = mdl.create_connection(
    start=_Storage_Junction641,
    end=_Storage_Goto5,
    name="Connection3591",
    breakpoints=[(8640, 7576), (8640, 7576)],
)
_Storage_Connection3592 = mdl.create_connection(
    start=mdl.term(_Storage_Dispatch_kW_Reference_Calculation, "p_inv"),
    end=_Storage_Junction641,
    name="Connection3592",
    breakpoints=[],
)
_Storage_Connection3593 = mdl.create_connection(
    start=_Storage_Tag24,
    end=mdl.term(_Storage_Battery_Energy, "p_in"),
    name="Connection3593",
    breakpoints=[],
)
