Finding the peak of a sinusoidal voltage using only Simulink Blocks (No Matlab Function Block)

조회 수: 14 (최근 30일)
Hi there!
I have a simulink model where I am measuring the line voltages. I need to find the peak of the line voltages over the first 10 cycles for example. So I will have a varaible named "peak_voltage" which should have a value of 0 when the simulation time did not reach 10 cycles, and a value of the peak line voltage afterwards.
I have achieved this using piece of code within a "Matlab Function Block" where I use a persistent variable that gets updated each cycle with the value of the current line voltage when it is on the positive slop of the line signal. But I need to achieve this by only using Simulink Blocks! Any ideas would be appreciated. Thanks

답변 (1개)

Sam Chak
Sam Chak 2024년 2월 24일
Isn't the MATLAB Function block part of the Simulink block families that grants you the greater potential to achieve what you want in a more convenient way? It is also possible to create a Custom Simulink block to strictly execute the tasks that you specify. You can refer to the following tutorial for detailed instructions:
  댓글 수: 3
Sam Chak
Sam Chak 2024년 2월 26일
No worries, @HASSAN ABDELGABIR. However, what specifically hinders you from enhancing your efficiency by utilizing the MATLAB Function and Custom Blocks? Have you experimented with the Max block?
HASSAN ABDELGABIR
HASSAN ABDELGABIR 2024년 2월 26일
Yes I was able to achieve it using Max block and if block in Simulink. The key was to use the Data Store Memory block to replicate the behavior of persistent variables.
Thank you

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Signal Generation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by