How to create a state space model from a custom transfer function?

1 view (last 30 days)
Hello forum, I would create a state-space model (A, B, C and D) starting from a proper-build transfer function H. In particular, my H function is a sort of (flat) pulse function, so that:
- in the range 0-w1, H=1 (so the output is exactly equal to the input)
- in the range w1-w2, H=2 (output = 2 * input)
- in the range w2-wend, H=1 (as the same part).
How can I build A, B, C and D starting from these informations? I know about the command tf2ss but I have no idea about the a and b parameters that tf2ss needs as input.
  2 Comments
Star Strider
Star Strider on 13 Jan 2018
If you only have the input and output values, you need to use system identification techniques, described in the System Identification Toolbox (link).
Alessandro Longo
Alessandro Longo on 13 Jan 2018
I do not have input or output values. I could build something with no sense for my analysis. And then? I tried to open that link but it seems really full of informations.

Sign in to comment.

Answers (1)

Star Strider
Star Strider on 13 Jan 2018
‘I do not have input or output values.’
You do, actually. With a specific input, your output is described as:
  • in the range 0-w1, H=1 (so the output is exactly equal to the input)
  • in the range w1-w2, H=2 (output = 2 * input)
  • in the range w2-wend, H=1 (as the same part)
So choose a frequency vector, then choose a vector of ones as your input the same length as your frequency vector, then choose ‘w1’ and ‘w2’, then choose a vector matching your described output again the same length, and use the System Identification Toolbox (there is a similar function, invfreqs and invfreqz in the Signal Processing Toolbox) to estimate your transfer function.
‘I could build something with no sense for my analysis. And then? I tried to open that link but it seems really full of informations.’
The approach here is not ‘something with no sense’, since it is what you have described as your system frequency-domain behaviour.
Another option is to use the Signal Processing Toolbox firls (link), firpm (link) or designfilt (link) to design a filter to your frequency specifications, and use the transfer function from it. Once you have that, you can implement your state-space representation.

Community Treasure Hunt

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

Start Hunting!