import

Импортируйте классы модели

Синтаксис

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
Введенный в R2013b