Scilab/C4/Calling-User-Defined-Functions-in-XCOS/English-timed

From Script | Spoken-Tutorial
Revision as of 16:40, 19 March 2014 by PoojaMoolya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time Narration


00.01 Welcome to the spoken tutorial on “Calling user-defined functions in Xcos”
00.07 In this tutorial we will learn,
00.09 To write a squaring function in Scilab


00.12 To use the scifunc block in Xcos


00.15 To use MUX block to draw multiple plots
00.19 To call functions having multiple inputs and outputs
00.24 Ubuntu 12.04 is the operating system used with Scilab version 5.3.3 installed.
00.32 You should have Basic knowledge of Scilab


00.35 Basic knowledge of Xcos
00.38 If not, for relevant tutorials please visit spoken hyphen tutorial dot org
00.44 Start Scilab on your computer.
00.47 In the Scilab console, type editor and press Enter


00.53 Then type the following code
00.55 function space y is equal to squareit open bracket a close bracket
01.07 Press the enter key and type
01.10 y is equal to a raise to 2


01.14 put a semicolon in the end


01.17 The function has one input variable a and one output variable y
01.24 The name of the function is squareit


01.27 This function will do the job of squaring the variable a.
01.31 It will store the result in y.


01.34 Let us save this file in the desired directory.


01.38 I will save this file with file name squareit and extension .sci
01.44 Here we are following the convention of saving functions in .sci format.
01.50 Switch to the Scilab console
01.53 Now, type Xcos and press Enter.
01.57 Two windows will open
01.59 A palette browser and an untitled Xcos window.


02.04 Now we will make the Xcos diagram.


02.06 This will access the function squareit created just now.


02.10 This can be done by using scifunc block.


02.14 Switch to the palette browser window
02.17 Click on the User-Defined function in the pallet browser.


02.21 Locate the block scifunc_block_m in this section.
02.27 Drag and drop it in untitled Xcos window.
02.32 I will zoom the untitled Xcos window for better view.
02.36 I will use the Zoom button as you see.
02.40 Now double click on the scifunc block to configure it.


02.44 A window named Scilab multiple values request will open
02.49 This window will allow you to change the number of input and output ports of the scifunc block.
02.56 Our function squareit has only one input and output variable.


03.00 'Hence, we will keep the settings unchanged.
03.03 Click on Ok.
03.05 A new Scilab input value request window will open.


03.09 In the text box, type the function name along with input and output variables.
03.14 This function will be called by the scifunc block


03.18 In the text box available,


03.20 edit the default function name.
03.22 Type y1 equal to squareit open bracket u1 close the bracket
03.31 Note that, here the input and output variables are u1 and y1 respectively.


03.37 These should be strictly in u and y form and not as per the variable names used in the actual function.


03.45 Cick on OK.
03.47 Another Scilab input value request window will open.
03.51 Keep clicking on Ok in the subsequent 3 windows that will appear.


03.56 The scifunc block is now configured.


04.00 Next we will include a sinusoid generator block.
04.04 In the palette browser window, click on Sources section.


04.08 Drag and drop the Sinusoid Generator block in untitled Xcos window.
04.14 Place the block towards the left of the scifunc block for convenience.
04.20 Now we need a block to plot the output variable.
04.23 'In the palette browser window, click on Sinks section.
04.29 Drag and drop the CScope block in the untitled Xcos window.


04.34 Place the block towards the right of the scifunc block


04.38 Place it away from scifunc block, for convenience.


04.43 Notice that the CScope block has a red input port.
04.47 This is an event input


04.49 we need an event generator block.


04.52 In the palette browser window, click on Sources section.


04.57 Drag and drop the clock underscore c block in the untitled Xcos window.
05.05 Place it above the CScope block.
05.08 Notice that the CScope block has only one input port.
05.13 But we want to plot both the input and output variables in a single plot window.
05.18 Hence, we need a multiplexer block,
05.22 This block will multiplex two inputs and generate output on one output port.


05.28 In the palette browser window, click on Signal Routing section.
05.33 Drag and drop the MUX block in the untitled Xcos window.


05.39 Place the block between the scifunc block and CScope block.
05.43 Let me resize and realign the Mux block
05.47 Now let us connect the blocks together.


05.51 Connect the output port of Sinusoid generator block to the input port of scifunc block


05.57 Now connect the output port of scifunc block to the lower input port of the MUX.
06.04 Connect the output port of MUX block to the input port of CScope block.
06.10 Connect the output port of clock underscore c block to the event input port of CScope block.
06.19 We also have to plot sine input.
06.22 We have to connect the Sinusoid generator block to the MUX.
06.26 Click on the upper input port of the MUX block.
06.30 Then without releasing, move your mouse pointer towards the link between the Sinusoid generator block and scifunc block.


06.39 To bend the link, release the mouse button or click at places
06.44 As you bring the pointer on the link, the link turns green.
06.49 Release the mouse button or click once to create a link between these two blocks.
06.55 Now let us see the configuration of other blocks
06.59 We can change the frequency, magnitude and phase of the sinusoid generator block.


07.04 To do this, double click on the Sinusoid generator block.
07.09 The configuration window will open.
07.11 We will keep the magnitude and frequency as 1 and phase as 0
07.18 Click on Ok to close the configuration window.
07.21 Now let us configure the CScope block.
07.25 Double click on the CScope block to open its configuration window.
07.30 Change the Ymin parameter to minus 2 and Ymax parameter to 2
07.37 Change the Refresh period value to 10.
07.41 Make a mental note of this value.
07.44 Change the buffer size value to 2 .
07.47 click on OK


