Самый легкий способ реализовать основывающийся компонент состоит в том, чтобы использовать связь с неявным ссылочным узлом. Для примера компонента, который предоставляет электрическую землю схеме, смотрите источник для блока 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