控制方法 | 采用梯形波的120°交变 |
转子位置检测 | 由电动机的感应电压来检测 |
载频 | 20kHz |
转速控制的范围 | 正转:500rpm~3000rpm (-33.3×2π至200×2πrad/s) |
反转:-500rpm~-3000rpm (-33.3×2π至-200×2πrad/s) | |
误差检测 | 由于MCU起到了防止正相和负相同时处于运行状态的作用,因此有可能在上臂和下臂(布线分支)之间引起短路的波形将不会被输出。 |
IPM的FO信号(强制停机信号)是至MCU的NMI引脚的输入信号。因此,如果FO信号电平走低,则三相输出被强制停止,而且三相输出引脚被置于高阻抗状态。 | |
在正常操作期间,如果连续500ms未检测到来自编码器的Z信号,则认为电动机被锁定,而且三相输出引脚上的输出将被关断。 注:编码器的Z信号以这种方式来使用,旨在确保更高的安全性。不过,在电动机控制中并未采用Z信号。 |
项目 | 说明 |
转换模式 | 重复扫描模式0 |
扫描引脚 | AN0~AN7(8个引脚) |
触发器类型 | 软件 |
转换定时 | 在完成了A/D转换的初始设置之后,A/D转换在重复扫描模式0中继续进行。 |
Vref的连接 | Vref被连接。 |
分辨率 | 10位 |
A/D转换模式 | 利用采样及保持电路进行操作 |
A/D转换端口 | P10端口组 |
频率 | fAD/2 |
A/D转换中断 | 未用 |
项目 | 说明 |
中断检测 | 两个脉冲边沿 |
INT中断 | 未使用中断。 通过中断请求位的轮询来检测INT中断(外部中断) |
模块名称 | 标签名称 | 参数 | 说明 | |
输入 | 输出 | |||
电动机控制主处理 | main_pwm_120slc20() | — | — | 用于通过120°交变来实现一个SPMSM的无传感器型驱动的主处理。 |
初始化处理 | initial() | — | — | 设定A/D转换的初始值,感应电压过零点检测,以及三相PWM。 |
PWM中断处理 | pwm_int() | — | — | 调用停止、启动和正常处理功能。 |
停止处理 | pwm_stop() | — | — | 关断三相PWM输出,并检查是否继续进行启动操作。 |
启动处理 | pwm_kido() | — | — | 执行启动操作(将旋转速度命令和电压命令固定1秒的时间),并检查正常操作转换。 |
正常处理 | pwm_tujo() | — | — | 执行无传感器型控制(感应电压过零点检测和输出模式转换)。 |
实际转速计算处理 | cal_sub_wr_duty() | — | — | 计算实际转速和PWM占空比。 |
转速命令计算处理 | cal_wr_ref() | UI16 AD5 输入值 | SI16转速命令 | 将A/D输入值转换为转速命令。 |
总线电压计算处理 | cal_vdc_ref() | UI16 AD5 输入值 | — | 将A/D输入值转换为总线电压。 |
电动机锁定检测处理 | motor_lock_chk() | — | — | 检测电动机锁定状态。 |
停止检查处理 | stop_chk() | — | SI16停止检查结果 | 检查处理是由一个转速命令停止的还是由一个误差停止的。 |
欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |