Hongru 7edbda02f6 feat: 初始化自动控制原理AI+数智平台项目
- 添加时域分析、频域分析、根轨迹分析功能
- 集成 AI 智能问答(DeepSeek/Gemini API)
- 现代化 UI 设计,支持 LaTeX 公式渲染
- 完整的项目文档和配置文件
2025-10-15 20:37:30 +08:00
2025-10-15 20:30:07 +08:00

🎛️ 自动控制原理AI+数智平台

交互式控制系统分析与设计工具 | 时域·频域·根轨迹·AI问答

一个基于 Gradio 构建的现代化自动控制原理学习平台,集成了系统分析工具和 AI 智能问答功能。

核心功能

📊 1. 时域分析 (Time Domain Analysis)

  • 阶跃响应分析:观察系统对单位阶跃输入的响应
  • 脉冲响应分析:观察系统对单位脉冲输入的响应
  • 性能指标计算
    • 上升时间 (Rise Time)
    • 峰值时间 (Peak Time)
    • 超调量 (Overshoot)
    • 调节时间 (Settling Time)
    • 稳态值 (Steady State Value)

知识要点

  • 二阶系统标准形式
  • 阻尼比与自然频率参数说明
  • 时域性能指标公式
  • 稳态误差分析

🌊 2. 频域分析 (Frequency Domain Analysis)

  • Bode 图绘制:幅频特性和相频特性
  • Nyquist 图绘制:极坐标频率响应
  • 稳定裕度计算
    • 增益裕度 (Gain Margin, GM)
    • 相位裕度 (Phase Margin, PM)
    • 增益交越频率
    • 相角交越频率
  • 稳定性评估:自动判断系统稳定性

知识要点

  • 增益裕度与相位裕度定义
  • 稳定性判断准则
  • 频域指标与时域性能的关系
  • Bode 图读数技巧

🎯 3. 根轨迹分析 (Root Locus Analysis)

  • 根轨迹绘制:自动绘制完整根轨迹图
  • 增益调节:对数滑块精确调节增益 K
  • 极点跟踪:实时显示当前增益下的闭环极点位置
  • 动态视角:自动调整坐标范围,聚焦关键区域

知识要点

  • 根轨迹法基本原理
  • 幅值条件与相角条件
  • 根轨迹的基本性质(起点、终点、渐近线、分离点)
  • s 平面稳定性区域
  • 阻尼比等值线

🤖 4. AI 智能问答 (Q&A)

  • 专业教学助手:精通自动控制原理的 AI 教授
  • 流式响应:实时显示 AI 回复过程
  • LaTeX 公式渲染:完美支持数学公式显示
  • 上下文记忆:支持多轮对话

支持的 API

  • DeepSeek API(推荐,国内网络友好)
  • Google Gemini API

🚀 快速开始

环境要求

  • Python 3.8+
  • pip 包管理器

安装步骤

  1. 克隆项目
git clone <your-repo-url>
cd AutoControl
  1. 安装依赖
pip install gradio numpy control matplotlib aiohttp

或使用 conda

conda create -n autocontrol python=3.9
conda activate autocontrol
pip install gradio numpy control matplotlib aiohttp
  1. 配置 API 密钥

编辑 app.py 文件开头的配置区域:

# ==================== API 配置 ====================
API_KEY = "your-api-key-here"  # 填入您的 DeepSeek API 密钥
API_BASE_URL = "https://api.deepseek.com/v1"
API_MODEL = "deepseek-chat"
API_TYPE = "deepseek"  # 或 "gemini"
# ==================================================

获取 DeepSeek API 密钥

  1. 运行应用
python app.py

或使用 conda 环境:

conda run -n autocontrol python app.py
  1. 访问应用

浏览器自动打开,或手动访问:

http://localhost:7860

📖 使用指南

输入系统传递函数

在任意标签页的输入框中输入传递函数的分子和分母系数:

示例 1:一阶系统

分子: 1
分母: 1,1
传递函数: G(s) = 1/(s+1)

示例 2:二阶系统

分子: 4
分母: 1,2,4
传递函数: G(s) = 4/(s²+2s+4)

示例 3:三阶系统

分子: 1
分母: 1,6,11,6
传递函数: G(s) = 1/(s³+6s²+11s+6)

