1. 项目缘起:为什么还要折腾直流调速?
在电力拖动和运动控制领域,一提到“直流调速”,很多刚入行的朋友可能会觉得这是个“老古董”话题。毕竟,现在满大街都是交流变频器,伺服系统也多是永磁同步电机,谁还用直流电机呢?这个想法,在我刚开始接触工业自动化时也有过。但后来在几个实际的设备改造和教学项目中,我被“教育”了。
直流调速系统,特别是转速、电流双闭环的结构,是整个现代高性能运动控制理论的基石。它的控制思想——内环快速响应、外环保证精度——是理解矢量控制、直接转矩控制等交流调速核心算法的钥匙。很多复杂的控制问题,比如抗负载扰动、快速启动制动,其最直观、最经典的解决方案模型,就藏在双闭环直流调速里。用Matlab/Simulink把它仿真跑通,不仅仅是为了复现一个经典模型,更是为了亲手搭建一个理解运动控制“第一性原理”的沙盘。当你调通了这里的PI参数,看懂了这里的波形变化,再去面对交流伺服驱动器里那一堆令人眼花缭乱的参数时,心里会踏实很多。
另一个现实原因是,在实验室环境、特定的小功率精密设备(如某些实验仪器、老式机床主轴)以及教学演示中,直流电机系统依然存在。掌握其仿真与调试方法,是一项非常实用的技能。本次仿真,我们将完全从零开始,在Simulink中搭建一个转速、电流双闭环的直流调速系统模型,并一步步调整参数,观察动态过程,目标是得到一个响应快速、超调小、抗扰能力强的稳定系统。你会发现,看似简单的PI调节器,里面门道一点也不少。
2. 系统核心架构与数学模型拆解
在动手画Simulink框图之前,我们必须把系统的“灵魂”——数学模型和控制结构——弄清楚。双闭环直流调速系统之所以经典,在于它清晰的分层控制思想。
2.1 被控对象:直流电动机的数学模型
我们以他励直流电动机为例,忽略磁路饱和、电枢反应和粘性摩擦系数(为简化模型),其动态特性可以由以下两个方程描述:
电枢回路电压平衡方程:
U = E + I*R + L*(dI/dt)其中,U是电枢电压,E是反电动势,I是电枢电流,R是电枢回路总电阻,L是电枢回路总电感。反电动势方程:
E = Ce * Φ * n ≈ K_e * n在励磁恒定的情况下,磁通Φ为常数,反电动势E与转速n成正比,K_e为反电动势系数。电磁转矩与运动方程:
T_e = Ct * Φ * I ≈ K_t * IT_e - T_L = (GD^2 / 375) * (dn/dt)电磁转矩T_e与电枢电流I成正比,K_t为转矩系数。T_L是负载转矩,GD^2是系统的飞轮惯量。
将以上方程进行拉普拉斯变换,可以得到在复频域(s域)中的传递函数。这是我们在Simulink中构建电机模型的基础。通常,我们可以将电机模型简化为两个惯性环节:
- 电流环被控对象:从电枢电压
U到电枢电流I,是一个一阶惯性环节1/(R(Ts+1)),其中电磁时间常数T = L/R。 - 转速环被控对象:从电枢电流
I(代表转矩T_e)到转速n,考虑机械惯性,也是一个一阶惯性环节R/(K_e(Tm s + 1)),其中机电时间常数Tm = (GD^2 * R) / (375 * K_e * K_t)。
注意:这里的简化模型是仿真和分析的起点。在实际Simulink建模时,我更喜欢用基础的积分、增益和求和模块直接搭建这些微分方程,而不是直接调用Transfer Fcn(传递函数)模块。这样做的好处是,模型物理意义更清晰,也方便后续引入非线性因素(如PWM环节的饱和、死区等)。
2.2 双闭环控制结构解析
系统结构框图是理解其工作原理的蓝图。双闭环,顾名思义,有两个闭合的反馈控制环,嵌套在一起。
内环——电流环:
- 被控量:电枢电流
I。 - 给定信号:来自外环(转速环)调节器的输出,即电流给定
I_ref。它本质上代表了系统在当前转速误差下,期望输出的转矩大小。 - 作用:电流环是“冲锋队”。它的首要任务是让电机的电磁转矩能够快速、准确地跟随转矩指令。由于电流(电磁转矩)的响应速度远快于转速,因此电流环可以设计得很快,主要用于抑制电网电压波动引起的电流扰动,以及在启动、制动时限制最大电流,保护电机和功率器件。在启动初期,转速调节器会迅速饱和,输出最大电流给定,此时系统相当于一个恒流源,电机以最大允许转矩加速,实现快速启动。
- 被控量:电枢电流
外环——转速环:
- 被控量:电机转速
n。 - 给定信号:转速指令
n_ref。 - 作用:转速环是“指挥官”。它根据转速的偏差,计算并输出所需的转矩(电流)指令。它的响应速度必然比电流环慢,主要作用是消除转速静差,保证转速能稳定在给定值上,并且抵抗负载转矩变化带来的扰动。当负载突然加大导致转速下降时,转速调节器会增大电流指令,从而增大电磁转矩以平衡负载,恢复转速。
- 被控量:电机转速
两个环的协作关系可以这样理解:转速环“思考战略”(需要多少转矩),生成命令;电流环“执行战术”(快速产生这个转矩)。内环的快速响应为外环提供了一个理想的“转矩执行器”,使得外环的设计可以更专注于稳态精度和抗扰性能。这种结构极大地改善了系统的动态性能。
3. Simulink模型搭建:从理论框图到可运行模型
理论清晰后,我们开始在Simulink中“施工”。我将按照信号流向,从内环到外环进行搭建。这里分享我的一个建模习惯:先搭建一个最小可运行的系统骨架,再逐步添加细节和非线性环节,这样调试起来问题更易定位。
3.1 功率变换与电机本体模块
这是系统的执行机构。我们假设采用最常见的PWM(脉宽调制)控制的直流斩波器或可控整流器。
PWM发生器与桥式电路:
- 使用一个
Relational Operator(关系运算符)模块比较三角载波(使用Repeating Sequence模块生成)和电流调节器输出的控制电压Uc,产生PWM脉冲信号。 - 用一个
Gain模块模拟桥路的放大系数Ks(即直流母线电压与控制信号的比例关系),将PWM信号转换为理想的电枢电压U。更真实的模型可以加入Saturation模块来模拟电源电压限制,用Dead Zone模拟死区时间,但初期为简化可省略。 - 关键参数:载波频率
fc。这个频率需要远高于系统的电流环带宽(通常10倍以上),否则仿真会出现不正常的纹波。我们可以先设为5kHz。
- 使用一个
直流电机模型:
- 根据2.1节的方程,用基本运算模块搭建。例如:
E = Ke * n:用Gain模块(增益为Ke)乘转速n。U - E:用Sum模块求和。(U-E)/(R + Ls):这是电流环。用Transfer Fcn模块实现1/(L*s + R),其输入是(U-E),输出就是电流I。我更推荐用Integrator(积分器)来构建:dI/dt = (U - E - I*R) / L。这样物理意义更直白。Te = Kt * I:用Gain模块(增益为Kt)。dn/dt = (Te - Tl) / J:其中J是折算后的转动惯量。用Integrator模块对加速度积分得到转速n。这里需要引入负载转矩Tl作为一个干扰输入,通常用一个Step模块在特定时间施加。
- 根据2.1节的方程,用基本运算模块搭建。例如:
3.2 电流环的搭建与参数整定
电流环是内环,我们先把它调好。
结构搭建:
- 反馈通道:从电机模型输出电流
I,经过一个Gain模块作为电流反馈系数Beta。这个系数用于将实际的电流值(单位A)缩放到与控制电压匹配的范围(如0-10V)。Beta = Uim / Imax,其中Uim是调节器允许的最大输入电压(例如10V),Imax是允许的最大电枢电流。 - 给定通道:外环(转速调节器ASR)的输出作为电流给定
I_ref,同样经过一个Beta系数(或另一个比例系数)进行标幺化处理,确保与反馈信号量纲一致。 - 调节器:使用
PID Controller模块,但将D和I参数暂时设为0,构成一个P调节器。将输出端接Saturation模块,限幅值设为Ucm(控制电压最大值,对应最大占空比)。
- 反馈通道:从电机模型输出电流
参数整定思路——典I系统法:
- 电流环的被控对象是:
Ks / (R(Tl*s + 1)),其中Tl = L/R是电磁时间常数,Ks是桥路增益。 - 为了将系统校正成典型的I型系统(响应快、超调小),我们让调节器提供一个积分环节来抵消对象的大惯性。因此,电流调节器应设计为PI调节器。
- 一种经典的工程整定方法是“调节器零点对消对象大极点”。即让PI调节器的积分时间常数
Ti = Tl。这样,开环传递函数就变成了(Ks * Kp) / (R * s),是一个纯积分环节。 - 比例系数Kp的确定:根据典型I型系统“二阶最佳”设计,取阻尼比ξ=0.707。此时,开环增益应满足
K = Ks*Kp/R = 1/(2TΣi),其中TΣi是电流环的小时间常数之和(主要包括PWM环节的延迟,可近似为1/(2fc)和电流滤波时间常数)。由此可解出Kp。 - 实操简化:在仿真中,我们可以先凭经验给一组值(如
Kp=1, Ti=Tl),然后通过观察电流阶跃响应的波形来调整。目标是:电流能快速无静差地跟踪给定,且超调量在5%以内。启动时,电流应能迅速达到限幅值。
- 电流环的被控对象是:
3.3 转速环的搭建与参数整定
调好电流环后,我们可以把电流环整体看作转速环中的一个环节,其等效传递函数近似为1 / (Beta * (TΣi*s + 1))。由于电流环已调好(响应很快),这个惯性非常小。
结构搭建:
- 反馈通道:从电机模型输出转速
n,经过一个Gain模块作为转速反馈系数Alpha。Alpha = Unm / nmax,Unm是转速调节器允许的最大输入电压,nmax是最高转速。 - 给定通道:转速给定
n_ref,同样经过Alpha系数处理。 - 调节器:同样使用
PID Controller模块构成PI调节器。其输出就是电流环的给定I_ref,因此必须加Saturation限幅,限幅值决定了系统的最大电流(转矩)。
- 反馈通道:从电机模型输出转速
参数整定思路——典II系统法:
- 转速环的被控对象包括:等效的电流环(小惯性环节)、电机的机电惯性环节。整体是一个高阶对象,通常将其校正成典型的II型系统,这类系统抗扰性能更好。
- 工程上常用“模最佳”或“对称最佳”整定方法。一个关键参数是中频宽
h,它影响系统的稳定性和快速性,通常取h=5。 - 计算公式(对称最佳法):
- 转速环开环传递函数目标为:
W(s) = K*(τ*s + 1) / (s^2 *(TΣn*s + 1)),其中TΣn是转速环等效小时间常数(包含电流环等效时间常数和转速滤波时间常数)。 - 取
τ = h * TΣn。 - 开环增益
K = (h+1) / (2h^2 * TΣn^2)。 - 然后根据
K、τ以及电机参数、反馈系数,反推出转速PI调节器的参数Kp_n和Ti_n。
- 转速环开环传递函数目标为:
- 实操简化:在仿真中,这是最需要耐心调试的部分。我的经验是:
- 先将转速调节器的积分时间
Ti_n设得大一些(如几秒),先调比例Kp_n。给一个小的转速阶跃给定(如10%额定转速),观察转速响应。 - 增大
Kp_n,系统响应变快,但超调会增加,甚至振荡。找到一个临界稳定点。 - 然后引入积分,逐渐减小
Ti_n。积分能消除静差,但会使系统响应变慢,相位滞后,可能引发振荡。需要在响应速度和稳定性之间折衷。 - 黄金法则:先保证空载启动稳定、超调小(<10%)。然后测试抗扰性能:在稳定运行时,突加一个负载转矩,观察转速跌落和恢复的时间与超调。一个好的双闭环系统,负载突加时转速会有一个动态速降,但能快速(通常在0.1-0.3秒内)恢复到给定值,且恢复过程平稳。
- 先将转速调节器的积分时间
4. 仿真调试与波形分析:读懂系统的“语言”
模型搭建并初步设置参数后,就可以运行仿真了。仿真结果的波形图,是系统动态性能最直观的“语言”。我们需要学会观察和解读。
4.1 空载启动过程分析
设置转速给定为一个阶跃信号(从0到额定转速),负载转矩为0。观察n(转速)、I(电流)、I_ref(电流给定)的波形。
理想波形特征:
- 启动瞬间:转速给定突加,转速调节器(ASR)输出(即
I_ref)因积分作用迅速达到饱和限幅值Imax。电流环快速响应,实际电流I也迅速上升至Imax。电机以最大转矩加速。 - 恒流升速阶段:电流
I被维持在Imax附近,转速n线性上升(因为dn/dt = (Te - Tl)/J,Te恒定,Tl=0)。 - 退饱和阶段:当转速接近给定值时,转速误差变小,ASR退出饱和,其输出
I_ref开始从Imax下降。电流环跟随,实际电流I也随之下降。 - 调节阶段:当转速超过给定值(产生超调),ASR输出反向,电流
I也反向(或降至0以下,进入制动状态),将转速拉回给定值。经过几次小幅振荡后,转速稳定在给定值,电流I也下降至仅用于克服空载阻转矩的很小值(理想空载时为0)。
- 启动瞬间:转速给定突加,转速调节器(ASR)输出(即
常见问题与调试:
- 启动电流冲击过大或振荡:可能是电流环P太大或I太小,导致跟踪过冲。应适当减小电流环P,或稍微增大积分时间。
- 转速超调过大:这是转速环调试中最常见的问题。根本原因是转速环的积分作用太强或比例太大。可以尝试“积分分离”策略:在转速误差大时(如启动阶段),切除积分,只用比例调节,防止积分饱和导致过大超调;当转速接近给定时,再投入积分以消除静差。在Simulink中可以用
Switch模块配合逻辑判断实现。 - 转速上升慢:检查电流环限幅值
Imax是否设置过小,或者转速环P太小。
4.2 抗负载扰动性能测试
在系统空载运行稳定后(例如第2秒),通过一个Step模块施加一个阶跃的负载转矩Tl(如50%额定转矩)。观察转速n和电流I的波形。
理想响应:
- 扰动瞬间:负载突加瞬间,电机转速因阻力矩增大而开始下降(
dn/dt变负)。 - 外环响应:转速
n下降,导致转速调节器(ASR)的输入(误差)增大,其输出I_ref增加。 - 内环响应:电流环快速动作,使实际电流
I跟随I_ref增大,从而增大电磁转矩Te。 - 恢复平衡:增大的
Te与新的负载转矩Tl达到平衡,转速停止下降并逐渐回升到原来的给定值。在这个过程中,转速会有一个动态速降(Δn),然后恢复。恢复的过程应该是单调的或仅有轻微振荡。
- 扰动瞬间:负载突加瞬间,电机转速因阻力矩增大而开始下降(
性能指标:
- 动态速降Δn:越小越好,表明系统刚度大。
- 恢复时间tr:从转速开始下降到重新进入稳态误差带(如±1%)的时间。越短越好。
- 振荡次数:最好在1次以内。
调试方向:
- 如果动态速降大且恢复慢,说明转速环的调节作用太弱。可以适当增大转速环的比例系数Kp_n,增强其对误差的纠正力度。但要注意,Kp_n增大会可能使空载超调变大,需要折衷。
- 如果恢复过程振荡剧烈,可能是积分作用太强。可以适当增大转速环的积分时间Ti_n(即减小积分作用)。
4.3 关键参数影响与折衷艺术
调试双闭环系统,本质上是在多个性能指标间做折衷。几个关键参数的影响如下:
- 电流环比例系数Kp_i:
- 增大:电流跟踪更快,启动转矩建立时间短。但过大会引起电流振荡,甚至导致PWM开关管直通损坏。
- 减小:系统更稳定,但电流响应慢,影响快速性。
- 电流环积分时间Ti_i:
- 减小(积分作用增强):消除电流稳态误差能力更强。但会使电流环相位滞后,可能引发低频振荡。
- 通常:按照“对消大惯性”原则,取
Ti_i = Tl(电机电磁时间常数)是一个很好的起点。
- 转速环比例系数Kp_n:
- 增大:系统刚度增加,抗负载扰动能力强(动态速降小,恢复快),转速响应快。但会导致超调增大,甚至不稳定。
- 减小:系统更平稳,超调小,但响应迟钝,抗扰能力差。
- 转速环积分时间Ti_n:
- 减小(积分作用增强):消除转速静差能力强。但会引入相位滞后,是导致转速超调和振荡的主要原因。这是调试中最需要小心处理的参数。
- 一个实用的技巧:先调Kp_n得到一个响应较快但有静差的系统,然后慢慢减小Ti_n引入积分,直到静差消除,同时观察超调量在可接受范围内。
我的调试心得:不要试图追求“完美”的阶跃响应曲线。在实际工程中,快速性、稳定性和抗扰性需要根据具体应用权衡。例如,对于频繁启停的伺服系统,可能更关注快速性和定位精度,允许有一定超调;对于风机水泵类负载,稳定性和抗扰性更重要,响应可以慢一些。仿真时,可以定义几个关键场景(如空载启动、突加负载、突卸负载、转速给定小幅变化),用同一组参数去测试,找到能满足所有场景的“平衡点”。记录下每次参数变更后的波形,对比分析,这是理解PI调节器作用的绝佳方式。
5. 模型进阶与问题排查
一个基本的线性模型跑通后,我们可以让它更贴近现实,也会遇到一些典型的仿真问题。
5.1 引入非线性环节与离散化
真实的系统不是线性的,加入这些因素能让仿真更可信。
PWM与功率器件的非线性:
- 饱和:在电流调节器输出后、PWM比较前,加入
Saturation模块,限幅值对应0%和100%占空比。 - 死区:为了防止上下桥臂直通,实际PWM驱动会插入死区时间。可以在PWM生成逻辑中加入一个小的延迟或使用
Dead Zone模块来近似模拟,这会导致低频运行时电流波形畸变。 - 开关频率效应:如果载波频率设置较低,会在电流和转速波形中看到明显的开关次纹波。这时需要关注的是平均值,而非瞬时值。可以使用
Moving Average模块对波形进行滤波后再观察。
- 饱和:在电流调节器输出后、PWM比较前,加入
离散化仿真:
- Simulink默认是连续系统仿真。但现代数字控制系统都是离散的(由微处理器执行)。我们可以将控制器部分(两个PI调节器)离散化。
- 方法:将
PID Controller模块替换为Discrete PID Controller模块,并设置合适的采样时间Ts。采样时间的选择至关重要,必须远小于系统的最小时时间常数(通常是电流环的)。一般取开关频率的1/2或更小(例如,开关频率10kHz,采样时间可取50us)。离散化后,PI调节器的算法变成了位置式或增量式,你可能会发现系统性能略有变化,稳定性可能变差,需要重新微调参数。
5.2 常见仿真问题与解决思路
在Simulink仿真中,你可能会遇到以下问题:
仿真速度极慢或崩溃:
- 原因1:模型中存在代数环。Simulink在计算一个模块的输出时,需要该模块当前的输入,而该输入又直接或间接依赖于这个输出,形成了死循环。在双闭环系统中,如果反馈通路没有延迟(如单位反馈),且控制器是纯比例环节,就容易形成代数环。
- 解决:在反馈通路或前向通路中插入一个
Memory模块或一个时间常数极小的Transfer Fcn模块(如1/(0.0001s+1)),人为打破代数环。更推荐的方法是使用PID Controller模块,它内部已经处理了代数环问题。 - 原因2:仿真步长设置不当。系统中有很快的动态(如PWM载波)和很慢的动态(转速变化),如果使用变步长 solver(如ode45),为了捕捉快动态,步长会变得非常小。
- 解决:对于电力电子系统,建议使用定步长求解器(如ode4,Runge-Kutta),并设置一个合理的固定步长(例如,取开关周期的1/50或更小)。在Model Configuration Parameters中设置。
波形出现高频振荡或发散:
- 原因:控制器参数(尤其是比例和积分增益)过大,导致系统不稳定。
- 解决:回到4.3节的折衷调试过程,逐步减小增益。先从内环(电流环)开始检查,确保内环稳定。一个不稳定的内环会导致整个系统无法工作。
稳态时有静差:
- 原因:转速环或电流环的积分作用不足(积分时间太大或积分限幅导致饱和)。
- 解决:检查PI调节器的积分部分是否正常工作。确保在稳态时,积分器有足够的“权限”去累积误差。检查调节器输出是否饱和,如果饱和,积分器会停止累积(积分饱和),导致调节能力下降。可以考虑使用抗积分饱和算法。
通过这个从理论到实践,从理想模型到非线性的完整仿真过程,你收获的不仅仅是一个能跑的Simulink模型,更是一套分析、设计和调试闭环控制系统的思维方法。这套方法,在你未来面对更复杂的交流调速、机器人关节控制乃至无人机姿态控制时,都将是最核心的底层逻辑。仿真只是第一步,但这一步走扎实了,后面的路会顺畅很多。