用途:该技能用于从 Simulink 模型获取线性时不变(LTI,如 tf、ss、zpk)或线性参数变化(LPV)模型,适合控制设计中的模型线性化、工作点批量分析与 LPV 建模。不适用于基于仿真的频率响应估计(应改用 simulink-frequency-response),也不适用于不涉及 Simulink 模型的场景。
主要能力:核心流程分四阶段。一是定义线性化 I/O 点,可用 linio 指定、用 getlinio 读取已有线性化点,或在存在根级 Inport/Outport 时省略;若目标是某个模块,可将其路径作为 io 参数做开环线性化。二是确定工作点,可用模型初始条件、operspec 配合 findop 做稳态配平、用 linearize(mdl, tSnapshot) 取仿真快照,或在参数网格上批量处理。三是调用 linearize(mdl, io, op, params, blocksub, opts) 执行线性化,各参数除 mdl 外均可选;可用 linearizeOptions 设置 SampleTime,批量 LPV 需 BatchConsistency="on" 与 StoreOffsets="system",再经 ssInterpolant 构建 LPV 模型;也可用 slLinearizer 单次编译提取多个传递函数(getIOTransfer、getSensitivity、getLoopTransfer 等)。四是诊断,启用 StoreAdvisor=true 后调用 advise(info.Advisor) 并捕获输出,用 linqueryHasDiagnostics 定位问题模块。
使用限制与注意:linio 点必须引用模块输出端口,不能设在 Outport、Terminator、Scope 等无输出端口的模块上,需向上游追溯源模块;批量构建工作点数组须用 copy(opBase),因 operspec 是句柄类;advise 必须接收输出参数,否则会启动界面。应使用 linearize 或 slLinearizer,避免旧的 linmod、linmod2、linmodv5、dlinmod。遇到硬不连续(PWM、继电器、死区等)时解析线性化可能返回零,需回退到频率响应估计。LPV 模型可用 lsim 仿真并与 Simulink 对比验证。
适用场景:控制系统设计中的线性模型提取、跨工作点与参数变化的批量线性化、LPV 建模,以及线性化结果为预期外增益或动态特性时的排查。具体版本要求与依赖(如各函数引入版本)见资料所列。