Dynamical Systems, Control and Optimization

Space Greenhouse

Picture : schematic view of the space greenhouse

The Dynamical Systems, Control and Optimization group gathers about a dozen professors and over 30 PhD students and postdoctoral researchers.

Principal Investigators :

Pierre-Antoine AbsilVincent Blondel, Frédéric Crevecoeur, Jean-Charles Delvenne, Yves Deville, Denis DochainFrançois Glineur, Julien Hendrickx, Raphaël Jungers, Philippe Lefèvre, Yurii Nesterov, Pierre Schaus, Paul Van Dooren, Vincent Wertz

Research Areas :

Identification of dynamical systems is one of the first steps in the study of dynamical systems, since it addresses the issue of finding an appropriate model for its input/output behavior. Much of our work on identification has focused on understanding the connections between, identifiability, informative experiments, the information matrix and the minimization of a prediction error criterion.

Several new multi-agent models have been proposed and studied with behavior reminiscent of the partial entrainment behavior of the Kuramoto-Sakaguchi model, but with a greater potential for analysis and with applications to systems not related to coupled oscillators. The main emphasis on these dynamic models is to analyze the asymptotic clustering behavior. The analysis of such models is relevant in the study of opinion formation, interconnected water basins, platoon formation in cycling races, and the minimum cost flow problem.

We study fundamental issues in modeling, control design and stability analysis of physical networks described by hyperbolic systems of conservation laws and by distributed parameter systems modeling e.g. tubular reactors. We also study problems related to optimal prediction of nonlinear systems, such as the flow in channels (modeled by Saint-Venant equations), the modeling of the water level in water basins in order to prevent flooding and the prediction and control of traffic jams.

Optimization techniques play a fundamental role in the area of dynamical systems and they are being developed and analyzed at several levels, depending on the type of variables one wishes to optimize. Variables can be discrete (as in graph theoretic problems) or continuous (as in parametric optimization), but can also be infinite dimensional (as in optimal control over function spaces) and constrained (as in optimization on manifolds or on cones). The group has activities in each of these areas and also develops special purpose numerical techniques for dealing efficiently with such problems.

The activities here include microbial ecology and the modeling of wastewater treatment, including applications to various biological wastewater systems. We developed population balance models covering a large spectrum of applications in the industry of polymer production, crystallization, biotechnology or any process in which the size distribution of particles is essential for process quality. We also study the design and application of observers converging in finite time for a class of fed-batch processes.

We combine theoretical and experimental approaches to investigate the neural control of movement and its interactions with our environment. The mathematical models that are developed are based on experimental results from both normal and pathological subjects (clinical studies) and focus on the interaction between different types of eye movements and on eye/hand coordination. Our main research objective is to gain further insight into the nature and characteristics of high-level perceptual and motor representations in the human brain. 

Most recent publications

Below are listed the 10 most recent journal articles and conference papers produced in this research area. You also can access all publications by following this link : see all publications.

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.7.9: /usr/bin/python
Mon May 20 13:18:10 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/sites/tools/export/export.py in ()
    104         t.encode("utf-8"))
    105 
=>  106     tmp = urllib.urlopen(q)
    107     
    108     resp = eval( urllib.urlopen(q).read() )
