matlab 多个输出,matlab – 创建一个MIMO(多输入多输出)传输函数系统,无需硬编码输入和输出的数量...

本文介绍了如何在MATLAB中创建一个多输入多输出(MIMO)传输函数系统,而不硬编码输入和输出的数量。作者遇到的问题包括使用'tf'类型时'diag'函数不可用,手动矩阵操作失败以及尝试使用'tf'的MIMO格式时遇到错误。文章提出了将每个SISO系统转换为状态空间系统并组合成一个大的对角系统以计算MIMO系统的传递函数的方法。
摘要由CSDN通过智能技术生成

介绍

作为更大系统的一部分,我正在尝试创建一个多输入多输出传递函数,它只将输入链接到引线对角线上的输出*.即它在输入1和输出1,输入2和输出2等之间具有非零传递函数.

*你是否真的认为MIMO系统是一个公平的评论,我希望它采用这种格式,因为它链接到一个真正是MIMO的大型系统.

硬编码

我可以通过连接传递函数来实现这一点tf1=tf([1 -1],[1 1]);

tf2=tf([1 2],[1 4 5]);

tf3=tf([1 2],[5 4 1]);

G=[tf1 0 0; 0 tf2 0; 0 0 tf3];

哪个工作正常,但(a)硬编码输入/输出的数量,(b)越多,输入和输出越多越可怕.

诊断功能

这个问题对于diag函数来说似乎是完美的,但似乎没有为’tf’类型定义diagG=diag([tf1, tf2, tf3])

??? Undefined function or method 'diag' for input arguments of type 'tf'.

手动矩阵操作

我也试过手动操作矩阵(不是我真的希望它能工作)G=zeros(3);

G(1,1)=tf1;

G(2,2)=tf2;

G(3,3)=tf3;

??? The following error occurred converting from tf to double:

Error using ==> double

Conversion to double from tf is not possible.

tf直接采用MIMO格式

tf还具有一种格式,其中所有分子和分母单独表示,并且直接创建MIMO系统.我试图以非硬编码格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值