3. 物理模型与控制器接口设计

在Simulink中把直流电机物理模型与开环控制器连接起来,真正困难的地方往往不是“拖一根线”,而是让两侧对同一根信号的理解完全一致:控制器输出的电压,物理模型是否按“伏特”接收?物理模型反馈的转速,控制器是否按“rad/s”理解?两侧的采样时间是否兼容?如果这些接口约定没有对齐,仿真可能不报错,却给出完全错误的结果。本节围绕信号连接、单位匹配和采样时间设置三个核心问题,完成直流电机物理模型与开环控制器的接口搭建。

一、接口的本质:三类信号的约定

物理模型与控制器之间的接口,本质上是若干条信号通道,每条通道都需要明确三件事:信号方向(谁输出、谁接收)、物理量与单位(数值代表什么、以什么单位计)、采样时间(何时更新、是否连续)。以直流电机为例,控制器到物理模型的通常是电枢电压 V(单位 V),物理模型到控制器的通常是转速 ω(单位 rad/s)和电枢电流 i(单位 A)。这三条通道构成了最基础的开环接口。

需要特别强调的是参照约定。本节统一采用:电枢电压 V 为正时电机正转,转速 ω 取正值;负载转矩 T_L 与转速方向相反时取负值。全文与图示均遵循这一约定,后续若切换参照系必须显式说明。

开环控制器 Constant / Step 输出:V (V) 直流电机物理模型 DC Motor (Simscape) 输入:V,输出:ω, i V (V) 电压指令 ω (rad/s) 转速反馈 i (A) 电流反馈 接口约定:方向 / 单位 / 采样时间 V正→正转,ω正→正转,T_L反向为负 离散采样 Ts=1e-3 s 连续求解器

二、信号连接:从控制器到物理模型的通道搭建

在Simulink中搭建这条接口,推荐按“先定物理模型端口,再配控制器输出”的顺序进行。直流电机物理模型(如Simscape Electrical中的DC Motor模块)通常有电枢电压输入端口和机械转动端口。若使用理想转动惯量加转矩源的简化模型,则输入为电枢电压 V,输出为转速 ω。

控制器侧,开环控制最简单的实现是一个Constant模块输出恒定电压,或一个Step模块在指定时刻从0跳变到目标电压。把Constant模块的输出端口连接到物理模型的电压输入端口,即完成第一条通道。此时需要注意:Simscape物理模型端口是“物理信号”端口,而Constant输出的是Simulink信号,两者不能直接相连,必须经过Simulink-PS Converter模块。这是初学者最容易忽略的一步。

反馈通道方向相反:物理模型的转速输出端口是物理信号,需要经过PS-Simulink Converter转换为Simulink信号,才能接入Scope或后续控制器。若本节只做开环,反馈通道主要用于观测,但仍需正确转换,否则无法在Scope中看到转速曲线。

连接顺序(开环):
[Constant V] → [Simulink-PS Converter] → [DC Motor 电压输入]
[DC Motor 转速输出] → [PS-Simulink Converter] → [Scope]

关键模块参数示例:
Constant: Value = 12        % 单位 V
Simulink-PS Converter: 单位 = V
PS-Simulink Converter: 单位 = rad/s
DC Motor: 电枢电阻 Ra = 1 Ω,电感 La = 0.5 mH
          转动惯量 J = 0.01 kg·m²,阻尼 b = 0.1 N·m·s

三、单位匹配:让数值真正“对得上”

单位匹配是接口设计中最隐蔽的坑。Simulink本身不强制单位,一个数值12既可以理解为12 V,也可以理解为12 rad/s。Simscape的转换模块提供了单位设置选项,必须显式指定。例如Simulink-PS Converter的输入单位应设为V,PS-Simulink Converter的输出单位应设为rad/s。如果这里设错,仿真不会报错,但物理模型收到的电压可能被当成其他物理量,结果完全失真。

另一个常见问题是转速单位。物理模型内部可能以rad/s计算,而工程习惯常用rpm。若控制器需要rpm,必须在PS-Simulink Converter后加一个增益模块,增益为 60/(2π) ≈ 9.5493,把rad/s换算为rpm。反之,若控制器输出rpm指令,则需乘以 2π/60 ≈ 0.10472 转换为rad/s。这个换算关系必须在接口处明确标注,避免后续调试时混淆。

单位换算不要依赖“心算”。建议在接口处放置Gain模块并命名,例如“radps_to_rpm”,增益值写为60/(2*pi),这样参数来源清晰,后续修改也有据可查。

四、采样时间设置:离散与连续的协调

采样时间设置决定了接口两侧能否“同步对话”。物理模型通常由连续求解器处理,采样时间为0(连续)。而控制器如果是数字控制器,往往以固定采样周期 Ts 运行,例如 Ts = 1e-3 s。当离散控制器与连续物理模型连接时,Simulink会在两者之间自动插入零阶保持器(ZOH),把离散信号保持为连续信号。这一过程本身是合理的,但需要确认 Ts 足够小,否则保持带来的延迟会影响仿真精度。

经验上,Ts 应小于物理模型最快时间常数的1/10。以本节示例参数为例,电气时间常数 τ_e = La/Ra = 0.5e-3/1 = 0.5 ms,机械时间常数通常更大。若取 Ts = 1e-3 s,已经接近电气时间常数的2倍,可能无法准确捕捉电流动态。更稳妥的选择是 Ts = 1e-4 s 或更小。若只关注机械转速,Ts = 1e-3 s 通常可以接受,但需要在结果中观察电流波形是否出现明显阶梯。

信号方向单位采样时间转换模块
电枢电压 V控制器→物理模型V离散 TsSimulink-PS Converter
转速 ω物理模型→控制器rad/s连续PS-Simulink Converter
电枢电流 i物理模型→控制器A连续PS-Simulink Converter

五、接口搭建后的检查与结果判读

接口搭建完成后,不要急于看最终曲线,先做三项检查。第一,检查转换模块的单位设置是否与信号物理量一致,特别是Simulink-PS Converter的输入单位和PS-Simulink Converter的输出单位。第二,检查采样时间是否匹配,可在模型配置参数中查看求解器类型和固定步长。第三,用Scope同时观察电压、转速和电流三条曲线,确认电压在设定时刻跳变、转速平滑上升、电流在启动瞬间有冲击后回落。

以 V = 12 V、Ra = 1 Ω 为例,稳态电枢电流约为 i = V/Ra = 12 A(忽略反电动势时),实际会因反电动势而小于该值。若仿真结果显示电流远大于12 A或转速为负,应优先检查单位设置和信号方向,而不是怀疑物理模型参数。开环接口的正确性,最终体现在“给定电压—转速响应”的单调关系上:电压增大,稳态转速增大;电压为零,转速衰减至零。

建议在接口处添加信号标签(Signal Label),例如“V_cmd”“omega_fb”“i_fb”,这样在复杂模型中能快速定位每条通道,也便于后续把开环扩展为闭环时复用接口。

完成以上步骤后,直流电机物理模型与开环控制器的接口即搭建完毕。此时模型具备了一个可运行的信号通路:控制器给出电压,物理模型响应转速和电流,反馈信号可被观测。这个接口结构也是后续加入PID控制器、实现闭环调速的基础,接口的单位约定和采样时间设置将直接决定闭环系统的稳定性与精度。