add_line

Добавьте линию к модели Simulink

Описание

пример

h = add_line(sys,out,in) добавляет линию в модель или подсистему sys который соединяет выходной порт одного блока out к входному порту другого блока in. Этот синтаксис рисует самый прямой маршрут от порта к порту, например, диагональные линии или линии, которые проходят через другие блоки.

Вы можете подключить порты, когда:

  • Порт входа еще не имеет соединения.

  • Блоки совместимы для подключения.

пример

h = add_line(sys,out,in,'autorouting',autoOption) соединяет блоки, задавая, направлять ли линии вокруг других блоков.

пример

h = add_line(sys,points) добавляет линию, нарисованную по координате (x, y) points относительно верхнего левого угла Simulink® Холст редактора перед любым изменением размера холста. Если любой конец линии находится в пределах пяти пикселей от соответствующего порта, функция соединяет линию с ней. Линия может иметь несколько сегментов.

Примеры

свернуть все

Используйте номера блочных портов, чтобы добавить линию для соединения блоков.

Создайте модель и откройте ее.

open_system(new_system('connect_model'));

Добавьте и расположите Constant блок и Gain блок.

add_block('simulink/Commonly Used Blocks/Constant','connect_model/Constant');
set_param('connect_model/Constant','position',[140,80,180,120]);
add_block('simulink/Commonly Used Blocks/Gain','connect_model/Gain');
set_param('connect_model/Gain','position',[220,80,260,120]);

Соедините блоки. Каждый блок имеет один порт, поэтому задайте порт 1.

add_line('connect_model','Constant/1','Gain/1');

Получите указатели на порты и соедините порты с помощью add_line.

Откройте модель vdp.

open_system('vdp');

Удалите линию, которая соединяет блок Mu gain с блоком Sum.

delete_line('vdp','Mu/1','Sum/2');

Получите указатели на порты из блока Mu и блока Sum.

h = get_param('vdp/Mu','PortHandles');
h1 = get_param('vdp/Sum','PortHandles');

Посмотрите на структуру h1. Обратите внимание на два указателя для свойства Inport.

h1
h1 = 

  struct with fields:

      Inport: [47.0002 54.0002]
     Outport: 39.0002
      Enable: []
     Trigger: []
       State: []
       LConn: []
       RConn: []
    Ifaction: []
       Reset: []

Индексируйте свойства Outport и Inport в указателях портов, чтобы получить нужные указатели и соединить их. Подключитесь ко второму входному порту.

add_line('vdp',h.Outport(1),h1.Inport(2));

Ветвить линию можно путем добавления соединения программно. Можно использовать points синтаксис, чтобы нарисовать сегмент, или можно нарисовать линию, указав порты для соединения. При использовании порта используйте автоматическую линейную маршрутизацию, чтобы улучшить внешний вид разветвленной линии.

Добавьте возможности к vdp модель над выходом.

vdp
add_block('simulink/Commonly Used Blocks/Scope','vdp/Scope1');
set_param('vdp/Scope1','position',[470,70,500,110]);

Соедините блок Интегратор x1 с Scope1. Этот код отделяет существующую линию от выхода x1 и соединяет ее с возможностями. При автоматической настройке результирующая линия сегментируется.

add_line('vdp','x1/1','Scope1/1','autorouting','on')

Можно использовать точки на холсте в качестве начала и конца каждого сегмента. Получите местоположения портов используя get_param с 'PortConnectivity' опция.

Откройте модель vdp и удалите линию, которая соединяет блоки Mu и Sum.

vdp
delete_line('vdp','Mu/1','Sum/2')

Получите местоположения портов для Mu. Mu имеет два порта. Первый - это вход порт, а второй - это выход порт.

mu = get_param('vdp/Mu','PortConnectivity');
mu.Position
ans =

   190   150


ans =

   225   150

Получите местоположения портов для Sum, который имеет три порта. Вторая позиция является нижним входным портом.

s = get_param('vdp/Sum','PortConnectivity');
s.Position
ans =

   250   135


ans =

   250   150


ans =

   285   145

Соедините порты с помощью выхода и входных точек.

add_line('vdp',[225 150; 250 150])

В этом примере показан эффект добавления линий с опциями автоотправки и без нее.

Создайте модель route. Отображать имена блоков по умолчанию.

open_system(new_system('route'));
set_param('route','HideAutomaticNames','off')

Добавьте блоки как показано на рисунке. Добавьте входной и выходной порты к каждой подсистеме.

Добавьте линий, чтобы соединить выходы Подсистемы с входами Subsystem1.

add_line('route',{'Subsystem/1','Subsystem/2'},...
      {'Subsystem1/1','Subsystem1/2'})

Поскольку вы не использовали опции автопоправки, функция рисует прямые линии, которые проходят через Gain блок.

Удалите линии. Еще раз добавьте линий, на этот раз используя опцию autorouting, установленную на 'on'.

add_line('route',{'Subsystem/1','Subsystem/2'},...
      {'Subsystem1/1','Subsystem1/2'},'autorouting','on')

Линии прокладываются вокруг блока Gain.

Удалите линии. Добавьте линий снова, используя smart опция автоориентации. Когда вы используете массив, чтобы соединить два набора входных и выходных портов, 'smart' автоматическая трассировка их вместе, если это позволяет лучше использовать пространство.

add_line('route',{'Subsystem/1','Subsystem/2'},...
      {'Subsystem1/1','Subsystem1/2'},'autorouting','smart')

Входные параметры

свернуть все

Моделируйте или подсистему, к которой нужно добавить линию, заданную как вектор символов.

Пример: 'vdp' , 'f14/Controller'

Блокируйте выходной порт для соединения линии, задайте как:

  • Имя блока, косая черта и имя или номер порта. Большинство блока портов нумеруются верхней частью вниз или слева направо. Для порта состояния используйте имя порта State вместо номера порта.

  • Указатель на порт, из которого вы хотите соединиться.

  • Массив любого из этих указателей на порты.

Использование 'PortHandles' с get_param чтобы получить указатели.

Пример: 'Mu/1', 'Subsystem/2', h.Outport(1){'Subsystem/1','Subsystem/2'}

Блокируйте входной порт для соединения линии, заданный как:

  • Имя блока, косая черта и имя или номер порта. Имя порта на:

    • Включенная подсистема включена.

    • Триггируемой подсистемой является Trigger.

    • Если Action и Switch Case Action подсистемы являются Action.

  • Указатель на порт, к которому вы хотите добавить линию.

  • Массив любого из этих указателей на порты.

Используйте 'PortHandles' опция с get_param для получения указателей.

Пример: 'Mu/1', 'Subsystem/2', h.Inport(1), {'Subsystem/1','Subsystem/2'}

Тип автоматической линии маршрутизации вокруг других блоков, заданный как:

  • 'off' нет автоматической маршрутизации по линиям

  • 'on' для автоматической маршрутизации линий

  • 'smart' для автоматической маршрутизации линий, которая использует лучшее преимущество пустых пространств на холсте и избегает перекрытия других линий и меток

Точки линии для рисования, заданные как минимум матрица 2 на 2. Добавить строку для каждого сегмента, который необходимо нарисовать. Задайте точки как координаты (x, y) в верхнем левом углу редактора перед любым изменением размеров холста.

Пример: [100 300; 200 300; 200 300; 200 500]

Выходные аргументы

свернуть все

Линия, созданная add_line, возвращается как указатель.

Представлено до R2006a