Projeto

Geral

Perfil

Controle pid da roda » Histórico » Revisão 8

Revisão 7 (Onias Castelo Branco, 30/04/2017 02:23 h) → Revisão 8/12 (Renan Pícoli, 01/05/2017 16:13 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: 20MHz = SYSCLK/AHB/APB1/APB2*picoli/renan 

 página 152 e 640 do reference manual (RM0090 - revisão 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!