[DSP编程]

求教!28335实现电机PID控制

[复制链接]
92|2
手机看帖
扫描二维码
随时随地手机跟帖
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"。
有现象和结果可以参与讨论。

使用特权

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

本版积分规则