打印
[DSP编程]

求教!28335实现电机PID控制

[复制链接]
4723|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DODU|  楼主 | 2023-2-21 20:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本人最近在TMS320F28335上实现BLDC的位置环PID控制,现在是在TI官网上用了他的PID代码,但是这个参数很多,而且网上对这个代码没有解释,而且PID调参又该怎么做呢,需要做系统辨识来仿真吗?求教!
void pidcontrol(int position_expected, int position_actual)        //## 写成位置环,10kHz
{
//     #include "pid_grando.h"                         // PID头文件

//        SP_normal=0.1;//先按照之前使电机旋转的值给pwm赋值

        float output = 0;
        ///*## 应该要采用增量式PID。这个代码看结构图应该是属于增量式PID。这个属于串级PID。
        pid.param.Kp = 0.5;
        pid.param.Ki = 0.005;
        pid.param.Kd = 0;
        pid.param.Kr = 1.0;
        pid.param.Km = 1.0;
        pid.param.Umax = 1.0;
        pid.param.Umin = -1.0;

        pid.term.Ref = position_expected;
        pid.term.Fbk = position_actual;
        PID_MACRO(pid);
        output = pid.term.Out;        //## PID的输出改变占空比

        SP_normal += output;        //## -=还是+=?

        //##限定最大最小占空比,现在是随便定的阈值,需要修改
        SP_normal = (SP_normal > 0.7) ? 0.7 : SP_normal;
        SP_normal = (SP_normal < 0.01) ? 0.01 : SP_normal;
        //##*/

}

使用特权

评论回复

相关帖子

沙发
1426684678| | 2023-3-1 17:13 | 只看该作者
看不懂的小白路过,学习一些。

使用特权

评论回复
板凳
GlenX| | 2023-3-5 17:49 | 只看该作者
知道各种PID的使用和调试。
但不懂"DSP"。
有现象和结果可以参与讨论。

使用特权

评论回复
地板
ColeYao| | 2023-5-10 13:42 | 只看该作者
本帖最后由 ColeYao 于 2023-5-10 13:46 编辑

  如图,灰色2为目标新位置(手动推杆),紫色3为电机实时位置,使用PID方式控制步进电机运行到新位置。红色和绿色为速度曲线,黄色为加速度曲线。从图中可以看出在光标处的设定位置为261120,电机的实际位置为261120,无运行偏差,并且位置曲线无震荡,速度曲线近似梯形。

a0510.jpg (141.94 KB )

a0510.jpg

使用特权

评论回复
5
mbutterfly| | 2023-6-2 16:16 | 只看该作者
感觉,大公司的运动控制器都用ADI的DSP呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