输入格式

  • 系数从最高次项到常数项
  • 用逗号分隔(支持中文或英文逗号)
  • 支持小数和负数
  • 例如:1, 2.5, -3, 4 表示 s³ + 2.5s² - 3s + 4

调节系统增益

频域分析和根轨迹分析都支持增益调节:

  • 对数滑块log₁₀(K) 范围 -1 到 3

    • -1 对应 K = 0.1
    • 0 对应 K = 1
    • 1 对应 K = 10
    • 2 对应 K = 100
    • 3 对应 K = 1000
  • 实时显示:下方数字框显示实际增益值

  • 松开更新:滑块松开后才更新图表,避免卡顿

AI 问答技巧

高效提问方式

好的问题

  • "请解释 PID 控制器的三个参数如何影响系统性能?"
  • "如何根据 Bode 图判断系统的稳定裕度?"
  • "为什么阻尼比为 0.707 时系统响应最佳?"
  • "推导二阶系统的超调量公式"

避免的问题

  • "帮我做作业"(太模糊)
  • "这个对吗?"(缺少上下文)
  • "答案是什么?"(没有提供问题描述)

公式显示: AI 回复中的数学公式会自动渲染,支持以下格式:

  • 行内公式:$公式$\(公式\)
  • 块级公式:$$公式$$\[公式\]

🎨 界面特色

现代化设计

  • 渐变色标题:紫色渐变视觉效果
  • 卡片式布局:分组清晰,层次分明
  • 可滚动知识卡片:长文档不占据过多空间
  • 可折叠章节:按需展开知识点

响应式交互

  • 实时更新:参数改变即时反映在图表上
  • 流式对话AI 回复逐字显示
  • 标签页联动:切换标签自动加载数据
  • 平滑动画:按钮悬停、卡片滚动效果

知识可视化

  • 嵌入式公式:页面内直接显示 LaTeX 公式
  • 表格对比:性能指标、稳定准则表格化
  • 颜色编码:稳定/不稳定用绿/红色标识
  • 图标辅助emoji 增强视觉识别

🛠️ 技术栈

前端框架

  • Gradio 4.x:快速构建机器学习 Web 界面
  • Custom CSS:现代化样式定制

计算库

  • NumPy:数值计算
  • python-control:控制系统分析
  • Matplotlib:图表绘制

AI 集成

  • aiohttp:异步 HTTP 请求
  • DeepSeek API:智能问答后端
  • 流式响应:提升用户体验

📁 项目结构

AutoControl/
├── app.py                 # 主应用程序
├── README.md             # 项目文档
├── API_CONFIG.md         # API 配置详细说明(可选)
├── QUICK_START.md        # 快速入门指南(可选)
└── requirements.txt      # 依赖列表(可选)

🔧 高级配置

切换到 Gemini API

如果您想使用 Google Gemini API

API_KEY = "your-gemini-api-key"
API_BASE_URL = "https://generativelanguage.googleapis.com/v1beta"
API_MODEL = "gemini-1.5-flash"
API_TYPE = "gemini"

自定义系统提示词

修改 chat_with_ai 函数中的 system_prompt

system_prompt = """
你是一位[角色定义]。
请用[语言风格]来回答有关[领域]的问题。
[其他要求...]
"""

调整图表样式

matplotlib 绘图代码中修改:

# 修改图表大小
fig, ax = plt.subplots(figsize=(12, 6))

# 修改颜色主题
ax.plot(x, y, color='#667eea', linewidth=2)

# 修改网格样式
ax.grid(True, alpha=0.3, linestyle='--')

📚 参考资料

经典教材

  • 《自动控制原理》- 胡寿松
  • 《现代控制工程》- Katsuhiko Ogata
  • 《反馈控制理论》- John Doyle

在线资源

🤝 贡献指南

欢迎提交 Issue 和 Pull Request

贡献方向

  • 🐛 修复 Bug
  • 添加新功能(如状态空间分析)
  • 📝 改进文档
  • 🎨 优化界面设计
  • 🧪 添加测试用例

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

🙏 致谢

  • Gradio:提供优秀的 Web 界面框架
  • python-control:强大的控制系统分析库
  • DeepSeek:高质量的 AI 服务
  • 所有贡献者和使用者

📞 联系方式


如果这个项目对您有帮助,请给它一个 Star!

最后更新:2025年10月15日

S
Description
No description provided
Readme MIT
3 MiB
Languages
Python 97%
CSS 2.8%
Dockerfile 0.2%