RK4 中PID 算法的初值问题
考虑一个问题:当系统开始运行时PID
控制器的输出应该是0,还是其他值呢?
在状态空间方程中,方程的左边都是变量的微分,所以这就要求我们需要用微分的形式表示各种运算,包括算术方程。而将算术方程转化为微分方程时最重要的部分就是初始值的处理。例如:
- 常数:微分为,初始值是
- 线性函数:微分是,初始值是
- 二次函数:微分是,初始值是
理想的控制器包含有:比例环节、积分环节和微分环节,其中:
- 比例环节是一个线性函数,似乎初始值应当为
- 积分环节的初始值应当为
- 微分环节的初始值也应该为 吗
但是,因为比例环节的输入会立即反映到输出端,所以在系统初始化时,比例环节的初始值应当是,之后再以 的速率变化。否则的话,则不能正确反映比例环节的变化情况。而积分环节是对于误差的积分,初始值为 是显而易见的。最后对于微分环节,其微分是,可见其初始值至于系统的输出的变化率有关,而系统的输出的变化率在 时一般也为。
综上,在自己建立状态方程式,控制器的初始值,其中的比例部分应当设置为。
一个直流电机的例子
目前对于此类问题的认知还不够全面,需要在后续的实践中再加以总结。然而在建立微分方程时应当时刻考虑初始值的问题,尤其是对于方程中包含算术方程、反馈运算的时候需要尤其注意。
2023-04-26 Aachen