Appearance
电机与拖动基础
概念
上一章讲的是"怎么把控制做得最优"——但这套数学从头到尾都在跟一个 G(s) 打交道。G(s) 是从哪来的?对绝大多数运动控制问题,它的名字叫电机。
控制系统的通用结构是"控制器 + 被控对象 + 反馈"。前面几章把控制器(PID)、分析方法(根轨迹、频域)、现代设计(LQR)都讲完了,但被控对象一直是个白盒子:G(s) = 1/(s(s+1)(s+2)) 里那几个极点,是哪来的?答案在电机里。
一句话说清这一章是什么:它研究"电"与"机"之间的双向转换——加多少电压电流,就得到多少转矩转速;反过来,机械负载的阻力又会把电流拉回去。
为什么控制课必须讲电机?三条理由:
| 理由 | 说明 |
|---|---|
| 它就是被控对象 | 调速、位置伺服、机器人关节、数控机床——最常见的被控对象就是电机,G(s) 就是它的方程 |
| 它有饱和与非线性 | 电压有上限、电流有限制、磁路会饱和——这些正是 PID 那几节里"抗饱和""限幅"的物理来源 |
| 模型决定控制器参数 | 上两章算出的 Kp、Ki、K(LQR),只有换算成电机的电压、电流,才有工程意义 |
这一章只看两类电机,因为它们覆盖了绝大多数场合:
| 直流他励电机 | 三相异步(感应)电机 | |
|---|---|---|
| 调速性能 | 最好(转矩与电流成正比,线性) | 一般(靠转差率,非线性) |
| 结构 | 有电刷与换向器,需维护 | 无电刷,皮实耐造 |
| 典型应用 | 精密伺服、老式调速系统 | 风机、水泵、机床主轴——工业现场占有率最高 |
| 本章角色 | 原理最直白,用作"电—机转换"的标准模型 | 工业主力,讲转差率与变频 |
本章的坐标:它不引入新的控制方法,而是把前六章一直悬空的 G(s) 落到地上。读完这一章,你应该能看着一台电机的铭牌,算出它的机械特性、启动电流、加速时间和变频后的转速。
原理
一、直流他励电机的三个方程
他励指励磁绕组与电枢由两个独立电源供电,磁通 Φ 可以单独调。它的全部行为由三个方程描述。
(1)电枢回路电压方程——施加的电压被反电动势和电阻压降分掉:
(2)反电动势方程——电机一转起来就是一台发电机,转速越高、反电动势越大:
(3)电磁转矩方程——电流在磁场里受到的力:
其中 Ce 是电动势常数、Ct 是转矩常数。两者满足 Ct = 9.55·Ce,这不是巧合,而是功率平衡的必然结果:
电磁功率既可以写成电的
E·Ia,也可以写成机的T·ω(ω = 2πn/60)。令两者相等就逼出Ct = 60·Ce/(2π) = 9.55·Ce。
把三个方程联立,消掉 Ia,得到转速与电流的关系:
再代入 Ia = T/(Ct·Φ),换成转矩形式:
这就是机械特性:一条斜率为 β 的直线,n0 是理想空载转速。三个量各有含义:
| 量 | 名称 | 由什么决定 | 工程含义 |
|---|---|---|---|
n0 = U/(Ce·Φ) | 理想空载转速 | 电枢电压 U | 调压即可平移整条特性线 |
β = Ra/(Ce·Ct·Φ²) | 特性斜率 | 电枢电阻 Ra、磁通 Φ | 斜率越大特性越"软",负载一加转速掉得多 |
Δn = β·T | 转速降 | 负载转矩 | 空载到满载掉了多少转 |
额定转速降是个可算的量:额定点的 Δn_N = n0 − n_N = β·T_N,它与额定转速之比就是静差率——它直接决定这套开环调速系统够不够用。
二、机械特性与负载特性:工作点在哪
电机不会单独存在,它总拖着一个负载。负载也有自己的转矩—转速关系,两条线的交点就是稳态工作点。两类典型负载:
| 负载类型 | 转矩特性 | 例子 |
|---|---|---|
| 恒转矩负载 | TL = 常数,水平线 | 起重机、传送带、挤压机 |
| 风机 / 泵类负载 | TL = k·n²,平方抛物线 | 风机、水泵、螺旋桨 |
两条线摆在一起,交点的意义就清楚了:
text
n (r/min)
↑
n0 ───┐ 电机机械特性(斜率 β)
│╲
│ ╲
│ ╲
│ ╲ ← 恒转矩负载线(水平)
│ ● ← 工作点:两条线相交
│ ╲
│ ╲
└───────╲────────────→ T (N·m)
0 TL关键结论:工作点由"电机特性"与"负载特性"共同决定,不是电机单方面说了算。 同一台电机带不同负载,是两个不同的工作点;同一负载配不同电压,工作点也会移动。这就是"拖动"二字的含义——电机与负载是耦合在一起的。
这一点在降压调速时会给出反直觉的结果(见示例 3):风机负载下降压,转速掉得比恒转矩负载少——因为负载转矩自己随转速平方掉下去了,需求一降,工作点就自己往回找。
三、启动、调速、制动
启动:刚合闸时 n = 0,于是反电动势 E = 0,电流只剩电阻限着:
这是额定电流的十几倍(示例 2 算出 11 倍)。危害有四:绕组过热、换向器打火、电网电压跌落、轴上的冲击转矩。三种限流手段:
| 手段 | 做法 | 代价 |
|---|---|---|
| 串电阻 | 电枢串入启动电阻,随转速上升逐级切除 | 能耗大,只适合小容量 |
| 降电压 | 启动时给低压,转速起来后升到额定 | 需要可调压电源 |
| 软启动器 / 变频器 | 用电力电子器件平滑升压升频 | 成本高,效果最好 |
调速:机械特性上有三个可动的量,改哪一个就是一种调速方式。
| 方式 | 改哪个量 | 特性怎么变 | 适用场合 |
|---|---|---|---|
| 调压 | U 变 → n0 平移 | 斜率不变,整条线平行上下移 | 恒转矩调速,最常用 |
| 调磁 | Φ 变小 → n0 升、β 增大 | 转速升高但特性变软 | 恒功率、弱磁升速 |
| 串电阻 | Ra 增大 → β 增大 | 空载转速不变,特性变陡 | 有级调速、能耗大,趋于淘汰 |
调压最常用,原因就在表里:它只平移不改变斜率,意味着低速时特性一样"硬",这是恒转矩负载(比如机床进给)最看重的。
制动:让电磁转矩方向与转速相反,把动能变成电能消耗掉或回馈电网。三种方式——能耗制动(切断电源、接入电阻)、反接制动(改变电枢电压极性)、回馈制动(转速高于理想空载转速,电机变成发电机往电网送电)。
四、异步电机:转差率是它的命根子
异步电机的转子没有电源、没有永磁体,它的电流完全靠定子磁场"感应"出来。定子通三相电流产生旋转磁场,这个磁场的转速是
f1 是电源频率、p 是极对数。关键:转子永远追不上这个转速——真追上了,转子与磁场之间就没有相对运动,感应不出电流,也就没有转矩。所以转子转速 n 总小于 n1,两者之差用转差率 s 表示:
s 一般在 0.01 ~ 0.06 之间(额定点约 0.03)。s 不能为 0——s = 0 意味着没有转矩。这条性质贯穿整个异步电机:转矩、电流、效率、转子频率,全都是 s 的函数。
转子里的电流频率也由 s 决定:
n1 = 1500 r/min、s = 0.03 时转子频率只有 1.5 Hz——转子里的电流几乎接近直流,这也是异步电机转子可以做得很粗壮(铸铝或铜条)的原因。
转矩—转差率曲线(T-s 曲线)是异步电机的核心特性:
text
T
↑
│ ╭──╮ ← 最大转矩 T_max(s = s_m)
│ ╱ ╲
│ ╱ ╲
│ ╱ ╲
│ ╱ ╲
│ ╱ ╲
│╱ ╲
●───────────────────────────●──→ s
0 s_m 1
理想空载 启动点 T_st三个特征点:
- 启动点
s = 1:启动转矩T_st,一般1.0 ~ 2.0倍额定 - 最大转矩点
s = s_m:T_max,一般2.0 ~ 2.5倍额定。T_max与U1²成正比、与f1成反比——这是变频调速的物理基础 - 额定点
s = s_N:额定转矩T_N
一个常用的简化表达式:
它的两个极端很有用:s 很小时 T ∝ s(近似线性,正常工作区);s 很大时 T ∝ 1/s(启动附近的下降段)。
五、变频调速与 V/f
要调速,改 f1 最彻底——n1 = 60f1/p,f1 变了同步转速就变了,整条 T-s 曲线左右平移。但有个约束:f1 降低时,如果 U1 不变,磁通会变大。
由 U1 ≈ E1 = 4.44·f1·N1·Φ 得 Φ ∝ U1/f1。f1 减半、U1 不变,磁通就翻倍 → 磁路饱和 → 励磁电流暴增 → 铁损与发热。 所以变频器必须同时改 U1 和 f1,保住
这就是 V/f 控制(恒磁通控制)。它的后果分两段:
| 区段 | 约束 | 磁通 | 最大转矩 | 调速性质 |
|---|---|---|---|---|
| 基频以下 | U1/f1 恒定 | 恒定 | 恒定 | 恒转矩调速 |
| 基频以上 | U1 = U_N 顶住不变 | Φ ∝ 1/f1 下降 | 随 1/f1² 下降 | 恒功率调速 |
风机泵类负载的节能是变频调速最大的价值:负载转矩随 n² 走,而功率 P = T·ω ∝ n³——转速降到 80%,功率只要 51%;降到 60%,功率只要 21.6%(见示例 7 的第六节)。这就是"风机水泵变频改造能省一半电"的算术依据。
六、拖动运动方程:电与机之间的那根轴
电磁转矩与负载转矩不相等时,多出来的部分去哪儿了? 答:变成了转子动能的增减。这就是拖动运动方程(单轴):
J 是折算到电机轴上的转动惯量,单位 kg·m²。三种状态分得很干净:
| 状态 | 条件 | 物理 |
|---|---|---|
| 加速 | T > TL | 动能增加,转速上升 |
| 匀速 | T = TL | 稳态工作点,dω/dt = 0 |
| 减速 | T < TL | 动能释放,转速下降 |
工程上常用 GD² 而不是 J——GD² 叫"飞轮惯量",单位 N·m²,两者换算关系是
g 取 9.81。用 GD² 时方程写成(n 用 r/min):
375 是 4 × 9.55 × 9.81 ≈ 375 取整来的——所以两套口径算出来的结果会有万分之几的差(见示例 4)。这是工程习惯带来的近似,不是笔误。
稳定工作点判据:两条特性线相交还不够,还得看交点是稳定的还是不稳定的。判据是
即负载特性的斜率要比电机特性的斜率更陡。若不满足,转速一旦偏离,偏差会自己扩大——这就是电机堵转与失稳的机理。把这条判据与第五章奈奎斯特的"绕圈数"对照着看:一个在转速—转矩平面上看两条线的斜率,一个在复平面上看包围圈数,本质都是"扰动会不会自己长回去"。
示例
下面所有数字都由本节的 C 与 Python 程序实跑给出(已用 Python 验算)。铭牌取一台常见的他励直流电机:U_N = 220 V、I_N = 50 A、Ra = 0.4 Ω、n_N = 1500 r/min、P_N = 10 kW。
例 1:直流他励电机的基本量核算
第一步,额定反电动势(由电枢回路方程):
E_N = U_N − I_N·Ra = 220 − 50 × 0.4 = 220 − 20 = 200 V
第二步,电动势常数乘磁通:
Ce·Φ = E_N / n_N = 200 / 1500 = 0.133333 V/(r/min)
第三步,转矩常数乘磁通:
Ct·Φ = 9.55 × Ce·Φ = 9.55 × 0.133333 = 1.273333 (N·m)/A
第四步,额定转矩——两条路互证:
- 从电流算:
T_N = Ct·Φ × I_N = 1.273333 × 50 = 63.666667 N·m - 从功率算:
T_N = 9550·P_N / n_N = 9550 × 10 / 1500 = 63.666667 N·m
两条路必须相等——不等就说明 9.55 这个系数或某个数据抄错了。这是核算电机数据时最常用的自检。
第五步,理想空载转速与转速降:
n0 = U_N / (Ce·Φ) = 220 / 0.133333 = 1650 r/min
Δn_N = n0 − n_N = 1650 − 1500 = 150 r/min,静差率 150 / 1500 = 10%
第六步,特性斜率:
β = Ra / (Ce·Φ × Ct·Φ) = 0.4 / (0.133333 × 1.273333) = 2.356021 r/(min·N·m)
自检:β × T_N = 2.356021 × 63.666667 = 150 —— 正好等于转速降,说明 β 没算错。
例 2:直接启动的冲击电流与限流电阻
直接启动:n = 0 导致 E = 0,全部电压都加在电枢电阻上:
Ist = U_N / Ra = 220 / 0.4 = 550 A = 11 × I_N
限流:把启动电流压到 2·I_N = 100 A,需要多大的电枢回路总电阻?
R_total = U_N / 100 = 2.2 Ω,其中串入的启动电阻 R_add = 2.2 − 0.4 = 1.8 Ω
注意:这些量都是"合闸那一瞬间"的——随着转速上升 E 增大,电流会自动回落。所以启动电阻必须逐级切除,否则到了稳态,1.8 Ω 上的压降会让转速永远上不去。
例 3:机械特性与负载特性的交点
工作点就是两条线的交点,所以列出方程即可:
- 恒转矩负载:
n = n0 − β·TL,直接代入; - 风机负载
TL = k·n²:代入得n = n0 − β·k·n²,即βk·n² + n − n0 = 0,取正根。
(工程上取 k 使额定转速处的负载恰好等于额定转矩,也就是 k = T_N / n_N²。)
text
测量结果(转速单位 r/min)
load U=220V U=110V
const-T 40N.m 1555.7592 730.7592
fan k*n^2 1500.0000 784.0208读法:
- 220 V 下风机负载的工作点恰好落在
1500——这是故意取的k,让额定点重合,便于对照; - 电压减半后,恒转矩负载的转速掉到
730.76(降幅 53%),而风机负载只掉到784.02(降幅 48%); - 那 5 个百分点的差别,就是"负载转矩自己也在随转速平方下降"的功劳。
这是一个容易答错的考点:有人以为"电压减半、转速就减半",那只对恒转矩负载近似成立;风机负载下工作点会自己往回找。
例 4:拖动运动方程与加速时间
设系统转动惯量 J = 0.5 kg·m²,电机从静止加速到 1500 r/min,加速过程中电磁转矩 120 N·m、恒转矩负载 40 N·m。
第一步,角速度增量:Δω = 2π·n/60 = 2π × 1500 / 60 = 157.079633 rad/s
第二步,角加速度:dω/dt = (T − TL)/J = (120 − 40)/0.5 = 160 rad/s²
第三步,加速时间(SI 口径):
t = J·Δω / (T − TL) = 0.5 × 157.079633 / 80 = 0.981748 s
第四步,换 GD² 口径核算:
GD² = 4gJ = 4 × 9.81 × 0.5 = 19.62 N·m²
t = (GD²/375) × Δn / (T − TL) = (19.62/375) × 1500 / 80 = 0.981 s
两个结果差 0.076%——正是 375 取整造成的。两个口径都对,但报答案时要说清用的是哪一个。
例 5:异步电机的转差率与变频
第一步,同步转速:n1 = 60·f1/p = 60 × 50 / 2 = 1500 r/min
第二步,转差率换转速:s = 0.03 导致 n = (1 − 0.03) × 1500 = 1455 r/min
第三步,转子频率:f2 = s·f1 = 0.03 × 50 = 1.5 Hz
第四步,变频到 30 Hz:n1 = 60 × 30 / 2 = 900 r/min,转差率近似不变,于是 n = 0.97 × 900 = 873 r/min
第五步,V/f 约束:额定 380 V / 50 Hz = 7.6,30 Hz 时应给 U1 = 7.6 × 30 = 228 V
第六步,额定转矩(供对照):T_N = 9550 × 10 / 1455 = 65.635739 N·m
例 6:C 实现——工作点、启动限流、拖动方程
/* motor.c —— 直流电机拖动 + 异步电机:工作点、启动限流、加速时间
* 只用标准库;本机无 gcc,未编译,仅作可读实现。
* 编译:gcc -O2 -o motor motor.c -lm
*/
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
#define G_ACC 9.81
#define K_T 9.55 /* T = 9.55 * Ce * Phi * Ia (N.m, r/min) */
/* 直流他励电机铭牌 */
#define U_N 220.0 /* 额定电枢电压 V */
#define I_N 50.0 /* 额定电枢电流 A */
#define R_A 0.4 /* 电枢回路电阻 ohm */
#define N_N 1500.0 /* 额定转速 r/min */
#define P_N 10.0 /* 额定功率 kW */
static double g_CePhi, g_CtPhi, g_beta;
static void dc_setup(void)
{
double E_N = U_N - I_N * R_A;
g_CePhi = E_N / N_N; /* V/(r/min) */
g_CtPhi = K_T * g_CePhi; /* (N.m)/A */
g_beta = R_A / (g_CePhi * g_CtPhi); /* r/(min.N.m) */
}
/* 恒转矩负载:机械特性 n = n0 - beta*TL 直接给出工作点 */
static double n_const_torque(double U, double TL)
{
return U / g_CePhi - g_beta * TL;
}
/* 风机负载:beta*k*n^2 + n - n0 = 0,取正根 */
static double n_fan(double U, double k)
{
double a = g_beta * k;
double n0 = U / g_CePhi;
return (-1.0 + sqrt(1.0 + 4.0 * a * n0)) / (2.0 * a);
}
/* 拖动运动方程(SI 口径):t = J*dw/(T - TL) */
static double accel_time(double J, double dn_rpm, double T, double TL)
{
double dw = dn_rpm * 2.0 * PI / 60.0;
return J * dw / (T - TL);
}
/* 同一件事的工程口径:t = GD2/375 * dn/(T - TL) */
static double accel_time_gd2(double GD2, double dn_rpm, double T, double TL)
{
return GD2 / 375.0 * dn_rpm / (T - TL);
}
int main(void)
{
double TL_N, k_fan, J, dn, T, TL, GD2;
dc_setup();
TL_N = g_CtPhi * I_N; /* 额定电磁转矩 */
printf("=== 一、直流他励电机基本量 ===\n");
printf(" E_N = %.6f V\n", U_N - I_N * R_A);
printf(" CePhi = %.6f V/(r/min)\n", g_CePhi);
printf(" CtPhi = %.6f (N.m)/A\n", g_CtPhi);
printf(" T_N = %10.6f N.m (9550*P/n = %10.6f)\n", TL_N, 9550.0 * P_N / N_N);
printf(" n0 = %.6f r/min\n", U_N / g_CePhi);
printf(" dn_N = %.6f r/min (%.4f %%)\n",
U_N / g_CePhi - N_N, (U_N / g_CePhi - N_N) / N_N * 100.0);
printf(" beta = %.6f r/(min.N.m)\n", g_beta);
printf("\n");
printf("=== 二、启动电流与限流电阻 ===\n");
printf(" 直接启动 Ia = %.6f A = %.4f x In\n", U_N / R_A, U_N / R_A / I_N);
printf(" 限流到 100 A: R_total = %.6f ohm, R_add = %.6f ohm\n",
U_N / 100.0, U_N / 100.0 - R_A);
printf("\n");
printf("=== 三、机械特性与工作点 ===\n");
k_fan = TL_N / (N_N * N_N); /* 使 n = 1500 时负载恰为额定转矩 */
printf(" %-14s %12s %12s\n", "load", "U=220V", "U=110V");
printf(" %-14s %12.4f %12.4f\n", "const-T 40N.m",
n_const_torque(220.0, 40.0), n_const_torque(110.0, 40.0));
printf(" %-14s %12.4f %12.4f\n", "fan k*n^2",
n_fan(220.0, k_fan), n_fan(110.0, k_fan));
printf("\n");
printf("=== 四、拖动运动方程与加速时间 ===\n");
J = 0.5; dn = 1500.0; T = 120.0; TL = 40.0;
GD2 = 4.0 * G_ACC * J;
printf(" dw = %.6f rad/s\n", dn * 2.0 * PI / 60.0);
printf(" dw/dt = %.6f rad/s^2\n", (T - TL) / J);
printf(" t(J) = %.6f s\n", accel_time(J, dn, T, TL));
printf(" GD2 = %10.6f N.m^2, t(GD2) = %.6f s\n",
GD2, accel_time_gd2(GD2, dn, T, TL));
printf("\n");
printf("=== 五、异步电机 转差率与变频 ===\n");
printf(" n1 = %.6f r/min\n", 60.0 * 50.0 / 2.0);
printf(" s=0.03 -> n = %.6f r/min, f2 = %.4f Hz\n",
60.0 * 50.0 / 2.0 * 0.97, 0.03 * 50.0);
printf(" 30 Hz -> n1 = %.6f r/min, n = %.6f r/min\n",
60.0 * 30.0 / 2.0, 60.0 * 30.0 / 2.0 * 0.97);
printf(" V/f : 380/50 -> 30 Hz 时 U = %.6f V\n", 380.0 * 30.0 / 50.0);
printf(" T_N = %10.6f N.m\n", 9550.0 * 10.0 / 1455.0);
return 0;
}
c 本站为静态站,不提供在线运行;可复制到本地用 gcc / python 执行
预期输出:
=== 一、直流他励电机基本量 ===
E_N = 200.000000 V
CePhi = 0.133333 V/(r/min)
CtPhi = 1.273333 (N.m)/A
T_N = 63.666667 N.m (9550*P/n = 63.666667)
n0 = 1650.000000 r/min
dn_N = 150.000000 r/min (10.0000 %)
beta = 2.356021 r/(min.N.m)
=== 二、启动电流与限流电阻 ===
直接启动 Ia = 550.000000 A = 11.0000 x In
限流到 100 A: R_total = 2.200000 ohm, R_add = 1.800000 ohm
=== 三、机械特性与工作点 ===
load U=220V U=110V
const-T 40N.m 1555.7592 730.7592
fan k*n^2 1500.0000 784.0208
=== 四、拖动运动方程与加速时间 ===
dw = 157.079633 rad/s
dw/dt = 160.000000 rad/s^2
t(J) = 0.981748 s
GD2 = 19.620000 N.m^2, t(GD2) = 0.981000 s
=== 五、异步电机 转差率与变频 ===
n1 = 1500.000000 r/min
s=0.03 -> n = 1455.000000 r/min, f2 = 1.5000 Hz
30 Hz -> n1 = 900.000000 r/min, n = 873.000000 r/min
V/f : 380/50 -> 30 Hz 时 U = 228.000000 V
T_N = 65.635739 N.m三处值得留意的写法:
n_fan解的是二次方程的正根,不是"迭代求解"。βk·n² + n − n0 = 0有形如(−1 + √(1 + 4an0)) / (2a)的闭式解,不要上来就写牛顿迭代——先把方程整理一遍,很多"数值问题"其实是代数问题。%10.6f里的10是宽度、不是精度。%10.6f表示"至少占 10 个字符、小数点后 6 位",所以63.666667前面会补一个空格。表格对齐靠的就是这个宽度,写成%.6f就会参差不齐。- 表头一律用 ASCII(
load、const-T 40N.m、fan k*n^2)。因为 C 的%-14s是按字节补齐的,用中文表头必然错位——中文字符在 UTF-8 里占 3 个字节,printf可不知道"一个汉字该算几列"。想让输出表在中文环境下对齐,要么全用 ASCII 表头,要么自己做显示宽度换算。
例 7:Python——把五节复算一遍,再加一节变频节能
# 电机与拖动:直流电机工作点、启动限流、拖动方程、异步转差率、变频调速
import math
PI = math.pi
G_ACC = 9.81
K_T = 9.55 # T = 9.55 * Ce * Phi * Ia (N.m, r/min)
# ---- 直流他励电机铭牌 ----
U_N, I_N, R_A, N_N, P_N = 220.0, 50.0, 0.4, 1500.0, 10.0
E_N = U_N - I_N * R_A # 额定反电动势
CePhi = E_N / N_N # 电动势常数 x 磁通
CtPhi = K_T * CePhi # 转矩常数 x 磁通
T_N = CtPhi * I_N # 额定电磁转矩
n0 = U_N / CePhi # 理想空载转速
beta = R_A / (CePhi * CtPhi) # 机械特性斜率 r/(min.N.m)
line = []
line.append("=== 一、直流他励电机基本量 ===")
line.append(f" E_N = {E_N:.6f} V")
line.append(f" CePhi = {CePhi:.6f} V/(r/min)")
line.append(f" CtPhi = {CtPhi:.6f} (N.m)/A")
line.append(f" T_N = {T_N:>10.6f} N.m (9550*P/n = {9550.0 * P_N / N_N:>10.6f})")
line.append(f" n0 = {n0:.6f} r/min")
line.append(f" dn_N = {n0 - N_N:.6f} r/min ({(n0 - N_N) / N_N * 100.0:.4f} %)")
line.append(f" beta = {beta:.6f} r/(min.N.m)")
line.append("")
line.append("=== 二、启动电流与限流电阻 ===")
Ia_start = U_N / R_A
line.append(f" 直接启动 Ia = {Ia_start:.6f} A = {Ia_start / I_N:.4f} x In")
R_total = U_N / 100.0
line.append(f" 限流到 100 A: R_total = {R_total:.6f} ohm, R_add = {R_total - R_A:.6f} ohm")
line.append("")
def n_const_torque(U, TL):
"""恒转矩负载:机械特性与水平负载线相交"""
return U / CePhi - beta * TL
def n_fan(U, k):
"""风机负载 TL = k*n^2:解 beta*k*n^2 + n - n0 = 0 的正根"""
a = beta * k
return (-1.0 + math.sqrt(1.0 + 4.0 * a * (U / CePhi))) / (2.0 * a)
k_fan = T_N / (N_N ** 2) # 使 n = 1500 r/min 时负载恰为额定转矩
line.append("=== 三、机械特性与工作点 ===")
line.append(f" {'load':<14} {'U=220V':>12} {'U=110V':>12}")
line.append(f" {'const-T 40N.m':<14} {n_const_torque(220.0, 40.0):>12.4f} {n_const_torque(110.0, 40.0):>12.4f}")
line.append(f" {'fan k*n^2':<14} {n_fan(220.0, k_fan):>12.4f} {n_fan(110.0, k_fan):>12.4f}")
line.append("")
line.append("=== 四、拖动运动方程与加速时间 ===")
J, dn, T, TL = 0.5, 1500.0, 120.0, 40.0
dw = dn * 2.0 * PI / 60.0
line.append(f" dw = {dw:.6f} rad/s")
line.append(f" dw/dt = {(T - TL) / J:.6f} rad/s^2")
line.append(f" t(J) = {J * dw / (T - TL):.6f} s")
GD2 = 4.0 * G_ACC * J
line.append(f" GD2 = {GD2:>10.6f} N.m^2, t(GD2) = {GD2 / 375.0 * dn / (T - TL):.6f} s")
line.append("")
line.append("=== 五、异步电机 转差率与变频 ===")
f1, p, s = 50.0, 2.0, 0.03
n1 = 60.0 * f1 / p
line.append(f" n1 = {n1:.6f} r/min")
line.append(f" s=0.03 -> n = {n1 * (1 - s):.6f} r/min, f2 = {s * f1:.4f} Hz")
n1b = 60.0 * 30.0 / p
line.append(f" 30 Hz -> n1 = {n1b:.6f} r/min, n = {n1b * (1 - s):.6f} r/min")
line.append(f" V/f : 380/50 -> 30 Hz 时 U = {380.0 * 30.0 / 50.0:.6f} V")
line.append(f" T_N = {9550.0 * 10.0 / 1455.0:>10.6f} N.m")
line.append("")
line.append("=== 六、变频调速下的功率(风机负载,P 与 n^3 成正比)===")
line.append(f" {'f(Hz)':>8} {'n1(r/min)':>11} {'n(r/min)':>10} {'n/n_N':>9} {'P/P_N':>9}")
for fq in (50.0, 40.0, 30.0, 20.0):
n1x = 60.0 * fq / p
nx = n1x * (1 - s)
r = nx / (n1 * (1 - s))
line.append(f" {fq:>8.1f} {n1x:>11.1f} {nx:>10.1f} {r:>9.4f} {r ** 3:>9.4f}")
print("\n".join(line))
python 本站为静态站,不提供在线运行;可复制到本地用 gcc / python 执行
预期输出:
=== 一、直流他励电机基本量 ===
E_N = 200.000000 V
CePhi = 0.133333 V/(r/min)
CtPhi = 1.273333 (N.m)/A
T_N = 63.666667 N.m (9550*P/n = 63.666667)
n0 = 1650.000000 r/min
dn_N = 150.000000 r/min (10.0000 %)
beta = 2.356021 r/(min.N.m)
=== 二、启动电流与限流电阻 ===
直接启动 Ia = 550.000000 A = 11.0000 x In
限流到 100 A: R_total = 2.200000 ohm, R_add = 1.800000 ohm
=== 三、机械特性与工作点 ===
load U=220V U=110V
const-T 40N.m 1555.7592 730.7592
fan k*n^2 1500.0000 784.0208
=== 四、拖动运动方程与加速时间 ===
dw = 157.079633 rad/s
dw/dt = 160.000000 rad/s^2
t(J) = 0.981748 s
GD2 = 19.620000 N.m^2, t(GD2) = 0.981000 s
=== 五、异步电机 转差率与变频 ===
n1 = 1500.000000 r/min
s=0.03 -> n = 1455.000000 r/min, f2 = 1.5000 Hz
30 Hz -> n1 = 900.000000 r/min, n = 873.000000 r/min
V/f : 380/50 -> 30 Hz 时 U = 228.000000 V
T_N = 65.635739 N.m
=== 六、变频调速下的功率(风机负载,P 与 n^3 成正比)===
f(Hz) n1(r/min) n(r/min) n/n_N P/P_N
50.0 1500.0 1455.0 1.0000 1.0000
40.0 1200.0 1164.0 0.8000 0.5120
30.0 900.0 873.0 0.6000 0.2160
20.0 600.0 582.0 0.4000 0.0640前五节与 C 段逐位一致——这不是巧合,而是我刻意让两段程序走同一条计算路径(同样的公式、同样的运算次序)。两套独立实现给出同一串数字,比任何自检都让人放心:一处有笔误,对照就露馅。
第六节才是这一章的落点:变频把 f 从 50 Hz 降到 30 Hz,转速落到 60%,而功率只剩 21.6%。表里 P/P_N 一列与 n/n_N 的立方完全吻合——这就是风机、水泵变频改造的经济性来源,也是变频器能在工业界铺开的根本原因。
考点
- 直流他励电机的三个方程:
U = E + Ia·Ra、E = Ce·Φ·n、T = Ct·Φ·Ia。第三个方程里没有转速——转矩只由电流决定,这是直流电机调速性能好的根源。 Ct = 9.55·Ce由功率平衡推出,不是实验拟合。额定转矩的两个算法T_N = Ct·Φ·I_N与T_N = 9550·P_N/n_N必须相等。- 机械特性是直线:
n = n0 − β·T,其中n0 = U/(Ce·Φ)、β = Ra/(Ce·Ct·Φ²)。 n0只由电压决定,β只由电阻与磁通决定——所以调压"平移"特性线、串电阻"扳陡"特性线。调速方法的三分由此而来。- 工作点 = 电机特性与负载特性的交点,不是电机单方面决定的。风机负载
TL = k·n²,恒转矩负载TL = 常数。 - 直接启动电流
Ist = U/Ra,是额定的十几倍(本例题 11 倍)。限流到2·I_N需串1.8 Ω。启动电阻必须逐级切除,否则稳态转速上不去。 - 静差率 =
Δn_N/n_N(本例题150/1500 = 10%)。 - 异步电机的命根子是转差率
s = (n1 − n)/n1,s不能为 0——为 0 就没有转矩。额定s约0.03。 - 同步转速
n1 = 60·f1/p,与电压无关、只与频率和极对数有关。转子频率f2 = s·f1(本例题只有1.5 Hz)。 T_max ∝ U1²/f1——这是"为什么变频要同时调U"的伏笔。- V/f 控制:
U1/f1 = 常数。基频以下恒转矩、基频以上恒功率。 - 风机泵类负载
TL ∝ n²、功率P ∝ n³:转速 80% → 功率 51%;60% → 21.6%。这是变频节能的算术依据。 - 拖动运动方程
T − TL = J·dω/dt,工程口径T − TL = (GD²/375)·dn/dt,GD² = 4gJ。375是取整,两套口径有万分之几的差。 - 稳定工作点判据
dTL/dn > dT/dn:负载线要比电机线陡。判据的道理与频域的稳定性判据同源——看扰动会不会自己长回去。 - 易错:把"电压减半、转速减半"当定理(只对恒转矩负载近似成立,风机负载下转速掉得更少);把
Ct = 9.55·Ce记反成Ce = 9.55·Ct(转矩常数比电动势常数大,因为一转等于2π弧度);把GD²与J直接当同一个量(差4g ≈ 39.24倍);以为变频"只改频率"(U必须跟着改,否则磁通饱和);以为异步电机"转速等于同步转速"(那正是它没有转矩的状态)。
小结
- 这一章把前六章悬空的
G(s)落到了地上:最常见的被控对象就是电机,它的方程就是这几个。 - 直流他励电机由三个方程刻画:
U = E + Ia·Ra、E = Ce·Φ·n、T = Ct·Φ·Ia,联立得机械特性n = n0 − β·T。 - 本例题的核算链:
E_N = 200 V→Ce·Φ = 0.133333→Ct·Φ = 1.273333→T_N = 63.666667 N·m(两条路互证)→n0 = 1650 r/min→Δn_N = 150 r/min(静差率 10%)→β = 2.356021。 - 工作点由电机特性与负载特性共同决定:恒转矩负载下 110 V 降到
730.76 r/min,风机负载下只降到784.02 r/min——负载自己会随转速平方退让。 - 直接启动电流
11 × I_N,限流到2·I_N需串1.8 Ω,且必须逐级切除。 - 拖动方程给出加速时间为一个可算的量:
t = J·Δω/(T − TL) = 0.981748 s,GD²口径给0.981 s,差0.076%(375取整所致)。 - 异步电机的全部行为由转差率
s索引:n1 = 60f1/p、n = (1−s)n1、f2 = s·f1。额定s = 0.03时n = 1455 r/min、f2 = 1.5 Hz。 - 变频调速的约束是
U1/f1恒定:基频以下恒转矩、以上恒功率。30 Hz 时应给228 V,转速落到873 r/min。 - 风机负载
P ∝ n³:转速 60% → 功率 21.6%。这是变频节能的全部秘密。 - 稳定工作点判据
dTL/dn > dT/dn,与频域的稳定性判据同源。
回到分支:这一章把前面几章算出来的控制量送进了物理世界——PID 输出的是电压与电流,LQR 的状态向量里就有转速与电流(正是这一章的模型给出的),而抗饱和里的"限幅"、极点配置里的"执行器上限",物理来源都在这里:电压有上限、电流有限制、磁路会饱和。 它同时是两条分支的下游——功率级器件属于 电力电子与电磁场,而电机驱动的实时实现用的正是 嵌入式实时控制 那一套节拍与中断。
到这里,auto 分支 9 篇全部收口。它也是整个站点的最后一门分支课程——silicon、circuit、lang、math、soft、elec、embed、auto 八门分支课,到这一页为止全部写完。
从一粒硅出发,走到这里:器件 → 门 → 机器 → 语言 → 系统 → 网络(主线六层),数据结构与数学(并列两层),再到八门分支课——自底向上的这条链,终于接上了它的最后一环:把算出来的数字,变成真实世界里转动的轴。 想回到起点重走一遍,从首页那张地图开始。
下一篇:回到起点 · 由硅到 C
评论(0)
当前浏览器不允许本地存储,评论无法保存。
还没有评论,来说两句。