控制理论的核心是什么?到底该怎么学?(二)

两位大V从控制系统和实践操作两方面,来讲述什么是控制理论核心以及如何学习。
标题

小编感谢:

感谢@荷兰猪、@桂凯的分享。


题主邀请:

我并不是第一次接触控制理论,只是学到现在,我有些困惑,觉得到现在我都没掌握控制理论到底是什么。甚至我对输入等于预期输出这个观点都有困惑。我也不了解为什么如果用神经网络智能控制,要拟合非线性函数……请不要嘲笑我,因为可能我到现在都不清楚控制这一理念到底是什么……还有我想问问,随机控制、鲁棒控制、自适应控制、最优控制和智能控制,我是不是该都学,一步一步到智能控制,还是可以挑着学?因为随机控制好难……我是想为以后做一下机器人的控制打基础的


荷兰猪谢邀:

搬运我在另一个问题下的答案:

首先了解系统的概念,这里讨论主要动态的系统。系统这个概念非常抽象,接受输入,产生输出的,都是系统。举例说明,一个电机,输入电流产生一定转速,这里,电机就是一个系统,其输入为电流,输出为转速。控制论需要将系统转变为数学方程后进行研究,其中经典控制论中利用transfer function来构建系统模型,而现代控制论利用state-space model来建立系统模型。

然后从控制的目的来说,我觉得有2个主要的方向,stabilization和tracking。

这两层是递进的关系,面对一个系统,我们首先要做的是确定系统的稳定性,系统稳定性判据包括考虑phase margin和gain margin,根轨迹(以上为经典控制论),系统矩阵的eigenvalue是否在复平面左半平面(此为现代控制论),系统不稳定,就要先用各种办法让系统稳定,例如调整控制器的gain,pole-placement等等。

tracking,就是要跟踪某个信号,比如希望电机转速达到500转每秒。这里需要跟踪的信号就是一个转速值。

如何实现追踪呢,还是以电机转速为例,我们则需要一个传感器提供电机的转速信息。一般的做法就是,将目标值-实际值,得到一个error信号,这个信号被输入到控制器里,控制器由这个error输出相应的输入(这个例子里是电流)来使得电机达到相应转速。

一般而言,我们主要要研究如何设计这个将error转变为输出的东西,即控制器。

这样一看控制似乎包括的东西不多。

但是正如上文所提到的,控制需要首先将系统转化为数学方程,即建模,如何建模?第一种方式:first principle modelling,即利用物理模型建立数学模型。例如一个机械手臂,可以利用拉格朗日方程来建模。也有一部分系统无法使用物理方程来建立,这一类模型的建立就可能需要利用神经网络等方式来建立模型建立了以后,如何识别模型中的参数?例如一个倒立摆,长度l是多少?最简单的方式可以测量。但是有很多参数无法被测量,怎么办?这就涉及到一个领域system identification,系统辨识。一种方式是输入一些信号得到系统的输出,然后根据输入输出数据来得到模型参数。

模型建好了,可以开始设计控制器了吗?not really。很多时候,我们得到的模型可能是非线性的,对于此类模型,我们需要将模型做线性化(当然也可以使用非线性控制,这又是另一个大块的内容了)。又或者模型的state太多了,我们可能需要简化模型。

有了模型,我们才能开始利用控制理论去设计控制器。等等,这样就完了吗?当然还没有。在上面的例子里,谈到了传感器,很多时候,传感器是有噪音的,还有的时候,我们需要了解的量无法用传感器来检测,这个时候怎么办?如果传感器有噪音,我们就可能需要用filter了(当然大部分传感器都有噪声)。如果是后者我们就需要用状态观测器(state observer),用已知的测量量和数学模型结合中尝试得到我们想要测量却无法测量的量。

系统模型有了,且可控而且可观,我们就可以开始设计控制器了。设计好了,但是oooops,控制器达不到想达到的效果,可能因为数学模型和实际的系统本身依然是很有差距的,或者一开始控制器可以运转,过了一段时间以后发现效果越来越差。可能是因为系统本身的某些参数随着时间的变化而变化。这又涉及到了一个新的领域,robust control,即系统参数在一定范围变化时,需要设计一个控制器可以tolerate这些变化。


桂凯谢邀:

我初学这块,也有与楼主同样的困惑。这个时候楼主不要在只看,更别忙着一脚踏进那些高深的控制理论,需要多多动手实践,用matlab写个仿真个传递函数,先试试开环控制,然后再写个简单的PID控制,感受下效果,加深理解,这种例子网上也很多。

——————————————附一个简单的例子

一台直流电机,它的转速(V)与施加电压(U)d的关系为V=500*U。现在通过PID控制使它转速恒定在1000r/min。下图中的期望转速就是你说的r,控制电压就是你说的u。u是通过控制律PID得到的,就像你说的u=r-Kx。

文章图片

 
相关标签:
  • 控制理论

参与评论