a22bb42bd4ba4d4cea6cc62f82bb4009f48e4a4b
🎛️ 自动控制原理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 包管理器
安装步骤
- 克隆项目
git clone <your-repo-url>
cd AutoControl
- 安装依赖
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
- 配置 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 密钥:
- 访问 https://platform.deepseek.com/api_keys
- 注册并创建 API 密钥
- 复制密钥到配置文件
- 运行应用
python app.py
或使用 conda 环境:
conda run -n autocontrol python app.py
- 访问应用
浏览器自动打开,或手动访问:
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 服务
- 所有贡献者和使用者
📞 联系方式
- 项目地址:[GitHub Repository URL]
- 问题反馈:[Issues URL]
- 邮箱:[your-email@example.com]
⭐ 如果这个项目对您有帮助,请给它一个 Star!
最后更新:2025年10月15日
Languages
Python
97%
CSS
2.8%
Dockerfile
0.2%