Deviations in Result from 2 Matlab Versions
2 views (last 30 days)
Daniel Sadono on 10 Aug 2021
I have a complex model (let's name it model 'A') that run in Matlab/Simulink 2016b. When I migrate to 2018b and tried to run it, and error appeared due to SLPRJ folders from 2016b. From my understanding (after reading from other forums), SLPRJ folders are generated when model was run and it simply generated the C code for the calculations.
In my Matlab 2018b, an add ons MINGW.mlpkginstall was installed because it's needed to run another model (let's say model 'B'). Thus, in order to able to run that complex model ('A'), I simply deleted the SLPRJ folders(that was made in 2016b) and the results showed up and everything works without error.
When I tried to compare the results, somehow the deviations occured between 2016b and 2018b. I've tried to read release notes from 2017a to 2018b, but I couldn't find something that can be relevant as the cause for those deviations.
Has anybody any idea, what can be the root cause? I would say by deleting SLPRJ folders (2016b) and Mingw shouldn't be the main cause for those deviations. Am I right?
Walter Roberson on 3 Sep 2021
We can see a transfer function step in Picture 3. No matter whether you use Continuous time or Discrete Time, if you have a transfer function, MATLAB is going to end up having to create differential equations and use a differential equation solver. That is going to involve the linear algebra functions, and will probably need BLAS or LAPACK .
If you are using continuous time, MATLAB always sets up differential equations and uses a differential equation solver.
If you are using discrete time, then you are operating closer to a state machine, and potentially MATLAB might not need to set up differential equations -- but transfer functions need derivatives and you need a differential equation solver in that case.