- 博客(6)
- 收藏
- 关注
原创 HAL库配置ADC采集
然后调用 HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_dma_buffer, ADC_CHANNELS);c. ★★★ 重要:重新启动下一次转换:HAL_ADC_Start_IT(hadc) ★★★。3. 启用中断:__HAL_ADC_ENABLE_IT(&hadc1, ADC_IT_EOC)启动时:HAL_ADC_Start_IT(&hadc1);初始化时:__HAL_ADC_ENABLE_IT(&hadc1, ADC_IT_EOC);
2025-12-04 15:42:05
281
原创 PID优化
要解决的问题:如果执行器因为卡住、断电、损坏等原因不能消除误差,则误差积分会无限制加大,进而达到深度饱和状态,此时PID控制器会持续输出最大的调控力,即使后续执行器恢复正常,PID控制器在短时间内也会维持最大的调控力,直到误差积分从深度饱和状态退出。积分限幅实现思路:对误差积分或积分项输出进行判断,如果幅值超过指定阈值,则进行限制。
2025-11-10 14:48:18
516
原创 STM32 ADC规则组和注入组模式介绍
偶尔读一下多个传感器→ 单次+非扫描高速监控一个信号→ 连续+非扫描同步采集多个信号→ 单次+扫描高速同步采集多个信号→ 连续+扫描+DMA。
2025-10-30 11:58:59
468
原创 定速与定位控制PID
定时器40ms获取一次编码器的读数,获取编码器的读数为实际速度,如果设置目标速度(假设为占空比)为60,那么编码器就会读取到占空比为60所对应的编码器数值,如果低于这个数值则加快Out的输出,如果高于这个数值则减小Out的输出,最终保持稳定。如果低于这个数值则加快Out的输出,如果高于这个数值则减小Out的输出,最终保持稳定。Target:目标速度 Actual:实际速度 Out:输出PWM。Target:目标位置 Actual:实际位置 Out:输出PWM。
2025-10-30 11:27:41
180
原创 学习PID
位置式PID,会积累从系统上电时开始积累误差,当累积到一定程度会出现积分饱和,当Kp,Ki,Kd输入参数时,这个巨大的历史积分值需要很长时间才能"消化"掉,会使系统延迟严重,当Kp,Ki,Kd输入0,out由公式直接计算为0,系统停止。不同点:使用增量式PID,当Kp,Ki,Kd都为0时,还可以维持上个时态的delt_out,但调节Target电机转速不回改变。而使用位置式PID,当Kp,Ki,Kd都为0时。含有比例项、积分项和微分项,Kd越大,微分项权重越大,系统阻尼越大,但系统卡顿现象也会随之增加。
2025-10-27 11:12:26
280
原创 关于标准库定时器的一些配置
假如说配置周期为1s的定时器。晶振频率72mhz则psc为7200-1,arr为10000-1。1.开始时钟2.配置引脚3.配置时基单元4.配置输入捕获5.配置中断6.配置nvic7.开启定时器。1.开始时钟2.配置引脚3.配置时基单元4.配置编码器接口模式5.配置输入捕获参数6.开启定时器。1.开启时钟 2.配置引脚 3.配置时基单元 4.配置输出参数 5.开启定时器。1.开启时钟 2.配置引脚 3.配置时基单元 4.配置输出参数 5.开启定时器。输入分为:输入捕获和编码器模式。输出分为:计数和pwm。
2025-10-24 20:31:38
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