【问题标题】:Noise in PD control in LabviewLabview 中 PD 控制中的噪声
【发布时间】:2014-05-08 02:59:34
【问题描述】:

我有一个关于 PD 控制中的噪声现象的问题。 给定的系统只是

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

其中x 是位移等状态变量,xd 是所需状态(设定点),上标 (') 是变量的时间导数,k & d 是 PD收益,分别。 我正在使用欧拉法实时求解方程(1)。

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

如果xd 是从正弦函数自动生成的,则 PD 控制工作得非常好,没有噪音问题。当然,sin(t)cos(t)sin^2(t)sin(2t) 等各种函数,无论其复杂程度如何,也都能正常工作。

但是,如果我在前端使用转盘或滑块等控件,PD 控制项会产生可怕的噪音。我不知道为什么会出现这种噪音。有没有人可以帮助我?

【问题讨论】:

  • 你能发布你的LabVIEW代码和/或一些好的和“嘈杂”结果的示例图吗?

标签: labview noise


【解决方案1】:

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

首先,您能否张贴您的嘈杂与非嘈杂图表的图片?您用于求解 ODE 的采样率是多少?这是在控制设计和仿真循环中完成的,还是在其他结构(如定时循环)中完成的?

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

离散导数x' 是 (Euler Method):

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

其中x(k)kth 时间步的状态,Ts 是采样时间。如果x(k) - x(k-1) 的差异太大,你最终会得到一个很大的瞬时x',它会乘以你的微分增益Kd,你最终会放大你的噪声。您可以尝试在控制器中添加一个低通滤波器,无论如何,这是一个相当常见的 PID 算法实现(Filtered PID,第 5 页)。

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

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

【讨论】:

    猜你喜欢
    • 2020-06-06
    • 2011-01-27
    • 2016-02-05
    • 1970-01-01
    • 2020-02-04
    • 2021-09-04
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多