Mobile Robot-Control Systems-Project Report, Study Guides, Projects, Research of Control Systems

This project report was submitted to Dr. Anbu Manghirmalani at Birla Institute of Technology and Science. this project helped students to learn concepts of Control Systems in Electrical Engineering. It includes: Mechatronics, Design, project, Hardware, Drive, Motor, Controls, Speed, Rear, Sensors, Calibrated

Typology: Study Guides, Projects, Research

2011/2012

Uploaded on 07/30/2012

badsha
badsha 🇮🇳

4.3

(28)

213 documents

1 / 13

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CO.
a.
L . F .
Drive Motor
-located at rear of car
-Controls speed
Steering Motor
- located at front
-controls tracking of
car based on track
sensors
- Utilizes PID controller
Main Difference
- spring return
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Partial preview of the text

Download Mobile Robot-Control Systems-Project Report and more Study Guides, Projects, Research Control Systems in PDF only on Docsity!

CO.

a.

L.

F.

Drive Motor

located at rear of car

Controls speed

Steering Motor

- located at front -

controls tracking of

• car based on track sensors - Utilizes PID controller

Main Difference

- spring return

CO.

a.

L.

F.

Already Calibrated

2 Front Sensors (follow track)

1 inch apart, best distance

Side Sensor

(stopping)

CO.

a.

L.

F.

start

Declare

Variables

void main() { int y , i ; float r = 0.0; float e_curr; // current error float check_time; float t_sample = .03; // sample time float u_control; float e_prev = 0.0; float i_prev = 0.0; // PID Values float kp=0.6; float td=0.00; float ti=100000.0; float mvalue; int knob_value;

continued

CO.

a.

L.

F.

continued

Stop

Button

Set speed^ Pressed?

With knob

no

yes

// reduces sensitivity of knob and set to standard speeds while(!stop_button()) { if(knob()<= 25) knob_value=15; if(knob()>25 && knob()<=50) knob_value=18; if(knob()> 50 && knob()<=75) knob_value=20; if(knob()>75 && knob()<=100) knob_value=23; if(knob()>100 && knob()<=125) knob_value=25; if(knob()> 125 && knob()<=175) knob_value=27; if(knob()>175 && knob()<=225) knob_value=30; if(knob()>225 && knob()<=255) knob_value=32; printf("%d\n",knob_value); msleep(200L); }

CO.

a.

L.

F.

Stop Button Pressed?

yes

Object

near Side?^ end

yes

no

Check_time= seconds – t_sample * (float)(i) Set u_control^ Set y (error) Set e_curr Motor(1,u_control) Update errors^ and integrals Set integral i ++ -.01< Time <0.01?

yes

no

CO.

a.

L.

F.

while(!stop_button()) { check_time = seconds()- t_sample(float)(i); if (check_time < 0.01 && check_time > -0.01) { while(analog(5)>8) { float i_curr= i_prev + 0.5 * (e_curr + e_prev)t_sample; u_control = kpe_curr + kptd(e_curr - e_prev)/t_sample + (kp /ti)i_curr; y= analog(4)-analog(2); e_curr=r-(float)(y); //set motor speed to u_control motor(1,(int)(u_control)); e_prev=e_curr; i_prev=i_curr; i++; } ao(); tone(1000.0,0.3);tone(999.0,0.3);tone(850.0,0.3); tone(750.0,0.3);tone(642.0,0.3);tone(510.0,0.3);tone(510.0,0.3); printf("\nClear!"); } } ao(); printf("\nBye!"); beep();beep(); }

CO.

a.

L.

F.

Initial Kp set to 1.

Varied Kp 1.

Æ

Ti =100,

Td =0.

Varing Kp -100-150 -

0 50 250200150100 0 1000 2000 3000 4000 Time (msec.) Tracking Error (y) kp=1.0kp=0.8kp=0.6kp=0. Use Kp=0.

CO.

a.

L.

F.

Initial Ti set to

Varing Ti

0 80 60 40 20 180160140120100 0 200 400 600 800 1000 Time (msec.) Tracking Error (y) ti=500ti=1000ti=10,000ti=100, Use ti=

CO.

a.

L.

F.