|
%连续系统
1、假设传函为:
Go = 5(s+1)*(s+2)/(s*(s+3)*(s+4)*(s+5))
matlab相关命令为:
%%%%%%%%%%%%%%%%%%%%%%%%
%---零极点形式
z = [-1; -2];
p = [0;-3; -4; -5];
k = 5;
sysc = zpk(z, p, k)
%结果如下:
5 (s+1) (s+2)
sysc= -------------------
s (s+3) (s+4) (s+5)
%%%%%%%%%%%%%%%%%%%%%%%%
% 在已知零极点情况项,可能需要变成多项式形式
% 变化方式1:
num = conv(5,conv([1 1],[1 2]));
den = conv([1 0], conv([1 3], conv([1 4], [1 5])));
sysc = tf(num, den);
%结果如下:
5 s^2 + 15 s + 10
sysc = ----------------------------
s^4 + 12 s^3 + 47 s^2 + 60 s
% 变化方式2:
z = [-1; -2]; % 此处为 ;号
p = [0;-3; -4; -5]; % 此处为 ;号
k = 5;
[num, den]= zp2tf(z, p, k); %零极点增益模型转换为多项式传递函数模型。
sysc = tf(num, den);
%结果如下:
5 s^2 + 15 s + 10
sysc = ----------------------------
s^4 + 12 s^3 + 47 s^2 + 60 s
2、假设传函为:
Go = (5 s^2 + 15 s + 10)/ (s^4 + 12 s^3 + 47 s^2 + 60 s )
matlab相关命令为:
%%%%%%%%%%%%%%%%%%%%%%%%
%--多项式形式1-----------------------
num = [5 15 10];
den = [1 12 47 60 0];
sysc = tf(num, den);
%结果如下:
5 s^2 + 15 s + 10
sysc = ----------------------------
s^4 + 12 s^3 + 47 s^2 + 60 s
%%%%%%%%%%%%%%%%%%%%%%%%
%--多项式形式2-----------------------
s = tf('s');
num = 5*s^2 + 15*s + 10;
den = s^4 + 12*s^3 + 47*s^2 + 60*s;
sysc = num / den;
%结果如下:
5 s^2 + 15 s + 10
sysc = ----------------------------
s^4 + 12 s^3 + 47 s^2 + 60 s
%%%%%%%%%%%%%%%%%%%%%%%%
%在此情况项,可能需要转变成零极点形式
%---零极点形式1
num = [5 15 10];
den = [1 12 47 60 0];
sysc = tf(num, den);
[z, p, k] = tf2zp(num, den);
sysc2 = zpk(z, p, k);
%结果如下:
5 (s+2) (s+1)
sysc2 = -------------------
s (s+5) (s+4) (s+3)
3、在上面两种情况下,都是手动如下多项式函数系数或者零极点;
如果在计算过程得到了Go,则如何变换呢?
a、如果得到的是多项式传函,变成零极点传函如下:
% s = tf('s');
% num = 5*s^2 + 15*s + 10;
% den = s^4 + 12*s^3 + 47*s^2 + 60*s;
% sysc = num / den;
% 到此得到了多项式传函,变成零极点如下:
sysc2 = zpk(sysc) ; % 直接用zpk转换
b、如果得到的是零极点传函,变成多项式传函如下:
%---零极点形式
%z = [-1; -2];
%p = [0;-3; -4; -5];
%k = 5;
%sysc = zpk(z, p, k)
% 到此得到了零极点传函,变成多项式如下:
sysc2 = tf(sysc); %用tf直接就可以转换成多项式形式;
4、如何从多项式传函中提取系数? 如何从多项式中获得零极点值?
%假设连续系统传函为sysc,多项式形式;
[num, den ] = tfdata(sysc, 'v');%从传函中提取分子分母多项式系数;v功能,表示返回分子分母多项式系数;
[z,p,k] = tf2zp(num, den) % 根据多项式系数,得到零极点
sysc2 = zpk(z, p, k); % 根据零极点,得到零极点形式的传函;
[num,den] = zp2tf(z,p,k); % 根据零极点,得到多项式系数
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 03:24
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社