How to save calculated value into Simulink workspace

조회 수: 8 (최근 30일)
Tomas
Tomas 2015년 7월 9일
댓글: Tomas 2015년 7월 16일
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

채택된 답변

Sebastian Castro
Sebastian Castro 2015년 7월 10일
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
Sebastian Castro
Sebastian Castro 2015년 7월 15일
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.
Similarly, the Integrator block handles vector/matrix signals automatically.
Now, as far as how to create matrices, I'd refer to this link:
- Sebastian
Tomas
Tomas 2015년 7월 16일
It works well. Thank you.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 General Applications에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by