进口
导入模型类
语法
进口package_or_class;
导入包。*;
描述
的进口
语句允许在没有完全限定引用的情况下访问其他作用域(包)中定义的模型类或函数名。你必须放置进口
语句在Simscape™文件的开头。
有两种类型进口
语句语法。一种是合格导入,它导入特定的包、类或函数:
进口package_or_class;
另一种是不合格导入,它导入指定包下的所有子包、类和函数:
导入包。*;
包或类名必须是完整的路径名,从库根(顶级包目录名)开始,必要时包含子包名。
Import语句受以下约束:
导入的名称必须是从库根开始的完整路径名称,即使
进口
语句用于定义在与正在导入的域或组件类相同的包下的组件类中。你必须放置
进口
语句在Simscape文件的开头。导入名称的作用域是整个Simscape文件,除了设置
部分。在限定导入语句中,导入的名称可以引用子包、模型类(域类或组件类)或函数。例如,在
进口A.B.C;
声明中,C
可以是子包名、类名或函数名。在不限定的导入语句中,导入的名称必须指向包或子包。例如,在进口A.B. *;
声明中,B
必须是子包名(package一个
).如果未限定的导入名称与相同作用域中的其他名称相同,则会导致编译错误,前提是使用了重复的名称。例如,假设子包
A.B
而且A.B1
两者都包含一个组件类C
.以下代码:进口A.B.C;进口A.B1。*;component M components (ExternalAccess=observe) c = c;结束结束
导致编译时错误。然而,以下代码是合法的(假设D只在A.B中定义),因为没有使用C:
进口A.B.C;进口A.B1。*;(ExternalAccess=observe) d = d;结束结束
这段代码也是合法的:
进口A.B;进口A.B1;组分M组分c1 = B.C;c2 = B1.C;结束结束
因为您将两个不同的名称导入此作用域(
B
而且B1
),并访问两个不同的组件类C
通过它们的父类B
而且B1
.
例子
在这个例子中,复合元件由三个相同的电阻并联组成:
进口foundation.electrical.electrical;%电子域类定义导入foundation.electric .elements.*;%所有电气元件组件parel电阻节点p =电气;N =电的;结束参数p1 ={3, '欧姆'};end components(ExternalAccess=observe) r1 =电阻(R=p1);r2 =电阻(R=p1);r3 =电阻(R=p1);连接端连接(r1.)r2 p。p, r3。p, p); connect(r1.n, r2.n, r3.n, n); end end
版本历史
在R2013b中引入