07.50 Now let us configure the CLOCK_c block
07.54 Double click on the block to open its configuration window.
07.58 Keep the value of Period as 0.1
08.02 Change the Initialisation Time to be 0.
08.06 Click on OK
08.08 Now let us change the Simulation parameters.
08.12 On the menu bar of the untitled Xcos window click on the Simulation tab.
08.17 Now click on Setup from the drop down menu.
08.22 Change the Final Integration time to match the Refresh period of CScope block.
08.28 The value of Refresh period was 10.
08.32 Hence, put the value of Final integration time as 10.
08.36 Click on OK
08.38 Now, click on File and then click on Save to save the Xcos diagram.


08.44 Choose a desired directory to save the Xcos diagram.
08.48 However, it is advised to save it in the folder where you have saved the squareit.sci file.
08.56 Click on OK


08.58 Note that the scifunc block will call the squareit function.


09.02 This means that we should first load the squareit function before we execute the xcos diagram.
09.09 Switch to the Scilab editor window, which has the squareit.sci file open.
09.16 Click on the Execute button available on the menu bar of the editor.
09.21 This will load the squareit function.


09.24 Now we can execute the Xcos diagram.
09.28 Open the Xcos diagram file
09.31 Click on the Start button available on the menu bar of Xcos window


09.37 A graphic window will appear.
09.39 This window will have two plots.
09.42 Input sine wave in black color and output sine wave in green color.
09.47 Notice that the squaring function implemented in the squareit function, has indeed squared the input sine wave.
09.55 Hence, the output sine wave has been shifted to the positive axis.
10.00 Close the plot window
10.02 Now, let us see how to edit the scifunc block to call a function which has more than one input and output variables.
10.10 Switch to scilab editor window.
10.13 Edit the squareit function to have two input and output variables.
10.19 Edit the output variable as open square bracket y comma z close the square bracket .
10.28 Edit the input variables as open bracket a comma b close bracket
10.36 We will change the function to shift the squared output by 1 unit.
10.41 Edit the main function line as
10.44 y is equal to b plus a raise to two put a semicolon in the end


10.51 Also generate an output whose amplitude will be half of the input.
10.56 Go to next line by pressing enter key and type
11.01 z is equal to 0.5 multiplied by a put a semicolon in the end
11.10 Now save the file


11.12 switch to the xcos window
11.15 Double click on the scifunc block to configure it.
11.19 In the input port size field, put a semi colon after 1 comma 1 and type 1 comma one again
11.27 Similarly, in the output port size field, put a semi colon after 1 comma 1 and type 1 comma 1 again
11.36 Click on Ok


11.38 A new Scilab input value request window will open.
11.41 In the text box,
11.43 Put a comma after y1 and type y2.
11.48 Put y1 and y2 in square brackets
11.52 Now put a comma after u1 and type u2
11.57 Click on OK
11.59 Another Scilab input value request window will open.
12.03 Keep clicking on Ok in the subsequent 3 windows that will appear.
12.08 The scifunc block is now configured.
12.11 Let me realign the scifunc block
12.14 Switch to the palette browser window.
12.17 In the sources section, drag and drop the Constant underscore m block in the xcos window.
12.24 Place it below the sinusoid generator block.


12.28 Connect the Constant underscore m block to the lower input of the scifunc block
12.36 The default value of this block is 1.
12.39 Keep it unchanged.
12.41 Double click on the MUX block.
12.44 Change the input port size to 3
12.47 Click on OK
12.48 Let me resize the MUX block and I will connect MUX and CSCOPE block properly.
12.59 Connect the lower output port of the scifunc block to the lower input port of MUX block


13.07 Click on File and choose Save to save the xcos file.
13.12 Switch to the Scilab editor which has the squareit.sci file open.
13.18 Click on the Execute button available on the menu bar of the editor.
13.23 This will load the squareit function.
13.26 Now we can execute the Xcos diagram.
13.30 Click on the Start button available on the menu bar of the Xcos window.
13.35 A graphic window will appear.
13.38 This window will have three plots.
13.40 Input sine wave in black color,
13.43 output sine wave in green color and
13.45 amplitude scaled input in red colour
13.49 Notice that the function has indeed squared the input sine wave and also shifted it by an offset of 1 unit, which is as expected.
13.59 We also get the amplitude scaled of the input sine wave, as expected
14.05 Close the plot window
14.08 Now let us summarize.
14.10 In this tutorial we learnt,


14.12 To write a squaring function in Scilab
14.15 To use the scifunc block in Xcos
14.19 To use MUX block to draw multiple plots
14.22 To call functions having multiple input and output


14.26 Watch the video available at the following link
14.29 It summarises the Spoken Tutorial project


14.33 If you do not have good bandwidth, you can download and watch it
14.37 The spoken tutorial project Team
14.40 Conducts workshops using spoken tutorials


14.43 Gives certificates for those who pass an online test


14.47 For more details, please write to contact@spoken-tutorial.org


14.53 Spoken Tutorial Project is a part of Talk to a Teacher project


14.57 It is supported by the National Mission on Eduction through ICT, MHRD, Government of India.
15.05 More information on this mission is available at spoken-tutorial.org/NMEICT-Intro


15.15 Thank you for joining .Hope you found this tutorial useful
15.19 This is Anuradha Amruthkar from IIT Bombay signing off.

Contributors and Content Editors

Gaurav, PoojaMoolya, Sandhya.np14