首页 文章

使用Simulink的系统识别工具箱传输功能

提问于
浏览
1

我相信在尝试导入和测试在系统识别工具箱(SIT)中创建的Simulink中的传输函数时,我做了一些根本性的错误 .

举一个简单的例子说明我在做什么 . 我有一个输入,它是一个从12秒到25秒的偏移正弦波,幅度为1,频率为1.5rad / s,给出了测量输出 .

我使用SIT创建了一个简单的2极1零传递函数,它给出了以下协议:
SIT fit

然后,我尝试将此传递函数导入Simulink,以便在以下配置中进行调查,该配置具有1.5rad / s的正弦输入和起始t = 12 . LTI系统块指的是工作空间内的传递函数变量:
Simulink schematic

当我运行这个模拟13秒时,块的输入正如预期的那样,但是后传递函数信号显示与预期的一致并且是一个数量级的输出 .

上:
PRE signal

发布:
POST signal

有人可以透露我出错的地方以及为什么simulink中 tf 的输出与SIT中显示的模型输出几乎没有相似之处 . 我对控制理论有基本的把握,但我正在努力理解这一点 .

1 回答

  • 1

    这可能是由于SimuLink和SI工具箱中使用的初始条件不同,后者应该使用模型估计初始条件,而Simulink对初始条件没有任何特殊要求,除非您自己指定它们 .

    对我而言,您的原始信号似乎处于周期性状态,因为您的输出看起来几乎像正弦波 . 在周期性制度中,初始条件几乎没有影响 . 您可以通过模拟模型更长时间来验证我的假设:如果最后,您的信号达到正确的幅度和相位滞后,就像您的数据一样,您将知道初始条件是错误的 . 在任何情况下,您都可以从工具箱中获取估计的初始状态,我认为使用结果对象的 InitialState 属性 .

    另一件可能出错的事情是您在Simulink中使用的时间离散化,以防您估计连续时间模型(拉普拉斯变量 s 中的一个,而不是 zq ) .

    edit :在这种情况下,我建议您检查Simulink用于离散CT模型的内容,方法是在MATLAB中使用 c2d ,并在Simulink中使用类似下面的设置 . 在MATLAB中,您还可以"simulate"使用 lsim 对CT模型的响应,您必须指定离散化方法 .

    enter image description here

    此设置允许您加载CT模型和离散化变体(在本例中为状态空间表示) . 通过比较信号,您可以看到您使用的离散化方法是否与SimuLink使用的方法相同(这取决于您在设置中设置的积分方法) .

相关问题