找回密码
 立即注册
楼主: 梁工

STC32G系列-高级PWM-两相步进电机-细分驱动

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-05-25 15:59:30

1

主题

7

回帖

129

积分

注册会员

积分
129
发表于 2025-3-3 06:47:27 | 显示全部楼层
梁*** 发表于 2025-3-2 22:12
只要没有磁饱和,则步进电机的转矩跟电流成正比,所以,你看下你的驱动电流是否过小了。 ...

怎么样增加驱动电流,我不是很懂

点评

难道你是IO直接驱动? 接三极管或场效应管或驱动IC就可以扩流。  详情 回复 发表于 2025-3-3 10:15
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:195
  • 最近打卡:2025-10-10 10:24:38

76

主题

6759

回帖

1万

积分

超级版主

积分
14309
发表于 2025-3-3 10:15:20 | 显示全部楼层
yuys9*** 发表于 2025-3-3 06:47
怎么样增加驱动电流,我不是很懂

难道你是IO直接驱动? 接三极管或场效应管或驱动IC就可以扩流。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-10-09 08:28:42

0

主题

1

回帖

186

积分

注册会员

积分
186
发表于 2025-9-4 08:53:46 | 显示全部楼层
梁老师那么如何去检测工作时的电流,进行限制工作电流?

点评

简单的方法是,ADC检测平均电流,再跟设定电流做PI处理,得到结果做为PWM的幅度。 比如设置输出电流SV=2A,当前电流为PV,PI计算: error = PV - SV; //误差 int += error; //积分 if(int > INT_MAX) int =  详情 回复 发表于 2025-9-4 11:10
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:195
  • 最近打卡:2025-10-10 10:24:38

76

主题

6759

回帖

1万

积分

超级版主

积分
14309
发表于 2025-9-4 11:10:13 | 显示全部楼层
xu080*** 发表于 2025-9-4 08:53
梁老师那么如何去检测工作时的电流,进行限制工作电流?

简单的方法是,ADC检测平均电流,再跟设定电流做PI处理,得到结果做为PWM的幅度。
比如设置输出电流SV=2A,当前电流为PV,PI计算:
error = PV - SV;   //误差
int += error;      //积分
if(int > INT_MAX)  int = INT_MAX;      //积分限幅
if(int < INT_MIN)  int = INT_MIN;      //积分限幅
PI_out = kp * error + ki * int;      //计算PI输出
pwm = PI_out * k;       //映射成PWM
if(pwm < PWM_MIN)  pwm = PWM_MIN;      //PWM限幅
if(pwm > PWM_MAX)  pwm = PWM_MAX;     //PWM限幅
装载PWM;
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-10 18:50 , Processed in 0.124272 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表