完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
STM32F103RCT6 32位处理器
STM32F103RCT6 程序存储器为256K,STM32F103C8T6 程序存储器为64K 系统时钟:最大72M ,一般外部有两个晶振(一个8M,一个32.768KHZ) 带有两个12为模数转换器,1us转换时间,转换范围:0-3.6V 3个16位定时器 PID PID就是一个闭环控制系统。 对于闭环控制的一个最朴素的想法就只有P 控制,将当前结果反馈回来,再与目标相减,为正的话,就减速,为负的话就加速。现在知道这只是最简单的闭环控制算法 PID控制的基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。 原理: PID控制器就是根据系统的误差(当前误差和期望误差),利用比例、积分、微分计算出控制量进行控制的。 比例P控制 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。 积分I控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。 微分D控制 在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,从而避免了被控量的严重超调。 公式: 串级PID 串级PID:采用的角度P和角速度PID的双闭环PID算法——>角度的误差被作为期望输入到角速度控制器中 (角度的微分就是角速度) 对于本系统则采用了将角度控制与角速度控制级联的方式组成整个串级 PID 控制器。 串级 PID 算法中,角速度内环占着极为重要的地位。在对四旋翼飞行的物理模型进行分析后,可以知道造成系统不稳定的物理表现之一就是不稳定的角速度。因此,若能够直接对系统的角速度进行较好的闭环控制,必然会改善系统的动态特性及其稳定性,通常也把角速度内环称为增稳环节。而角度外环的作用则体现在对四旋翼飞行器的姿态角的精确控制。 外环:输入为角度,输出为角速度 内环:输入为角速度,输出为PWM增量 使用串级pid,分为:角度环控制pid环,和角速度控制环稳定环。主调为角度环(外环),副调为角速度环(内环)。 参数整定原则为先内后外,故在整定内环时将外环的PID均设为0 所谓外环就是只是一个P在起作用,也就是比例在起作用;P也就是修正力度,越大越容易使飞机震荡。 震荡的特点是:频率小、幅度大 串级PID源码: //----------当前误差和期望误差相减-------------// Pitch_out=RC_Pitch-pit; //----------积分I和积分限幅-------------// if(Rc_D.THROTTLE<13725) { Pitch_i+=Pitch_out; } else { Pitch_i=0; } if(Pitch_i>500) Pitch_i=500; else if(Pitch_i<-500) Pitch_i=-500; //----------外环PI--------------------// Pitch_shell_out = Pitch_shell_kp*Pitch_out + Pitch_shell_ki*Pitch_i ; //-----------内环积分和积分限幅-----------------// if(Rc_D.THROTTLE<13725) { pitchError+=(Pitch_shell_out-Angle_gy); } else { pitchError=0; } if(pitchError>500) pitchError=500; else if(pitchError<-500) pitchError=-500; //--------------内环+外环PID-----------------// Pitch_core_out=(Pitch_shell_out-Angle_gy)*Pitch_core_kp+pitchError*Pitch_core_ki+(Angle_gy-lastAngle_gy)*Pitch_core_kd; ALIENTEK 推出的一款高性能三轴加速度+三轴陀螺仪的六轴传感器模块,并可利用自带的数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC 接口,向应用端输出姿态解算后的数据。 IIC 通信协议 NRF24L01 NRF24L01是一款无线通信通信芯片,采用FSK 调制。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。 NRF24L01采用SPI通信,可以很方便的连接到MCU上面。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:28 , Processed in 0.607875 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号