How do I change a transfer function with an exponential term to state space model in simulink? System identification question as well
조회 수: 12 (최근 30일)
이전 댓글 표시
I inputted fan speed as input (1,2,3 low, medium,high) and outputted temperature for importing into the sysid toolbox. I estimated using the process model and ended up getting P1D Process model with transfer function Kp G(s) = ---------- * exp(-Td*s) 1+Tp1*s
with Kp = 16.886 Tp1 = 1875.4 Td = 74.494 In the model output in sysid, it showed the temperature starting at 75. When I end up entering the above as a combination of TF block plus transport delay of 75, initial temperature is always zero in the scope in simulink. I was thinking of converting to state space and setting an initial condition but am not sure what to do about the delay?
Any help with any of my concerns above would be appreciated
Thanks
댓글 수: 0
답변 (2개)
Rajiv Singh
2011년 8월 11일
The difference you are observing is on account of initial conditions. Converting to state space would the right way to avoid transients and start simulation at the initial conditions you desire. Try something like this:
Export estimation data and estimated model to workspace
model2 = idss(model) % where model is what you estimated
x0 = findstates(model2, data); where data refers to estimation data
Use model2 in a linear system block (Idmodel block or LTI block) along with initial conditions x0. Idmodel block and LTI block can automatically manage input delays. But you could append them using a transport delay block to a native Simulink state-space block.
댓글 수: 0
ANTONY MANJILA
2018년 9월 18일
I would like to know how to create a block representing this transfer function in attachment
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Event Functions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!