MATLAB调用tf函数生成传递函数报错 无法绘制根轨迹图求助
MATLAB根轨迹绘制报错排查与解决
报错原因
- 缺少控制系统工具箱(Control System Toolbox):
tf是控制系统工具箱的专属函数,未安装该工具箱时无法调用,会触发运行错误 - 存在自定义函数/变量冲突:当前工作路径下存在自行命名为
tf.m的脚本/函数,或工作区此前将tf定义为变量,覆盖了MATLAB内置的tf函数,导致调用异常 - 代码后续存在拼写错误:根轨迹绘制函数官方名称为
rlocus,当前代码误写为relocus,修复第四行错误后会触发该类报错
可行解决步骤
- 检查控制系统工具箱安装状态:在MATLAB命令行输入
ver,查看输出列表中是否存在「Control System Toolbox」,如果无该条目,打开MATLAB的「附加功能资源管理器」搜索安装对应工具箱即可,安装完成后重启MATLAB生效 - 排查函数/变量冲突:在命令行输入
which tf -all,如果返回的第一个结果不是MATLAB安装路径下toolbox/control/control/目录内的tf.m,就将路径下自定义的tf.m重命名或者移出当前工作目录;同时运行clear tf清除工作区可能存在的同名变量 - 修正代码内容,修正后的可运行代码如下:
clc clear % 清除工作区变量,避免历史变量干扰 num = 1; dem = [1 3 10 0]; % 若符合行业通用习惯可将变量名改为den,保证变量对应即可 Ls = tf(num, dem); rlocus(Ls)
内容的提问来源于stack exchange,提问作者Jason Parekh
相关产品推荐
相关产品推荐

