Saving a matrix variable in Embeded Matlab Function
3 ビュー (過去 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!