tmp undefined, urllib = <module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>, urllib.urlopen = <function urlopen>, q = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in urlopen(url='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None, proxies=None, context=None)
     85         opener = _urlopener
     86     if data is None:
=>   87         return opener.open(url)
     88     else:
     89         return opener.open(url, data)
opener = <urllib.FancyURLopener instance>, opener.open = <bound method FancyURLopener.open of <urllib.FancyURLopener instance>>, url = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open(self=<urllib.FancyURLopener instance>, fullurl='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    211         try:
    212             if data is None:
=>  213                 return getattr(self, name)(url)
    214             else:
    215                 return getattr(self, name)(url, data)
builtin getattr = <built-in function getattr>, self = <urllib.FancyURLopener instance>, name = 'open_https', url = '//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open_https(self=<urllib.FancyURLopener instance>, url='//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    441             if realhost: h.putheader('Host', realhost)
    442             for args in self.addheaders: h.putheader(*args)
=>  443             h.endheaders(data)
    444             errcode, errmsg, headers = h.getreply()
    445             fp = h.getfile()
h = <httplib.HTTPS instance>, h.endheaders = <bound method HTTPSConnection.endheaders of <httplib.HTTPSConnection instance>>, data = None
 /usr/lib/python2.7/httplib.py in endheaders(self=<httplib.HTTPSConnection instance>, message_body=None)
   1033         else:
   1034             raise CannotSendHeader()
=> 1035         self._send_output(message_body)
   1036 
   1037     def request(self, method, url, body=None, headers={}):
self = <httplib.HTTPSConnection instance>, self._send_output = <bound method HTTPSConnection._send_output of <httplib.HTTPSConnection instance>>, message_body = None
 /usr/lib/python2.7/httplib.py in _send_output(self=<httplib.HTTPSConnection instance>, message_body=None)
    877             msg += message_body
    878             message_body = None
=>  879         self.send(msg)
    880         if message_body is not None:
    881             #message_body was not a string (i.e. it is a file) and
self = <httplib.HTTPSConnection instance>, self.send = <bound method HTTPSConnection.send of <httplib.HTTPSConnection instance>>, msg = 'GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n'
 /usr/lib/python2.7/httplib.py in send(self=<httplib.HTTPSConnection instance>, data='GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n')
    839         if self.sock is None:
    840             if self.auto_open:
=>  841                 self.connect()
    842             else:
    843                 raise NotConnected()
self = <httplib.HTTPSConnection instance>, self.connect = <bound method HTTPSConnection.connect of <httplib.HTTPSConnection instance>>
 /usr/lib/python2.7/httplib.py in connect(self=<httplib.HTTPSConnection instance>)
   1248 
   1249             self.sock = self._context.wrap_socket(self.sock,
=> 1250                                                   server_hostname=server_hostname)
   1251 
   1252     __all__.append("HTTPSConnection")
server_hostname = 'dial.uclouvain.be'
 /usr/lib/python2.7/ssl.py in wrap_socket(self=<ssl.SSLContext object>, sock=<socket._socketobject object>, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname='dial.uclouvain.be')
    348                          suppress_ragged_eofs=suppress_ragged_eofs,
    349                          server_hostname=server_hostname,
=>  350                          _context=self)
    351 
    352     def set_npn_protocols(self, npn_protocols):
_context undefined, self = <ssl.SSLContext object>
 /usr/lib/python2.7/ssl.py in __init__(self=<ssl.SSLSocket object>, sock=<socket._socketobject object>, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, family=2, type=1, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, server_hostname='dial.uclouvain.be', _context=<ssl.SSLContext object>)
    564                         # non-blocking
    565                         raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
=>  566                     self.do_handshake()
    567 
    568             except (OSError, ValueError):
self = <ssl.SSLSocket object>, self.do_handshake = <bound method SSLSocket.do_handshake of <ssl.SSLSocket object>>
 /usr/lib/python2.7/ssl.py in do_handshake(self=<ssl.SSLSocket object>, block=False)
    786             if timeout == 0.0 and block:
    787                 self.settimeout(None)
=>  788             self._sslobj.do_handshake()
    789         finally:
    790             self.settimeout(timeout)
self = <ssl.SSLSocket object>, self._sslobj = <_ssl._SSLSocket object>, self._sslobj.do_handshake = <built-in method do_handshake of _ssl._SSLSocket object>

<type 'exceptions.IOError'>: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
      args = ('socket error', SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'))
      errno = 'socket error'
      filename = None
      message = ''
      strerror = SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)')

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.7.9: /usr/bin/python
Mon May 20 13:18:11 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/sites/tools/export/export.py in ()
    104         t.encode("utf-8"))
    105 
=>  106     tmp = urllib.urlopen(q)
    107     
    108     resp = eval( urllib.urlopen(q).read() )
