STM32/STM8技术论坛
直播中

是你驱使我

8年用户 18经验值
擅长:电源/新能源
私信 关注
[资料]

STM32和mpu6050搭建的飞控系统 模拟i2c代码

STM32库实现的模拟i2c代码(注释好像因为编码问题跪了):
       
               










       
                2.PID控制算法
       
                由于简单的线性控制不可能满足四轴飞行器这个灵敏的系统,引入PID控制器来更好的纠正系统。
       
                简介:PID实指“比例proportional”、“积分integral”、“微分derivative”,这三项构成PID基本要素。每一项完成不同任务,对系统功能产生不同的影响。
       
               
       
                以Pitch为例:
       
               
       
                error为期望角减去实时角度得到的误差;
       
                iState为积分i参数对应累积过去时间里的误差总和;
       
                if语句限定iState范围,繁殖修正过度;
       
                微分d参数为当前姿态减去上次姿态,估算当前速度(瞬间速度);
       
                总调整量为p,i,d三者之和;
       
                这样,P代表控制系统的响应速度,越大,响应越快。
       
                I:用来累积过去时间内的误差,修正P无法达到的期望姿态值(静差);
       
                D:加强对机体变化的快速响应,对P有抑制作用。
       
                PID各参数的整定需要综合考虑控制系统的各个方面,才能达到最佳效果。
       
                3.输出PWM信号
       
                PID计算完成之后,便可以通过STM32自带的定时资源很容易的调制出四路pwm信号,采用的电调pwm格式为50Hz,高电平持续时间0.5ms-2.5ms;
       
                我以1.0ms-2.0ms为每个电机的油门行程,这样,1ms的宽度均匀的对应电调的从最低到最高转速。
       
                至此,一个用STM32和mpu6050搭建的飞控系统就算实现了。





回帖(1)

王至

2018-8-16 22:41:54
谢谢,不错的资料,谢谢楼主的分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分