Matlab提取传递函数的分子和分母多项式 1
题目:
代码:
clc;clear all;close all; syms s %定义了一个系统变量用syms定义 H=6*(s+5)/(s^2+3*s+1)^2 %定义了传递函数 [num,den]=numden(H); %numden()提取分子和分母的多项式numerator是分子, % denominator是分母 disp('numerator:'); %利用disp()显示分子 disp(num); disp('denominator:'); %利用disp()显示分母 disp(den); %Ctrl+r是注释,Ctrl+t是取消注释 den_expaned=expand(den);%用expand()这个函数把分母展开 disp('Expaned_denominator:'); %利用disp()显示分母 disp(den_expaned);
1. 清空环境与命令窗口
clc;
clear all;
close all;
功能:
clc:清空命令窗口,让屏幕更整洁。clear all:清除工作区所有变量,避免之前的变量对当前代码产生干扰。close all:关闭所有打开的图形窗口,防止残留的图影响后续结果显示。
2. 定义符号变量
syms s %定义了一个系统变量用syms定义
syms s是 Symbolic Math Toolbox 中的命令,用于定义一个符号变量s。- 在控制理论中,
s通常表示复频率(拉普拉斯变换中的变量)。 - 符号变量可以进行符号运算(如求导、积分、展开、因式分解等),而不需要代入具体数值。
3. 定义传递函数
H=6*(s+5)/(s^2+3*s+1)^2 %定义了传递函数
功能:
- 这里用符号变量
s直接构造了一个有理分式传递函数H(s)。 - 分子:
6*(s + 5) - 分母:
(s^2 + 3s + 1)^2 - 注意:因为
s是符号变量,所以H是一个符号表达式,而不是数值数组。
4. 提取分子和分母
[num,den]=numden(H); %numden()提取分子和分母的多项式numerator是分子,denominator是分母
功能:
numden(H)是 Symbolic Math Toolbox 中的函数,用于提取符号表达式H的分子和分母。- 返回值:
num:分子的符号多项式(这里是6*(s + 5))den:分母的符号多项式(这里是(s^2 + 3s + 1)^2)
- 适用场景:当传递函数是符号表达式时,需要分离分子分母以便进一步处理(如展开、求根等)。
5. 显示结果
disp('numerator:'); %利用disp()显示分子
disp(num);
disp('denominator:'); %利用disp()显示分母
disp(den);
功能:
disp('字符串'):在命令窗口显示指定的字符串。disp(num)和disp(den):显示符号变量num和den的内容。- 输出效果:
numerator: 6*(s + 5) denominator: (s^2 + 3*s + 1)^2
6. 展开分母多项式
den_expaned=expand(den);%用expand()这个函数把分母展开
功能:
expand(den)是符号运算函数,用于将分母的符号多项式展开为标准的多项式形式(按降幂排列)。- 对于
den = (s^2 + 3s + 1)^2,展开后:s^4 + 6*s^3 + 11*s^2 + 6*s + 1 - 用途:展开后可以更直观地看到分母的各项系数,方便后续分析(如求极点、特征方程等)。
7. 显示展开后的分母
disp('Expaned_denominator:'); %利用disp()显示分母
disp(den_expaned);
功能:
- 显示展开后的分母多项式,输出效果:
plaintext
Expaned_denominator: s^4 + 6*s^3 + 11*s^2 + 6*s + 1
总结
这段代码的核心功能是:
- 用符号变量定义一个传递函数
H(s)。 - 提取传递函数的分子和分母。
- 将分母多项式展开,并显示所有结果。


浙公网安备 33010602011771号