27
1 BANSILAL RAMNATH AGARWAL CHARITABLE TRUST’S VISHWAKARMA INSTITUTE OF TECHNOLOGY PUNE 411 037. (An Autonomous Institute Affiliated to University of Pune) A Mini project report on MATLAB GUI (CALCULATOR, PLOTS, RESPONSES, CONVOLUTION) Submitted by RISHYAB KOUL (R-10) SHRIJAY KALAMBE (Q-27) SANDEEP SURYAWANSHI (R-16) Under The Guidance of Prof. Mrs. S.S. PATANKAR Dept. of Instrumentation and control.

Final project report

Embed Size (px)

Citation preview

Page 1: Final project report

1

BANSILAL RAMNATH AGARWAL CHARITABLE TRUST’S

VISHWAKARMA INSTITUTE OF TECHNOLOGY

PUNE – 411 037.

(An Autonomous Institute Affiliated to University of Pune)

A Mini project report on

“MATLAB GUI ”

(CALCULATOR, PLOTS, RESPONSES, CONVOLUTION)

Submitted by

RISHYAB KOUL (R-10)

SHRIJAY KALAMBE (Q-27)

SANDEEP SURYAWANSHI (R-16)

Under The Guidance of

Prof. Mrs. S.S. PATANKAR

Dept. of Instrumentation and control.

Page 2: Final project report

2

Bansilal Ramnath Agrawal Charitable Trust’s

VISHWAKARMA INSTITUTE OF TECHNOLOGY

PUNE – 411 037.

CERTIFICATE

This is to certify that the mini project titled “MATLAB GUI” has been completed in the

academic year 2012-13 by RISHYAB KOUL (R-10), SHRIJAY KALAMBE (Q-27) and

SANDEEP SURYAWANSHI (R-16) in partial fulfillment of the Bachelor’s Degree in the

second Year Instrumentation Engineering as prescribed by the University of Pune.

Prof. Mrs. S S Patankar Prof. Dr. J V Kulkarni

(Guide) (Head of the Department)

Place: Pune Date:

Page 3: Final project report

3

ACKNOWLEDGEMENT

We would like to thank our project guide Prof. Mrs. S.S.Patankar for her valuable

guidance, suggestions and timely help in the completion of project report on

“MATLAB GUI. We would also like to extend our sincere gratitude to Prof. Dr. J.V.

KULKARNI Head of Department and all the staff members of the Instrumentation and

Control Engineering Department for their timely support, encouragement and

guidance. Last but not the least we express profuse regards and deep wishes to friends

who gave helping hands with their direct and indirect co-operation.

Page 4: Final project report

4

Table of Contents

Chapter Sr. No. Topic Page

No.

1 Introduction 7

1.1 Motivation 7

1.2 Scope 7

1.3 Problem statement 7

2 Calculator 8

2.1 Function used 8

2.2 Flow chart 9

2.3 Pseudo code 10

2.4 Testing 10

3 Plot 11

3.1 Function used 11

3.2 Flow chart 12

3.3 Pseudo code 13

3.4 Testing 13

4 Responses 14

4.1 Function used 14

4.2 Flow chart 15

4.3 Pseudo code 16

4.4 Testing 16

5 Convolution 17

Page 5: Final project report

5

5.1 Function used 18

5.2 Flow chart 19

5.3 Pseudo code 20

5.4 Testing 20

6 Step 21

6.1 Function used 21

6.2 Flow chart 22

6.3 Pseudo code 23

6.4 Testing 23

7 bode 24

7.1 Function used 24

7.2 Flow chart 25

7.3 Pseudo code 26

7.4 Testing 26

8 Conclusion/Future scope 27

9 Bibliography 28

Page 6: Final project report

6

List of Figures

Sr. No. Topic Page no.

1 Fig 2.1 Calculator 8

2 fig 3.1 Sine curve 11

3 Fig 4.1: Convolution sum of the two systems. 14

4 Fig 5.2 impulse response of system 17

5 Fig 6.1step response of system 20

6 Fig7. 1 bode plot of system

23

Page 7: Final project report

7

Chapter 1.

Introduction

Here by using basic tools of MATLAB GUI (graphical user interface ) we have made

calculator , plots of basic function ,bode plots ,impulse response ,step response ,convolution of

system .for understanding the basic function of the GUI and programming we have made the

calculator which will perform the basic function mathematics like addition, multiplication,

subtraction , division and some more .which helped lots us to understand tools in in matlab and

programming . Here by understanding concepts of GUI we have applied to find out bode plot of

any system to graphically means without going for programming and which will easy for

anybody to find bode plot of system.

For convolution we had plotted two given function and range we have taken from user.

The we have added that this two function by using graphical method. Mainmenu is a

combination of all function through which we can go to all for operation.

1.1 Motivation: We have studied the ‘Signals and system’ and Control System then we came across many terms

