Modelica Tutorial with PowerSystems: A tutorial for Modelica simulation智哉 今西
A simulation for electricity transmission using Modelica language.
Since all the tools come from OpenModelica (a free tool), you can easily start and test the simulation in any OS.
See the following link about OpenModelica: https://www.openmodelica.org/
"Can programming of multi-core systems be easier, please? The ALMA Approach"
By Oliver Oey, Karlsruhe Institute of Technologie - KIT for ScilabTEC 2015
Gave a recent talk:
www.meetup.com/SF-Bayarea-Machine-Learning/events/221739934/
Covers some basic terminology of what makes a scientific lib, the problems with the jvm and nd4j as a proposed architecture for solving these problems.
Gave a talk at:
www.meetup.com/SF-Bayarea-Machine-Learning/events/221739934/
Covers basic architecture of a scientific lib and my take on it with nd4j.
Aggregate programming is a novel paradigm that addresses, at the core, many issues commonly found in the development of large-scale, situated, self-adaptive systems. It is a particular macro-programming approach where a developer expresses the behaviour of the system at the aggregate-level, by targeting the distributed computational machine which is given by the entire set of (possibly mobile and heterogeneous) networked devices pervading the environment. It is the model that takes care of turning a system-level behaviour specification into the concrete, device-centric programs executed locally by each component.
Aggregate computing is formally grounded in the field calculus, a minimal functional language that works with computational fields, i.e., distributed data structures mapping devices (digital representatives of space-time portions) to computational objects. Fields are a useful unifying abstraction for drawing a connection between the physical and the computational world, and between the local and global programming viewpoints. This approach is compositional, allowing to define layers of building blocks of increasing abstraction, and is also amenable to formal analyses.
In this talk, I will present scafi (SCAla with computational FIels), an aggregate computing framework for the Scala programming language which provides (i) an internal DSL for expressing aggregate computations as well as (ii) a library support for the configuration and execution of aggregate systems. There is no need to learn ad-hoc external DSLs anymore: with scafi, Scala programmers can instantaneously start playing with this new, intriguing development approach!
Innovative Solar Array Drive Assembly for CubeSat SatelliteMichele Marino
The CubeSat satellite is a smart option for reliable and low cost space mission development. Growing
CubeSat performances lead to more extensive nanosatellite application. Currently,
Telecommunication and Earth Observation missions are under development both in single and
constellation configurations. The main targets for the future nanosatellite are: accurate attitude
pointing, high data rate transfer, increased power generation. The on board power/energy availability
reduces or limits the CubeSat performances in terms of processing capabilities, power transmission
and attitude/orbit maneuvers. Following these constraints, the IMT has developed an innovative unit,
named nano-Solar Array Drive Assembly (SADA) for 3U CubeSat, with the aim of increasing the
photovoltaic energy generation (up to an average 35W EOL). It is composed by two independent
Solar Arrays (Wings Assembly) and Rotatory Mechanisms / Logical Unit (SAC – Solar Array
Control). The aim of SADA is to align constantly the two Solar Arrays to the Sun direction, around
one axis. The rotatory system is composed by drive gear sets, stepper motors and slip rings. The high
value of gearhead reduction ratio and two dedicated photodiodes (as solar sensors) allow a fine
pointing accuracy (<5°). Several operation modes are implemented and controlled by the On Board
Computer through the I2C and CAN buses: autonomous (sun detection and pointing), slave or
cooperative. An advanced and smart control algorithm was developed and implemented in the logic
unit. The Solar Array points along the maximum solar flux direction, maximum output speed up to
4°/s (step size 0.004°). A system failure control avoids the thermal and power damaging in case one
or both wings are blocked. SADA is fully compliant with all CubeSat form factor (3U or greater) and
BUS (CSKB – CubeSat Kit Bus). The Solar Wings, during the launch phase, are stowed beside the
CubeSat structure (opposite side faces). The overall thickness is less than 9 mm, compliant to ISIPOD
dispenser. The Logical and Drive unit (SAC), small (90 x 90 x 12 mm) and light (185 gr), is allocated inside the satellite. The Wings are electrically connected to the SAC, by means of two 16 channels
slip rings (1A per contact) for a continuous rotation, without cable saturation. The Alignment
Calibration System assures that the unit runs correctly up to 10 mm of misalignment between the
SAC and the geometric satellite center, along Z direction. The generated power is not handled by
SAC, but by PDU through Standard Molex Connectors. The two wings, stowed during the launch
phase, are deployed in orbit. In order to increase the system reliability, the deployment is based on
two redundant thermal cutter systems. In the final configuration, the 3U CubeSat has two wings, each
one 300 x 300 mm and 36 AzurSpace 3J solar cells.
Lightning talk from F#nctional Londoners user group meeting 04/06/2015. Briefly discusses the instrument control software we have written in F# to control a custom experiment at the University of Warwick.
Cilk - An Efficient Multithreaded Runtime SystemShareek Ahamed
Cilk is a C-based runtime system for multi-threaded parallel programming.
Cilk guarantees efficient and predictable performance, Lightweight fork and join.
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulation智哉 今西
A simulation for electricity transmission using Modelica language.
Since all the tools come from OpenModelica (a free tool), you can easily start and test the simulation in any OS.
See the following link about OpenModelica: https://www.openmodelica.org/
"Can programming of multi-core systems be easier, please? The ALMA Approach"
By Oliver Oey, Karlsruhe Institute of Technologie - KIT for ScilabTEC 2015
Gave a recent talk:
www.meetup.com/SF-Bayarea-Machine-Learning/events/221739934/
Covers some basic terminology of what makes a scientific lib, the problems with the jvm and nd4j as a proposed architecture for solving these problems.
Gave a talk at:
www.meetup.com/SF-Bayarea-Machine-Learning/events/221739934/
Covers basic architecture of a scientific lib and my take on it with nd4j.
Aggregate programming is a novel paradigm that addresses, at the core, many issues commonly found in the development of large-scale, situated, self-adaptive systems. It is a particular macro-programming approach where a developer expresses the behaviour of the system at the aggregate-level, by targeting the distributed computational machine which is given by the entire set of (possibly mobile and heterogeneous) networked devices pervading the environment. It is the model that takes care of turning a system-level behaviour specification into the concrete, device-centric programs executed locally by each component.
Aggregate computing is formally grounded in the field calculus, a minimal functional language that works with computational fields, i.e., distributed data structures mapping devices (digital representatives of space-time portions) to computational objects. Fields are a useful unifying abstraction for drawing a connection between the physical and the computational world, and between the local and global programming viewpoints. This approach is compositional, allowing to define layers of building blocks of increasing abstraction, and is also amenable to formal analyses.
In this talk, I will present scafi (SCAla with computational FIels), an aggregate computing framework for the Scala programming language which provides (i) an internal DSL for expressing aggregate computations as well as (ii) a library support for the configuration and execution of aggregate systems. There is no need to learn ad-hoc external DSLs anymore: with scafi, Scala programmers can instantaneously start playing with this new, intriguing development approach!
Innovative Solar Array Drive Assembly for CubeSat SatelliteMichele Marino
The CubeSat satellite is a smart option for reliable and low cost space mission development. Growing
CubeSat performances lead to more extensive nanosatellite application. Currently,
Telecommunication and Earth Observation missions are under development both in single and
constellation configurations. The main targets for the future nanosatellite are: accurate attitude
pointing, high data rate transfer, increased power generation. The on board power/energy availability
reduces or limits the CubeSat performances in terms of processing capabilities, power transmission
and attitude/orbit maneuvers. Following these constraints, the IMT has developed an innovative unit,
named nano-Solar Array Drive Assembly (SADA) for 3U CubeSat, with the aim of increasing the
photovoltaic energy generation (up to an average 35W EOL). It is composed by two independent
Solar Arrays (Wings Assembly) and Rotatory Mechanisms / Logical Unit (SAC – Solar Array
Control). The aim of SADA is to align constantly the two Solar Arrays to the Sun direction, around
one axis. The rotatory system is composed by drive gear sets, stepper motors and slip rings. The high
value of gearhead reduction ratio and two dedicated photodiodes (as solar sensors) allow a fine
pointing accuracy (<5°). Several operation modes are implemented and controlled by the On Board
Computer through the I2C and CAN buses: autonomous (sun detection and pointing), slave or
cooperative. An advanced and smart control algorithm was developed and implemented in the logic
unit. The Solar Array points along the maximum solar flux direction, maximum output speed up to
4°/s (step size 0.004°). A system failure control avoids the thermal and power damaging in case one
or both wings are blocked. SADA is fully compliant with all CubeSat form factor (3U or greater) and
BUS (CSKB – CubeSat Kit Bus). The Solar Wings, during the launch phase, are stowed beside the
CubeSat structure (opposite side faces). The overall thickness is less than 9 mm, compliant to ISIPOD
dispenser. The Logical and Drive unit (SAC), small (90 x 90 x 12 mm) and light (185 gr), is allocated inside the satellite. The Wings are electrically connected to the SAC, by means of two 16 channels
slip rings (1A per contact) for a continuous rotation, without cable saturation. The Alignment
Calibration System assures that the unit runs correctly up to 10 mm of misalignment between the
SAC and the geometric satellite center, along Z direction. The generated power is not handled by
SAC, but by PDU through Standard Molex Connectors. The two wings, stowed during the launch
phase, are deployed in orbit. In order to increase the system reliability, the deployment is based on
two redundant thermal cutter systems. In the final configuration, the 3U CubeSat has two wings, each
one 300 x 300 mm and 36 AzurSpace 3J solar cells.
Lightning talk from F#nctional Londoners user group meeting 04/06/2015. Briefly discusses the instrument control software we have written in F# to control a custom experiment at the University of Warwick.
Cilk - An Efficient Multithreaded Runtime SystemShareek Ahamed
Cilk is a C-based runtime system for multi-threaded parallel programming.
Cilk guarantees efficient and predictable performance, Lightweight fork and join.
Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...Databricks
This talk is about methods and tools for troubleshooting Spark workloads at scale and is aimed at developers, administrators and performance practitioners. You will find examples illustrating the importance of using the right tools and right methodologies for measuring and understanding performance, in particular highlighting the importance of using data and root cause analysis to understand and improve the performance of Spark applications. The talk has a strong focus on practical examples and on tools for collecting data relevant for performance analysis. This includes tools for collecting Spark metrics and tools for collecting OS metrics. Among others, the talk will cover sparkMeasure, a tool developed by the author to collect Spark task metric and SQL metrics data, tools for analysing I/O and network workloads, tools for analysing CPU usage and memory bandwidth, tools for profiling CPU usage and for Flame Graph visualization.
A Hands-on Intro to Data Science and R Presentation.pptSanket Shikhar
Using popular data science tools such as Python and R, the book offers many examples of real-life applications, with practice ranging from small to big data.
Pitfalls of machine learning in productionAntoine Sauray
Going from POC to production with Machine Learning can lead to many unexpected problems. We explore some of them in this presentation at the Nantes Machine Learning Meetup.
The sole purpose of sharing these slides are to educate the beginners of IT and Computer Science/Engineering. Credits should go to the referred material and also CICRA campus, Colombo 4, Sri Lanka where I taught these in 2017.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
1. Scilab: Computing Tool for Engineers
P. R. Naren
School of Chemical & Biotechnology
SASTRA University
E-mail: prnaren@scbt.sastra.edu
National Conference on Advances in Process Engineering
CAPE-2015
SASTRA University
Thanjavur, Tamilnadu 613 401 INDIA
9th October 2015
Progress Through Quality Education
2. Why are we here?
• To learn about Scilab
– Syntax
– Advantages
– Limitation
• To master programming skills
• To become efficient programmer
Familiarize
programming tool
Scilab
and
complement our
learning process !
9-Oct-15 Scilab - A Computing Tool for Engineers
2
3. Outline
• What is Scilab ?
• Basics
– Variables, Matrices,
– Std. I/O function
• Linear algebra
• Functions and Subroutines
• Control / Looping statements
• ODE
• File operations and GUI
• Plot Functions
9-Oct-15 Scilab - A Computing Tool for Engineers
3
4. Scilab
• Computing tool
– Scripts / programming environment
– Mathematical operations
A place where we can compute / calculate !!!
Numerically solve equations
• Free and Open source
http://www.scilab.org
– Free to download
– Lot of help material available over net
http://wiki.scilab.org/
http://help.scilab.org/docs/5.5.2/en_US/index.html
9-Oct-15 Scilab - A Computing Tool for Engineers
4
5. FOSSEE Project
• Free and Open Source Software for Education
• FOSSEE on Scilab: http://www.scilab.in
– Spoken Tutorials
10 min short videos on scilab functions http://spoken-tutorial.org/
Take workshop and attend objective test
IITB MHRD certificate
– Textbook Companion Project
http://www.scilab.in/Textbook_Companion_Project
Code all solved examples of standard textbook
– Codes for most textbooks already available – Use and learn !!
Get paid ! Honorarium (INR 12k) from IITB
– Lab Migration Project
Convert lab exercises to Scilab
9-Oct-15 Scilab - A Computing Tool for Engineers
5
11. Script Files
• Script file
– .sce
– .sci
e - executable i – functions
e – main script files i - for functions or sub-rountines
• “//” comment a statement
– Good programing etiquettes !
• clc
• clear
9-Oct-15 Scilab - A Computing Tool for Engineers
11
12. Tutorials
• Tut1: Product of two nos.
• Tut2: Product of two nos. + user input
• Tut3: Matrix calculations based on user
choice
• Tut4: Matrix calculations based on user
choice with condition check
• Tut5: Spline curves
• Tut6: Building blocks
• Tut7: Equation of motion : v
• Tut8: Equation of motion: v and x
• Tut9: Roots of polynomial
• Tut10: Smart Input for Tut4
• Tut11: Write output into text file
• Tut12: Sum on n numbers
• Tut1: Print statements
• Tut2: Input function
• Tut3: Switch case
• Tut4: If then else
• Tut5: Plot functions
• Tut6: Function (Sub routines)
• Tut7: ODE function : I order
• Tut8: Simultaneous ODE : Two I order
• Tut9: Inbuilt function fsolve
• Tut10: GUI
• Tut11: File operations
• Tut12: For looping
9-Oct-15 Scilab - A Computing Tool for Engineers
12
13. Tutorial 1
Multiplication of two numbers (23.4 and 21) and get
their product
• Objective
– General programming structure
clear
clc
different sections in program
– Different options for output (result display on console)
disp
mprintf
Tutorial-1 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
13
14. Tutorial 2
Multiplication of two numbers (user input) and get their
product
• Objective
– input function
Obtain user input and then perform computation
Makes program more generic
reusable !!
Tutorial-2 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
14
15. Tutorial 3
Perform operations on matrix based on user choice
• Objective
– Control statement – “select – case – end”
Obtain two matrices from user
Perform arithmetic operations on the matrices based on user
choice
– Add two matrix
– Matrix multiplication
– Element wise multiplication
Tutorial-3 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
15
16. Tutorial 4
Perform operations on matrix based on user choice
with conditional check
• Objective
– Control statement – “if - then – else - end”
Obtain two matrices from user
Perform arithmetic operations on the matrices based on user
choice
– Add two matrix / Matrix multiplication / Element wise multiplication
Check whether the user entered value is within bounds / range !!
Tutorial-4 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
16
17. Tutorial 5
Graphical nature of functions
• Objective
– Plot functions
Generate equi-spaced data (data range)
Generate splines
– Smooth polynomial
Plot the generated spline to know its nature
Tutorial-5 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
17
18. Tutorial 6
Building Block
• Objective
– Use of sub-routines or functions
Define function once and call it wherever required
Given dimensions of unit building block, how many blocks are
required to build a wall
Tutorial-6 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
18
19. Tutorial 7
Equation of motion : Velocity of a moving body under
constant linear acceleration
• Objective
– Solve first order ODE
Equation of motion for a moving body under constant acceleration
Acceleration “a”
– Constant
– Variable
Tutorial-7 Script File
0 0t t u u
9-Oct-15 Scilab - A Computing Tool for Engineers
19
20. Tutorial 8
Equation of motion : Velocity and Location of a moving
body under constant linear acceleration
• Objective
– Solve two first order ODE’s
Equation of motion for a moving body under constant acceleration
Acceleration “a”
– Constant
– Variable
Tutorial-8 Script File
0 0t t u u
9-Oct-15 Scilab - A Computing Tool for Engineers
20
21. Tutorial 9
Roots of Polynomial
• Objective
– To determine the roots of polynomial
Find x such that f(x) = 0
Quadratic equation
– Define f(x)
– Guess a value for xroot such that f (xroot) = 0
– Use in-built function fsolve to determine a actual root
Tutorial-9Script File
0 0t t u u
2
0 1 2f (x) a a x a x
9-Oct-15 Scilab - A Computing Tool for Engineers
21
22. Tutorial 10
Perform operations on matrix based on user choice
! Obtain data in Smart Way !
• Objective
– Use of simple GUI function to obtain data
Avoids error previously encountered in Tutorial 4 !
Tutorial-10 Script File
9-Oct-15 Scilab - A Computing Tool for Engineers
22
23. Tutorial 11
Write output data into a file
• Objective
– Use file I/O commands and write result into a file
Water tank of known dimensions (B X W X H) at elevated position
Z from ground level
Fluid of known density ( r )
Compute Total and specific potential energy
Tutorial11-File-operation.sce
tank tank
t
V BW H m V
U
U mg Z U
m
r
9-Oct-15 Scilab - A Computing Tool for Engineers
23
24. Tutorial 12
Sum on N numbers
• Objective
– Use looping statement – For loop
Determine the sum of N numbers
Tutorial12-File-operation.sce
N
i
i 1
S x
9-Oct-15 Scilab - A Computing Tool for Engineers
24
25. To Sum Up
• Scilab as computing tool for engineers
• Basic arithmetic operations
• Computing abilities in Scilab
• Generic programming etiquette
• Use Tutorials and Web documents
• Improvise, learn (re-learn / un-learn)
• Use Scilab to complement your engineering
education
9-Oct-15 Scilab - A Computing Tool for Engineers
25
26. Gratitude
• CAPE-2015 and IIChE Student Chapter
– For this wonderful opportunity
• PR Team for their registration drive !!
• Technical and Infra support team
• Audience
9-Oct-15 Scilab - A Computing Tool for Engineers
26
27. THANK YOU
A person who never made a mistake never tried
anything new
- Albert Einstein
- 1879 -1955
Entities must not be
multiplied beyond necessity
- William of Ockham
- 12th A.D.
9-Oct-15 Scilab - A Computing Tool for Engineers
27
Editor's Notes
Console: Simple arithmetic operations can be directly performed on console / Output is displayed on console
Command history stores all commands from console !
Variable browser window lists all the variable that are currently in use
Semi-colon “;” is used to suppress printing / display on the command window. For instance, command “a=3” assigns 3 to variable “a” and also displays the output on console
In contrast, “a=3;” assigns 3 to variable a but suppress the display on console
Q: How to retrieve the elements of matrix? Extraction of elements from matrix
Colon “:” operator