Я работаю с моделью в Simulink, которая содержит множество входов и выходов и подсистему. Я пытаюсь соединить их программно, потому что это действительно огромная модель.
Я пытался получить дескрипторы портов, используя имя портов, и все еще получаю сообщения об ошибках типа «Неверное имя объекта Simulink» или «Неверный дескриптор порта Simulink»
Следующий код создаст минимальную подсистему, я хотел бы напомнить, что в реальной системе, в которой я работаю, может быть более 50 портов, и они не обязательно соединяются «один за другим», я имею в виду, иногда первый вход будет подключен к третьему входу из подсистемы, например.
% Creating little subsystem and inports
open_system(new_system('my_system'));
add_block('simulink/Commonly Used Blocks/In1', 'my_system/port_name_1');
add_block('simulink/Commonly Used Blocks/In1', 'my_system/port_name_2');
add_block('built-in/Subsystem', 'my_system/test_subsystem');
add_block('simulink/Commonly Used Blocks/In1', 'my_system/test_subsystem/test_name_1');
add_block('simulink/Commonly Used Blocks/In1', 'my_system/test_subsystem/test_name_2');
Вот где я получаю некоторые сообщения об ошибках:
add_line('my_system', 'my_system/port_name_1', 'my_system/test_subsystem/test_name_1', 'autorouting', 'smart');
% Error: Invalid Simulink object name: my_system/port_name_1
porthandle = get_param('my_system/port_name_1', 'Handle');
subsystem_port_handle = get_param('my_system/test_subsystem/test_name_1', 'Handle');
add_line('my_system', porthandle, subsystem_port_handle, 'autorouting', 'smart');
% Error: Invalid Simulink port handle