OK, yep, welcome
everyone to the session on the digital twins for oil
and gas production systems. Yeah, so this is the
brief agenda for today. We'll be touching
upon a few challenges with production
plants and process plants in the oil
and gas industry, and how digital
twins solve them. Then we'll be briefly
touching on a few success stories with digital twins
in the oil and gas industry. And then Eva will
talk about Simscape, and we'll walk you through
a demo of this process, and we'll show you how
you can get started creating your own digital Twin. So a brief bit of
introduction, sort of, to MathWorks before
that, and what customers do with our software. So customers in many industries
innovate with MathWorks software, in aerospace
and defense, for instance, and automotive companies,
complex multi-domain systems are very increasingly software
defined and autonomous nowadays. In transportation, energy,
and industrial companies, new functions are being
added to legacy systems that are increasingly data centric
for operations and maintenance. In software, internet, and
financial services companies, big data, and agile development,
and integration with IT systems are driving innovation. For medical and
health companies, collaboration between
science and engineering, along with informatics are
making a huge difference. And in electronics and
semiconductor companies, a wide range of processors are
enabling hardware and software interaction. And finally, in
communications industry, the disruptors like 5G are
paving the way for innovations across various industries. And MathWorks, we have a lot
of experience helping customers derive business value
from innovations in engineering and science. And this experience allows us to
share insights, best practices, and trends with our customers
across many industries. For example, reducing
carbon emissions is driving innovation
in various industries. And it's a key focus of the
energy industries as well. So companies are
challenged to conform to regulatory and
competitive pressures, while achieving both topline
and bottomline growth. And it's a challenge
that the oil and gas industry recognizes as well. So that's a high
level challenge. But what about the challenges
at an operational level or at a plant level, or
at an engineering level? And here are some
common challenges that you may have faced, or
you're involved in solving. And although you might be
monitoring the operation, that doesn't mean it's
the same as figuring out how to optimize the operation. And it may be easy to add
sensors across the plant, but it's not easily
associated to process KPIs, such as say quality or yield. And sometimes, samples being
tested in a lab in parallel to process on the way. It adds a lag to
understanding the impact before the overall process. And in initial, there's
complicated physical behaviors, and first principles
models, which help-- which are used to
understand the process. But these are sometimes
too complicated to understand the overall
system dependencies and nonlinearities. And that's where
digital twins come in. With digital twins,
the promise is you can make your operational
system smart and connected. And with operational data,
you can inform the operations to do things better. And these are all
possible and things that are being done today. And the applications, some of
the applications and benefits that you hear of digital
twins are things like these. It grants you visibility
into operations, allows you to perform things
like predictive maintenance and simulate various
scenarios, do what if studies, and obviously optimize
your operations. And here is an example
of one such production process or a planned process. So it's common to have traces
of plant output layer sensors, and actually have traces
at sensor locations throughout the plant. But the leveraging
that information to understand the
overall process can be a bit challenging. And so this is where
statistical approaches like principal component
analysis, or more recent, AI-based techniques
have come in. And they allow you to better
understand the plant better, understand the concept,
and the context, and analyze system level KPIs. And these processes,
these approaches, are well-suited
to address things like drift in the process
and identify, say, good batches versus bad batches. And at the same time, you also
have unit level operations that can be modeled
with first principles and the laws of physics. So these can be modeled with
concepts like energy or mass balance, and often our modeled
with process simulators for many cases. And I know this can begin
to be combined to model, the overall system process. And the more powerful
is being able to combine both these techniques to
get virtual representations of the complete process and
how it impacts the KPAs. So let's talk about
how these models can be used for the overall benefit. And that will come in the
later part of the presentation. But how do you go about
building these digital twins? For instance, for
system operators, they have control on how the
system resources are used. And they're able to see
operational data coming off of the system. And this data is
the first thing that can be used to model
what is deemed useful. If appropriate, then physical
domains and conservation laws can be applied. And this can be
augmented to create other digital Twin models. And in general,
these can be combined to create hybrid digital
twins of the process. And how a system is a
mixture of components, that's how models
are also created, a mixture of
physics-based techniques and data-driven techniques. And overall, domain knowledge
is useful to make sure that the right models are
created and brought together. And then once it is
modeled, it needs to be eventually
deployed or acted upon. And the ultimate goal is things
like operations optimization, or predictive maintenance,
and fault detection and diagnostics. And MathWorks has existing
customers and lots of customers that have used
these digital twins, and these span
multiple applications, multiple industries. And effectively,
there are various ways to get models in different
levels of the system hierarchy. So the way it is done is
most of these companies build their internal staff
skills and knowledge in working through the
possibilities of exploiting smart and connected systems. And the topologies in play can
span edge detection, and cloud compute, to as simple as web
deployment or use by operators. And with that, let's get into
the case study for today. Today's demo is
actually inspired by one of our
customers, RAG Austria is a European gas
storage operator. They spoke at the
MATLAB Energy Conference last year about their
project to build a digital Twin of their
adsorption dehydration units in Simscape. If you know absorbers,
then you know they're somewhat-- they have
somewhat tricky control logic and supervisory control logic. Obviously, we're able to
simulate in StateFlow. They compared this
with plant data and optimized the
plant accordingly. And that's how they
created the digital Twin. They saw that
solvers in Simscape we're able to handle big
changes in input parameters during the simulation. Then once their digital
Twin was created, it was used for
simulations and studying the impact of various
scenarios, like some of the ones that you see here. And ultimately,
the reason why they went with Simscape for this was
the reason they outlined here. Effectively being able to
build custom unit operations, libraries, and solvers,
and various optimization capabilities. With that, I'll
transfer it over to Eva, who will take a deep dive
into what Simscape is, and how you can use it to create
digital twins of your process. And we'll walk you
through the demo itself. What Samvith introduced was
sort of the case study we did, which is also what the
RAG project was based on. We initially did sort of a
proof of concept to them. And some of the work
will be presented here. It's not specific
to the customer, but sort of a more
general proof of concept, how we proved how we can
implement absorption equations, combine it with our
Simscape libraries to build a digital Twin
of this application. But this could apply to
similar applications as well. Yeah, as Samvith
already introduced, this was done using
existing Simscape libraries plus some customized components
and customized libraries for the absorption process. So in the next 20
to 30 minutes or so, I'd like to give an
overview of what we did and how this can be
achieved using Simscape and some additional tools. So first of all,
how Simscape overall can be used to create
multi-domain digital twins and multi-domain models, how
modeling plant and controller or plant and schedule
logic, in this case, in one single
environment enables things like system
level optimization, how you can calibrate models
using measurement data, for example, doing
parameter estimation study. And that it integrates well
with MATLAB and Simulink, for example, for getting
data into the model for post-processing via
MATLAB and Simulink, for example, for
control design tasks. So the demonstration
for today is this model. It has sort of a similar
look, as you just saw in the screenshots
with Samvith. But again, this is sort
of a proof of concept how this can be done. So this model's,
and I'm actually going to switch to
MATLAB for that, so you can have a first
look at the model. So here, you can
see the same model. And with the MATLAB, I
already ran the model just before this meeting. It takes two minutes
or so to run. The cycle I ran
through is something like a couple of days, which
again, takes about two or three minutes to run. So I already ran it. And what we can see
here in the results plot is the loading of the silica
bits in the adsorption column for different elements. Different elements here
refer to different elements in the column. So underneath the hood, and
we'll look into that later, underneath the hood here, this
is discretized along the column length or height. So this is discretized
into 10 different elements. So we can see the spatial
distribution as well as the time distribution. So when we read here
from element 1 to 10, so the first line
on top, we can maybe zoom in here a little bit, tool. So if we zoom in here, we
could see from element 1 to element 10, so
from, in this case, it reads in the model
from top to bottom. And zoom out again, so we
can see the whole view. And what we also see
is that it cycles through different processes. So here, I'm drawing from
different reservoirs. So in the beginning,
I'm trying to dehydrate the wet gas coming in. And once the silica
beads are saturated, I'm switching to a
regenerating mode using hot gas to regenerate
the absorption column. So it can be prepared for the
dehydration process again. And this has been done. So the sort of color,
the lilac elements here, refer to a specific Simscape
domain I'm using here. So I'm working in
the moist air domain. And if I take a first
look underneath the hood here, so if I look at
the absorber column, I can already see I can provide
some absorber parameters. Some discretization,
right now, I'm using 10 elements, initial
condition, temperature, and specific humidity
as an initial condition. And from there, it starts
to go through the process. And underneath the hood
here, again, more detail later, we'll see this
has been divided up into, in this case, 10 different
elements along the length of the absorber, which perform
the simulation or the air inside those. We can find the mathematical
models for the absorption process. But before I get back
into detail here, I'm switching back
to the presentation for a couple of minutes. So I already mentioned it, this
has been done using Simscape. Simscape itself,
for those of you who are not familiar with
it, is a 1D physical modeling tool that is based on Simulink. And by based, I mean, you
work within the Simulink environment, and have additional
libraries, and technology, like solver technology, for
example, for physical modeling. And it consists out of a sort
of foundation library, which is what we used here, the
foundation library plus custom components. And there are optional add-on
components used, for example, for electrical modeling,
but also fluids modeling. And Simscape itself, if
I go through a couple of slides right
here, provides a sort of modeling style or
modeling language that allows for our causal modeling. So what you will see here,
you can see these couple of components right here. You have blocks that
represent physical components. They are not input/output
based, as Simulink components would be. So you don't directly
implement sort of the equations
describing system, use components that
ship with Simscape that can be parameterized. And this will be
important later on, because we used it for modeling
the absorption process, we can create custom components
via Simscape language that allows me to create new
components within the Simscape framework. And this also will
be another thing that will be important
to us, we can import different kinds of
models depending on what domain you are in. So it could be if you do
multibody modeling and plotting CAD data, which will be
more important for us using databases like REFPROP
to import fluid property data. In terms of
simulation, I mentioned it builds on top of Simulink. But underneath the
hood, the components, we'll see more once I get
back to the demonstration, the components itself have
equations already implemented. Plus every domain has-- once I set up a
physical network, there are network
equations that are being constructed in the background. So I don't have to
take care of that. I have to take care
of the components, how they're connected, and
their parameterization. So sort of behind
the scenes, once I hit Run, one what
happens is type of symbolic and
equation reduction. So there will be some
retained variables that the solver
technology, which is kind of an add-on solver
to the Simulink solver, will solve. And there are settings
on top, advanced settings on top of that depending if
you're using a fixed step or variable step solver that you
can take specific for Simscape. And analysis tools,
for those of you who use MATLAB and
Simulink, some of them might already be
familiar to you. There are some specific tools,
like the one we see right here, which is multibody animation. If you do multibody
modeling, there are specific Simscape
logging possibilities or additional Simscape
logging options we can take. And yeah, some
specific tools, but you can always use MATLAB
and Simulink capabilities that are also already there,
or also available, especially for post-processing
or pre-processing. And in terms of
deployment, again, there are some similarities
to what you might be familiar with if
you're a Simscape user. So we do support
C code generation for Simscape networks
or Simscape components, meaning this
becomes specifically important for hardware
in the loop simulation. So if you want to
test your-- don't have the actual physical
prototype, because it's not there yet, it might be
too expensive to test it, or too dangerous
to test it, you can deploy your system or
your physical network on a real-time hardware, and
perform a hardware in the loop simulation. This is one of the
applications where C code generation from
Simscape might come in handy. And to finish this up, there
are sharing capabilities. Different kinds of levels
of sharing are possible. So what you can do is something
that's available in Simulink as well. You can create your
own custom libraries, putting UIs on top of it. So you can, for example,
pick up a physical network like the one we see right here. Pick it up into your
own little component, and put this into your
own little library to make it available to
other users at your company or your department. And this typically
exposes just parameters you might want users to
change without really changing the structure of
the component of the model. And if you want to
go one step further, you can use like model
protection to give pass-- pass along a protected
model to avoid others making changes, or being able
to look underneath the component if you want to protect
your IP, for example. And finally, there's a
so-called sharing mode, meaning if you use Simscape
add-ons, like Simscape fluids or Simscape
electrical, you should be able to share the models
with other Simscape users, even if they don't have
access to Simscape fluids. So meaning you might
have one developer who creates a sort of
advanced Simscape model using their own libraries. And others might
be only model users who might integrate them
for simulation purposes, change a couple of parameters. As long as they don't
change anything structurally about the model,
they can use it. OK, and to wrap this part up,
the Simscape platform itself, it has a foundation library. I'll get back to the
demonstration in the minute. So there's a variety
of domains in there. You can see them on
the right hand side here, like electrical,
moist air, thermal domain. The capability of
creating your custom blocks, and on top of that,
we have add-on libraries, which typically extend
the library by dozens of components,
which are typically also sort of more advanced
or more complex component. But they support
the entire workflow we've just seen as well. So going back to our example,
we started creating this model maybe around two years ago. And the question
was can we model fix that absorption using the
existing Simscape libraries. And so what we
want to look at is dynamic fixed-bed absorption. So we have a gas, a
wet gas, continuously passing through
columns that are packed with an absorbent, so
silica gel or zeolites, which should dry the-- or dehydrate the wet gas. So ideally, at the end of it, we
have dry gas coming out of it. And to enhance
this, what typically will happen at some
point, the absorbent will saturate, meaning the
absorption columns will switch into a regenerating or heating
mode to wash out the solids and make them available
for dehydration again. So we have something
that we just saw in the example,
something that can be continuously
cycled through, commanded by some
scheduling logic, for example, in StateFlow. So that was the
question at hand. And so what we had at hand
was some existing libraries we could use, and some
existing domains we can use. So if we think about what
libraries are available that count for gas/fluid
transport and heat transport. There are a couple of them
available in the foundation library. So this is sort of
sorted from left to right from sort of simple
to more complex, more complex typically meaning more
effects are being considered. But also probably more equations
will be created once I hit run. So the thermal domain
is typically for-- doesn't consider gas and fluid
transport, just typically, unless you customize it,
a constant heat transfer coefficient. And we have a hydraulic domain
that adds thermal effects. We can model a gas
domain, two-phase fluid, and for a couple of
releases now, we've also had the moist air domain. And technically,
there are always options to create
customized domain, which is what we did in the end,
or what the case study Samvith presented,
which they actually did. But for the present
example, we are actually using foundation library-- foundation library capabilities. So what we considered using is-- or what the questions were, we
need a domain that accounts for and non-isothermal gas flow that
can track humidity and maybe optionally track another trace
gas present in the natural gas we want to drive. So what we used in this context
was the moist air domain. The moist air domain comes
with regular Simscape, with Simscape
foundation library. It accounts for dry air. So it has up to three
components, dry air, which is what we took as the
natural gas component, water vapor, and an optional--
we didn't use it here, but an optional trace
gas component as well. And as you can
see, it does come-- this is a screenshot of the
library on the bottom right here-- it has a couple of shipping
components in there. But it was already
pretty clear we probably need to customize some of it to
be able to model the absorption process. And in that specific domain,
all gas species in the matrix are assumed to be sort
of semi-perfect gas. So going back to the
model, and I'm actually switching back to
a different version of the model, which is-- so this is the version
that cycles through. So we have a StateFlow
component here that cycles through
the different modes. So drying, regenerating,
cooling, stand by, and then drying again. So each column, so we are
just using one column here, but this is going to be extended
to be using more columns. And in the-- if I go
here, we have just to look at the just
one drying process to be able to validate the data. And this is just using-- cycling through or just
simulating drying process until the beads are saturated. And we have a mixture here. So if I go to my
actual library, you can see so what I used
here was Simscape, which is based on Simulink. You can see me using the
Simulink environment here. And we are using some
default components. So for example, here, I have-- here, simulating or
mimicking a pump, I have a mass flow rate source. This is drawing from a
reservoir, this reservoir. So when I look at the
Simscape component, how it's defined,
this reservoir, I can define its
current pressure, its current temperature,
a specific humidity value. The humidity can be defined
in different ways using mole fraction,
relative humidity. I'm using specific
humidity here, so I can apply my parameters as
I would with a Simulink block, same way I'm doing it with
a Simscape block here. And I'm also using
a properties block. So how-- which fluid
properties are actually being carried through the
system is defined by this block right here. So this makes all our
properties available through the entire model. So I have parameterized it here. My natural gas data, water
vapor data, and trace gas, I have supplied values here. But I actually have
set all the trace gases to be mole fraction of 0. So I don't really account
for it right here. This data, we don't
supply default data. But a question that
customers, other customers often ask if you have
some kind of support, or how to get my data from if
they have existing database access. If they have their
own data already, it usually can be done via
MATLAB, just loading it with the MATLAB, if you have it
in the Excel file, for example, and make it
available to Simulink and the Simscape model. So the way to do
it is just to use that properties block I've just
shown you to define the data. Provide, in our case,
gas and water vapor data. Or what we did here is
import from REFPROP, so you have REFPROP
available, meaning that we have wrappers in MATLAB
that access some of them are-- can be provided us from us. Some of them are already in
our tools to some degree. But we do have wrappers
sort of for MATLAB. That means I can just
source certain conditions, load my data, and it
can be as simple as sort of just the line we
see on the bottom here, meaning I'm calling
the refpropm interface, or refprop MATLAB,
I think, is the name of the function referring to. And I can call a
specific property at a pressure and
temperature value, for example, for a
given substance that is in the REFPROP database. And this can be done
for scalar value, but also we need it here,
temperature dependent. So I can define a
temperature vector. And for this temperature vector,
catch my data from REFPROP is what I used in my case. So going back to
my example, this is how you set up
the environment. But the question is,
how do I actually create an adoption model. Because this is, if you
look in the library, it's obvious there's not
a block in there that's called absorption column. So what we used is we did have
some publicly available papers. And we did some research
on what common absorption, mathematical absorption
models are and decided to create our own
components that accounts for the absorption process. And for this purpose,
there are certain ways we can set this up. But they all rely on some
kind of custom component. So the idea was we have some-- just a screenshot of one
of the papers I looked at. We have a mathematical model
describing the absorption process. Here, we are specifically
looking at a isothermal model, where the gas/solid equilibrium
is described by the front iso term. But this can be,
the same approach, can be applied to
several models. And we wanted to put this
into a Simscape component. So the idea is we have
Simscape language at our hands that is available, Simscape
to create our own custom components in any domain
that is available. So the idea was to put
this into one file. And it can be as easy
as just one file, depends a little bit how you
structure it or set this up. So what we did right
here was actually translate this into a SSC file. So SSC refers to the
Simscape language files. For the MATLAB users, for
those of you are MATLAB users, you will see some
similarities to MATLAB code. But there are some specifics
for Simscape language in there as well. So just to do a quick browse
through it the way we do it, you set up physical notes, you
can set up inputs and outputs. The parameters refer
to the interface. So what parameters will the
user provide for this model? We have some hidden parameters. And we have some
internal variables. So in our case, one of
the internal variables is the actual
absorbant concentration in the solid phase. So kilogram-- water per
kilogram silica, if you will, and some sort of
intermediate calculations. But the heart of
the component, sort of what we see in the equation
section, where the model we've just seen sort
of on the screen, or we've seen in the paper,
is translated into a Simscape language equivalent. So that was one part of it. The other side of
it, if I go back to the slides for a minute,
the other side of it is, once I have the
Simscape component, how to set everything up. So the Simscape language
itself we are using is available as soon
as you have Simscape. it's a MATLAB-based
language, specifically for authoring
Simscape components that underneath the hood will
adhere to the same processes that the rest of the
Simscape components do, meaning once I hit Run,
a equation system it's automatically set up, reduced,
and then iteratively calculated throughout the simulation. It just is a way or mean
of translating something we have in a mathematical
model into a causal Simscape physical component. And there are a
couple of things you can do to create nice looking
interfaces and easy to read blocks. So every user will know
what to do with it, and how to connect
it, and ideally, how to parameterize it. And in the end, this could
also be optionally added to your Simscape library
browser if you wanted to. So once we have that, we have
a sort of basic absorption component available. And the idea is also how can I
now put this into an absorption column model. So first of all, we
wanted to combine it with existing moist air
components in the library, and also be able to
spatially democratize it as we saw in the plot earlier. So to be able to see how it
changes along the absorber height. So we used here, first
of all, a combination. So first of all,
what we did, and this is a schematic we're seeing
on the top right here, we used a basic
absorption component. So what you saw right now in
the Simscape language code, and connected it in
parallel to a pipe block. So we have a pipe block that
accounts for the gas flow. This is connected to
a moisture source, which can add or remove moisture
from the volume in the pipe. And this is triggered
by the absorption model. So the adoption
model we just saw, it declares and commands
the actual mass flow. Plus minus just means
adding or removing moisture from the actual pipe. So one pipe element is one slice
out of the absorber column. And the thermal mass
block that is connected accounts for the heat
capacity of one element of the absorption
column along its height. So this is one single element. And we could now go ahead and
manually copy and combine 5, or 10, or 30 of these elements. Or we can use automation. So the way we did it, we
created a custom library element of that, where we
have an interface that can say 5 elements, 10 elements,
15 elements, and depending on the element,
automatically-- so we have MATLAB commands
that can automatically build these models. So if I go back to-- back to the basic model
right here, so I can-- if I look underneath
the hood right here, I'm seeing right now it's
made out of, what is it? 10 elements. And if I change this, if
I say I want to account, let me overwrite this
10, just say I want 5. So what will happen? If I look underneath
the hood here, this will be reduced to
only contain five elements. So the value is the volume. And the length is
divided differently. So each element will be longer. But the absorber parameters
will be the same. Let me switch it back
and actually run it. So I've only shown you the
results so far of previously run examples. But I will actually
run this as well here. So you can get a feeling
of how long it takes. So the simulation time itself
is now, again, it's I think 50-- around 50,000, or
100,000 seconds I think. And what we will also
see that compiling takes quite a bit of time. So we can see now that
it's still compiling. So later, I'll
show you an example of how to do a parameter
sweep, or an optimization. And for an
optimization ideal, we don't want the model
to keep on compiling if at all-- because
it repeatedly needs to simulate the model. So what I used
later was actually, you can see it grayed
out here, there's a mode called Fast Restart mode. So once I put the model
into Fast Restart mode, it will compile only once. And as long as you don't
make any structural changes to the model, meaning
adding or removing blocks, connecting them
differently, those will count as a
structural change. But as long as you only make-- do with things like
parameter changes, the model doesn't
need to recompile. So the first one
will take longer, because the compiling
takes a bit of time. But after that, it
will be quicker, because we can skip the
compiling stage and move right on into simulation. So this should be starting now. On the bottom, we can see
the simulation progress. So you can see the
compiling actually took longer than the
actual simulation, meaning Fast Restart will
potentially be a huge benefit if you do a lot of simulations. And you can-- I just plotted some
initial results, just the specific humidity at top
and bottom of the absorber. But I have made, using MATLAB,
some specific plots that give a little more insight. And so what we see right
here is on the bottom, actually, not the time axis,
but the absorber length. So again, reading it
from top to bottom, I can see along this
length, at different time steps, the specific humidity. So the top plot will be at 0. And then we can see it sort of
slowly decreasing right here. So we can still see
the drying out process happening over time. So this-- you can
read this from-- this is the initial step. And then it goes sort of from-- this is the initialization,
so at t equals 0. And then you read it sort
of from here to here, we can see how the
outlet sort of becomes-- the gas at the outlet,
the specific humidity increases because the
beads become saturated. And we can do a similar
plot for the water friction in the absorber solid. So again, we see it along
it's absorber length. And we can see the actual
saturation of the beads. I have access to
this data, because I included Simscape logging. So there's a feature
that is turned on that is called
Simscape logging that means all variables
are being logged throughout the simulation. So at the end of a
simulation, I could call what is called the
Simscape Explorer, where there are different ways
of viewing this data. Pops up right here. So this represents
again the structure of the physical model. And I can, for example,
dig into the absorber, see that there actually
up to 10 elements. And for each of the
elements, I can actually look at how this
actually has been set up, like trace different quantities,
like the, again, the water fraction in the absorber,
and how over time, it sort of slowly increases
until the beads are saturated. We've seen that, how we
can create a single element and then actually discretize it
to have the absorber column be made up out of up to-- yeah,
it shows a number of elements. And an additional
step could be if you have experimental data at
hand and calibrate the model with it. That's a common
question people have for doing physical modeling,
independent of their industry applications. There are certain-- either
parameters are not available, there are no data sheets
for a specific component, it's not very known
or studied, maybe. Either way, there's an
uncertainty to the parameters. So typically, the
simulation does not match the real model behavior. So we've reproduced it here,
looking at some measured data and how initial
guess could look. And you choose the
parameters that are being-- that aren't certain. So you have some initial
guess for the parameters. And the idea is we have
an interface for it called Simulink Design Optimization,
which has a parameter estimation tool, which
allows me to automatically tune parameters on the end. It ideally looks
something like this. We have a tuned response that
fits the measured response well, or well enough for
whatever we are doing. And so the idea is-- and this
is where the mentioned fast restart comes in handy, because
the idea is if you set up something like this, we have a-- no sorry, that's
the wrong example. We can set up an experiment. And we have,
typically, in our case, we used an absorber
as an example. We have uncertainties
and parameters. I specifically chose the
Freundlich coefficient and the mass
transfer coefficients to have some uncertainty to it. And we can set up a sort
of so-called experiment. I've already preloaded it in
the parameter estimation tool. So the way this works, you
set up parameters to be tuned. So if I look at the interface, I
can set parameters to be tuned, maybe with a minimum
or maximum value, which makes some of
them just make sense, like certain values
cannot be 0 or negative, but also to give the-- depending on how much you
know of the parameter, the optimization
algorithm to make it a bit easier to narrow down
the space, the optimization space. You set up an experiment,
setting up experiments, meaning I need to load
external data into it, to which I want to compare
a certain output signal. So I'm comparing the output
humidity of the absorber to some given values. And once I hit, so I'm
not going to do this now, because this will take
a couple of minutes, but once I hit Estimate,
this will start estimating the parameters. I've made a sort of sped
up video version of this. This walks through it in a bit
quicker than it actually ran. It ran for about,
I think, something between 5 or 10 minutes. But we can see, so
in the background, the model is continuously
being cycled through. And we can see how the simulated
data tries to achieve match with the experimental data,
and how the parameters are being tuned along the way. OK, so this was the final
demonstration specific to this application. Just as a sort of
summary of it, we've looked into how Simscape
can be used, in this case, to model a gas
processing plants. And with a specific focus on
how you can actually customize. So we have a shipping library,
but there might be a need. In this case, there was a need
to customize certain things and how it plays together
with what we already ship with the product. And for your reference,
I've included a couple of additional resources. I think we will distribute
the slides after this meeting as well. So under these tiles, you find
a couple of additional links to some of the
Simscape products, and also information for you. We offer trainings
in this area as well. So if you want to get started
with some of our tools, modeling digital twins, we have
different trainings available, either public trainings, they
can be customized as well. We also, if you
want just to have a quick look or
a quick tutorial, we also have the
so-called onramps. So for example, if you're new
to Simscape and want to try it out, we have a basic
so-called onramp that you can do free of charge. Takes, I think, two or three
hours to work through it, but gives you an
additional idea of how-- an initial idea
of how to use it. And this is what
we did with RAG. We actually converted the proof
of concept into a larger scale to model the plant
realistically, to add, for example,
more logic, more scalular logic, different absorption-- different absoprtion
columns to it. We actually carried it out
through a consulting project. Consulting project can have
different flavors, starting from an initial workshop
or jumpstart training, to actually developing
your process, your project, or doing something
an actual workflow assessment from our side. And to wrap this part
up, there are also some additional resources
specific to oil and gas, chemicals industry, how
MATLAB and Simulink can be used in that context
for not only digital twins but other types.