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