Difference between revisions of "Scilab/C4/Calling-User-Defined-Functions-in-XCOS/English-timed"
From Script | Spoken-Tutorial
Sandhya.np14 (Talk | contribs) |
|||
(One intermediate revision by the same user not shown) | |||
Line 7: | Line 7: | ||
|- | |- | ||
| 00:01 | | 00:01 | ||
− | | Welcome to the spoken tutorial on ''' | + | | Welcome to the spoken tutorial on '''Calling user-defined functions in Xcos'''. |
|- | |- | ||
| 00:07 | | 00:07 | ||
− | | In this tutorial we will learn | + | | In this tutorial we will learn: |
|- | |- | ||
|00:09 | |00:09 | ||
− | |To write a squaring function in '''Scilab''' | + | |* To write a squaring function in '''Scilab''' |
− | + | ||
|- | |- | ||
|00:12 | |00:12 | ||
− | |To use the ''' scifunc''' block in ''' Xcos''' | + | |* To use the '''scifunc''' block in ''' Xcos''' |
− | + | ||
|- | |- | ||
| 00:15 | | 00:15 | ||
− | | To use MUX block to draw multiple plots | + | |* To use MUX block to draw multiple plots |
|- | |- | ||
|00:19 | |00:19 | ||
− | |To call functions having multiple inputs and outputs | + | |* To call functions having multiple inputs and outputs. |
|- | |- | ||
| 00:24 | | 00:24 | ||
− | |''' Ubuntu''' 12.04 is the ''' operating system''' used with '''Scilab version 5.3.3 | + | |''' Ubuntu''' 12.04 is the '''operating system''' used with '''Scilab version 5.3.3''' installed. |
|- | |- | ||
| 00:32 | | 00:32 | ||
− | | You should have | + | | You should have basic knowledge of '''Scilab''', |
− | + | ||
|- | |- | ||
|00:35 | |00:35 | ||
− | | | + | |basic knowledge of ''' Xcos'''. |
|- | |- | ||
| 00:38 | | 00:38 | ||
− | | If not, for relevant tutorials please visit ''' spoken hyphen tutorial dot org''' | + | | If not, for relevant tutorials, please visit '''spoken hyphen tutorial dot org'''. |
|- | |- | ||
| 00:44 | | 00:44 | ||
− | | Start ''' Scilab''' on your computer. | + | | Start '''Scilab''' on your computer. |
|- | |- | ||
|00:47 | |00:47 | ||
− | |In the ''' Scilab''' console, type ''' editor''' and press ''' Enter''' | + | |In the '''Scilab''' console, type ''' editor''' and press '''Enter'''. |
− | + | ||
− | + | ||
|- | |- | ||
|00:53 | |00:53 | ||
− | |Then type the following code | + | |Then type the following code: |
|- | |- | ||
Line 66: | Line 61: | ||
|00:55 | |00:55 | ||
− | | | + | |'''function space y is equal to squareit open bracket a close bracket'''. |
|- | |- | ||
Line 72: | Line 67: | ||
|01:07 | |01:07 | ||
− | |Press the | + | |Press the '''Enter''' key and type: |
|- | |- | ||
|01:10 | |01:10 | ||
− | |''' y''' is equal to '''a''' raise to 2 | + | |'''y''' is equal to '''a''' raise to 2 |
− | + | ||
|- | |- | ||
Line 84: | Line 78: | ||
| 01:14 | | 01:14 | ||
− | |put a semicolon in the end | + | |put a semicolon in the end. |
− | + | ||
|- | |- | ||
| 01:17 | | 01:17 | ||
− | |The function has one input variable ''' a''' and one output variable ''' y ''' | + | |The function has one input variable ''' a''' and one output variable '''y'''. |
|- | |- | ||
Line 96: | Line 89: | ||
|01:24 | |01:24 | ||
− | |The name of the function is ''' squareit ''' | + | |The name of the function is '''squareit'''. |
− | + | ||
|- | |- | ||
|01:27 | |01:27 | ||
− | |This function will do the job of squaring the variable ''' a.''' | + | |This function will do the job of squaring the variable '''a.''' |
|- | |- | ||
Line 107: | Line 99: | ||
|01:31 | |01:31 | ||
− | |It will store the result in ''' y.''' | + | |It will store the result in '''y.''' |
− | + | ||
|- | |- | ||
Line 115: | Line 106: | ||
|Let us save this file in the desired directory. | |Let us save this file in the desired directory. | ||
− | |||
− | |||
|- | |- | ||
|01:38 | |01:38 | ||
− | |I will save this file with file name ''' squareit''' and extension ''' .sci ''' | + | |I will save this file with file name ''' squareit''' and extension '''.sci'''. |
|- | |- | ||
Line 131: | Line 120: | ||
|01:50 | |01:50 | ||
− | |Switch to the ''' Scilab''' console | + | |Switch to the '''Scilab''' console. |
|- | |- | ||
Line 137: | Line 126: | ||
|01:53 | |01:53 | ||
− | | Now, type ''' Xcos''' and press '''Enter.''' | + | | Now, type '''Xcos''' and press '''Enter.''' |
|- | |- | ||
Line 143: | Line 132: | ||
|01:57 | |01:57 | ||
− | |Two windows will open | + | |Two windows will open, |
|- | |- | ||
Line 149: | Line 138: | ||
| 01:59 | | 01:59 | ||
− | | | + | |a '''Palette browser''' and an '''Untitled Xcos''' window. |
− | + | ||
|- | |- | ||
| 02:04 | | 02:04 | ||
− | |Now we will make the ''' Xcos''' diagram. | + | |Now we will make the '''Xcos''' diagram. |
− | + | ||
|- | |- | ||
|02:06 | |02:06 | ||
| This will access the function '''squareit''' created just now. | | This will access the function '''squareit''' created just now. | ||
− | |||
|- | |- | ||
|02:10 | |02:10 | ||
| This can be done by using '''scifunc''' block. | | This can be done by using '''scifunc''' block. | ||
− | |||
|- | |- | ||
| 02:14 | | 02:14 | ||
− | |Switch to the ''' | + | |Switch to the '''Palette browser''' window. |
|- | |- | ||
| 02:17 | | 02:17 | ||
|Click on the ''' User-Defined''' function in the pallet browser. | |Click on the ''' User-Defined''' function in the pallet browser. | ||
− | |||
− | |||
|- | |- | ||
Line 183: | Line 166: | ||
|- | |- | ||
| 02:27 | | 02:27 | ||
− | |Drag and drop it in | + | |Drag and drop it in '''untitled Xcos''' window. |
|- | |- | ||
|02:32 | |02:32 | ||
− | |I will zoom the untitled Xcos window for better view. | + | |I will zoom the '''untitled Xcos''' window for better view. |
|- | |- | ||
Line 199: | Line 182: | ||
| 02:40 | | 02:40 | ||
|Now double click on the '''scifunc''' block to configure it. | |Now double click on the '''scifunc''' block to configure it. | ||
− | |||
− | |||
|- | |- | ||
Line 206: | Line 187: | ||
|02:44 | |02:44 | ||
− | |A window named ''' Scilab | + | |A window named ''' Scilab Multiple Values Request''' will open. |
|- | |- | ||
Line 218: | Line 199: | ||
|Our function '''squareit''' has only one input and output variable. | |Our function '''squareit''' has only one input and output variable. | ||
− | |||
|- | |- | ||
Line 224: | Line 204: | ||
| 03:00 | | 03:00 | ||
− | | | + | | Hence, we will keep the settings unchanged. |
|- | |- | ||
Line 230: | Line 210: | ||
| 03:03 | | 03:03 | ||
− | | Click on | + | | Click on '''OK'''. |
|- | |- | ||
Line 236: | Line 216: | ||
|03:05 | |03:05 | ||
− | ||A new '''Scilab | + | ||A new '''Scilab Input Value Request''' window will open. |
− | + | ||
|- | |- | ||
Line 248: | Line 227: | ||
| 03:14 | | 03:14 | ||
− | |This function will be called by the scifunc block | + | |This function will be called by the '''scifunc''' block. |
− | + | ||
− | + | ||
|- | |- | ||
Line 257: | Line 234: | ||
|In the text box available, | |In the text box available, | ||
− | |||
|- | |- | ||
Line 269: | Line 245: | ||
| 03:22 | | 03:22 | ||
− | |Type '''y1''' equal to '''squareit''' open bracket '''u1''' close the bracket | + | |Type '''y1''' equal to '''squareit''' open bracket '''u1''' close the bracket. |
|- | |- | ||
Line 275: | Line 251: | ||
| 03:31 | | 03:31 | ||
− | |Note that | + | |Note that here the input and output variables are '''u1''' and '''y1''' respectively. |
− | + | ||
|- | |- | ||
Line 283: | Line 258: | ||
|These should be strictly in '''u''' and '''y''' form and not as per the variable names used in the actual function. | |These should be strictly in '''u''' and '''y''' form and not as per the variable names used in the actual function. | ||
− | |||
|- | |- | ||
Line 295: | Line 269: | ||
| 03:47 | | 03:47 | ||
− | |Another '''Scilab | + | |Another '''Scilab Input Value Request''' window will open. |
|- | |- | ||
Line 301: | Line 275: | ||
| 03:51 | | 03:51 | ||
− | |Keep clicking on ''' | + | |Keep clicking on '''OK''' in the subsequent 3 windows that will appear. |
− | + | ||
|- | |- | ||
Line 309: | Line 282: | ||
|The '''scifunc''' block is now configured. | |The '''scifunc''' block is now configured. | ||
− | |||
|- | |- | ||
Line 321: | Line 293: | ||
| 04:04 | | 04:04 | ||
− | | In the ''' | + | | In the '''Palette browser''' window, click on '''Sources''' section. |
− | + | ||
|- | |- | ||
Line 328: | Line 299: | ||
| 04:08 | | 04:08 | ||
− | |Drag and drop the '''Sinusoid | + | |Drag and drop the '''Sinusoid generator''' block in '''Untitled Xcos''' window. |
|- | |- | ||
Line 334: | Line 305: | ||
| 04:14 | | 04:14 | ||
− | |Place the block towards the left of the '''scifunc''' block for convenience. | + | |Place the block towards the left of the '''scifunc''' block, for convenience. |
|- | |- | ||
Line 342: | Line 313: | ||
|- | |- | ||
| 04:23 | | 04:23 | ||
− | | | + | |In the '''Palette browser''' window, click on the '''Sinks''' section. |
|- | |- | ||
| 04:29 | | 04:29 | ||
− | |Drag and drop the '''CScope''' block in the ''' | + | |Drag and drop the '''CScope''' block in the '''Untitled Xcos''' window. |
− | + | ||
− | + | ||
|- | |- | ||
Line 355: | Line 324: | ||
| 04:34 | | 04:34 | ||
− | | Place the block towards the right of the '''scifunc''' block | + | | Place the block towards the right of the '''scifunc''' block. |
− | + | ||
− | + | ||
|- | |- | ||
Line 363: | Line 330: | ||
| 04:38 | | 04:38 | ||
− | | Place it away from scifunc block, for convenience. | + | | Place it away from '''scifunc''' block, for convenience. |
− | + | ||
|- | |- | ||
Line 376: | Line 342: | ||
| 04:47 | | 04:47 | ||
− | | This is an event input | + | | This is an event input. |
− | + | ||
|- | |- | ||
Line 384: | Line 349: | ||
|we need an event generator block. | |we need an event generator block. | ||
− | |||
|- | |- | ||
Line 390: | Line 354: | ||
| 04:52 | | 04:52 | ||
− | |In the ''' | + | |In the ''' Palette browser window,''' click on '''Sources''' section. |
− | + | ||
|- | |- | ||
Line 397: | Line 360: | ||
| 04:57 | | 04:57 | ||
− | |Drag and drop the | + | |Drag and drop the CLOCK underscore c block in the '''Untitled Xcos''' window. |
|- | |- | ||
Line 421: | Line 384: | ||
| 05:18 | | 05:18 | ||
− | |Hence, we need a multiplexer block | + | |Hence, we need a '''multiplexer''' block. |
|- | |- | ||
Line 428: | Line 391: | ||
|This block will multiplex two inputs and generate output on one output port. | |This block will multiplex two inputs and generate output on one output port. | ||
− | |||
− | |||
|- | |- | ||
Line 435: | Line 396: | ||
| 05:28 | | 05:28 | ||
− | |In the ''' | + | |In the '''Palette browser window,''' click on '''Signal Routing''' section. |
|- | |- | ||
Line 441: | Line 402: | ||
| 05:33 | | 05:33 | ||
− | |Drag and drop the '''MUX''' block in the ''' | + | |Drag and drop the '''MUX''' block in the '''Untitled Xcos''' window. |
− | + | ||
|- | |- | ||
Line 448: | Line 408: | ||
| 05:39 | | 05:39 | ||
− | |Place the block between the '''scifunc''' block and '''CScope''' | + | |Place the block between the '''scifunc''' block and '''CScope''' block. |
|- | |- | ||
Line 454: | Line 414: | ||
| 05:43 | | 05:43 | ||
− | |Let me resize and realign the '''Mux | + | |Let me resize and realign the '''Mux''' block. |
|- | |- | ||
Line 460: | Line 420: | ||
| 05:47 | | 05:47 | ||
− | |Now let us connect the blocks together. | + | |Now, let us connect the blocks together. |
− | + | ||
|- | |- | ||
Line 467: | Line 426: | ||
| 05:51 | | 05:51 | ||
− | |Connect the output port of '''Sinusoid generator''' block to the input port of '''scifunc''' block | + | |Connect the output port of '''Sinusoid generator''' block to the input port of '''scifunc''' block. |
− | + | ||
− | + | ||
|- | |- | ||
Line 487: | Line 444: | ||
| 06:10 | | 06:10 | ||
− | |Connect the output port of | + | |Connect the output port of CLOCK underscore c block to the event input port of '''CScope''' block. |
|- | |- | ||
| 06:19 | | 06:19 | ||
− | |We also have to plot '''sine''' input. | + | |We also have to plot the '''sine''' input. |
|- | |- | ||
Line 511: | Line 468: | ||
|Then without releasing, move your mouse pointer towards the link between the ''' Sinusoid generator''' block and '''scifunc''' block. | |Then without releasing, move your mouse pointer towards the link between the ''' Sinusoid generator''' block and '''scifunc''' block. | ||
− | |||
|- | |- | ||
Line 517: | Line 473: | ||
| 06:39 | | 06:39 | ||
− | |To bend the link, release the mouse button or click at places | + | |To bend the link, release the mouse button or click at places. |
|- | |- | ||
Line 535: | Line 491: | ||
| 06:55 | | 06:55 | ||
− | |Now let us see the configuration of other blocks | + | |Now let us see the configuration of other blocks. |
|- | |- | ||
Line 542: | Line 498: | ||
| We can change the '''frequency, magnitude''' and '''phase''' of the '''sinusoid generator''' block. | | We can change the '''frequency, magnitude''' and '''phase''' of the '''sinusoid generator''' block. | ||
− | |||
|- | |- | ||
Line 548: | Line 503: | ||
| 07:04 | | 07:04 | ||
− | |To do this, double click on the '''Sinusoid''' | + | |To do this, double click on the '''Sinusoid generator''' block. |
|- | |- | ||
Line 560: | Line 515: | ||
| 07:11 | | 07:11 | ||
− | |We will keep the ''' | + | |We will keep the '''Magnitude''' and '''Frequency''' as 1 and '''Phase''' as 0. |
|- | |- | ||
Line 566: | Line 521: | ||
| 07:18 | | 07:18 | ||
− | |Click on ''' | + | |Click on '''OK''' to close the configuration window. |
|- | |- | ||
Line 584: | Line 539: | ||
| 07:30 | | 07:30 | ||
− | |Change the ''' Ymin''' parameter to minus 2 and '''Ymax''' parameter to 2 | + | |Change the '''Ymin''' parameter to minus 2 and '''Ymax''' parameter to 2. |
|- | |- | ||
Line 602: | Line 557: | ||
| 07:44 | | 07:44 | ||
− | |Change the ''' | + | |Change the '''Buffer size''' value to 2 . |
|- | |- | ||
Line 608: | Line 563: | ||
| 07:47 | | 07:47 | ||
− | |click on '''OK''' | + | |click on '''OK'''. |
− | + | ||
|- | |- | ||
Line 615: | Line 569: | ||
| 07:50 | | 07:50 | ||
− | |Now let us configure the '''CLOCK_c''' block | + | |Now let us configure the '''CLOCK_c''' block. |
|- | |- | ||
Line 627: | Line 581: | ||
| 07:58 | | 07:58 | ||
− | |Keep the value of ''' Period''' | + | |Keep the value of '''Period''' as 0.1. |
|- | |- | ||
Line 633: | Line 587: | ||
| 08:02 | | 08:02 | ||
− | |Change the ''' Initialisation Time''' to be 0. | + | |Change the '''Initialisation Time''' to be 0. |
|- | |- | ||
Line 639: | Line 593: | ||
| 08:06 | | 08:06 | ||
− | |Click on OK | + | |Click on OK. |
|- | |- | ||
Line 651: | Line 605: | ||
| 08:12 | | 08:12 | ||
− | |On the menu bar of the ''' | + | |On the menu bar of the '''Untitled Xcos''' window click on the '''Simulation''' tab. |
|- | |- | ||
Line 657: | Line 611: | ||
| 08:17 | | 08:17 | ||
− | |Now click on ''' Setup from the drop down menu. | + | |Now click on '''Setup''' from the drop down menu. |
|- | |- | ||
Line 663: | Line 617: | ||
| 08:22 | | 08:22 | ||
− | |Change the ''' Final Integration time''' to match the '''Refresh period''' of '''CScope''' block. | + | |Change the '''Final Integration time''' to match the '''Refresh period''' of '''CScope''' block. |
|- | |- | ||
Line 681: | Line 635: | ||
| 08:36 | | 08:36 | ||
− | |Click on '''OK''' | + | |Click on '''OK'''. |
|- | |- | ||
Line 688: | Line 642: | ||
|Now, click on '''File''' and then click on '''Save''' to save the '''Xcos''' diagram. | |Now, click on '''File''' and then click on '''Save''' to save the '''Xcos''' diagram. | ||
− | |||
|- | |- | ||
Line 706: | Line 659: | ||
| 08:56 | | 08:56 | ||
− | |Click on OK | + | |Click on '''OK'''. |
− | + | ||
|- | |- | ||
Line 714: | Line 666: | ||
|Note that the '''scifunc''' block will call the ''' squareit''' function. | |Note that the '''scifunc''' block will call the ''' squareit''' function. | ||
− | |||
|- | |- | ||
Line 720: | Line 671: | ||
| 09:02 | | 09:02 | ||
− | |This means that we should first load the ''' squareit''' function before we execute the | + | |This means that we should first load the ''' squareit''' function before we execute the '''Xcos diagram'''. |
|- | |- | ||
Line 739: | Line 690: | ||
|This will load the '''squareit''' function. | |This will load the '''squareit''' function. | ||
− | |||
|- | |- | ||
Line 751: | Line 701: | ||
| 09:28 | | 09:28 | ||
− | |Open the Xcos diagram file | + | |Open the '''Xcos diagram''' file. |
|- | |- | ||
Line 757: | Line 707: | ||
| 09:31 | | 09:31 | ||
− | |Click on the '''Start''' button available on the '''menu bar''' of '''Xcos''' window | + | |Click on the '''Start''' button available on the '''menu bar''' of '''Xcos''' window. |
− | + | ||
|- | |- | ||
Line 793: | Line 742: | ||
| 10:00 | | 10:00 | ||
− | |Close the plot window | + | |Close the '''plot''' window. |
|- | |- | ||
Line 799: | Line 748: | ||
| 10:02 | | 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. | + | |Now, let us see how to edit the '''scifunc''' block to '''call''' a function which has more than one input and output variables. |
|- | |- | ||
Line 823: | Line 772: | ||
| 10:28 | | 10:28 | ||
− | |Edit the input variables as open bracket '''a''' comma '''b''' close bracket | + | |Edit the input variables as open bracket '''a''' comma '''b''' close bracket. |
|- | |- | ||
Line 835: | Line 784: | ||
| 10:41 | | 10:41 | ||
− | |Edit the main function line as | + | |Edit the main function line as: |
|- | |- | ||
Line 841: | Line 790: | ||
| 10:44 | | 10:44 | ||
− | |'''y''' is equal to '''b''' plus '''a''' raise to two put a semicolon in the end | + | |'''y''' is equal to '''b''' plus '''a''' raise to two put a semicolon in the end. |
− | + | ||
− | + | ||
|- | |- | ||
Line 855: | Line 802: | ||
| 10:56 | | 10:56 | ||
− | |Go to next line by pressing | + | |Go to next line by pressing '''Enter''' key and type: |
|- | |- | ||
Line 861: | Line 808: | ||
| 11:01 | | 11:01 | ||
− | |'''z''' is equal to 0.5 multiplied by a put a semicolon in the end | + | |'''z''' is equal to 0.5 multiplied by a put a semicolon in the end. |
|- | |- | ||
Line 867: | Line 814: | ||
| 11:10 | | 11:10 | ||
− | |Now save the file | + | |Now save the file. |
− | + | ||
|- | |- | ||
Line 874: | Line 820: | ||
| 11:12 | | 11:12 | ||
− | | | + | | Switch to the '''Xcos''' window. |
|- | |- | ||
Line 886: | Line 832: | ||
| 11:19 | | 11:19 | ||
− | |In the ''' input port size | + | |In the '''input port size''' field, put a semi colon after 1 comma 1 and type 1 comma one again. |
|- | |- | ||
Line 892: | Line 838: | ||
| 11:27 | | 11:27 | ||
− | |Similarly, in the output port size field, put a semi colon after 1 comma 1 and type 1 comma 1 again | + | |Similarly, in the '''output port size''' field, put a semi colon after 1 comma 1 and type 1 comma 1 again. |
|- | |- | ||
Line 898: | Line 844: | ||
| 11:36 | | 11:36 | ||
− | |Click on | + | |Click on '''OK'''. |
− | + | ||
|- | |- | ||
Line 905: | Line 850: | ||
| 11:38 | | 11:38 | ||
− | |A new '''Scilab | + | |A new '''Scilab Input Value Request''' window will open. |
|- | |- | ||
Line 917: | Line 862: | ||
| 11:43 | | 11:43 | ||
− | | | + | |put a comma after y1 and type y2, |
|- | |- | ||
Line 923: | Line 868: | ||
| 11:48 | | 11:48 | ||
− | | | + | |put y1 and y2 in square brackets, |
|- | |- | ||
Line 929: | Line 874: | ||
| 11:52 | | 11:52 | ||
− | | | + | |now put a comma after '''u1''' and type '''u2'''. |
|- | |- | ||
Line 935: | Line 880: | ||
| 11:57 | | 11:57 | ||
− | |Click on OK | + | |Click on '''OK'''. |
|- | |- | ||
Line 941: | Line 886: | ||
| 11:59 | | 11:59 | ||
− | |Another '''Scilab | + | |Another '''Scilab Input Value Request''' window will open. |
|- | |- | ||
Line 947: | Line 892: | ||
| 12:03 | | 12:03 | ||
− | |Keep clicking on ''' | + | |Keep clicking on '''OK''' in the subsequent 3 windows that will appear. |
|- | |- | ||
Line 959: | Line 904: | ||
| 12:11 | | 12:11 | ||
− | |Let me realign the scifunc block | + | |Let me realign the '''scifunc''' block. |
|- | |- | ||
| 12:14 | | 12:14 | ||
− | |Switch to the ''' | + | |Switch to the ''' Palette browser''' window. |
|- | |- | ||
Line 970: | Line 915: | ||
| 12:17 | | 12:17 | ||
− | |In the ''' | + | |In the '''Sources''' section, drag and drop the '''Constant underscore m''' block in the '''Xcos''' window. |
|- | |- | ||
Line 976: | Line 921: | ||
| 12:24 | | 12:24 | ||
− | |Place it below the | + | |Place it below the '''Sinusoid generator''' block. |
− | + | ||
|- | |- | ||
Line 983: | Line 927: | ||
| 12:28 | | 12:28 | ||
− | |Connect the ''' Constant underscore m''' block to the lower input of the '''scifunc''' block | + | |Connect the '''Constant underscore m''' block to the lower input of the '''scifunc''' block. |
|- | |- | ||
Line 1,007: | Line 951: | ||
| 12:44 | | 12:44 | ||
− | |Change the ''' input port size''' to 3 | + | |Change the '''input port size''' to 3. |
|- | |- | ||
Line 1,013: | Line 957: | ||
| 12:47 | | 12:47 | ||
− | |Click on '''OK''' | + | |Click on '''OK'''. |
|- | |- | ||
Line 1,025: | Line 969: | ||
| 12:59 | | 12:59 | ||
− | |Connect the lower output port of the '''scifunc''' block to the lower input port of '''MUX''' block | + | |Connect the lower output port of the '''scifunc''' block to the lower input port of '''MUX''' block. |
− | + | ||
|- | |- | ||
Line 1,032: | Line 975: | ||
| 13:07 | | 13:07 | ||
− | |Click on '''File''' and choose '''Save''' to save the xcos file. | + | |Click on '''File''' and choose '''Save''' to save the '''xcos''' file. |
|- | |- | ||
Line 1,062: | Line 1,005: | ||
| 13:30 | | 13:30 | ||
− | |Click on the '''Start''' button available on the '''menu bar''' of | + | |Click on the '''Start''' button available on the '''menu bar''' of the '''Xcos''' window. |
|- | |- | ||
Line 1,091: | Line 1,034: | ||
| 13:45 | | 13:45 | ||
− | | amplitude scaled input in red colour | + | | amplitude scaled input in red colour. |
|- | |- | ||
Line 1,103: | Line 1,046: | ||
| 13:59 | | 13:59 | ||
− | |We also get the amplitude scaled of the input '''sine wave,''' as expected | + | |We also get the amplitude scaled of the input '''sine wave,''' as expected. |
|- | |- | ||
Line 1,109: | Line 1,052: | ||
| 14:05 | | 14:05 | ||
− | |Close the plot window | + | |Close the plot window. |
|- | |- | ||
Line 1,121: | Line 1,064: | ||
| 14:10 | | 14:10 | ||
− | |In this tutorial we learnt | + | |In this tutorial we learnt: |
− | + | ||
|- | |- | ||
Line 1,128: | Line 1,070: | ||
| 14:12 | | 14:12 | ||
− | |To write a squaring function in '''Scilab''' | + | |* To write a squaring function in '''Scilab''' |
|- | |- | ||
Line 1,134: | Line 1,076: | ||
| 14:15 | | 14:15 | ||
− | |To use the '''scifunc''' block in '''Xcos ''' | + | |* To use the '''scifunc''' block in '''Xcos ''' |
|- | |- | ||
Line 1,140: | Line 1,082: | ||
| 14:19 | | 14:19 | ||
− | |To use '''MUX ''' block to draw multiple plots | + | |* To use '''MUX ''' block to draw multiple plots |
|- | |- | ||
Line 1,146: | Line 1,088: | ||
| 14:22 | | 14:22 | ||
− | |To call functions having multiple input and output | + | |* To call functions having multiple input and output. |
− | + | ||
|- | |- | ||
|14:26 | |14:26 | ||
− | | Watch the video available at the following link | + | | Watch the video available at the following link. |
|- | |- | ||
Line 1,157: | Line 1,098: | ||
| 14:29 | | 14:29 | ||
− | | It | + | | It summarizes the Spoken Tutorial project. |
− | + | ||
− | + | ||
|- | |- | ||
Line 1,165: | Line 1,104: | ||
|14:33 | |14:33 | ||
− | ||If you do not have good bandwidth, you can download and watch it | + | ||If you do not have good bandwidth, you can download and watch it. |
|- | |- | ||
Line 1,171: | Line 1,110: | ||
|14:37 | |14:37 | ||
− | ||The spoken tutorial project Team | + | ||The spoken tutorial project Team: |
|- | |- | ||
Line 1,177: | Line 1,116: | ||
|14:40 | |14:40 | ||
− | ||Conducts workshops using spoken tutorials | + | ||Conducts workshops using spoken tutorials. |
− | + | ||
|- | |- | ||
Line 1,184: | Line 1,122: | ||
|14:43 | |14:43 | ||
− | ||Gives certificates for those who pass an online test | + | ||Gives certificates for those who pass an online test. |
− | + | ||
|- | |- | ||
Line 1,192: | Line 1,129: | ||
||For more details, please write to contact@spoken-tutorial.org | ||For more details, please write to contact@spoken-tutorial.org | ||
− | |||
|- | |- | ||
Line 1,198: | Line 1,134: | ||
|14:53 | |14:53 | ||
− | |Spoken Tutorial Project is a part of Talk to a Teacher project | + | |Spoken Tutorial Project is a part of Talk to a Teacher project. |
− | + | ||
− | + | ||
|- | |- | ||
Line 1,211: | Line 1,145: | ||
| 15:05 | | 15:05 | ||
− | |More information on this mission is available at spoken-tutorial.org/NMEICT-Intro | + | |More information on this mission is available at spoken-tutorial.org/NMEICT-Intro. |
− | + | ||
− | + | ||
|- | |- | ||
Line 1,219: | Line 1,151: | ||
|15:15 | |15:15 | ||
− | | Thank you for joining .Hope you found this tutorial useful | + | | Thank you for joining. Hope you found this tutorial useful. |
|- | |- | ||
Line 1,225: | Line 1,157: | ||
| 15:19 | | 15:19 | ||
− | |This is Anuradha Amruthkar from IIT Bombay signing off. | + | |This is Anuradha Amruthkar from IIT Bombay, signing off. |
Latest revision as of 11:55, 4 March 2015
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 the 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 the 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 summarizes 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. |