基于在线参数估计的故障检测
让我们用一个简单的例子来看看它是如何工作的!
这个问题
假设我们有一个设置,其中一个直流电机用于在两个位置之间移动负载。用编码器测量位置,用PID控制直流电机的角度。模型如下所示:
当它进行模拟时,负载以这种方式跟踪所需位置:
我们如何检测电机是否坏了,或者负载的动态是否发生了变化?
在线识别
当启动系统时,我们将花几秒钟来在线识别它的动态(当系统运行时)。一旦我们有一个估计的模型,我们将比较编码器读数和模型的输出。如果真实系统和模型之间的误差变得太大,这是一个信号,有不希望发生的事情正在发生……我们想要检测它!
我把上面所示的控制回路包裹在一个子系统中,并连接到递归多项式模型估计器从“系统标识工具箱”库中删除。
使用启用输入端口,我们启用了对前几秒的估计(只需电机运动的几个周期就可以得到一个好的模型)。一旦估计完成,我们监控估计误差,使用非常简单的逻辑块使信号从0传递到1,一旦误差水平变得大于可接受水平。
结果
为了在仿真中测试逻辑,我通过在直流电机模型中加倍摩擦来假装失败。正如你所看到的,当系统动态在10秒左右发生变化时,错误标志会立即发出问题信号:
接下来是什么?
在线估计块还支持代码生成。金宝app我建议大家看一下视频直流电机的在线故障检测作者是我的同事Karthik Srinivasan。
在这个视频中,Karthik使用了一个类似于我上面描述的模型,除了不是一个模拟的直流电机,他使用了驱动块Arduino 金宝appSimulink支持包,使用真正的直流电机来检测故障。
现在轮到你了
可以想象,故障检测只是在线参数估计的一种应用。例如,所识别的模型可以用于任何类型的自适应控制。
让我们知道您对系统识别工具箱的新在线评估特性的看法这里的评论.
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。