импорт

Импортируйте образцовые классы

Синтаксис

import package_or_class;    
import package.*;

Описание

Операторы 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

Введенный в R2013b