继电器控制器(开关控制器)原理与设计

本文介绍继电器控制器(开关控制器)原理与设计。

继电器控制器也称开关控制器(或bang-bang控制器),是一种简单的非线性控制器。它的输出只有开与关。一般家用热水器,空调,电冰箱的温度控制用的就是继电器控制器。

1.原理

继电器控制器原理非常简单,以空调温度控制为例,当环境温度高于设定温度时,打开压缩机制冷,当环境温度低于设定温度时,关闭压缩机。当然,实际的控制器不会这样设计,因为这会导致压缩机频繁的开关,长时间会损坏压缩机。

在继电器控制器里,可以用滞回来调整控制动作。以空调温度控制为例,加入滞回和不加滞回控制效果如下图所示。

继电器控制器(开关控制器)原理与设计_第1张图片

加入滞回,空调温度稍微高于设定值才会开启压缩机,温度略低于设定值才会关闭压缩机,这样压缩机就不会持续,频繁的开启和关闭。如果没有滞回作用,控制器会努力把温度控制在设定值上,这样就会频繁的切换压缩机,从而影响压缩机使用寿命。

空调温度控制器控制流程图,如下图所示。

继电器控制器(开关控制器)原理与设计_第2张图片

继电器控制器控制方式虽然简单,但它却是一个稳定的控制器(对于闭环控制器稳定性尤为重要)。其控制效果主要由控制器循环周期(采样时间)滞回值决定。

采样时间足够短才能避免系统过多的超调或欠调,采样时间一定下,滞回值对控制输出(控制精度)起决定作用,下图显示了采样时间和滞回值如何影响系统的控制。

继电器控制器(开关控制器)原理与设计_第3张图片

2.设计

继电器控制器设计比较简单,参考C代码如下:

typedef struct _BANG_BANG_CONTROLLER
{
    uint32_t SetPoint;
    uint32_t Threshold;   
}BANG_BANG_CONTROLLER;

static BANG_BANG_CONTROLLER BangBangController;

static void InitBangBangController(BANG_BANG_CONTROLLER *pBangBangController)
{
    pBangBangController->SetPoint = 25;
    pBangBangController->Threshold = 1;
}

static void BangBangController(BANG_BANG_CONTROLLER *pBangBangController, uint32_t curValue)
{
    if (curValue > pBangBangController->SetPoint + pBangBangController->Threshold)
    {
        On();
    }
    else if (curValue < pBangBangController->SetPoint - pBangBangController->Threshold)
    {
        Off();
    }    
}

int main(void)
{
    uint32_t curValue = 0;

    InitBangBangController();    

    while (1)
    {
        curValue = GetCurValue();
        BangBangController(&BangBangController, curValue);
        Sleep(60000); //1min
    }

    return 0;      
}

总结,本文介绍了继电器控制器(开关控制器)原理与设计。

你可能感兴趣的:(自动控制,继电器控制器)