1
Simulink의 MATLAB Function 블록에서 영구 변수를 구현할 수 있습니다. 그러나 누군가 MATLAB 함수 블록이나 다른 유사한 스크립팅 접근법없이 동일한 것을 구현하는 방법은 무엇입니까? 즉, Simulink의 영구 변수의 동작을 기본/기본 블록 (외부 도구 상자 없음)으로 복제 할 수 있습니까?Simulink에서 영구 변수와 동일한 기능을 구현하는 방법은 무엇입니까?
function y = fcn(u)
%#codegen
persistent n;
if isempty(n) %%initialize persistent variable
n = 1;
end
if u == 4 || n == 1
y = 0;
n = 2;
elseif n == 2
if ...
n = 1;
else ...
n = 3;
end
else
n = -1;
end
이와 같은 영구 메모리는 [Unit Delay] (https://www.mathworks.com/help/simulink/slref/unitdelay.html)와 동일합니다. 귀하의 예제에서 초기 조건은 '1', 블록 출력은 _old_'n '이고 코드의 논리는 (n = n) 블록 입력 신호를 계산하는 데 사용됩니다. –