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)
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. |