like bode plot, impulse response, step response, convolution of two signals. We have

implemented this all in the very wonderful matrix laboratory tool “MATLAB”, and then we

thought of making it very user friendly so that without knowing the programming for the

particular function one can use it.

For that we used the Matlab GUI tool to make it user friendly in this way we come up with this

project.

1.2 Scope: By using this matlab GUI tool the mathematical concept like impulse response, step response,

bode plot, convolution can be made very user friendly without knowing these above concepts

how to implement in matlab one can use this tool. No need to do programming again and again it

will save lots of time of user to get output.

1.3 Problem statement:

To develop an algorithm for calculator, plots, responses, convolution using matlab

programming and graphical user interface .make the GUI in such a way that user can give input

and he will get the output in the graphical or algebraic form

Page 8: Final project report

8

Chapter 2.

Fig 1.1 Calculator:

2.1 Function used

1. strcat

2. str2num

3. get

4. set

Page 9: Final project report

9

2.2 Flow chart:

INPUT OF NUMBER &

OPERATION

THROUGH GUI

CHECK IF

THE

NUMBER

IS PRESNT

IN TEXT

BOX STRING =STRING

THROGH THE INPUT

+STRING FROM TEXT BOX

START

CONVERT STRING INTO

NUMBER

RESULT

STOP

Page 10: Final project report

10

2.3 Algorithm: 1. For this we have first made GUI ,added this push button to which will serve as an input

for taking the number through user and arithmetical input such as ( + ,- , *, /, )

2. We have added static text box for displaying input which is given by user and for

showing the result.

3. Here we have used the logic as taking input from user as string it will take as string

from the user through button and it will add this string to string which if already present

in the static text box .

4. PSUDO CODE FOR THIS IS AS FOLLOW

n=get(handles.text1,'String');

m=get(handles.pushbutton17,'String');

set(handles.text1,'string',strcat(n,m))

% Here we adding two string through function strcat

When we press the equal to (=) button the this string which is present

in static text bar will be converted into the number by using

comment% str2num n=str2num(get(handles.text1,'String'));

set(handles.text1,'string',n)

For function like all clear [AC] we have made hole string zero .

set(handles.text1,'string','0')

2.4 Testing: 1 This follows bodmos rule if you gave function

2*3 +4 it will give 10

2. This calculator will give the output for division by zero to any no. as inf means infinity

Eg 4/0 =inf

3 Here we have faced problem while developing scientific calculator.

4 we are trying to develop on the scientific calculator

Page 11: Final project report

11

Chapter 3:

Plots:

Sine curve fig 3.1:-

3.1 Function used

1. strcat

2. str2num

3. get

4. set

Page 12: Final project report

12

3.1 Flowchart

FIND THE VALUE OF

TRIGNOMETRIC FUNCTION

PUTTING VALUE OF T IN IT

START

INPUT

RANGE OF T

PLOT THE GRAPH OF ‘T’

VERSUS

TRIGONOMETRIC

FUNCTION

SHOW THE GRAPH

IN AXES

STOP

Page 13: Final project report

13

3.2 Algotrithm: 1. For this we have made the GUI , which consist of button and axis ,edit text

2. Buttons are given function to plot the curves of sin ,cos ,tan

t=str2num(get(handles.edit1,'string')

r=get(handles.edit2,'string')

p=plot(t,r);

set(handles.axes1,'string',p)

3. here t is for taking the range in the form string converting into number

4. r is taking trigonometric function by putting value of t in it

5. Plot function is plotting the graph of t and r

6. Set is plotting this graph in axes

3.3 Testing 1. Here we are able to plot the basic plots sine, cos, tan with the given range of t.

E.g. sin(t) here t’s range 0.1:0.1:5 then we are plotting the plot of sin(t), t.

2. We have faced the problem that we can’t give the input function from the user.

3. And here we are planning to add the exponential function and logarithmic function in the near

future.

4. And we are also studying how to add the function from the user.

Page 14: Final project report

14

Chapter 4.

Convolution

Fig 4.1: Convolution sum of the two systems.

4.1 Function used

1. inline

2. str2num

3. get

4. set

5 stem

Page 15: Final project report

15

4.2 Flow chart:

Convolution

START

For loop

Condn(?)

RESULT

STOP

T1 T2

Signal 1 Signal 2

Fig

1 Fig

2

END

t=tvec

ti=ti+1;

xh=h(t-tau).*x(tau);

y(ti)=sum(xh.*dtau);

tt=str2num

(get(handl

es.edit1,'

string'))

tvec=str2num(get(han

dles.edit2,'string')

)

x=inline('((exp(1)/10).^(

t-2)).*(t>=-5)','t')

h=inline('(2*((t=

=6)-(-

.8).^(t+2))).*(t>

=1)','t')

Page 16: Final project report

16

4.3 Algorithm 1. For this we have first made GUI figure shown above ,here T1 & T2 button

