Initial value for a transfer function

13 次查看(过去 30 天)
Hello, I'm working on a simulink model of a heat exchanger. I already got the transfer function of my system. It is a second order transfer function. However, i have a slight problem where i should start at 50 at t=0 and end at Tref(value that i want, for example 20). I know that i can convert my transfer function to state-space block where i can define the initial value but it did not work.
In the state-space block I put initial condition to 50. But as you can see in the result, it starts at 0. Thank you to anyone that can help.
So if anyone can help, i really appreciate it.
-Aizat
  4 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2016-4-29
What is the value of your vector C, in your state space model?
Aizat BIN AZMI
Aizat BIN AZMI 2016-4-29
Here is the values of all 4 vectors after I did a conversion of tf2ss.
A1 =
-0.0071 -0.0000
1.0000 0
B1 =
1
0
C1 =
0 0.0013
D1 =
0

请先登录,再进行评论。

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2016-4-29
编辑:Azzi Abdelmalek 2016-4-29
From your second order state space model,you have
y=C*[x1;x2]
Then if you want to set initial conditions to your states x1 and x2, you should type a vector [x10;x20], then the initials condition for y will be:
y0=C*[x10;x20]
  5 个评论
Aizat BIN AZMI
Aizat BIN AZMI 2016-4-29
It works very well. Thank you so much. I appreciate it.
Parth Chandak
Parth Chandak 2017-10-20
How to model the system after you get y and y0? Can you explain that?
clear all
clc
w = 1;
z = 0.2;
x_0 = [1;1];
xdot_0 = [1;5];
num = [0,0,w^2]
den = [1,2*z*w,w^2]
[A,B,C,D] = tf2ss(num,den)
y_0 = C*x_0
ydot_0 = C*xdot_0
sys= ss(A,B,C,D);
H=tf(sys);
stepplot(H)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Additional Math and Discrete 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by