{ "id": 139836198082768, "scene_width": 64000, "scene_height": 64000, "scene_pos_x": -411.2499999999998, "scene_pos_y": -704.9999999999997, "nodes": [ { "id": 1, "enable": true, "is_invalid": false, "title": "SpeedController", "pos_x": -1247.583007812499, "pos_y": -1316.4538574218745, "inputs": [], "outputs": [ { "id": 10101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 1, "text": "Speed Regulator", "mode": "input", "object": "resource", "true_type": "control::regulator::SpeedController", "type": "control::regulator::SpeedController", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139951070108624 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "SpeedController.json", "offset": 0 }, { "id": 2, "enable": true, "is_invalid": true, "title": "TorqueUnitTie", "pos_x": -155.07812500000023, "pos_y": -967.4538574218744, "inputs": [ { "id": 20001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Inverter Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "driver::IInverter", "description": "\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f." }, { "id": 20002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Voltage Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "technological::adapter::PwmGenAdapter", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 20003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 41, "text": "Torque Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToStandingVectorUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." } ], "outputs": [ { "id": 20101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 9, "text": "Speed Control State", "mode": "input", "object": "resource", "true_type": "technological::drivecontrol::state::ControlStatePositionControl", "type": "technological::IExecutorState", "description": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139951069336992 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "TorqueUnitTie.json", "offset": 5 }, { "id": 3, "enable": true, "is_invalid": false, "title": "TorqueRegulator", "pos_x": -1247.583007812499, "pos_y": -1401.4538574218745, "inputs": [], "outputs": [ { "id": 30101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 10, "text": "Torque Regulator", "mode": "input", "object": "resource", "true_type": "control::regulator::PmsmMotorController_v2", "type": "control::regulator::PmsmMotorController_v2", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139951069338720 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "TorqueRegulator.json", "offset": 9 }, { "id": 4, "enable": true, "is_invalid": true, "title": "SpeedUnitTie", "pos_x": -155.07812500000023, "pos_y": -1168.4538574218745, "inputs": [ { "id": 40001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 42, "text": "Torque Limit", "mode": "output", "object": "dynamic", "true_type": "none", "type": "systemic::IValueType", "description": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." }, { "id": 40002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 36, "text": "Speed Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 40003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Inverter Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "driver::IInverter", "description": "\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f." }, { "id": 40004, "index": 3, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 44, "text": "Acceleration Limit", "mode": "output", "object": "dynamic", "true_type": "none", "type": "systemic::IValueType", "description": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." }, { "id": 40005, "index": 4, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Voltage Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "technological::adapter::PwmGenAdapter", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 40006, "index": 5, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 41, "text": "Torque Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToStandingVectorUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." } ], "outputs": [ { "id": 40101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 27, "text": "Speed Control State", "mode": "input", "object": "resource", "true_type": "technological::drivecontrol::state::ControlStatePositionControl", "type": "technological::IExecutorState", "description": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139951069468496 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "SpeedUnitTie.json", "offset": 22 }, { "id": 5, "enable": true, "is_invalid": true, "title": "PositionUnitTie", "pos_x": -155.07812500000023, "pos_y": -1407.4538574218745, "inputs": [ { "id": 50001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 43, "text": "Position Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 50002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 42, "text": "Torque Limit", "mode": "output", "object": "dynamic", "true_type": "none", "type": "systemic::IValueType", "description": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." }, { "id": 50003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 36, "text": "Speed Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 50004, "index": 3, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Inverter Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "driver::IInverter", "description": "\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f." }, { "id": 50005, "index": 4, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 44, "text": "Acceleration Limit", "mode": "output", "object": "dynamic", "true_type": "none", "type": "systemic::IValueType", "description": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." }, { "id": 50006, "index": 5, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Speed Limit", "mode": "output", "object": "dynamic", "true_type": "none", "type": "systemic::IValueType", "description": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." }, { "id": 50007, "index": 6, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Voltage Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "technological::adapter::PwmGenAdapter", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 50008, "index": 7, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 41, "text": "Torque Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToStandingVectorUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." } ], "outputs": [ { "id": 50101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 33, "text": "Position Control State", "mode": "input", "object": "resource", "true_type": "technological::drivecontrol::state::ControlStatePositionControl", "type": "technological::IExecutorState", "description": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139948590739328 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "PositionUnitTie.json", "offset": 27 }, { "id": 6, "enable": true, "is_invalid": false, "title": "PositionRegulatorWithLimitedDynamics", "pos_x": -1247.583007812499, "pos_y": -1231.4538574218745, "inputs": [], "outputs": [ { "id": 60101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 34, "text": "Posititon Regulator", "mode": "input", "object": "resource", "true_type": "control::regulator::ParabolicPositionerWithLimitedDynamics", "type": "control::regulator::ParabolicPositioner", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139948589889952 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "PositionRegulatorWithLimitedDynamics.json", "offset": 33 }, { "id": 7, "enable": true, "is_invalid": true, "title": "PositionControlProcess", "pos_x": -729.6918334960942, "pos_y": -1358.4538574218745, "inputs": [ { "id": 70001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 10, "text": "Torque regulator", "mode": "output", "object": "static", "true_type": "none", "type": "control::regulator::PmsmMotorController_v2", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u043c\u0435\u043d\u0442\u0430." }, { "id": 70002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 1, "text": "Speed Regulator", "mode": "output", "object": "static", "true_type": "none", "type": "control::regulator::SpeedController", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." }, { "id": 70003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 34, "text": "Position Regulator", "mode": "output", "object": "static", "true_type": "none", "type": "control::regulator::ParabolicPositioner", "description": "\u041f\u0430\u0440\u0430\u0431\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0437\u0438\u0446\u0438\u0438." }, { "id": 70004, "index": 3, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Fast Voltage DC", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0432 \u0417\u041f\u0422." }, { "id": 70005, "index": 4, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Current Beta", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u043e\u043a \u0432 \u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0445 \u043e\u0441\u044f\u0445, \u0431\u0435\u0442\u0430." }, { "id": 70006, "index": 5, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Current Alpha", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u043e\u043a \u0432 \u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0445 \u043e\u0441\u044f\u0445, \u0430\u043b\u044c\u0444\u0430." }, { "id": 70007, "index": 6, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Theta", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0433\u043e\u043b." }, { "id": 70008, "index": 7, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Omega", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c." }, { "id": 70009, "index": 8, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Rotor Speed", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 70010, "index": 9, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Rotor Position", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "outputs": [ { "id": 70101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 41, "text": "Torque control process", "mode": "input", "object": "resource", "true_type": "processing::acs::TorqueControlProcess", "type": "processing::acs::PhaseSpaceToStandingVectorUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 70102, "index": 1, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 42, "text": "Torque limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0442\u043e\u043a\u0430." }, { "id": 70103, "index": 2, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 36, "text": "Speed Control Process", "mode": "input", "object": "resource", "true_type": "processing::acs::SpeedControlProcess", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 70104, "index": 3, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 37, "text": "Torque up Limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u0412\u0435\u0440\u0445\u043d\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 70105, "index": 4, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 38, "text": "Torque down Limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041d\u0438\u0436\u043d\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 70106, "index": 5, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 43, "text": "Position Control Process", "mode": "input", "object": "resource", "true_type": "processing::acs::PositionControlProcess", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0430\u0440\u0430\u0431\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438." }, { "id": 70107, "index": 6, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 44, "text": "Acceleration Limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "" }, { "id": 70108, "index": 7, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 45, "text": "Speed Limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "" }, { "id": 70109, "index": 8, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 40, "text": "Feedforward", "mode": "input", "object": "resource", "true_type": "systemic::IValueType>", "type": "systemic::IValueType>", "description": "\u0422\u0440\u0430\u043a\u0442 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c." }, { "id": 70110, "index": 9, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 39, "text": "Inertia", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u043d\u0435\u0440\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b." } ], "content": { "id": 139948589834320 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "PositionControlProcess.json", "offset": 35 }, { "id": 16, "enable": true, "is_invalid": true, "title": "ForceUnitTie", "pos_x": -171.50878906250023, "pos_y": -643.1689453124997, "inputs": [ { "id": 160001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 71, "text": "Force Feedforward", "mode": "output", "object": "dynamic", "true_type": "none", "type": "systemic::IValueType>", "description": "\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f." }, { "id": 160002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 61, "text": "Effort Compensation", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::ValueToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 160003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 72, "text": "Ramp Speed", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 160004, "index": 3, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 67, "text": "Speed Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 160005, "index": 4, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 41, "text": "Torque Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::PhaseSpaceToStandingVectorUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 160006, "index": 5, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Voltage Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "technological::adapter::PwmGenAdapter", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." }, { "id": 160007, "index": 6, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": -1, "text": "Inverter Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "driver::IInverter", "description": "\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f." }, { "id": 160008, "index": 7, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 63, "text": "Force Control", "mode": "output", "object": "dynamic", "true_type": "none", "type": "processing::acs::ValueToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432." } ], "outputs": [ { "id": 160101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 53, "text": "Force Control State", "mode": "input", "object": "resource", "true_type": "technological::drivecontrol::state::ControlStateValueControl", "type": "technological::IExecutorState", "description": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c." } ], "content": { "id": 139948586735872 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "ForceUnitTie.json", "offset": 45 }, { "id": 17, "enable": true, "is_invalid": true, "title": "ForceEstimator", "pos_x": -1247.583007812499, "pos_y": -657.9814453124997, "inputs": [ { "id": 170001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Raw Force", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0423\u0441\u0438\u043b\u0438\u0435 \u043d\u0430 \u0448\u0442\u043e\u043a\u0435 \u043e\u0442 \u0434\u0430\u0447\u0442\u0438\u043a\u0430 \u0443\u0441\u0438\u043b\u0438\u044f." }, { "id": 170002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Rotor Position", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u041f\u043e\u0437\u0438\u0446\u0438\u044f \u0440\u043e\u0442\u043e\u0440\u0430." }, { "id": 170003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Rotor Speed", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u043e\u0442\u043e\u0440\u0430." } ], "outputs": [ { "id": 170101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 1, "link_id": 60, "text": "Force Derivative", "mode": "input", "object": "value", "true_type": "const float &", "type": "float", "description": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430." }, { "id": 170102, "index": 1, "multi_edges": true, "position": 2, "socket_type": 1, "link_id": 59, "text": "Force Predicted", "mode": "input", "object": "value", "true_type": "const float &", "type": "float", "description": "\u0424\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435." }, { "id": 170103, "index": 2, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 56, "text": "Khardness", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u0416\u0435\u0441\u0442\u043a\u043e\u0441\u0442\u044c (\u041d*\u043c)." }, { "id": 170104, "index": 3, "multi_edges": true, "position": 2, "socket_type": 1, "link_id": 58, "text": "Khardness Estimated", "mode": "input", "object": "value", "true_type": "const float &", "type": "float", "description": "\u041e\u0446\u0435\u043d\u043a\u0430 \u0436\u0435\u0441\u0442\u043a\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139948589834464 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "ForceEstimator.json", "offset": 55 }, { "id": 18, "enable": true, "is_invalid": true, "title": "ForceController", "pos_x": -755.6224975585942, "pos_y": -668.3642578124995, "inputs": [ { "id": 180001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": 59, "text": "Force Predicted", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u0443\u0441\u0438\u043b\u0438\u0435 \u043d\u0430 \u0448\u0442\u043e\u043a\u0435." }, { "id": 180002, "index": 1, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Rotor Speed", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u0443\u0441\u0438\u043b\u0438\u0435 \u043d\u0430 \u0448\u0442\u043e\u043a\u0435." }, { "id": 180003, "index": 2, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 83, "text": "Speed Regulator", "mode": "output", "object": "static", "true_type": "none", "type": "control::regulator::SpeedController", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438." } ], "outputs": [ { "id": 180101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 66, "text": "Diagnostic", "mode": "input", "object": "resource", "true_type": "control::regulator::ForceController", "type": "control::regulator::ForceController", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u0443\u0441\u0438\u043b\u0438\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0443\u0441\u0438\u043b\u0438\u044f." }, { "id": 180102, "index": 1, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 63, "text": "Force Control", "mode": "input", "object": "resource", "true_type": "processing::acs::ForceControlProcess", "type": "processing::acs::ValueToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u0438\u043b\u0438\u0435\u043c \u043d\u0430 \u0448\u0442\u043e\u043a\u0435." }, { "id": 180103, "index": 2, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 61, "text": "EffortCompensation", "mode": "input", "object": "resource", "true_type": "processing::acs::EffortCompensationProcess", "type": "processing::acs::ValueToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0443\u0441\u0438\u043b\u0438\u044f \u043d\u0430 \u0448\u0442\u043e\u043a\u0435." }, { "id": 180104, "index": 3, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 64, "text": "Khardness", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0436\u0435\u0441\u0442\u043a\u043e\u0441\u0442\u0438 \u0443\u043f\u043e\u0440\u0430." }, { "id": 180105, "index": 4, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 65, "text": "Mass", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0436\u0435\u0441\u0442\u043a\u043e\u0441\u0442\u0438 \u0443\u043f\u043e\u0440\u0430." }, { "id": 180106, "index": 5, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 62, "text": "Efficienty", "mode": "input", "object": "resource", "true_type": "processing::acs::EffortCompensationProcess", "type": "systemic::IValueType", "description": "\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u0441\u0438\u043b\u0438\u044f (\u043a\u043f\u0434, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 - 1)." }, { "id": 180107, "index": 6, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 67, "text": "Force Speed Control Process", "mode": "input", "object": "resource", "true_type": "processing::acs::SpeedControlProcess", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 180108, "index": 7, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 69, "text": "Force Torque down Limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041d\u0438\u0436\u043d\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 180109, "index": 8, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 71, "text": "Force Feedforward", "mode": "input", "object": "resource", "true_type": "systemic::IValueType>", "type": "systemic::IValueType>", "description": "\u0422\u0440\u0430\u043a\u0442 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c." }, { "id": 180110, "index": 9, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 68, "text": "Force Torque up Limit", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u0412\u0435\u0440\u0445\u043d\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." }, { "id": 180111, "index": 10, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 70, "text": "Force Inertia", "mode": "input", "object": "resource", "true_type": "systemic::IValueType", "type": "systemic::IValueType", "description": "\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u043d\u0435\u0440\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b." } ], "content": { "id": 139948593738320 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "ForceController.json", "offset": 60 }, { "id": 8, "enable": true, "is_invalid": true, "title": "RampSpeed", "pos_x": -756.8681640624997, "pos_y": -763.3369140624997, "inputs": [ { "id": 80001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 1, "link_id": -1, "text": "Rotor Speed", "mode": "output", "object": "value", "true_type": "none", "type": "float", "description": "\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438." } ], "outputs": [ { "id": 80101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 72, "text": "Ramp Speed", "mode": "input", "object": "resource", "true_type": "processing::acs::RampGeneration1stOrderProcess", "type": "processing::acs::PhaseSpaceToPhaseSpaceUnitInterface", "description": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f." } ], "content": { "id": 139948593450432 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "RampSpeed.json", "offset": 71 }, { "id": 9, "enable": true, "is_invalid": true, "title": "ForceControllerDiagnostic", "pos_x": -172.5087890625, "pos_y": -757.3369140625001, "inputs": [ { "id": 90001, "index": 0, "multi_edges": false, "position": 0, "socket_type": 2, "link_id": 66, "text": "Diagnostic", "mode": "output", "object": "dynamic", "true_type": "none", "type": "control::regulator::ForceController", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u0443\u0441\u0438\u043b\u0438\u044f." } ], "outputs": [], "content": { "id": 139948593459072 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "ForceControllerDiagnostic.json", "offset": 74 }, { "id": 10, "enable": true, "is_invalid": false, "title": "SpeedController", "pos_x": -1247.583007812499, "pos_y": -486.8164062499999, "inputs": [], "outputs": [ { "id": 100101, "index": 0, "multi_edges": true, "position": 2, "socket_type": 2, "link_id": 83, "text": "Speed Regulator", "mode": "input", "object": "resource", "true_type": "control::regulator::SpeedController", "type": "control::regulator::SpeedController", "description": "\u0420\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f." } ], "content": { "id": 139948593460368 }, "alias": "", "comment": "", "params": {}, "cpu_id": 0, "graph": "SpeedController.json", "offset": 82 } ], "edges": [ { "edge_type": 2, "start": 30101, "end": 70001 }, { "edge_type": 2, "start": 70002, "end": 10101 }, { "edge_type": 2, "start": 60101, "end": 70003 }, { "edge_type": 2, "start": 70101, "end": 50008 }, { "edge_type": 2, "start": 40006, "end": 70101 }, { "edge_type": 2, "start": 70101, "end": 20003 }, { "edge_type": 2, "start": 70102, "end": 50002 }, { "edge_type": 2, "start": 70102, "end": 40001 }, { "edge_type": 2, "start": 70103, "end": 50003 }, { "edge_type": 2, "start": 70103, "end": 40002 }, { "edge_type": 2, "start": 70106, "end": 50001 }, { "edge_type": 2, "start": 70107, "end": 50005 }, { "edge_type": 2, "start": 70107, "end": 40004 }, { "edge_type": 2, "start": 180102, "end": 160008 }, { "edge_type": 2, "start": 160005, "end": 70101 }, { "edge_type": 2, "start": 160002, "end": 180103 }, { "edge_type": 2, "start": 80101, "end": 160003 }, { "edge_type": 2, "start": 180001, "end": 170102 }, { "edge_type": 2, "start": 180101, "end": 90001 }, { "edge_type": 2, "start": 180109, "end": 160001 }, { "edge_type": 2, "start": 180107, "end": 160004 }, { "edge_type": 2, "start": 100101, "end": 180003 } ] }