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

337 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎛️ 自动控制原理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. **克隆项目**
```bash
git clone <your-repo-url>
cd AutoControl
```
2. **安装依赖**
```bash
pip install gradio numpy control matplotlib aiohttp
```
或使用 conda
```bash
conda create -n autocontrol python=3.9
conda activate autocontrol
pip install gradio numpy control matplotlib aiohttp
```
3. **配置 API 密钥**
编辑 `app.py` 文件开头的配置区域:
```python
# ==================== 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 密钥
- 复制密钥到配置文件
4. **运行应用**
```bash
python app.py
```
或使用 conda 环境:
```bash
conda run -n autocontrol python app.py
```
5. **访问应用**
浏览器自动打开,或手动访问:
```
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
```python
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`
```python
system_prompt = """
你是一位[角色定义]。
请用[语言风格]来回答有关[领域]的问题。
[其他要求...]
"""
```
### 调整图表样式
`matplotlib` 绘图代码中修改:
```python
# 修改图表大小
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
### 在线资源
- [python-control 官方文档](https://python-control.readthedocs.io/)
- [DeepSeek API 文档](https://platform.deepseek.com/docs)
- [Gradio 官方文档](https://www.gradio.app/docs)
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request
### 贡献方向
- 🐛 修复 Bug
- ✨ 添加新功能(如状态空间分析)
- 📝 改进文档
- 🎨 优化界面设计
- 🧪 添加测试用例
## 📄 许可证
本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- **Gradio**:提供优秀的 Web 界面框架
- **python-control**:强大的控制系统分析库
- **DeepSeek**:高质量的 AI 服务
- 所有贡献者和使用者
## 📞 联系方式
- 项目地址:[GitHub Repository URL]
- 问题反馈:[Issues URL]
- 邮箱:[your-email@example.com]
---
**⭐ 如果这个项目对您有帮助,请给它一个 Star!**
最后更新:2025年10月15日