直流电机速度和位置的闭环控制

问题遇到的现象和发生背景
         先说明一下需求,使用直流有刷电机+码盘+光电编码器做位置/速度双闭环控制,希望在一定速度和加速度下达到指定位置,尽可能偏差最小;
         使用PI控制后,有两个问题:1)刹停后会因为惯性冲过制定位置;2)最大速度较高,不受控;3)加速和减速阶段加速度过高,电机在急转、急停时,产生较大的噪音。
问题相关代码,请勿粘贴截图
         野火位置/速度环控制代码(此处先不贴,必要时再贴);
运行结果及报错内容
         NA
我的解答思路和尝试过的方法
         按照经验值设定开始降速的时间点,速度先降为较低的一个速度(保证电机带载正常运转),再在差几个码盘格时,刹停;
         也有一个问题,这种算法对于固定的行进距离和负载还可以单独调试使用,但是负载有变化或者行进距离有变化,调试工作量比较大,代码适配性不是很强
我想要达到的结果
         1、速度曲线不超过一个指定的值,速度曲线是一个缓慢上升、匀速运转、缓慢下降至0的过程曲线
         2、精确地到达指定位置

编码器精度是多少呢有没有丢码的可能,PI控制不可能最大速度不受控制,从刹车、加速或减速过程的现象来看P参数太大,导致系统响应速度过快,可以先减少P值。根据我调车的经验现象不好,就是PID值没调好。位置环好像PD用的多一点,速度好像PI用的多一点,可以换着试试。
使用PID控制多多少少都会有一点点过充,除非限幅