前言¶
在 DeepSeek Harness(DSH)里和模型讨论经典控制时,传递函数往往停在文字或零散公式上:幅相曲线、Nyquist 绕行、根轨迹分支需要另开 MATLAB / Python 或手算核对,和对话上下文也容易脱节。下面介绍社区插件 control-plot-lab-github(仓库名 dsh-control-plot-lab,维护者 Mhk0416):在浏览器侧根据连续时间有理传递函数 G(s) 绘制 Bode 图、Nyquist 图与根轨迹,并在面板右侧给出与图形对应的逐步计算说明。插件通过 GitHub 发布,不依赖 npm;安装完成后绘图与步骤推演在本地运行。
这是什么¶
一句话定位:面向连续时间、集中参数有理传递函数的「三图 + 步骤」工作台,作为 DSH Web / Desktop 客户端插件注入对话界面。
- 名称:
dsh-control-plot-lab(package.jsonversion1.0.0,MIT) - 安装源:GitHub — Mhk0416/control-plot-lab-github
- 社区目录:SkillHub 插件页
- 运行要求:DeepSeek Harness
>=0.2.1(见package.json的engines.dsh)
核心功能¶
三张图各自做什么¶
Bode:幅频(dB)与相频(°)共用对数频率轴;可标转折频率、剪切频率 ωc、相位穿越频率 ωg、相位裕度 PM、增益裕度 GM;渐近线与网格可开关。含纯滞后时使用精确的 e^(-jωτ)。右侧步骤覆盖化为多项式、代入 s=jω、极点/零点、型别与低频斜率、转折频率、PM/GM、延迟裕度、闭环稳定性等。
Nyquist:绘制 ω: 0→∞ 主曲线及镜像;标 −1 点、起点/终点、实轴交点;对右半平面极点用半圆绕行并绘制无穷远圆弧;计算开环右半平面极点数 P、顺时针包围数 N、Z=P+N。含纯滞时时曲线仍精确,但包围数不再有限,界面改为延迟裕度与二阶 Padé 近似判断稳定性。分子分母同阶时,无穷远圆弧映射为首项系数比。
根轨迹:标准形式 1 + K·G(s)=0;若式中出现符号 K,会自动整理为 A(s)+K·B(s)=0,支持 K 在分子或分母。图上标极点、零点、分支箭头、渐近线、分离/会合点、虚轴交点,并给出实轴段、渐近线质心/角度、出射角、稳定 K 范围。含纯滞后时根轨迹用二阶 Padé 近似并在图中标注;Bode/Nyquist 仍用精确滞后。
输入与交互¶
拉普拉斯变量固定为 s,可变增益参数为 K。支持常见写法,例如:
10/(s*(s+1)*(s+2))
(s+2)/(s^2+2*s+5)
s/(s+1)^3
3/[(K*s+3)*(s+1)]
e^(-0.5s)/(s+1)
exp(-0.3*s)/(s^2+2*s+2)
乘号可省略;支持 + - * / ^、圆括号与方括号。纯滞后须写成 e^(-τs) 或 exp(-τs),且只能作为乘性因子。K 仅允许一次方。当前版本传递函数最高 12 阶(不含滞后 Padé 额外增加的 2 阶)。
每张图右上角提供缩放 +、−、⟲:滚轮或按钮缩放,放大后可拖动平移,⟲ 复位。
工程结构(便于自查)¶
仓库内 Host 为 index.js,预构建客户端为 client.js;核心数值在 src/engine.js,React 面板与 SVG 在 src/ui.js。GitHub 安装不会自动执行 build.mjs,因此发布包依赖已提交的 client.js。
安装与启用¶
安装时需要能访问 GitHub;装好后插件本地运行,断网也可画图与看步骤。
# Web profile
dsh plugin --profile web add github:Mhk0416/control-plot-lab-github
# DSH Desktop 的 profile 通常叫 desktop
dsh plugin --profile desktop add github:Mhk0416/control-plot-lab-github
安装后刷新页面一次;也可从插件市场的 GitHub 条目一键安装。
若曾使用本地开发版 @local/control-plot-lab,须先在插件管理中移除或停用再装 GitHub 版——两者共用同一 bundle 行 id,不能同时启用。
打开方式:
- 聊天输入框左侧工具栏的「控制绘图」曲线图标;
- 页面右下角偏上的蓝色浮动按钮「控制绘图」(可拖动,位置会记住)。
点击后全屏面板;Esc 或点击遮罩关闭。
典型用法¶
- 在 DSH 中完成上述安装并刷新。
- 从工具栏或浮动按钮打开「控制绘图」面板。
- 按 README 支持的语法输入
G(s)(需要根轨迹时在式子中保留K)。 - 切换 Bode / Nyquist / 根轨迹,对照右侧步骤与图上标注(
ωc、PM/GM、包围数或稳定K范围等)。 - 对高阶系统若提示降阶,将分子分母阶次控制在 12 阶以内再试。
维护者在仓库中提供回归测试入口,供核对数值逻辑:
node test/engine.test.cjs
适用场景与注意¶
适合:在 DSH 对话旁快速验证本科/研究生经典控制作业、面试题中的传递函数;需要同时看图与推导链条、又不方便切到重型 CAE 环境的场合。
已知限制(以 README 为准):
- 仅连续时间、集中参数、有理传递函数;不支持离散系统、状态空间直接输入。
- 纯滞后仅作乘性因子;根轨迹侧为 Padé 近似。
- 含纯滞后时 Nyquist 包围数解释会切换为延迟裕度 / Padé 稳定性判断。
- 阶数上限 12。
安全与许可:插件随当前 DSH 进程在本地执行客户端逻辑;安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系,本文描述的是社区贡献插件而非内置应用。
结尾¶
control-plot-lab-github 把 Bode、Nyquist、根轨迹和配套计算步骤收进 DSH 界面,减少「讨论控制理论」与「出图验算」之间的切换。需要安装命令与输入细则时,以仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/Mhk0416/control-plot-lab-github
- GitHub:https://github.com/Mhk0416/control-plot-lab-github