How to save calculated value into Simulink workspace
조회 수: 8 (최근 30일)
이전 댓글 표시
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
채택된 답변
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
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.
Now, as far as how to create matrices, I'd refer to this link:
- Sebastian
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 General Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!