tmp undefined, urllib = <module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>, urllib.urlopen = <function urlopen>, q = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in urlopen(url='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None, proxies=None, context=None)
     85         opener = _urlopener
     86     if data is None:
=>   87         return opener.open(url)
     88     else:
     89         return opener.open(url, data)
opener = <urllib.FancyURLopener instance>, opener.open = <bound method FancyURLopener.open of <urllib.FancyURLopener instance>>, url = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open(self=<urllib.FancyURLopener instance>, fullurl='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    211         try:
    212             if data is None:
=>  213                 return getattr(self, name)(url)
    214             else:
    215                 return getattr(self, name)(url, data)
builtin getattr = <built-in function getattr>, self = <urllib.FancyURLopener instance>, name = 'open_https', url = '//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open_https(self=<urllib.FancyURLopener instance>, url='//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    441             if realhost: h.putheader('Host', realhost)
    442             for args in self.addheaders: h.putheader(*args)
=>  443             h.endheaders(data)
    444             errcode, errmsg, headers = h.getreply()
    445             fp = h.getfile()
h = <httplib.HTTPS instance>, h.endheaders = <bound method HTTPSConnection.endheaders of <httplib.HTTPSConnection instance>>, data = None
 /usr/lib/python2.7/httplib.py in endheaders(self=<httplib.HTTPSConnection instance>, message_body=None)
   1033         else:
   1034             raise CannotSendHeader()
=> 1035         self._send_output(message_body)
   1036 
   1037     def request(self, method, url, body=None, headers={}):
self = <httplib.HTTPSConnection instance>, self._send_output = <bound method HTTPSConnection._send_output of <httplib.HTTPSConnection instance>>, message_body = None
 /usr/lib/python2.7/httplib.py in _send_output(self=<httplib.HTTPSConnection instance>, message_body=None)
    877             msg += message_body
    878             message_body = None
=>  879         self.send(msg)
    880         if message_body is not None:
    881             #message_body was not a string (i.e. it is a file) and
self = <httplib.HTTPSConnection instance>, self.send = <bound method HTTPSConnection.send of <httplib.HTTPSConnection instance>>, msg = 'GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n'
 /usr/lib/python2.7/httplib.py in send(self=<httplib.HTTPSConnection instance>, data='GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n')
    839         if self.sock is None:
    840             if self.auto_open:
=>  841                 self.connect()
    842             else:
    843                 raise NotConnected()
self = <httplib.HTTPSConnection instance>, self.connect = <bound method HTTPSConnection.connect of <httplib.HTTPSConnection instance>>
 /usr/lib/python2.7/httplib.py in connect(self=<httplib.HTTPSConnection instance>)
   1248 
   1249             self.sock = self._context.wrap_socket(self.sock,
=> 1250                                                   server_hostname=server_hostname)
   1251 
   1252     __all__.append("HTTPSConnection")
server_hostname = 'dial.uclouvain.be'
 /usr/lib/python2.7/ssl.py in wrap_socket(self=<ssl.SSLContext object>, sock=<socket._socketobject object>, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname='dial.uclouvain.be')
    348                          suppress_ragged_eofs=suppress_ragged_eofs,
    349                          server_hostname=server_hostname,
=>  350                          _context=self)
    351 
    352     def set_npn_protocols(self, npn_protocols):
_context undefined, self = <ssl.SSLContext object>
 /usr/lib/python2.7/ssl.py in __init__(self=<ssl.SSLSocket object>, sock=<socket._socketobject object>, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, family=2, type=1, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, server_hostname='dial.uclouvain.be', _context=<ssl.SSLContext object>)
    564                         # non-blocking
    565                         raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
=>  566                     self.do_handshake()
    567 
    568             except (OSError, ValueError):
self = <ssl.SSLSocket object>, self.do_handshake = <bound method SSLSocket.do_handshake of <ssl.SSLSocket object>>
 /usr/lib/python2.7/ssl.py in do_handshake(self=<ssl.SSLSocket object>, block=False)
    786             if timeout == 0.0 and block:
    787                 self.settimeout(None)
=>  788             self._sslobj.do_handshake()
    789         finally:
    790             self.settimeout(timeout)
self = <ssl.SSLSocket object>, self._sslobj = <_ssl._SSLSocket object>, self._sslobj.do_handshake = <built-in method do_handshake of _ssl._SSLSocket object>

<type 'exceptions.IOError'>: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
      args = ('socket error', SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'))
      errno = 'socket error'
      filename = None
      message = ''
      strerror = SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)')