OpenModelica/C3/Block-Component-Modeling/English-timed

From Script | Spoken-Tutorial
Revision as of 15:42, 14 December 2017 by Priyacst (Talk | contribs)

Jump to: navigation, search
Time Narration
00:01 Welcome to the spoken tutorial on Block component modeling.
00:06 In this tutorial, we are going to learn: How to define a block.
00:12 How to connect blocks.
00:15 How to use blocks from Modelica Library.
00:19 To record this tutorial, I am using: OpenModelica version 1.9.2
00:26 You may use any of the following operating systems.
00:30 To understand and practice this tutorial, you need Knowledge of component oriented modeling in Modelica.
00:38 Prerequisite tutorials are mentioned on our website. Please go through them.
00:44 Let us now learn more about blocks.
00:48 block is a specialized class in Modelica.
00:52 It is useful in control applications.
00:56 For example, Modelica Library has blocks for PI and PID controllers which are frequently seen in chemical engineering control applications.
01:08 variables of a block class must have fixed causality: either input or output.
01:15 blocks can be connected using connect statements.
01:19 We have learnt about connect statements in previous tutorials.
01:24 Connectors acts as interface between blocks.
01:28 They are used to model input and output signals.
01:33 For example, this is declaration for a block connector that models real input signals.
01:41 Let us now try to understand block component modeling through an example.
01:47 Let us write a class that uses blocks to perform the following operations: Take two time varying signals as input and output their sum.
01:59 Take a time varying signal as input and amplify it by a constant.
02:05 Let us define this problem statement in detail using schematics.
02:11 This figure shows a schematic for block that takes two signals as input and returns their sum.
02:19 To make things simpler, let us choose signal 1 to be t which represents time.
02:26 Let signal 2 be 2 (times) t (squared)
02:31 This is schematic for amplification of a signal.
02:35 It is similar to the previous case with two inputs and one output.
02:41 Let us choose one input to be our signal.
02:46 Let the other input i.e. signal 2 be a constant K by which to amplify the signal.
02:54 The product of these two inputs is the output required.
02:59 We have chosen the signal 2 i.e. K to be 5 units.
03:06 Notice that both the Sum of signals and amplification require a block with 2 inputs and 1 output.
03:16 Modelica library already has a block named MISO that stands for Multiple Input Single Output.
03:24 It is available in Modelica.Interfaces.Block package.
03:30 The input to this block u is a vector since it can accept multiple signals as input.
03:38 y is the output which is a scalar.
03:42 Let us now discuss how to solve our problem using OMEdit.
03:48 Extend MISO block to create a block named Sum.
03:53 We have learnt about extending a class in previous tutorials.
03:59 Extend MISO to create a block named Product.
04:04 Create a class named main.
04:08 Create instances of Sum and Product blocks in the main class.
04:14 Lastly, program the necessary equations related to input and output variables.
04:22 Note that Sum corresponds to the Sum of signals whereas Product corresponds to the amplification of signal.
04:32 I have already created the necessary blocks and packaged them into a file named arithmeticOperationsUsingBlocks.
04:42 You may locate this file on our website and download it.
04:46 Let me now switch to OMEdit.
04:49 I shall first demonstrate the package arithmeticOperationsUsingBlocks and then demonstrate the syntax of MISO block.
04:59 I have already opened the package arithmeticOperationsUsingBlocks in OMEdit.
05:06 Let me expand it in the Libraries Browser.
05:10 Note that the package has blocks named Sum, Product and a main class.
05:18 Double-click on all three of them.
05:24 Let me also open MISO block from Modelica Library.
05:29 Expand Modelica library.
05:32 Go to Blocks → Interfaces. Scroll down a bit.
05:39 Double Click on MISO.
05:43 Interfaces package also has several other blocks which are similar to MISO in functionality.
05:51 Now let me shift OMEdit window to the left for better visibility.
05:57 Let us first look into Sum block.
06:01 Switch to Text View if it opens in Diagram View.
06:05 This is the syntax for declaring a block.
06:10 This statement is used to inherit MISO block from its location in Modelica library.
06:16 We have learnt about Class inheritance or Class extension in previous tutorials.
06:23 Let me now take a step back for a moment and demonstrate MISO block.
06:29 Go to MISO tab. Switch to Text View.
06:35 MISO is a partial block which means that it can only be inherited but not instantiated.
06:43 It inherits Block class.
06:46 You may locate this in Modelica library using the path shown.
06:51 This class is used here only for the sake of its Diagram View and hence need not be discussed.
06:58 nin represents the number of inputs.
07:02 This parameter may be changed when the block is inherited.
07:08 RealInput is a connector which evidently represents a real input signal.
07:14 In this case, the input is a vector u as we already discussed.
07:20 Similarly, RealOutput is a connector which represents a real output signal.
07:27 Here, y is the real-valued output signal.
07:31 RealInput and RealOutput are present in the same package of Modelica Library as MISO.
07:38 Please look into them.
07:41 Now, let me show you how the Diagram View of MISO block looks like.
07:46 Let us now go back to Sum block and continue from where we left off.
07:52 Variables y and u are a part of this block since it inherits MISO.
07:59 As we have learnt in previous tutorials, Sum is an array function.
08:05 It takes an array as input and returns the sum of its elements.
08:11 Let me switch to Product block. Switch to Text View.
08:17 This block inherits MISO as well.
08:21 As we have seen in previous tutorials, Product is an array function that takes an array as input.
08:29 It returns the product of its elements.
08:33 Let me now switch to main class.
08:37 Switch to Text View.
08:39 These statements indicate the instantiation of Sum and Product blocks.
08:44 These instances can also be created using the drag and drop functionality of OMEdit.
08:51 We discussed this feature in previous tutorials.
08:56 nin is a parameter for dimension of input vector u in MISO.
09:03 We assign a value of 2 to this parameter.
09:07 This equation indicates the values of signal 1 and signal 2 for Sum of signals which we discussed in slides.
09:17 Similarly, this indicates the values of Signal 1 and Signal 2 for amplification of signal as we already discussed.
09:29 Let me now simulate this class. Click on Simulate button.
09:33 Close the pop up window.
09:36 Expand mySum in Libraries Browser. Select y.
09:43 Note that this generates a plot that is in accordance with the values of signal provided.
09:51 This brings us to the end of this tutorial.
09:54 As an assignment, look into the codes for RealInput, RealOutput, SI, SO and MIMO blocks.
10:04 You can find them in Modelica.Blocks.Interfaces package.
10:10 RealInputand RealOutput are connectors which are used quite frequently.
10:17 Hence it is necessary to understand them.
10:21 Watch the video available at the following link: http://spoken-tutorial.org/What\_is\_a\_Spoken\_Tutorial .It summarises the Spoken Tutorial project.
10:27 We conducts workshops using spoken tutorials. Give certificates. Please contact us.
10:33 If you have questions in this spoken tutorial, please visit the webpage mentioned.
10:40 We coordinate coding of solved examples from popular books. We give honorarium to contributors. Please visit our website.
10:50 We help migrate labs from commercial simulators to OpenModelica.
10:56 Spoken Tutorial Project is supported by NMEICT, MHRD, Government of India.
11:03 We thank the development team of OpenModelica for their support.
11:09 I would like to thank you for joining me in this tutorial. Good bye.

Contributors and Content Editors

Jyotisolanki, Priyacst, Sandhya.np14