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
羽毛球分组比赛记分
小程序二维码

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

小夜