matlab控制系统代码
在MATLAB中,控制系统的设计和分析是通过一系列的函数和工具箱进行的,其中包括`tf`函数,这是构建传递函数模型的关键。在这个示例中,我们看到了如何使用`tf`函数来创建离散时间或连续时间的传递函数,并对它们进行定制。 `num`和`den`分别代表传递函数的分子和分母多项式的系数。在给定的代码中,`num=[1 3 2]`和`den=[1 5 7 3]`定义了一个二阶系统的传递函数。`sys=tf(num,den)`这行代码将这两个向量转换为一个连续时间的传递函数模型,表示为: \[ \frac{s^2 + 3s + 2}{s^3 + 5s^2 + 7s + 3} \] 在MATLAB中,`s`通常表示复频域变量,对应于连续时间系统。 接着,`sys=tf([1 3 2],[1 5 7 3])`再次执行相同的操作,创建传递函数模型。这表明这个操作可以多次执行,每次都会覆盖前一次的结果。 为了指定输入和输出的名称,我们可以使用`'InputName'`和`'OutputName'`属性,如`sys=tf(num,den,'InputName','输入端','OutputName','输出端')`,这样可以更方便地管理和理解系统模型。 然后,我们看到了如何创建离散时间的传递函数。通过添加采样时间参数,例如`sys=tf(num,den,0.1)`,我们得到一个采样时间为0.1秒的离散时间系统,此时`s`被替换为`z`,表示离散时间系统中的延迟。如果不指定采样时间,MATLAB会将其标记为未指定。 有趣的是,尝试使用`sys=tf(num,den,0.1,'variable','Z^-1')`和`sys=tf(num,den,0.1,'variable','p')`会引发错误,因为MATLAB不接受`Z^-1`作为变量名,而`p`对于离散系统来说是不适当的变量选择。 我们看到了如何设置输入延迟,如`sys=tf(num,den,0.1,'inputdelay',2)`,这会在传递函数模型中引入一个输入延迟项`z^(-2)`。 这段MATLAB代码展示了如何使用`tf`函数创建、修改和查看传递函数模型,包括定义连续和离散时间系统,设置输入和输出名称,以及处理采样时间和输入延迟。这些基本操作是控制系统设计和分析的基础,对于理解MATLAB控制系统工具箱的功能至关重要。