Импортируйте классы модели
import package_or_class;
import package.*;
The import
операторы позволяют доступ к классу модели или именам функции, определенным в других возможностях (пакетах), без полной ссылки. Вы должны разместить import
операторы в начале файла Simscape™.
Существует два типа import
синтаксис оператора. Один из них является квалифицированным импортом, который импортирует определенный пакет, класс или функцию:
import package_or_class;
Другой - неквалифицированный импорт, который импортирует все подпакеты, классы и функции под заданным пакетом:
import package.*;
Имя пакета или класса должно быть полным путем, начиная с корня библиотеки (имя директории пакета верхнего уровня) и при необходимости содержащим имена подпакетов.
Операторы импорта удовлетворяют следующим ограничениям:
Импортированное имя должно быть полным путем, начиная с корня библиотеки, даже если import
оператор используется в классе компонента, заданном в том же пакете, что и импортируемый класс области или компонента.
Вы должны разместить import
операторы в начале файла Simscape. Возможности импортированных имен - это весь файл Simscape, кроме setup
раздел.
В квалифицированных операторах импорта импортированное имя может ссылаться на подпакет, класс модели (область или класс компонента) или функцию. Для примера, в import A.B.C;
оператор, C
может быть либо имя подпакета, либо имя класса или имя функции. В неквалифицированных операторах импорта импортированное имя должно ссылаться на пакет или подпакет. Для примера, в import A.B.*;
оператор, B
должно быть именем подпакета (пакета A
).
Это приводит к ошибке компиляции, если неквалифицированное импортированное имя идентично другим именам в тех же возможностях условии, что используется повторяющееся имя. Для примера предположим, что подпакеты A.B
и A.B1
оба содержат класс компонента C
. Следующий код:
import A.B.C; import A.B1.*; component M components (ExternalAccess=observe) c = C; end end
приводит к ошибке во время компиляции. Однако следующий код является легальным (при условии, что D определен только в A.B), поскольку C не используется:
import A.B.C; import A.B1.*; component M components (ExternalAccess=observe) d = D; end end
Этот код также является законным:
import A.B; import A.B1; component M components c1 = B.C; c2 = B1.C; end end
потому что вы импортируете в эти возможности два разных имени (B
и B1
) и доступ к двум различным классам компонентов C
через их родительские классы B
и B1
.
В этом примере композитный компонент состоит из трех одинаковых резисторов, соединенных параллельно:
import foundation.electrical.electrical; % electrical domain class definition import foundation.electrical.elements.*; % all electrical elements component ParElResistors nodes p = electrical; n = electrical; end parameters p1 = {3 , 'Ohm'}; end components(ExternalAccess=observe) r1 = resistor(R=p1); r2 = resistor(R=p1); r3 = resistor(R=p1); end connections connect(r1.p, r2.p, r3.p, p); connect(r1.n, r2.n, r3.n, n); end end