문제 설명
RC 필터에 대한 MATLAB Lsim 초기 값이 작동하지 않음 (MATLAB Lsim initial value for RC filter doesnt work)
초기 값이 있는 RC(저역 통과) 필터를 시뮬레이션합니다.
R = 1e3; % 1kOm
C = 100e‑6; % 100uF
es = tf('s');
LP1 = 1 / (R*C*es + 1);
Ts = 0.1; % 100ms
sysd = c2d(LP1, Ts);
초기 값은 커패시터가 일부 전압(예: 5V)으로 충전되고 입력에 일부 전압(예: 10V)을 적용한다는 것을 의미합니다. 출력 전압/시간 플롯이 표시됩니다.
x0 = 5; % 5V
input = 10; % 10V
N = 100;
lsim(sysd, ones(1, N)*input, [], x0);
표시된 플롯은 0으로 시작합니다(초기 조건 없음). If i convert tf to ss:
lsim(ss(sysd), ones(1, N)*input, [], x0);
Than plot은 0이 아닌 값에서 시작하지만 초기 값으로 설정한 것은 5V가 아닙니다. state‑space output equation y = Cx + Du
, the initial output is equal to C*x0 = 0.6321*5 = 3.16
which matches the result in your plot. Instead, you should set x0 = y0 / ss(sysd).C
where y0
is the desired initial output. For y0 = 5
, this means setting x0 = 7.91
.
(by user3700538、Alex)