will give time period for the signals to generate the graph of the signals.

2. Then from the signals two figures will generate to which we have to

convolute.

3. These two graph or (signals) undergo the convolution on pressing

convolution.

4. After that we will get the output of the two signals as a convolution or as a

result.

5. For that we have shown below the flow diagram and the logic for the

following.

6. Stop.

Testing: 1. Here we are taking two functions’ range from user and we are plotting the convolution

sum graphically.

2. And here also we are not able to take the input function from the user.

3. We are studying how to take the input function from the user.

Page 17: Final project report

17

Chapter 5

Impulse

Fig 5.2 impulse response of system

5.1 Function used

1. plot

2. str2num

3. get

4. set

5 impulse

6 tf

Page 18: Final project report

18

5.2Flow chart:

t=str2num(get(handles.edit1,'string'))

Impulse(G)

START

NUM

M

DEN

G=tf (NUM, DEN)

Impulse(G)

Plot is obtained

END

Page 19: Final project report

19

5.3Algoritham 1. For this we have first made GUI, added this push button (NUM, DEN) to which will

serve as an input for taking the number through user.

2. We have added static text box for displaying input which is given by user and for

showing the result.

3. Here we have used the logic as taking input from user as string it will take as string

from the user through button and it will add this string to string which if already present

in the static text box .

4. PSUDO CODE FOR THIS IS AS FOLLOW

num=1

t=str2num(get(handles.edit1,'string'))

g=tf(num,t)

impulse(g)

title('impulse response')

xlabel('time')

ylabel('amplitude')

set(handles.axes1,'string',p)

5.4 Testing :

1. We are taking the range of input function from the user and plotting the impulse

response of the system.

2. And we are not able to take the input function from the user.

3. We are studying how to take the function from the user.

Page 20: Final project report

20

Chapter 6

Step

fIg 6.1step response of system

6.1 Function used

1. plot

2. str2num

3. get

4. set

5 impulse

6 tf

Page 21: Final project report

21

Flow chart:

t=str2num(get(handles.edit1,'string'))

step(g)

START

NUM

M

DEN

G=tf (NUM,DEN)

Step(G)

Plot is obtained

END

Page 22: Final project report

22

6.2 Algorithm: 1. For this we have first made GUI, added this push button (NUM, DEN) to which will

serve as an input for taking the number through user.

2. We have added static text box for displaying input which is given by user and for

showing the result.

3. Here we have used the logic as taking input from user as string it will take as string

from the user through button and it will add this string to string which if already present

in the static text box .

4. PSUDO CODE FOR THIS IS AS FOLLOW

num=1

t=str2num(get(handles.edit1,'string'))

g=tf(num,t)

step(g)

title('impulse response')

xlabel('time')

ylabel('amplitude')

set(handles.axes1,'string',p)

6.3Testing : 1We are taking the range of input function from the user and plotting the step response of

the system.

2And we are not able to take the input function from the user.

3We are studying how to take the function from the user.

Page 23: Final project report

23

Chapter 7

Bode plot

Fig7. 1 bode plot of system

7.1 Function used

1. plot

2. str2num

3. get

4. set

5.bode

6. tf

Page 24: Final project report

24

7.2 Flow chart:

step(g)

START

NUM

M

DEN

G=tf (NUM, DEN)

Step(G)

Plot is obtained

END

t=str2num(get

(handles.edit1,'

string'))

t=str2num(get

(handles.edit1,

'string'))

Page 25: Final project report

25

7.4 Algorithm: 1. For this we have first made GUI, added this push button (NUM, DEN) to which will

serve as an input for taking the number through user.

2. We have added static text box for displaying input which is given by user and for

showing the result.

3. Here we have used the logic as taking input from user as string it will take as string

from the user through button and it will add this string to string which if already present

in the static text box .

4. PSUDO CODE FOR THIS IS AS FOLLOW

num=str2num(get(handles.edit1,'string')) den=str2num(get(handles.edit2,'string')) g=tf(num,den) bode(g) title('bode graph') grid on xlabel('frequency') ylabel('amplitude') margin(g) set(handles.axes1,'string',p)

7.5 Testing:

1. We are taking the numerator and denominator of the input system from the user and

plotting the bode and the gain and phase margin.

Page 26: Final project report

26

Chapter 8

Conclusion and future scope

The project has been successfully completed by having established the user friendly interface

with the help of Matlab GUI tool. It consists of calculator, bode plot, impulse response, step

response, convolution of two signals and other basic trigonometric plots. At the same time there

is some scope for improvement in the future. It can be possible to make it more users friendly by

adding more variety of functions to it. If we are able to introduce user defined functions then it

will give user what he wants, that will be ultimate success of our attempts.

Page 27: Final project report

27

BIBLIOGRAPHY

1. www.mathworks.com

2. Build GUI

3. Control system by OGATA

4. Signal and system by Ramesh Babu