Home
Add Document
Sign In
Register
Pid
Home
Pid
pid de un motorDescripción completa...
Author:
Willy Sebastian
97 downloads
415 Views
29KB Size
Report
DOWNLOAD .PDF
Recommend Documents
PID
PID
PID
Pid
Descripción completa
PID
PID, Automation, Automatika, Upravljanje, Controlling, Upravljanje sistemima automatskog upravljanja, Zigler-Nichols, P,D,PI, regulation
pid
Pid
pidDescripción completa
Pid
control system PID
Pid
pidFull description
PID
PID
PID
Descripción: Experimentación con controladores PID
pid
labview
Pid
Pid
pid
digital PID controllersFull description
Pid
Pid
REFERAT PID
PIDFull description
Pid Control
Full description
CONTROLADORES PID
Descrição completa
Apostila PID
Guia de uso do controle PID ( Proporcional Integral e derivativo) no step 7 Siemens.
PID Control
PID Tuning
step by step tuning PID using matlab
PID-Flou
Description complète
Control PID
PID Control
Description complète
Introduccion PID
#include #include #include #include #include
//creacion de funciones void config_init(void);
//libreria //libreria //libreria //libreira //libreria
para puertos para retardos para interrupciones parra lcd para funciones matematicas
//funcion para configuraciones iniciales
//declaracion de variables unsigned char velocidad, set_point; float u, u_anterior, e, e1, e2, tm; unsigned char kp = 2, ki = 5, kd = 5; int ancho; // initialize the library with the numbers of the interface pins LiquidCrystal lcd(A8, A9, A10, A11, A12, A13); void setup() { config_init(); while (!(UCSR0A & (1 << 5))); 5))); //revisar que el UDR de tx este vacio UDR0 = 1; //enviar dato } void loop() { ADMUX = 0b00100000; //Ref AVcc, justificacion derecha, conversor ADC0 ADCSRA = 0b11000111; //iniciar la conversion while (!(ADCSRA & (1 << 6))); //revisar q haya terminado terminado la conversion set_point = ADCH; lcd.setCursor(0, 0); lcd.print(kp); lcd.setCursor(8, 0); lcd.print(ki); lcd.setCursor(0, 1); lcd.print(kd); //pid e = set_point - velocidad; u = u_anterior + e * ((2 * kp * tm + 2 * kd + ki * tm * tm) / (2 * tm)) + e1 * ((ki * tm * tm - 2 * kp * tm - 4 * kd) / (2 * tm)) + e2 * (kd / tm); if (u > 125) { ancho = 125; } else if (u < 0) { ancho = 0; } else { ancho = u; } OCR0B = ancho; e2 = e1; e1 = e; u_anterior = u;
_delay_ms(1000); //retardo para ver datos en lcd } void config_init() { //inicializacion del lcd lcd.begin(16, 2); lcd.clear(); //configuracion usart UBRR0 = 103; UCSR0A = 0; UCSR0B = 0b10011000; UCSR0C = 0b00000110; //configuracion de puertos DDRE = 0b00000010; DDRF = 0; //entrada para potenciomentros DDRB = 0b10000000; //configuracion del adc DIDR0 = 0b00000011; //configuracion del timer 0 OCR0A = 125; TCCR0A = 0b10000011; TCCR0B = 0b00001011; //configuracion timer 1 para 1 seg TCCR1A = 0b00000000; TCCR1B = 0B00001101; OCR1A = 15625; TIMSK1 = 0b00000010; //activar interrupciones globales sei(); tm = 1; } //interrupcion por recpecion ISR(USART0_RX_vect) { kp = UDR0; //guardar dato _delay_ms(3); ki = UDR0; //guardar dato _delay_ms(3); kd = UDR0; _delay_ms(3); while (!(UCSR0A & (1 << 5))); //revisar UDR0 = set_point; //enviar while (!(UCSR0A & (1 << 5))); //revisar UDR0 = velocidad; }
recibido recibido
que el UDR de tx este vacio que el UDR de tx este vacio
//interrupcion por compracion ISR(TIMER1_COMPA_vect) { ADMUX = 0b00100001; //Ref AVcc, justificacion derecha, conversor ADC1 ADCSRA = 0b11000111; //iniciar la conversion while (!(ADCSRA & (1 << 6))); //revisar q haya terminado la conversion velocidad = ADCH;
}
×
Report "Pid"
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
×
Sign In
Email
Password
Remember me
Forgot password?
Sign In
Our partners will collect data and use cookies for ad personalization and measurement.
Learn how we and our ad partner Google, collect and use data
.
Agree & close