四轴
文章平均质量分 80
stm32单片机操作
Xiao |
May the Force be with you
|| 一定存在只有你才能做到的事情
展开
-
串级PID为什么外环输出时内环的期望值
是不是非常熟悉,好像控制器天生就有能力链接我们的物理世界,轻而易举的改变物理对象。但是仔细看,说破天,这个算法也就是一堆数学公式,输入的是数字,输出的也是数字,它怎么就能改变物理量呢?正如我们所想,几个数字不应该,也不能够直接改变物理量,真正能改变物理量的是执行器。所以更真实的控制图应该是这样的。我们应该感谢现在的执行器做的足够好,他们通常都有自己的驱动器,我们只需要通过输出一些简单的电平信号,驱动器就会帮助我们控制执行器。典型的执行器就是电机,电机的驱动器,例如电调,通常都是用PWM信号就可以控制。我们现原创 2022-06-30 18:41:13 · 1461 阅读 · 0 评论 -
stm32的陀螺仪芯片MPU6050的初始化寄存器配置
MPU6050读取数据步骤:1,检查MCU(主机)与MPU6050(姿态传感器)是否通信成功2,设置MPU6050为复位状态,并且100ms延时,确保复位完成3,唤醒MPU6050,选择PLL为时钟源4,配置6轴数据全部输出(3轴加速度与3轴陀螺仪)5,禁止所有中断(避免传感器读取到一个数据就中断,而耽误系统进程)6,设置MPU6050的内部采样频率以及低通滤波器(小的飞行器一一般设施在20~30Hz即可)7,设置陀螺仪与加速度计的满量程范围8,主处理芯片可以直接访问MPU6原创 2022-03-26 15:43:33 · 10350 阅读 · 1 评论 -
为什么需要串级PID控制(结合智能小车,四轴飞行器来解释)
先说四轴飞行器四轴飞行器中串级PID控制是由角度环与角速度环一起控制的可以这么简单的理解:角度环可以可以保证飞机按期望的角度飞行,单环控制时,具有很好的自稳性。但是打舵的时候跟随性就不够完美。可能会出现滞后,失衡的现象。角速度环可以使飞机尽可能的快速的达到期望值。(将角度环的期望值与角速度环的测量值进行PID控制;角速度是由陀螺仪测出来的,测量值一般不容易受到干扰并且角速度变化的也是比较快的,加快了反应速度)为什么要引入角速度环?我们发现,虽然可以用PWM使得电机的转速与输入值成正比原创 2022-03-24 11:55:54 · 5967 阅读 · 1 评论 -
四轴姿态控制系统组成以及电机动力分配的算法实现
基本的闭环控制图如下:将各个控制单元对应到无人机上,可以做出Pitch角的反馈控制框图:四轴姿态PID控制单级控制框图如下:串级控制框图如下:主要是在角度控制的基础上,增加了角速度控制。期望姿态角与姿态结算出来的角度进行角度PID控制,输出的角度值,是离散型数据。又因为w(角速度)=a(角度)/t(时间)。所以可以认为输入的也是角速度。于是就实现了外环PID值作为内环PID的期望值目的。再结合陀螺仪比较精准的采集角速度的原理。内环的角速度控制可以保...原创 2022-03-24 10:49:45 · 3469 阅读 · 0 评论 -
四轴飞行器偏航角不同飞控的C语言实现方法
偏航角的控制与俯仰角以及翻滚角不同。俯仰角以及翻滚角都是要随着遥控器改变,特别是遥控器归中的时候,就俯仰角以及翻滚角也要归0。但是偏航角最大的区别就是遥控器归中后不需要恢复。蓝鸟飞行器:对于Z轴偏航角的控制:是对接受来的遥控器数据进行分段处理,当大于某一值的时候,对期望的偏航角度值进行累加。由于是分段控制,所以遥控器摇杆归位以后,期望的偏航角度值并不归0。所以不会出现摇杆归位后,飞机又转回去的现象。特点:偏航角数据分段处理不同担心在打油门的时候误触偏航角Z轴有角度环PID控制,所原创 2022-03-21 18:14:23 · 1686 阅读 · 0 评论 -
四轴飞行器PID调参建议
在动态控制中,我们通过调整PID三个参数来获得动力,同时消除振荡,找到对你当前的飞行场景来说更优的手感。P(Propotional)是比例的简称。“P”单元控制着控制系统的所有动力,以达到所需的输出。如果“P”单元没有足够的输出,无人机就没有足够的动力来反馈你的控制命令;如果“P”单元输出过大,无人机就会反应过度,发生振荡。它的特点和弹簧完全一致。简单来说,它的作用就是测量无人机当前位置与目标位置的距离。这个距离越远,就需要更大的力给掰回去。P越大,“弹簧”越硬,回复的速度越快,震动的频率也原创 2022-03-20 09:12:06 · 2320 阅读 · 0 评论 -
PID原理以及C语言的代码实现
PID控制系统的基本构架实际就是我们耳熟能详的反馈控制,这里将PID与之进行类比:PID控制思想: 我们在单片机中不可能实现连续的控制(不可能说都去进行PID控制,否则就进入了死循环,不能进行其他的操作),所以说这里在使用的是PID控制器离散型分析,顾名思义就是说我们获取的数据不是连续的,而是每隔相同的时间进行获取(这个和我们单片机的中断相吻合)注意这里是定义的一个PID_TYPE的一个结构体变量方便了我们管理数据还有一个巧妙的地方是代码运用了积分分离...原创 2022-02-25 18:58:11 · 2589 阅读 · 1 评论 -
四轴飞行器Mahony姿态结算
首先我们要搞明白姿态结算在飞控中的位置:简而言之就是将采集的数据通过算法转换为可以供姿态控制使用的欧拉角,较为精准的数据转换思路:在计算的时候我们一般将欧拉角(当然也可以叫做方向角)转换成四元数来计算:飞行的姿态可以用欧拉角描述的方向余弦矩阵来表示,因为欧拉角存在万向节“死锁”的问题,所以不适合全姿态飞行器,飞行的姿态也可以用四元数描述的方向余弦矩阵来表示。两者的方向余弦矩阵数据一一对应。所以我们将四元数作为中间量进行运算,最后的结果转换为欧拉角,这样就可以解决“死锁......原创 2022-03-06 20:46:11 · 1432 阅读 · 0 评论 -
用一个生活的小实例讲讲PID控制
如果还是不理解这里的PID控制的话,我们来举一个简单的烧水的例子:基本场景: 烧水的时候,我们设定在温度达到100摄氏度的时候就停止加热,由于水温是有时间滞后性的。所以停止加热以后,水温并不会立即停止在100摄氏度,而是要达到100摄氏度以上,随后又降温到100摄氏度以下。然后系统检测温度低于100摄氏度,然后就又开始加热。然后进入一个这样的加热放热的循环。我们可以发现问题就是系统一直是在100摄氏度上下进行浮动。 这里说明一下什么是时间滞后性,例如变量水温就具有时间滞后性,就是打开加热器以后原创 2022-03-11 19:48:44 · 11603 阅读 · 1 评论