Using NARX model with Neural Network Predictive Control

28 views (last 30 days)
I was wondering if the model predictive control toolbox supported using NARX neural networks? If not, this webpage on a neural network predictive control scheme.
I have a few questions about this:
(1). Does this Simulink-based method limit the neural network to only have a single input? Since my model is a NARX neural network with 10 exogenous inputs, I'm worried that I won't be able to use it.
(2). For the predictive control, I have only a single input that I can control which is also one of the inputs into the NARX model. I have no control over the other inputs to my NARX model (think of them as uncontrollable states in a state-space model). Due to this, I'm wondering if I can get away with optimizing the single controllable input over a prediction horizon without needing the values of the other inputs. In other words, is there a way to get multi-step output predictions for my horizon using only values from the single controllable input?
(3). Does this Simulink-based method require an actual real-time measurement of the plant output? Or is the NARX model estimation fine to use? There are no sensors to measure the plant output in real-time which is part of the reason why I designed the NARX model in the first place.

Accepted Answer

Kiran Felix Robert
Kiran Felix Robert on 14 Aug 2020
Hi Chris,
It is my understanding that you are trying to use your NARX Model in one of the Deep Learning Control System Blocks.
To import your Neural Network model, you can perform the following steps,
Double-Click on the Block > File > Import Network.
Multi-Input or (and) Multi Output systems are not supported under the Neural Network Prediction controller as of now.
When using the Model Reference Controller, the plant model and the controller model can be imported.
The plant output signal is fed back to calculate the error with the reference (in order for convergence), if the NARX estimate is used, the model may converge to the estimate value itself. In other words, if the control signal provided by your controller is same as the output of the plant, then your NARX estimate can be used as the plant output signal.
Hope this Helps
Kiran Felix Robert
  2 Comments
Chris P
Chris P on 14 Aug 2020
When I import the network into a simulink block, should I be importing the network variable itself or a function file generated by genFunction?
I'll look a bit more into this model reference controller strategy. Thank you!
With the neural network predictive controller, would I be able to use the NARX model as my "plant" block and another neural network for the "neural network model" block? Since posting this, I have designed a less accurate but still reliable feedforward network that is only dependent on my controllable variable. Perhaps this model can be used for my prediction horizon while the NARX result feeds back a more accurate estimate of the system's output. The NARX model would of course have the additional inputs based on the system's current state but for simulation purposes I'm sure I can just add these values as reference signals into the plant block.
Nassim Stroke
Nassim Stroke on 31 Mar 2021
Hi,
I saw your answers on a question about NNPC and I want to ask some other question please,
I'm trying to use the NNPC block in simulink to control a process ? First, I'm wondering if the controller contains an integration to eliminate the static error cuz I'm getting a static error (closed-loop) !
Second, I'm getting a NARX model of my process with neural network time series but I can't use it in NNPC since it contains two inputs (the input, and the feedback of the output delayed) is there a solution to import a NARX in NNPC?
Third, can I use a script to simulate my process controlled with a NNPC instead of using the NNPC block in simulink ?
Fourth, where can I find a description or an explanation of the search parameter (or optimization parameter) in the block ?
Thank you for the help,

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!