(Matlab)功能-延迟输出

1视图(30天)
Stijn Helsen
Stijn Helsen 2021年8月18日
回答: Stijn Helsen2021年8月19日
我想知道如果它是正常的,(在我看来)使用“纯离散s函数”(Matlab - 2级)与变量样本,计算输出在更新之前,以便输出只有可见的下一个样品。
一个例子如下:
我想让自己的pwm输出功能,pwm信号作为输出,和“时候”作为输入。我没有问题。但它不做什么我想做的事。我只在切换点抽样(我发现逻辑)。并试图得到什么我想我看到了两个选择:
  1. 更新功能,并且输出在一个离散的状态,这个状态是用于输出函数。
  2. 我将切换到输出函数(也意味着我不需要状态,由于输出值可以切换使用。
都不要做我想做的事:
  1. 在第一种情况下,只是改变了在下一个示例的输出。这样做,除了有一个延迟使用输入(尽管DirectFeedTrhough是真的),并且似乎unlogical状态是不同的输出。
  2. 在第二种情况下,它是在索姆意义上更好,除了有效输出变化下一个示例中,当这下一个样本是取决于模型的其余部分。作为一个例子:如果“输出”在t = 0时,称为OutputPort值改变(我知道这可能是解决通过添加额外的采样点,但这并不是“感觉正确”。)后果之一是有效的频率和工作周期(与系统的其余部分使用)取决于采样系统的“休息”。
我的问题是:
是否可以改变在一个离散状态值直接影响到输出?
(我可以发送代码,但我目前的代码比我在这里解释的)。

答案(3)

乔纳斯
乔纳斯 2021年8月18日
生成PWM信号需要样品比只有开关频率快得多。你需要更高的样品时间能够切换PWM脉冲的上升和下降沿的责任比你想要的。
成像有开关4 khz的频率。当你有一个样本的400 khz,解算器只能申请你想要的工作周期的准确性达1%。因为样品时间比切换频率小100倍,你有100的可能性在一个周期内开关。
通常你会想要更高的样品时间,因为你需要在一个PWM周期精度超过1%。
1评论
乔纳斯
乔纳斯 2021年8月18日
编辑:乔纳斯 2021年8月18日
你提到你使用变量样本,上面我的文本是针对离散采样时间。
你确定样品时间是正确的不同匹配负载比吗?

登录置评。


Stijn Helsen
Stijn Helsen 2021年8月18日
是的,我很确定。Upate和输出功能s-functions被称为两次/期(一旦走高,一旦低)。
(在完成一些“更直接相关的工作”,我将试着让一个模型,代码和结果。)

Stijn Helsen
Stijn Helsen 2021年8月19日
我做了一些演示代码。
有不同的“选项”功能。
在输出函数,我有“bEarlyOut”选项,我不输出状态,但“下一个国家(或连接)”(在这种情况下,由于每一个作品称之为切换输出结果)。
在更新功能(第132行)我可以迫使输出端口已经在更新或不(仅仅通过评论出来)。在下面的数据显示的结果是(所有bEaryOut假——所以“正常方式”)。
底图表的数据可以看出,该功能只更新在“toggle-cases”。
在图3中,显示结果与“输出端口迫使”,在这种情况下,结果是好的(因为好固定抽样),除了一步延迟。没有“输出端口迫使”(图)的输出是错误的,导致错误的工作周期。
这是由于输出函数首先在每一个步伐。我可以使用它(使用“bEarlyOut”选项),但我不觉得这逻辑输出不能改变时更新。
下面你可以看到一个“日志”的s函数调用(只更新和输出):
0.00000输出(0 0 0)
0.00000更新(1 0 1)
0.00040输出(1 0 1)
0.00040更新(0 1 0)
0.00100输出(0 1 0)
0.00100更新(1 0 1)
0.00140输出(1 0 1)
0.00140更新(0 1 0)
0.00200输出(0 1 0)
0.00200更新(1 0 1)
0.00240输出(1 0 1)
0.00240更新(0 1 0)
0.00300输出(0 1 0)
0.00300更新(1 0 1)
0.00340输出(1 0 1)
0.00340更新(0 1 0)
0.00400输出(0 1 0)
0.00400更新(1 0 1)
0.00440输出(1 0 1)
0.00440更新(0 1 0)
0.00500输出(0 1 0)
0.00500更新(1 0 1)
0.00540输出(1 0 1)
0.00540更新(0 1 0)
0.00600输出(0 1 0)
0.00600更新(1 0 1)

类别

找到更多的在通用应用程序帮助中心文件交换

下载188bet金宝搏


释放

R2018b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!