Matlab中simulink的问题 一个输入怎么多个输出 我做的是电机的仿真 具体问题如下图
方法和详细的操作步骤如下:
1、第一步,在Simulink中建立以下模型,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,将调制波设置为常数0.5,并且载波的设置参数和相应的载波信道形状如下,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,执行运行,PWM脉冲波形如下图所示,占空比为25%,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,保持载波不变,并调整内部调制波。
在此,将调制波Constant设为0,脉冲占空比为50%,见下图,转到下面的步骤。
5、第五步,执行完上面的操作之后,保持调制波不变,修改载波参数,如下图所示,此时脉冲占空比为50%,见下图。这样,就解决了这个问题了。
你用的是Demux模块,错误的原因是输入和输出信号的维数不匹配。
Demux模块的基本作用是把一个输入信号给展开成多个输出信号,有两种工作模式,即向量模式和总线选择(Bus selection)模式,取决于你是否选中了Bus selection mode参数(注意:MathWorks公司不鼓励使用Bus selection模式来展开总线信号)。猜测你很可能是按照默认情况下使用向量模式,所以下面的讨论以向量模式为前提。
Demux模块的参数Number of outputs可以是标量或向量,如果是标量,则指定了输出的个数;如果是向量,则向量的元素个数对应输出个数。关于该参数的详细规定可以用doc demux查看相关文档。
可能导致出错的主要有以下两种情况(其他条件下,Simulink会采取一种比较合理的方式来理解你的输入参数):
如果Number of outputs为标量,该标量的值大于输入向量的元素个数;
如果Number of outputs为向量,向量各元素均为正且求和与输入向量的元素个数不等。
请核对一下你的Demux模块参数是怎样设置的,以及输入信号的维数,二者是否匹配?
输入是一维的 怎么解决呢
你所说“输入是一维的”是什么概念?是一维的向量,还是说只有一个元素的标量?
如果是向量,请参考前面的回答,核实向量元素个数与输出是否匹配;
如果是标量,Dmux的作用就是把向量给拆分成几个小的向量(或标量),请问你把只有一个元素的标量怎样再进行拆分?