繁体   English   中英

Labview中PD控制中的噪音

[英]Noise in PD control in Labview

我对PD控制中的噪音现象有疑问。 给定的系统只是

x''=k*(xd-x)-d*x'       (1)

其中x是状态变量(例如位移), xd是所需状态(设定点),上标(')是变量的时间导数, kd分别是PD增益。 我正在使用Euler方法实时求解方程式(1)。

问题是,如果手动控制xd则公式(1)中的PD控制会产生噪声。

如果xd是从正弦函数自动生成的,则PD控件可以很好地工作而不会产生噪音。 当然,诸如sin(t)cos(t)sin^2(t)sin(2t)类的各种函数也可以很好地发挥作用,而不管它们的复杂性如何。

但是,如果在前端使用诸如转盘或滑条之类的控件,PD控制项会引起严重的噪音。 我不知道为什么会出现这种噪音。 有谁可以帮助我吗?

这并不是一个完整的答案,但是我没有足够的声誉来发表评论,所以就在这里。

首先,能否请您发布有噪声图表与无噪声图表的图片? 用来解决ODE的采样率是多少? 这是在控制设计和仿真循环中还是在定时循环等其他结构中完成的?

关于噪声的我的第一个想法是,当您使用LabVIEW提供输入时,您正在提供“平滑”输入,即输入的时间导数中没有任何突然的中断。 就像输入本身一样,它们是正弦和余弦。 但是,当您手动控制VI时,会导致输入的突然变化,而这些变化可能不是“平滑的”,并且这种波动会引起噪声。

离散导数x'为( 欧拉方法 ):

      x(k) - x(k-1)
x' = ---------------
           Ts

其中x(k)是第k个时间步的状态, Ts是采样时间。 如果差异x(k) - x(k-1)太大,则最终会得到一个较大的瞬时x' ,该瞬时x'乘以您的导数增益Kd ,最终会放大噪声。 您可以尝试在控制器上添加一个低通滤波器,这是使用PID算法的一种相当普遍的实现方式( Filtered PID ,第5页)。

        s*K*Td
Kd = -------------
      1 + s*Td/N

对于形式为u = K*x + Kd*x'的控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM