TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: miguech1 en 23 de Mayo de 2004, 17:12:00

Título: tengo este programa del control pid mirenlo y comenten
Publicado por: miguech1 en 23 de Mayo de 2004, 17:12:00
#include <16f877a.h>
#use delay(clock=2000000)
#fuses hs
#include <lcd.c>
#byte portc=7
#byte portb=6
#use fast_io(b)
//respueta rapida de puerto b
int val1,val2,val3,setp,val_med;
float a0,a1,a2,xn_1,xn_2,yn,yn_1,kp,ki,kd,ts,xn;
main(){

setup_adc_ports(all_analog);
setup_adc(adc_clock_div_32);
setup_ccp1(ccp_pwm);
setup_ccp2(ccp_pwm);
setup_timer_2(t2_div_by_1,255,1);

lcd_init();
while(true){
   while((input(pin_b0))){  // si es un cero
set_adc_channel(2);
val1=read_adc();
delay_us(10);
set_adc_channel(3);
val2=read_adc();
delay_us(10);
set_adc_channel(4);
val3=read_adc();
delay_us(10);
kp=(float)val1;
ki=(float)val2;
kd=(float)val3;
ts=0,01;
a0=kp+ki*ts+kd/ts;
a1=kp+2*kd/ts;
a2=ki/ts;

lcd_gotoxy(1,1);
printf(lcd_putc,"p:%1.1f,i:%1.1f,d:%1.1f",kp,ki,kd);}lcd_putc("f";

while((!input(pin_b0))){
set_adc_channel(0);
setp=read_adc();
delay_us(1);
Título: RE: tengo este programa del control pid mirenlo y comenten
Publicado por: pic_patagonia en 04 de Marzo de 2005, 06:02:00
Hola. Quisiera preguntarte si has tenido oportunidad de probar el código trascripto . Recién lo veo y aún no lo he analizado, pero dado el tiempo que tiene el mensaje quizás hayas hecho alguna prueba y sacado ya algunas conclusiones sobre el mismo.
Aguardo tu respuesta.
Saludos.
Título: RE: tengo este programa del control pid mirenlo y comenten
Publicado por: fer_zone en 10 de Marzo de 2005, 20:47:00
Yo tambien mire este codigo hace tiempo, seguramente esta incompleto, ya que solo realiza una etapa de configuración de los parametros PID tomando los valores de las esntradas analogicas, pero en si no hay ningun tipo de control en este programa.