我想做一个层次射频电路分析,通过子类化电路,使其终端,然后将其添加到另一个电路。它允许我做添加,但是当我试着分析,我得到以下错误级联
错误使用= =
不能调用方法的“情商”,因为一个或多个输入类“电路”异构和“情商”
不密封。更多细节请参阅方法调度规则异构数组。
错误在rf.circuit。压延机/ getglobalnode(第139行)
错误在rf.circuit。压延机/ makenodeobjects(第132行)
错误在rf.circuit。压延机/ buildcircuitlevel(第80行)
错误在rf.circuit。压延机/ buildcircuitlevel(第86行)
错误在rf.circuit。压延机/ flattencircuit(36行)
错误在rf.circuit。pcircuit / calc_sparams(第366行)
错误在sparameters(第180行)
输入{1}= calc_sparams(输入{:});
不幸的是,我不知道这意味着什么,我2014,在Matlab OO, RF工具箱。
当我在一个脚本中创建一个电路通过添加组件,添加终端,然后添加到另一个电路相同的脚本,它将分析sparameters没有错误。
当我子类电路和添加组件,添加端口,并分析其sparameters,工作。
它是如此,我不能添加一个对象派生子类从电路到另一个电路,即使终端?我怀疑这是抱怨= =,和电路不是一个电路的一个子类对象,但它确实有它的属性和方法的超集,所以应该在电路工作(我来自Python,动态类型的规则)。
这样我可以窝电路吗?
的记录,这是我的classdef
classdefthree_term <电路
属性
帽
res
印第安纳州
结束
方法
函数s = three_term(名字)
s = s@circuit(名称);
年代。帽=电容器(10 e-12,“cap_name”);
年代。在d = inductor(2e-9,“ind_name”);
年代。res =电阻器(1000“res_name”);
add (s [1, 2] s.ind);
add(年代,(2,0),s.cap);
add (s (1,0) s.res);
setterminals(年代,[0 1 2]);
结束
结束
结束