3. 开环控制模型:建立电机开环模型、PWM生成模块、电压驱动仿真

好,咱们进入第三章。这一章我打算带大家亲手搭建一个电机开环控制模型。说白了,就是让电机转起来,但不去管它转得准不准、稳不稳。你可能会问:“开环控制这么简单,有什么好讲的?”嗯,别急。开环控制虽然基础,但它是所有闭环控制的地基。我在项目中见过太多人一上来就搞PID,结果电机根本转不起来,最后发现是PWM配置错了。

所以,咱们先把地基打牢。这一章的核心就三件事:电机模型、PWM生成、电压驱动仿真。走起。

3.1 电机开环模型:从物理方程到Simulink模块

先说说电机模型。我习惯用直流电机来举例,因为它的数学模型最直观。直流电机的电压平衡方程是这样的:

V = R * i + L * di/dt + e

其中,V是电枢电压,R是电枢电阻,i是电枢电流,L是电枢电感,e是反电动势。反电动势又和转速成正比:e = Ke * ωKe是反电动势常数,ω是角速度。

转矩方程呢?T = Kt * iKt是转矩常数。对于理想直流电机,Ke = Kt,这个特性很有意思。

机械运动方程:

T - T_load = J * dω/dt + B * ω

J是转动惯量,B是阻尼系数,T_load是负载转矩。

把这些方程组合起来,就是完整的电机模型。在Simulink里,我一般用状态空间模块或者自己搭积分器。我个人更推荐自己搭,因为调试起来更灵活。你看,把电压方程和运动方程联立,状态变量选电流和转速,输入是电压和负载转矩,输出就是转速和电流。

核心要点:开环模型的关键是参数准确。电阻、电感、转动惯量这些参数,最好从电机手册里查,或者实测。我曾经吃过一次亏,用了手册上的典型值,结果仿真和实测差了30%。后来老老实实拿万用表和示波器测了一遍,才把模型校准。

3.2 PWM生成模块:如何用Simulink产生驱动信号

电机模型搭好了,接下来要给它喂电。但电机不能直接接直流电压,得用PWM。为什么?因为效率高,而且控制方便。

PWM生成的核心思想很简单:比较三角波和参考电压。三角波频率就是PWM的开关频率,参考电压就是你想输出的平均电压。

在Simulink里,我通常这样搭:

  1. Repeating Sequence模块生成三角波,幅值设为1,频率设为10kHz(这个频率比较常用)。
  2. Constant模块给定参考电压,范围0~1,对应0%~100%占空比。
  3. Relational Operator模块比较两者,当三角波小于参考电压时输出1,否则输出0。

代码实现?其实Simulink里不用写代码,但如果你用C语言实现,大概是这样的:

// 伪代码:PWM生成
if (triangle_wave < reference_voltage) {
    pwm_out = 1;
} else {
    pwm_out = 0;
}

嗯,就这么简单。但要注意,实际项目中PWM还要考虑死区时间。死区时间是为了防止上下桥臂直通短路。我建议在仿真阶段就加上死区,养成好习惯。死区时间一般设为开关周期的1%~2%,比如10kHz的PWM,死区设1~2微秒。

小技巧:在Simulink里模拟死区,可以用Transport Delay模块加一个延时,然后用逻辑门处理。或者直接用PWM Generator模块,它自带死区配置。我个人习惯用后者,省事。

3.3 电压驱动仿真:把PWM信号喂给电机模型

模型和PWM都有了,接下来把它们连起来跑仿真。这一步其实最考验细节。

PWM输出的是0和1的数字信号,但电机模型需要连续的电压输入。所以中间要加一个电压源模型。我一般用Controlled Voltage Source模块,把PWM信号乘以母线电压(比如24V),就得到了实际的电机端电压。

仿真参数怎么设?

  • 求解器:用固定步长,步长设为PWM周期的1/10~1/20。比如10kHz的PWM,周期100微秒,步长设5~10微秒。
  • 仿真时间:先跑0.1秒看看稳态,再跑1秒看动态响应。
  • 负载:开环仿真可以不加负载,或者加一个恒定负载。

跑完仿真,看什么?看转速波形。开环控制下,转速应该随着占空比线性变化。比如占空比50%,转速应该是空载转速的一半。如果不对,检查模型参数或者PWM配置。

注意:开环仿真时,电机启动瞬间电流会很大。这是因为反电动势还没建立起来。我在第一次仿真时,电流直接冲到了额定电流的10倍,吓我一跳。后来加了软启动,才把电流压下来。所以,仿真时记得观察电流波形,别只看转速。

3.4 实战案例:一个完整的开环控制仿真

说了这么多,咱们来一个完整的例子。假设电机参数如下:

参数 单位
电枢电阻 R 0.5 Ω
电枢电感 L 0.002 H
反电动势常数 Ke 0.05 V/(rad/s)
转动惯量 J 0.0001 kg·m²
阻尼系数 B 0.0001 N·m·s/rad
母线电压 Vbus 24 V
PWM频率 10 kHz

仿真步骤:

  1. 搭建电机模型:用积分器和增益模块实现电压方程和运动方程。
  2. 生成PWM:三角波频率10kHz,参考电压设为0.5(对应50%占空比)。
  3. 电压驱动:PWM信号乘以24V,得到电机端电压。
  4. 设置仿真:固定步长10微秒,仿真时间0.2秒。
  5. 运行仿真,观察转速和电流波形。

结果应该是什么?转速从0开始上升,大约0.05秒后稳定在240 rad/s左右(空载转速 = 24V / 0.05 = 480 rad/s,50%占空比就是240 rad/s)。电流在启动瞬间冲到约48A,然后迅速下降到接近0(空载电流很小)。

如果波形不对,别慌。先检查模型连接,再检查参数。我遇到过最奇葩的问题,是把电感和电阻的值写反了,结果电流波形像过山车。所以,仿真前一定要核对参数。

总结一下:开环控制模型是电机控制的基础。这一章我们做了三件事:搭电机模型、生成PWM、做电压驱动仿真。下一章,我们会在这个基础上加入闭环控制,让电机转得更准。但在此之前,我建议你把开环仿真跑熟,把每个模块的作用搞清楚。相信我,这一步省不了。

好,这一章就到这里。有什么问题,欢迎在评论区交流。咱们下一章见。