第五章部分习题的MATLAB代码
5-1、5-2、5-3、5-4、5-6、5-9、5-18
5-4 离散系统与连续系统的频率特性
1对给定系统进行离散化,得到控制器的离散传递函数
Dz=c2d(D,T,'tustin')
Dz =
3.929 z - 3.214
---------------
z - 0.4286
Sample time: 0.1 seconds
Discrete-time transfer function.
2绘制0到3Hz内的幅相频率特性曲线
[mag,phase]=bode(D,f*2*pi);
[magd,phased]=bode(Dz,f*2*pi);
plot(f,mag(:),'-',f,magd(:),'--');
title('幅频特性曲线');xlabel('f/Hz');
plot(f,phase(:),'-',f,phased(:),'--');
title('相频特性曲线');xlabel('f/Hz');ylabel('deg')
5-9 离散系统的根轨迹
1绘制开环传递函数的根轨迹
G=tf(1,conv([1 0],[10 1]));
rlocusplot(DG);%绘制开环传递函数根轨迹图
2计算满足要求的增益值
通过计算可知速度误差系数为1时的K值,由此可以计算出对应根轨迹:
[num,den]=zp2tf(cell2mat(DG.Z),DG.P{1}(2:3),DG.K);
DGsym=poly2sym(num,z)/poly2sym(den,z);
fprintf('Kv=%g*Kc Kc=%g',DGfun(1),double(Kc));
Kv=0.0678571*Kc Kc=14.7368
3绘制相应的阶跃响应曲线
5-18
该题目似乎不适合MATLAB解答
G=poly2sym(num,z)/poly2sym(den,z);
(1) 双线性变换
a) 二阶离散系统的特征方程
[num,den]=numden(simplify(DG));%代数表达式:开环传递函数
delta=poly2sym(flip(c)/c(end),z);%最高次幂归一化
delta=symfun(delta,z);%特征方程左边部分
display(delta(z)==0);
ans =
b) 二阶离散系统稳定的充分必要条件
conds1=[con1,con2,con3]
conds1 =
c) 运算结果
sol = solve(conds1, a, 'ReturnConditions', true);
sol.conditions
ans = (2) 一阶向后差分法
[num,den]=numden(simplify(DG));%代数表达式:开环传递函数
delta=poly2sym(flip(c)/c(end),z);%最高次幂归一化
delta=symfun(delta,z);%特征方程左边部分
display(delta(z)==0);
ans =
conds2=[con1,con2,con3]
conds2 =
sol = solve(conds2, a, 'ReturnConditions', true);
sol.conditions
ans =