项目文件:
本项目使用的3D模型基于“纤豪电子科技”的模型修改,加固了一些关键部位以获得更强的稳定性
平衡技术 这个项目的基本目标是创造一个两轮自平衡物体,让人联想到具有移动和转向能力的摩托车 带有标记的执行器和传感器的集成设备: 大部分电路设计位于三“层”结构中。三块电路板,每块电路板之间的间隙约为一英寸,其中包含所有电路和关键部件。电池电源的接线位置会降低质心并有助于实现更平稳的平衡。降压转换器支持可调电源,AMS1117 用作稳压器。电路中存在其他较小的部件,但此处提供了关键部件 **工程分析** A. 外力矩要求 系统的质心位于其枢轴点之上,这使其具有内在的不稳定性;任何倾斜都会导致重力扭矩。欧拉角量化了系统绕旋转轴的角位移。如果欧拉角达到 22° 的阈值,电机将按程序停止。以此为最大工作角度,则最大重力扭矩为: 以下计算验证了反作用轮施加同等大小或更高大小的中和扭矩的能力 此外,无刷直流电机的性能曲线表明它能够为反作用轮提供足够的扭矩。 B. K 增益矩阵的优化 有四个参数可提供有关系统状态的信息并帮助确定适当的控制动作以保持平衡:欧拉角、系统角速度、电机速度和电机位置。欧拉角和角速度描述了重力扭矩的影响;所需状态分别为 0° 和 0 rad/s。电机速度和电机位置描述了动量轮施加的扭矩的影响;这些参数的理想状态取决于系统的动态。为了保持系统的平衡,使用反馈控制方法使实际状态更接近期望状态。K 增益矩阵是一组反馈增益,用于根据系统的期望状态和实际状态之间的差异来调整动量轮的速度和方向。LQR 算法用于找到最佳的 K 增益矩阵,它可以最大限度地减少控制工作(即电机速度/扭矩),同时还能最大限度地减少系统与所需状态的偏差。最佳 K 增益矩阵的计算是使用 MATLAB 中的 lqr() 函数完成的。该函数需要四个输入:两个线性化状态空间矩阵 A 和 B、状态成本加权矩阵 Q 和控制加权矩阵 R。K 反馈增益乘以实际状态与期望状态之间的差异以生成最小化二次成本函数 J(u) [3] 的控制信号 (u),这仅限于线性系统动力学 [13]。最佳 K 增益矩阵是使用 MATLAB [11] 中的 lqr() 函数找到的,它使用矩阵 A、B、Q 和 R 通过 Ricatti 方程 [6] 找到 P 并求解 K [5]。 通过使用拉格朗日方程 [7][8] 对系统的运动进行建模,然后将结果线性化为状态空间方程 [9],可以找到矩阵 A 和 B。 状态成本加权矩阵 Q 中的值决定了对最小化成本函数中状态偏差的重视程度。该系统的 Q 矩阵对欧拉角、角速度和电机速度状态赋予相同的权重,对电机位置赋予更小的权重 (0.001)。这意味着与欧拉角、角速度和电机速度状态相比,电机位置匹配所需状态的重要性要小得多。控制加权矩阵 R 等于 1,这意味着最小化状态偏差与最小化控制工作同等重要。 将四个矩阵代入 lqr() 函数 [4],即可确定理论上的 K 矩阵。通过进行一系列实验来微调 K 值,直到得到最终的 K 矩阵 [11] 提供稳定的性能。这个过程使我们能够确定一组更有效的反馈增益,最终提高系统的稳定性和控制精度。关于使用MATLAB计算LQR 使用的引脚 M_编码器 GPIO 19, 23 脉宽调制:GPIO 26 PWS:GPIO 18 目录:GPIO 5 驱动马达 GPIO 4, 33 伺服电机 GPIO 17 基本结构: CPU1: 卡尔曼滤波器 准确的角度和角速度估计。来自 MPU6050 传感器的加速度计和陀螺仪数据的精确传感器融合。 动态系统稳定性 实施具有可调增益的线性二次稳压器 (LQR),以在各种条件下实现稳定平衡。LQR控制器取4个参数:欧拉角、角速度、反作用轮实际速度和反作用轮位置,然后计算出PWM输出。 CPU0:
参考 [1] Olfati-Saber, Reza. “Global Stabilization of a Flat Underactuated System: The Inertia Wheel Pendulum.” Conference of Decision and Control, 3 Dec. 2001. authors.library.caltech.edu/5154/1/OLFcdc01b.pdf
项目开源:https://github.com/pxmkv/Balance-Tech
|