control-plot-lab-github:在 DSH 里画 Bode、Nyquist 与根轨迹并看推导步骤

前言

在 DeepSeek Harness(DSH)里和模型讨论经典控制时,传递函数往往停在文字或零散公式上:幅相曲线、Nyquist 绕行、根轨迹分支需要另开 MATLAB / Python 或手算核对,和对话上下文也容易脱节。下面介绍社区插件 control-plot-lab-github(仓库名 dsh-control-plot-lab,维护者 Mhk0416):在浏览器侧根据连续时间有理传递函数 G(s) 绘制 Bode 图、Nyquist 图与根轨迹,并在面板右侧给出与图形对应的逐步计算说明。插件通过 GitHub 发布,不依赖 npm;安装完成后绘图与步骤推演在本地运行。

这是什么

一句话定位:面向连续时间、集中参数有理传递函数的「三图 + 步骤」工作台,作为 DSH Web / Desktop 客户端插件注入对话界面。

核心功能

三张图各自做什么

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,不能同时启用。

打开方式:

  1. 聊天输入框左侧工具栏的「控制绘图」曲线图标;
  2. 页面右下角偏上的蓝色浮动按钮「控制绘图」(可拖动,位置会记住)。

点击后全屏面板;Esc 或点击遮罩关闭。

典型用法

  1. 在 DSH 中完成上述安装并刷新。
  2. 从工具栏或浮动按钮打开「控制绘图」面板。
  3. 按 README 支持的语法输入 G(s)(需要根轨迹时在式子中保留 K)。
  4. 切换 Bode / Nyquist / 根轨迹,对照右侧步骤与图上标注(ωc、PM/GM、包围数或稳定 K 范围等)。
  5. 对高阶系统若提示降阶,将分子分母阶次控制在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