Difference between revisions of "Scilab/C4/Calling-User-Defined-Functions-in-XCOS/English-timed"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
Line 7: Line 7:
 
|-
 
|-
 
| 00:01
 
| 00:01
| Welcome to the spoken tutorial on ''' “Calling user-defined functions in Xcos”'''  
+
| 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 installed.'''
+
|''' Ubuntu''' 12.04 is the '''operating system''' used with '''Scilab version 5.3.3''' installed.
  
 
|-
 
|-
 
| 00:32
 
| 00:32
| You should have Basic knowledge of ''' Scilab'''
+
| You should have basic knowledge of '''Scilab''',
 
+
  
 
|-
 
|-
 
|00:35
 
|00:35
|Basic knowledge of ''' Xcos'''
+
|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  
+
|'''function space y is equal to squareit open bracket a close bracket'''.
  
 
|-
 
|-
Line 72: Line 67:
 
|01:07
 
|01:07
  
|Press the enter key and type  
+
|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.  
+
|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 ''' palette browser''' window  
+
|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 '''untitled Xcos''' window.  
+
|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 multiple values request''' will open  
+
|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.  
+
| Hence, we will keep the settings unchanged.  
  
 
|-
 
|-
Line 230: Line 210:
 
| 03:03
 
| 03:03
  
| Click on Ok.  
+
| Click on '''OK'''.  
  
 
|-
 
|-
Line 236: Line 216:
 
|03:05
 
|03:05
  
||A new '''Scilab input value request''' window will open.  
+
||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, here the input and output variables are '''u1''' and '''y1''' respectively.  
+
|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 input value request''' window will open.  
+
|Another '''Scilab Input Value Request''' window will open.  
  
 
|-
 
|-
Line 301: Line 275:
 
| 03:51
 
| 03:51
  
|Keep clicking on '''Ok''' in the subsequent 3 windows that will appear.  
+
|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 '''palette browser''' window, click on '''Sources section. '''
+
| In the '''Palette browser''' window, click on '''Sources''' section.
 
+
  
 
|-
 
|-
Line 328: Line 299:
 
| 04:08
 
| 04:08
  
|Drag and drop the '''Sinusoid Generator''' block in '''untitled Xcos''' window.  
+
|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 '''Sinks''' section.  
+
|In the '''Palette browser''' window, click on the '''Sinks''' section.  
  
 
|-
 
|-
  
 
| 04:29
 
| 04:29
|Drag and drop the '''CScope''' block in the '''untitled Xcos''' window.  
+
|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 ''' palette browser window,''' click on '''Sources''' section.  
+
|In the ''' Palette browser window,''' click on '''Sources''' section.  
 
+
  
 
|-
 
|-
Line 397: Line 360:
 
| 04:57
 
| 04:57
  
|Drag and drop the clock underscore c block in the '''untitled Xcos''' window.  
+
|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 ''' palette browser window,''' click on '''Signal Routing''' section.  
+
|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 '''untitled Xcos''' window.  
+
|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''' block.  
+
|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 block'''
+
|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 clock underscore c block to the event input port of '''CScope''' block.  
+
|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''' generator block.  
+
|To do this, double click on the '''Sinusoid generator''' block.  
  
 
|-
 
|-
Line 560: Line 515:
 
| 07:11
 
| 07:11
  
|We will keep the '''magnitude''' and '''frequency''' as 1 and ''' phase''' as 0  
+
|We will keep the '''Magnitude''' and '''Frequency''' as 1 and '''Phase''' as 0.
  
 
|-
 
|-
Line 566: Line 521:
 
| 07:18
 
| 07:18
  
|Click on ''' Ok''' to close the configuration window.  
+
|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 '''buffer size''' value to 2 .  
+
|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''' as 0.1  
+
|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 '''untitled Xcos''' window click on the '''Simulation tab.'''
+
|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 xcos diagram.  
+
|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 enter key and type  
+
|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  
+
| Switch to the '''Xcos''' window.
  
 
|-
 
|-
Line 886: Line 832:
 
| 11:19
 
| 11:19
  
|In the ''' input port size field,''' put a semi colon after 1 comma 1 and type 1 comma one again  
+
|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 Ok
+
|Click on '''OK'''.
 
+
  
 
|-
 
|-
Line 905: Line 850:
 
| 11:38
 
| 11:38
  
|A new '''Scilab input value request''' window will open.  
+
|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.
+
|put a comma after y1 and type y2,
  
 
|-
 
|-
Line 923: Line 868:
 
| 11:48
 
| 11:48
  
|Put y1 and y2 in square brackets  
+
|put y1 and y2 in square brackets,
  
 
|-
 
|-
Line 929: Line 874:
 
| 11:52
 
| 11:52
  
|Now put a comma after '''u1''' and type '''u2'''
+
|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 input value request''' window will open.  
+
|Another '''Scilab Input Value Request''' window will open.  
  
 
|-
 
|-
Line 947: Line 892:
 
| 12:03
 
| 12:03
  
|Keep  clicking on '''Ok''' in the subsequent 3 windows that will appear.  
+
|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 ''' palette browser''' window.  
+
|Switch to the ''' Palette browser''' window.  
  
 
|-
 
|-
Line 970: Line 915:
 
| 12:17
 
| 12:17
  
|In the '''sources''' section, drag and drop the Constant underscore m block in the xcos window.  
+
|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 sinusoid generator block.  
+
|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 the '''Xcos''' window.  
+
|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 summarises the Spoken Tutorial project  
+
| 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.

Contributors and Content Editors

Gaurav, PoojaMoolya, Sandhya.np14