Самый легкий способ реализовать основывающийся компонент состоит в том, чтобы использовать связь с неявным ссылочным узлом. Для примера компонента, который предоставляет электрическую землю схеме, смотрите источник для блока Electrical Reference в библиотеке Foundation:
component reference
% Electrical Reference :0.5
% Electrical reference port. A model must contain at least one
% electrical reference port (electrical ground).
% Copyright 2005-2016 The MathWorks, Inc.
nodes
V = foundation.electrical.electrical; % :top
end
connections
connect(V, *);
end
end
Для получения дополнительной информации о связях компонента и неявном ссылочном синтаксисе узла, смотрите Связи с Неявным Ссылочным Узлом.
Следующий файл, elec_reference.ssc, показывает, как реализовать поведенческую модель электрической ссылки. Этот компонент имеет один узел, где напряжение равняется нулю. Это также объявляет текущую переменную, делает его инцидентом к узлу компонента с помощью раздела branches и не задает значения для него в разделе уравнения. Поэтому это может взять любое значение и обработать текущее течение в или из ссылочного узла.
Раздел объявления компонента содержит:
Один электрический узел, V
Переменная Through, текущий i, чтобы быть соединенным с электрической областью позже в файле. Обратите внимание на то, что нет никакой потребности объявить переменную Across (напряжение), потому что это - основывающийся компонент.
Раздел branches устанавливает отношение между переменной Through компонента, текущим i, и узлами компонента (и поэтому доменной переменной Through). Оператор i : V.i -> * указывает что электрические токи от узла V к ссылочному узлу, обозначенному как *.
Раздел уравнения компонента содержит уравнение, которое задает основывающееся действие:
V.v == 0, то есть, напряжение в узле равняется нулю
component elec_reference
% Electrical Reference
% Electrical reference port. A model must contain at least one
% electrical reference port (electrical ground).
nodes
V = foundation.electrical.electrical; % :top
end
variables
i = { 0, 'A' };
end
branches
i : V.i -> *;
end
equations
V.v == 0;
end
end