Multiple sequences for Neural State-Space Model training and different sampling times

3 次查看(过去 30 天)
Hi all,
I have some doubts about Neural State-Space Models.
1) I would like to train such a model using different observations (or tests). In other words, I have time sequences measured in different experiments and I would like to use them to train the model. From the examples currently online, I could not figure out how to do this, since it seems to me that the training data are always represented by a single time sequence.
2) Suppose the time sequences I want to train the model with have a sampling time given as d_t. I want to use the Neural State-Space Model that I identify with this data in Simulink. I can do this using just the dedicated Neural State-Space Model block. Suppose, however, that I want to run simulations using this model in Simulink with sample times to my preference. I am aware of rate transition blocks, but can they do the trick for me for this type of problem? In other words, does the Simulink block of the Neural State-Space Model allow me to work with other sampling times, or am I constrained to use the model with sampling times equal to that of the time series with which I have trained the model (thus what has been referred to as d_t)?
Thank you in advance for the support!
Best regards,
Marco

采纳的回答

Arkadiy Turevskiy
Arkadiy Turevskiy 2024-6-11
Hi Marco,
Thanks for your questions.
  1. You can definitely use several different experiments for training neural state space models, but experiments must all be of the same length and all use the same sampling rate. If you have a long experiment, you can split it into multiple experiments. Please take a look at this example, specifically Model Training section. The code in this section includes a segment where training data is prepared by creating multiple experiments that represent overlapping segments. The objects Expts contains multiple experiments.
  2. For simulation in Simulink, you are probably better off with creating a continuous-time neural state space model. You can do it by simply not specifying sampling time when you create neural state space object using idNeuralStateSpace command. Training continous-time neural state-space model is slower than training discrete-time model, but gives you more flexibility with using the model, such as simulating at different sample times in Simulink. Alternatively, you can train discrete-time model by specifying a sample time in idNeuralStateSpace, but then you would indeed need to use rate converter block in Simulink, and model accuracy may not be optimal espcially when upsampling.
HTH.
Arkadiy

更多回答(0 个)

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by