背后的想法是什么数据处理为SCI通信巴克在DC / DC变换器的例子吗?

42视图(30天)
亲爱的安东尼,首先谢谢你很多你的模型数字直流/直流Buck变换器电压模式控制(VMC) https://goo。gl / VkdvuD我自己学会了很多模型。但是还有一件事我不明白。在你的模型中,对目标f28377S_DCDC_Buck。基金在子系统“PI_controller_ISR子系统串行发送。子系统内部,我一切都明白,只是不理解:合并块和后而迭代器子系统。你能提供给我这个想法,这些街区内部正在发生什么?一般的想法是什么?你做了一些数据处理,但是我真的不理解为什么。从你的视频关于这个模型,我知道仿真软件擅长处理大数据块在低采样时间,而目标处理器擅长处理的小数据块在高采样时间。万博1manbetx但我不知道怎么做。 Thanks in advance for your answer. Karol

接受的答案

安东尼
安东尼 2018年9月17日
嗨,卡罗尔,
这是正在发生的事情在串行发送子系统:
  • 我们的目标是将数据发送给主机速度快和序列插入分隔符在一个大型主机读取大量数据以缓慢的速度,而不是小块数据的速度快。
  • 在主机端,模型不可能阅读2 Uint16数据点在200 khz,但仿真软件可万博1manbetx以轻松阅读12000 x 2 Uint16数据点每隔60 ms (~ 17 hz)。周转时间使它容易仿真软件在第二种情况下,尽管它的数据量是一样的。万博1manbetx
  • 在目标模型(DCDC_Buck.slx), Serial_Send子系统的目的是快速发送数据(2 Uint16数据点在200 khz)并插入分隔符每12000支安打。
  • 为此,我使用一个计数器计数从0到11999。当计数器等于0,我插入的结束之前的序列(EE)和下一个序列的开始(SS)。“EE”(ASCII 0 x4545)和“党卫军”(ASCII 0 x5353)是任意的分隔符。只要确保他们符合您使用的主机上,你可以使用任何你想要的,我选择S E开始和结束,和我使用2为每个匹配的Uint16格式字符分隔符。
  • 当计数器等于0我需要发4 Uint16数据点。分隔符+ 2信号数据点。
  • 当计数器是不同于0时,我只需要发送2信号数据点。
  • 柜台提要一个“如果”条件上面的2例。合并模块被用来结合成一个2的输出条件。合并块将子系统的输出,是当时活跃的一步。
  • 我可以只使用一个串行发送块,在开始的情况下我需要发4 Uint16数据点当我需要发送2在其他情况下。为此我使用”,而迭代器子系统”。相当于一个“时”循环在c .我将循环4次在启动的情况下发送4 Uint16数据点和在其他情况下发送信号数据的两倍。
  • Serial_Send子系统是不同的宽度可伸缩。注意波特率如果改变信号的宽度。串行通信通常发送10位/数据字节(一个起始位和一个停止位+ 8位的数据)。在200 khz, 2 uint16数据点代表2 x2x10x200000 = 8 mbps的需要,忽视了分隔符。目标上的波特率设置为12.5 mbps应该容纳8 mbps。增加到3 uint16信号仍应发挥作用,因为它将把波特率略高于12 mbps,但这是非常接近极限。4信号将太多,不会在需要工作16 + Mbps。
我希望它可以帮助,
安东尼
3评论
卡罗尔Kyslan
卡罗尔Kyslan 2018年9月17日
肯定有帮助。现在我理解的局限性主机电脑将能够克服的缓冲(和/或)通过使用你提供的快速算法。
无论如何,我还有一个问题。
通过使用主机电脑和主机块(SCI接收、科学传播科学设置)在正常模式下,我能配置,达到通信限制时,波特率和收到的数量变量。一切按预期工作。虽然缓慢,但是足够了。但我不理解的行为范围。
我想做的是显示来自SCI接收数据。我创建的目标(f28069)正弦波形(正弦波、示例基于10 Hz)改变其输出每0.001 s。我发送给主机PC每0.001 s,在那里我接受它与SCI在0.1 s。显示它,我想使用范围块(默认设置)。问题来了:如果我仿真停止时间设置为“正”,这恰恰意味着什么仿真软件窗口的底部显示的时间(T = xxx)。这一次是比真正的时间,但它代表什么,以及它是如何连接到该算法运行在我的目标吗?万博1manbetx

登录置评。

更多的答案(3)

卡罗尔Kyslan
卡罗尔Kyslan 2018年12月9日
亲爱的安东尼。
我花了一段时间,但我有实现它,它就像一个魅力!我修改它慢的采样率(~ 10 kHz),但其原理保持不变。我觉得非常有用的是,利用这个原理,不需要使用外部模式和你有完全控制每个算法步骤。非常感谢支持!万博1manbetx
卡罗尔

Burak Caykenari
Burak Caykenari 2020年7月15日
嗨,安东尼和卡罗尔,
我明白了几乎所有你提供的信息,除了当计数器是不同于0时,我只需要发送2信号数据点。”。我看了相关的视频但是我不理解这个句子。计数器计数12.000。然后它到达这个点数据将发送。因此实现4次循环。(2数据,2分隔符(SS, EE))
其他条件没有任何头(SS)和《终结者》(EE)的信息,而不是你发送00。因此迭代循环数是2(2数据值)。因为这个原因主机无法理解的信息(因为没有任何终结者,头字符)和数据将不会接收到主机。不是吗?
如果这是真的,为什么你发送2数据在这种情况下吗?因为数据将不会接收到主机由于没有头和终结者信息吗?你能解释一下为什么2数据信息发送在这种情况下?它有意义吗?
非常感谢。
Burak
3评论
R.Y.SH
R.Y.SH 2021年5月20日
嗨,你的第一个问题你得到的答案(C2000_Host_read_12M,电压乘以16383/6.0909需求;16383年我获得乘以P增幅。我将大大appreciatre如果你能解释为什么乘法。)

登录置评。


哈桑Abouobaida
哈桑Abouobaida 2020年8月24日
嗨,安东尼,
非常感谢安东尼先生为你的相关解释的采样和发送数据通过串行通讯端口,它是非常有趣的你刚才解释道。但是我有几个问题,我不能理解
——Launchpad F28379D连接到模拟输入ADCIN_A4包含真正的信号(traingular)代表了当前信号通过感应你首选的传输模拟输入的平均或过滤当前可用ADCIN_C5 ! !
信号接收的暴露方法(发送数据包12000 x 2)允许传输信号,但收到形状扭曲,信号已经失去了它的三角形,
——实时时间显示不符合范围! !
——为什么真正的时间不是用来“实时”操作和数据登录直接不经过串行通讯端口范围! !
非常感谢你的贡献在此讨论。

社区

更多的答案电力电子控制

类别

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

社区寻宝

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

开始狩猎!