0

我有一个数据表(大约 100 个样本),对于真正的 SISO 系统(直流电机),我知道输入和输出。通过tfest命令,我可以使用系统的相同数据(加载iddata函数)形成一阶到 n 阶的传递函数。

但在现实生活中,系统可以是 1 阶或 n 阶。

就像在 MATLAB 中一样,使用相同iddat的(包含样本值),我可以生成以下传递函数:

sys1 = tfest(iddat, 1, 1, 0.5); %number of zero=1, pole=1, 1st order system

sys1 =

  From input "u1" to output "y1":
       exp(-0.5*s) * (2.932 s - 0.1862) / (s + 1.082)

sys = tfest(iddat, 3, 2, 0.5);%number of zero=3, pole=2, 2nd order system 

sys =

  From input "u1" to output "y1":
       exp(-0.5*s) * (0.1936 s^2 - 0.02193 s + 0.0006905) / ( s^3 + 0.07175 s^2 + 0.05526 s + 1.772e-13)

有人可以解释一下这个场景吗?

4

1 回答 1

0

将模型拟合到实验数据需要关于底层物理系统的最少知识。

在这里,您有一个直流电机,它可能没有任何零点并且没有直流增益,但是您正在强制 matlab 拟合适当的三阶传递函数,它给您的是最接近的(不一定是正确的)。

而是消除半秒延迟,让函数为您找到时间常数。所以

tfest(iddat,1);

就足够了(如果您对电机驱动器有疑问,请尝试使用 3)。

于 2017-11-22T13:44:11.873 回答