具有一个可变参数的模型数组
此示例演示如何创建传递函数的一维数组。 传递函数的一个参数在阵列中因模型而异。 您可以使用这样的数组来研究参数变化对模型的影响,例如,分析灵敏度。
In [ ]:
import Pkg
Pkg.add("ControlSystems")
In [ ]:
using ControlSystems
s = tf('s');
创建一个传递函数数组,表示以下三个截止频率值的低通滤波器 .
创建表示具有截止频率的滤波器的传递函数模型 =3,5和7。
In [ ]:
a = [3, 5, 7]
F_array = [ tf([a[i]],[1,a[i]]) for i=1:length(a) ]
Out[0]:
包含方法允许我们创建一个具有可变参数的传递函数向量。
让我们构建一个波特图 F_array.
In [ ]:
bodeplot(F_array)
Out[0]:
当您使用分析命令,如 bodeplot 对于模型数组,生成的图形显示数组中每个模型的响应。 这样,您就可以看到参数更改导致的响应范围。
可以组合来自向量的模型并获得MIMO系统。
将系统数组转换为多维系统
您可以使用函数从系统向量创建对角线多维系统 append. 因此,我们将拥有一个具有三个输入和三个输出的系统。
In [ ]:
P1 = append(F_array[1], F_array[2], F_array[3])
Out[0]:
其他功能 array2mimo 允许您创建一个具有一个输入和三个输出的系统。
In [ ]:
P2 = array2mimo(F_array)
Out[0]:
要返回到系统的阵列或从MIMO系统获得向量,可以应用函数 getindex.
In [ ]:
sys_array = getindex.(Ref(P2), 1:P2.ny, (1:P2.nu)')
Out[0]:
结论
我们研究了如何使用可变参数创建模型数组。我们还了解了哪些功能允许您从阵列切换到MIMO系统并返回。