How do I change a transfer function with an exponential term to state space model in simulink? System identification question as well

8 views (last 30 days)
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

Answers (2)

Rajiv Singh
Rajiv Singh on 11 Aug 2011
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.

ANTONY MANJILA
ANTONY MANJILA on 18 Sep 2018
I would like to know how to create a block representing this transfer function in attachment

Community Treasure Hunt

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

Start Hunting!