# quadrotor_sim **Repository Path**: Luviewer/quadrotor_sim ## Basic Information - **Project Name**: quadrotor_sim - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-31 - **Last Updated**: 2025-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 四旋翼轨迹控制 (MATLAB 模块化版) ## 使用方法 1. 将所有 `.m` 文件放在同一个文件夹下。 2. 在 MATLAB 中把该文件夹加入路径(`addpath` 或右键“添加到路径”)。 3. 在命令行运行: ```matlab QuadSimMain ``` 即可启动 GUI 仿真窗口。 ## 文件说明 - **QuadSimMain.m** : 主程序,包含 GUI 和仿真主循环。 - **quad_params.m** : 参数集中定义(物理参数、控制增益、执行器限制)。 - **se3_controller.m** : 外环位置/速度控制 + 内环姿态 PD 控制。 - **quad_dynamics.m** : 四旋翼刚体动力学模型。 - **traj_factory.m** : 生成参考轨迹(悬停、圆形、八字、航点)。 - **wp_ref.m** : 航点分段轨迹的余弦 S 曲线插值。 - **hat.m / vee.m / project_to_SO3.m** : SO(3) 工具函数。 - **rk4_state.m** : 通用 RK4 数值积分器。 - **drone_graphics.m** : 机体图形生成并返回句柄。 - **draw_drone.m** : 根据 R、p 更新机体图形(与 `drone_graphics` 分离,便于外部调用)。 - **QuadSimExample.m** : 示例脚本(无 GUI),运行后生成**圆形轨迹对比 + 误差曲线**图。 ## 示例:圆形轨迹 + 误差曲线(无需 GUI) 如果你想快速看一个固定配置的示例,同时绘制**位置误差随时间**的曲线,可以运行: ```matlab QuadSimExample ``` 此脚本会: - 使用 **圆形轨迹**(半径 2 m,线速度 0.6 m/s),仿真 **20 s**; - 输出一个包含 **3D 轨迹对比**(黑虚线=参考,蓝线=实际)和 **位置误差范数** 曲线的图。 ## 注意事项 - 推荐 MATLAB R2018a 及以上版本。 - 参数修改后建议 **重置** 再运行。 - 可在 `traj_factory.m` 中扩展更多轨迹,或在 `wp_ref.m` 中替换插值策略。 - 若需要 App Designer 版本、误差曲线、风扰/分配矩阵/MPC 等扩展,可在此框架基础上新增文件。 ## 故障排查 - 一运行就下坠:请确认 `se3_controller.m` 里误差定义为 `state - ref`,且推力包含重力补偿;本包已修复。 - 动画不刷新:`QuadSimMain` 采用定时器版;若仍卡顿,可把 Figure 的 `Renderer` 设为 `opengl`。 - 偏离圆:可适当增大 `quad_params.m` 中的 `Kp/Kv/KR/KOm`,或降低轨迹速度 `trajSpeed`。