点击蓝字 关注我们
人择重庆科技有限公司
专注机器人仿真、算法、设计,欢迎爱好
机器人的你,一起来玩。我们秉承科技的工匠精神。
一、基本概念
依据惯例,先上动态状态方程。
由于真实物理世界大部分是连续时间,所以一个理想化的MPC系统,也是连续的,连续时间控制系统如下:
这个连续动态系统的究竟在解决一个什么问题,举例说明:
它与RL强化学习的反馈有点类似,通过与环境的反馈,在控制器中输出最优的动作u。比如自动驾驶,希望车辆速度由40码加速到60码,在输出了一个油门量u(t-1)以后,传感器采集到目前真实的速度是y(t)=58,而希望达到的参考速度r(t)=60,计算出误差e(t)=r(t)-y(t)=2,再由将e(t)放入控制器计算最优的下一步油门输出u(t)。
但是计算机是没法处理连续问题,对于连续信号需要转换到离散信号进行处理,于是就有了一门课程叫做《信号处理》,在其中对采样有深入的研究,采样频率不能太低或者太高,太低产生混叠现象,也就是在频域上出现周期重叠影响在时域上的信号,但是也不能太高,太高存储和处理数据成本会变高。
建立计算机能理解的离散控制系统
我们一般把最大最小值在有限范围内的离散信号称为数字信号,连续数据有时候也被称为模拟信号。在上面的离散控制系统中,在控制系统采用了离散信号,而在理想动态系统输出中y依然是物理连续信号。连续信号和数字信号的相互转换需要两个关键工具,DAC:数字信号转模拟信号,ADC:模型信号转数字信号。
注:其中[k]代表的就是离散时间上的相关离散信号,在后面部门均使用这个符号。
以下是一个典型的DAC的设计,为了保持平滑性,在采样区间Ts上保持uk不变:
考虑到系统的复杂性,可以采用纯离散系统:
为什么y[k]和ym[k]会有差别,因为传感器采集到的数据是有随机误差的y[k]!=ym[k]。
二、连续系统空间方程的离散化
在对连续状态系统中的模拟信号进行采样时候,对采样周期Ts是非常看重的,根据采样定理—采样频率至少是最高频率的2倍,在控制器运行时间可以满足情况下,一般是5-10倍实际应用中。
在采用了采样以后,我们关心的就不再是是t0时刻到t时刻状态x的情况,而是Ts=tk+1-tk这个采样周期内的x[k]到x[k+1]的变化情况。
连续状态方程:
转变为了离散方程:
在tk<=t<tk+1时候,u(t)=uk恒等于,所以B*uk就是一个常数矩阵,根据矩阵积分原理,可以提到d后面:
计算参数G:
上面计算G的积分,是一个非常典型的基于矩阵函数的积分,按照我们上一篇博文里面强调的,当面对矩阵积分运算时候,重点是区分矩阵是固定参数还是变量,在这里矩阵是固定参数,积分对象为时间t。
如何证明 e^(A*(tk-t))dt=d-A^(-1)*e^(A*(tk-t))?
由于e^(A*t)的矩阵函数本质是矩阵数列(泰勒展开),所以只要把它变为矩阵数列,就能够很简单的证明其正确性。
对e^(At)数列先对t求偏导,再乘以A^(-1),结果切好就e^(A*(tk-t))dt,得证!
由于在离散化过程中,涉及到矩阵函数积分运算,看起来会比较复杂,但是只要牢记:
矩阵函数本质是矩阵数列,再按照矩阵积分定义,所有求解过程依然是在微积分框架内进行。
最后得到离散化的状态方程:
离散以后关心的不再是时间t,而是序列k,这和《数字信号》中对数字信号序列的处理是一致的。