跳转至

自动控制原理(01):两大控制和方框图

什么是控制

模糊的印象:加法装置

给你两个数,一个是\(1\).另一个还是\(1\),我现在想要一个\(2\).你会怎么做?这就是控制.

所谓控制,就是给定两个\(1\),输出\(2\)的过程.用比较标准的话来说,通过控制器将给定的输入信号对应到目标输出信号的行为,就是控制.

基本术语的介绍

我们对刚才这个系统的介绍是浅显的,现在我们来进一步认识上面的过程.我们把我们的这一整个流程叫做一个系统.两个一是我们的加数,对于系统而言,它们称为输入,得出的结果\(2\)是我们的和数,对于系统而言,它称为输出.对于不同的系统,输入和输出可以不止一个,加法运算这样的(一系列)操作叫做控制器,在这个系统中,我们的得数就是我们的被控量,我们的加数就是我们的控制量

两种控制:开环和闭环

上面我们讲的加法计算只是计算某一个时刻的两数之和.假设我们做一些合理的推广,将两个加数变成两个时变的数字信号.那么这个时候这个系统就变成了一个信号加法器. 限于信号检测能力的限制,我们测绘记录数字信号的时候往往带有误差.就比如利用 Python 计算浮点数是,常常会闹出\(0.1+0.2=0.3000000000004\)这样的误差.在我们现在的系统当中,我们得到的结果信号(被控信号)和我们输出信号之间是没有任何关系的.我们把输入信号不受输出信号影响的系统叫做开环(Open-Loop)控制系统.

如何修正上面的误差呢,假设这个浮点数的误差一直在,且不发生改变,我们想要我们输出为\(0.3\)怎么办??一个比较粗暴的方法就是将这个\(0.0000000000004\)直接从两个信号中的一个减去.这时候我们的输出信号就影响到了输入的信号,这样的做法叫做前馈补偿(FeedForward Control)/开环补偿.前馈补偿是基于我们对浮点数误差的先前的认识,人为修正输入的结果,如果我们没有/无法获得提前的认识,那么前馈补偿将会失效.

另一种方案是在在输出的尾端加装一个信号比较器,并且将它和信号调节按钮与我们的信号输入连接起来,如果输出信号大于\(0.3\),那么就把单个输入信号调小,否则调大.这个比较和调节的过程是动态的,哪怕每次计算的浮点数误差都发生改变也没有问题,因此根本就不需要知道浮点数误差的变化规律.借用生物的名词,我们把这种控制方法叫做反馈控制(Feedback Control).拥有反馈控制的系统被叫做闭环(Closed-Loop)控制系统.

什么是"环"?方框图

第一次阅读到这里的朋友一定会感到疑惑,为何我们不命名上面的两种系统叫做"前馈控制/反馈控制",而是"开环控制/闭环控制". 这是因为,只要介绍了下面的概念,那么我们一定会觉得后面的描述更加亲民.这一切的起点:要求我们用图示来表达上面的操作.

开环控制的框图

graph LR
    R1[加数信号1] --输入信号x1(t)--> C[加法器];
    R2[加数信号2] --输入信号x2(t)--> C[加法器];
    C -- 加法 --> P[得数]
    P -- 显示 --> S[显示];

上述图像便是我们开环加法器的工作流程图,我们一般把这种流程图称为框图(Block Diagram).画框图是每个自动化学子的必知必会.我们对上述的内容加以抽象

graph LR
    R[输入] --输入信号x(t)--> C[控制器];
    C -- 控制信号 u(t) --> P[被控对象];
    P -- 输出 y(t) --> Y[输出];

由于上面的图没有环,因此称之为开环(说无环的拖出去),它描述的系统自然也叫做开环控制系统,如果你愿意,还可以在输入的上面加入一个信号作为前馈信号,此时就会变成前馈控制系统.所以前馈控制是一种开环控制.

闭环控制的框图

graph LR
    R1[加数信号1] -- 输入 --> Sum(Σ);
    R2[加数信号2] -- 输入 --> Sum(Σ);

    P -- 输出 y(t) --> Y[输出];

    subgraph 反馈循环
        Ym[比较器] -- 差值信号err(t) --> Sum(Σ);
        Sum -- 反馈后信号 e(t) --> C[控制器];
        C -- 控制信号 u(t) --> P[执行器];
        Y --> Sen[探针];
        Sen --> Ym;
    end

它的一般情况是

graph LR
    R[给定值 r] -- 输入 --> Sum((Σ)) -- 误差 e(t) --> C[控制器];
    P[被控对象] -- 输出 y(t) --> Y[输出];
    C -- 控制作用 u(t) --> P;
    Y -- 被测量 --> S[测量环节];
    S -- 测量值 y_m(t) --> FB[反馈信号];
    FB -- 反馈 --> Sum((Σ));

我们画出的黄色框的部分明显成环了,所以这样的框图描述的控制也可以称为闭环控制.