51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

之前参与过一个嵌入式项目,遇到电机控制时出现抖动问题。请描述:1. 问题现象(电机转速不稳定,有波动);2. 诊断过程(检查硬件连接、传感器信号、软件代码);3. 解决方案(调整PID参数、优化PWM频率、增加滤波环节);4. 从中得到的经验(如调试时先检查硬件,再分析软件)。

乐歌股份嵌入式软件工程师(管培生/校招生)难度:中等

答案

1) 【一句话结论】:电机控制抖动是系统稳定性问题,通过硬件检查(连接、传感器)、软件调试(PID参数、PWM频率、滤波)解决,核心是先查硬件再分析软件的调试逻辑,关键在于各环节的匹配与优化。

2) 【原理/概念讲解】:电机控制抖动源于系统稳定性问题。PID控制是核心算法,包含比例(P,快速响应误差)、积分(I,消除稳态误差)、微分(D,预测变化)三环节。PWM(脉宽调制)通过改变占空比控制电机功率,频率影响响应(低频易引发共振)。传感器(如编码器)的噪声或线路干扰会导致速度计算波动,进而引起抖动。低通滤波(如一阶RC)可平滑信号,减少高频噪声。

3) 【对比与适用场景】:

步骤硬件检查软件调试
定义检查电机、传感器、控制板物理连接(线路松动、虚焊)及传感器安装(对齐)检查控制算法(PID参数)、PWM逻辑、速度计算公式
特性影响信号传输可靠性,易导致噪声/信号丢失影响控制系统动态响应与稳态精度
使用场景首次调试或连接变更后排查信号异常硬件正常后优化控制性能
注意点用万用表、示波器检测结合实际运行数据(转速曲线)分析

4) 【示例】:伪代码展示PID与低通滤波:

// 初始化参数
float Kp = 1.0, Ki = 0.1, Kd = 0.01;
float integral = 0, prev_error = 0;
float filtered_speed = 0;

while (1) {
    int pulse = read_encoder(); // 读取编码器脉冲
    float raw_speed = (pulse - prev_pulse) * N / (time_interval * 60); // 计算速度
    prev_pulse = pulse;

    filtered_speed = 0.1 * raw_speed + 0.9 * filtered_speed; // 一阶低通滤波

    float error = target_speed - filtered_speed; // 计算误差
    integral += error * time_interval;
    float derivative = (error - prev_error) / time_interval;
    float pid_output = Kp * error + Ki * integral + Kd * derivative; // PID计算

    set_pwm_duty_cycle(pid_output); // 生成PWM
    prev_error = error;
    delay(time_interval);
}

5) 【面试口播版答案】:之前项目里,电机控制出现转速不稳定、抖动问题。现象是电机运行时转速忽快忽慢,有明显波动。诊断先查硬件:检查电机与控制板连接是否松动,编码器线路有无虚焊或干扰;接着看传感器信号,用示波器测编码器输出,发现信号有高频噪声;再分析软件代码,检查PID参数(Kp、Ki、Kd)是否合理,PWM频率是否过低。解决方案是调整PID参数:增大Kp提高响应,调整Ki消除稳态误差,调整Kd抑制超调;将PWM频率从20kHz提升至50kHz减少共振;对编码器信号加一阶低通滤波平滑速度。经验是调试先从硬件入手,因为硬件问题(如线路松动、传感器安装不当)可能掩盖软件问题,先解决硬件再分析软件,效率更高。

6) 【追问清单】:

  • 问题1:调整PID参数时,如何确定参数调整方向?
    回答要点:根据误差曲线,超调大则减小Kd,稳态误差大则增大Ki,响应慢则增大Kp。
  • 问题2:调整参数后效果仍不好,会考虑其他因素吗?
    回答要点:检查PWM占空比范围是否合理,电机负载是否突变,或硬件是否有共振点。
  • 问题3:低通滤波截止频率如何选择?
    回答要点:根据编码器信号最高频率取1/10,避免滤除有效信号。
  • 问题4:抖动是否与负载有关?
    回答要点:负载突变可能导致系统响应滞后,需结合负载测试调整参数或加前馈控制。
  • 问题5:硬件软件都调后仍有抖动,可能是什么问题?
    回答要点:可能存在系统非线性(如电机死区)、传感器精度不足,或控制模型与实际系统不符。

7) 【常见坑/雷区】:

  • 坑1:只说软件问题,忽略硬件(如线路松动、传感器安装不当)。
  • 坑2:不说明诊断步骤顺序(先软件后硬件)。
  • 坑3:调整参数时只说“调整”,未具体说明方法(如增大Kp、减小Ki)。
  • 坑4:忽略PWM频率影响,认为抖动仅由PID参数导致。
  • 坑5:未总结经验,只描述操作,未提炼“先查硬件再分析软件”的思路。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1