How to save calculated value into Simulink workspace
8 views (last 30 days)
Show older comments
Hello,
I have got a question about the State-Space block. I would like to use one of the output values as a coefficient for matrix A .
That means following - I want to calculate y ; demux the output signal; grab the last calculated value and save it into the Simulink workspace as a constant btS (eventually overwrite the initial value which was set in Model properties->Callbacks->InitFcn); use it in the other calculation step.
Unfortunately the To Workspace block doesnt work because it writes the value after the calculation stopped. Is there any way how to do that?
Principle is shown on following figure.
Thank you
0 Comments
Accepted Answer
Sebastian Castro
on 10 Jul 2015
The easiest thing to do when your system is nonlinear (as in your case) is not to use a State-Space block. Instead, if possible, try decompose your system into foundational blocks like Integrator, Add/Subtract, Gain, etc. blocks.
This way, you can easily feed that output signal back into a Product block without having to do any "hacking" with the workspace.
In fact, you could just take those matrices and implement the state-space math using matrix operations and one Integrator block. That is, xdot = A*x + B*u and y = C*x + D*u. Then, you could use an Assignment block to keep tuning a particular element of A using that one output element.
- Sebastian
3 Comments
Sebastian Castro
on 15 Jul 2015
Yes! All of these multiplications can be done by plain Simulink blocks.
If your matrix is constant (as will be the case for your B, C, D matrices), you can use a Gain block and set its Multiplication parameter accordingly.
If your matrix is not constant (as is the case with your A matrix), you can use a Product block, which also has a Multiplication parameter that you can set for matrix multiplication.
Now, as far as how to create matrices, I'd refer to this link:
- Sebastian
More Answers (0)
See Also
Categories
Find more on General Applications 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!