Controle pid da roda » Histórico » Revisão 9
Revisão 8 (Renan Pícoli, 01/05/2017 16:13 h) → Revisão 9/12 (Renan Pícoli, 01/05/2017 16:30 h)
h1. Controle pid da roda Tutorial - criando um modelo: https://www.mathworks.com/help/simulink/gs/create-a-simple-model.html Tutorial - modelando um motor: https://www.mathworks.com/videos/modeling-a-dc-motor-68852.html Design PID: http://www.mathworks.com/help/control/pid-controller-design.html frequência do contador do pwm (amostragem do pwm)= 20MHz período da onda do pwm é 1/20kHz Cálculo da frequência de amostragem do pwm (para TIM8): pwm: 20MHz = SYSCLK/AHB/APB1/APB2*picoli/renan página 152 e 640 do reference manual (RM0090 - revisão 14?) 11) pwm.cpp TIM_TimeBaseStructure.TIM_Prescaler=(SystemCoreClock/20000000)-1; TIM_TimeBaseStructure.TIM_Period=168000000/168000; /roboime-firmware/src/boot/system_stm32f4xx.c System Clock source | PLL (HSE) *----------------------------------------------------------------------------- * SYSCLK(Hz) | 168000000 *----------------------------------------------------------------------------- * HCLK(Hz) | 168000000 *----------------------------------------------------------------------------- * AHB Prescaler | 1 *----------------------------------------------------------------------------- * APB1 Prescaler | 4 *----------------------------------------------------------------------------- * APB2 Prescaler | 2 System Clock source | PLL (HSE) *----------------------------------------------------------------------------- * SYSCLK(Hz) | 168000000 *----------------------------------------------------------------------------- * HCLK(Hz) | 168000000 *----------------------------------------------------------------------------- * AHB Prescaler | 1 *----------------------------------------------------------------------------- * APB1 Prescaler | 4 *----------------------------------------------------------------------------- * APB2 Prescaler | 2 Interrupção do timer de controle do motor a 1k /roboime-firmware/src/control/TimerTime.cpp TIM_TimeBaseStructure.TIM_Prescaler=83; TIM_TimeBaseStructure.TIM_Period=1000; resposta do motor de velocidade 2.5m/s !roboime.PNG!