发布网友 发布时间:2022-04-20 16:03
共1个回答
热心网友 时间:2023-12-08 04:59
如何用matlab求传递函数?今以多自由度振动系统的半正定系统求解可以按下列步骤进行:
已知系统质量矩阵{M}是正定矩阵,刚度矩阵{M}是半正定矩阵,求以m2的位移x2为输出,以作用在m2上的力f为输入的系统传递函数。
【1】建立系统动力学方程
m2*dx2^2/dt^2=f-k2(x2-x1)-c1(dx2/dt-dx1/dt)
m1*dx1^2/dt^2=k2(x2-x1)+c2(dx2/dt-dx1/dt)-k1(x1-x0)-c1(dx1/dt-dx0/dt)
m0*dx0^2/dt^2=k1(x1-x0)+c1(dx1/dt-dx0/dt)
令z1=x0,z2=x1,z3=x2,z4=dx0/dt,z5=dx1/dt,z6=dx2/dt,y=x2,则Z=(z1,z2,z3,z4,z5,z6)^T。
由此,得到该系统的状态空间方程
dZ/dt=A*Z+B*f
y=(0,0,1,0,0,0)Z
【2】求传递函数X2(s)/ F(s),为了方便求解,我们建立modelm()函数,其代码为
function 【sysm】=modelm(sysp)
m0=sysp(1); %m0的质量
m1=sysp(2); %m1的质量
m2=sysp(3); %m3的质量
k1=sysp(4); %m1的刚度
k2=sysp(5); %m2的刚度
c1=sysp(6); %m1的阻尼
c2=sysp(7); %m2的阻尼
A=[。。。];
B=[。。。];
C=[。。。];
D=0;
sys1=ss(A,B,C,D); %得到状态空间模型
sysm=zpk(sys1);%得到零极点增益模型,即该系统的传递函数
【3】调用方式
symp=[21,9,15,1000,400,0,0] %[m0,m1,m2,k1,k2,c1,c2]
X2_F=modelm(sysp)
【知识扩展】:
(1)传递函数的概念
传递函数是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。记作G(s)=Y(s)/U(s),其中Y(s)、U(s)分别为输出量和输入量的拉普拉斯变换。
(2)传递函数的主要应用
1、 确定系统的输出响应。对于传递函数G(s)已知的系统,在输入作用u(s)给定后,系统的输出响应y(s)可直接由G(s)U(s)运用拉普拉斯反变换方法来定出。
2、分析系统参数变化对输出响应的影响。对于闭环控制系统,运用根轨迹法可方便地分析系统开环增益的变化对闭环传递函数极点、零点位置的影响,从而可进一步估计对输出响应的影响。
3、用于控制系统的设计。直接由系统开环传递函数进行设计时,采用根轨迹法。根据频率响应来设计时,采用频率响应法。