Saving a matrix variable in Embeded Matlab Function
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (2)
Azzi Abdelmalek
am 13 Jan. 2014
Bearbeitet: Azzi Abdelmalek
am 13 Jan. 2014
Example
function y=fcn(u)
persistent M
if isempty(M)
M=M0 % Define initial condition for your matrix M
end
%do
2 Kommentare
Azzi Abdelmalek
am 13 Jan. 2014
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
am 13 Jan. 2014
Bearbeitet: Azzi Abdelmalek
am 13 Jan. 2014
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
am 13 Jan. 2014
1 Kommentar
Azzi Abdelmalek
am 13 Jan. 2014
Bearbeitet: Azzi Abdelmalek
am 13 Jan. 2014
Sarah, if you want to add a comment. Please click on comment on this answer do not add answers
Siehe auch
Kategorien
Mehr zu Interactive Model Editing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!