Building a memory with m-file
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
I have a little problem with my model when I try to create an intelligent memory to my application. The model is shown below:
The Matlab-function block called "Memory Backup" gets data packets into its port "last_data". The data is delayed with one data step, but don´t worry about it. How the Matlab function should work, is told below:
If there are packet losses (boolean 1 (=losses) or 0 (=no losses)), the Memory backup function starts to feed out the last correct data (last last_data -signal during "no losses" time) that was occured before the losses started to appear.
When the packet losses disappear (packet_loss = 0), then the Memory backup -function just feeds through the input data (last_data -signal).
What is inside the Memory backup file, is shown below:
In order to get the Memory backup- function to work, I should find a way where to declare the variable "keep_old_output". I can´t assign it to a 0 or 1 at the beginning of the script because it would affect to the functionality of the script everytime when the script would be run.
Where should I declare it without disturbing the functionality of the script?
Thank you for any kind of help!
0 件のコメント
採用された回答
Rajiv Ghosh-Roy
2013 年 12 月 10 日
You need to declare these variables as "persistent". You can check isempty of these variables for initialization.
function y = fcn(packet_loss, last_data)
persistent keep_old_data
persistent another_persistent
% Initialize
if isempty(keep_old_data)
keep_old_data = false;
another_persistent = uint32(23);
end
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Simulink Functions についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!