Saving a matrix variable in Embeded Matlab Function

3 ビュー (過去 30 日間)
Sarah Miller
Sarah Miller 2014 年 1 月 13 日
編集済み: Azzi Abdelmalek 2014 年 1 月 13 日
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

回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 1 月 13 日
編集済み: Azzi Abdelmalek 2014 年 1 月 13 日
You can declare your matrix as persistent
Example
function y=fcn(u)
persistent M
if isempty(M)
M=M0 % Define initial condition for your matrix M
end
%do
  2 件のコメント
Azzi Abdelmalek
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
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
Sarah Miller 2014 年 1 月 13 日
Yes,they are in the input argument,So would you pls tell me what can i do?
  1 件のコメント
Azzi Abdelmalek
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 ExchangeInteractive Model Editing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by