Saving a matrix variable in Embeded Matlab Function
5 次查看(过去 30 天)
显示 更早的评论
Hi everyone, I use Embeded Matlab function block in simulink.I have a matrix variable inside this block,which should be saved in every step ,and be used for next step.Since 'save' command is disabled in Matlab function block,Which block or command should i use? I know about memory block or data store memory,but the first one doesnt have a sample time and second one cant store a matrix! thanks in advance
0 个评论
回答(2 个)
Azzi Abdelmalek
2014-1-13
编辑:Azzi Abdelmalek
2014-1-13
Example
function y=fcn(u)
persistent M
if isempty(M)
M=M0 % Define initial condition for your matrix M
end
%do
2 个评论
Azzi Abdelmalek
2014-1-13
Sarah commented
This is the function that i wrote in embeded matlab function block:
function [ y_hat,teta1,P1] = fcn(u1, u2, u3, u4, u5, y, P, teta)
persistent P
persistent teta
Phi=[u1 u2 u3 u4]';
dP=zeros(4,4);
dP(3,4)=-u3; dP(4,3)=-u3; dP(4,4)=u5;
y_hat=teta(1:3)'*[u1 u2 u3]'; error=y-y_hat; beta=0.055;
Pdot=beta*P-P*(Phi*Phi'-error*dP)*P
P1=Pdot*0.01+P;
tetaDot= P*error*Phi;
teta1=tetaDot*0.01+P;
This error was ocurred:
The PERSISTENT declaration must precede any use of the variable P.
Azzi Abdelmalek
2014-1-13
编辑:Azzi Abdelmalek
2014-1-13
It's not clear how P and teta are updated. and if they are in the input argument , they can't be declared as persistent
Sarah Miller
2014-1-13
1 个评论
Azzi Abdelmalek
2014-1-13
编辑:Azzi Abdelmalek
2014-1-13
Sarah, if you want to add a comment. Please click on comment on this answer do not add answers
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Model Editing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!