If else condition is not working properly in matlab function block
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
function [y1,y2]= fcn(u1,u2,u3,u4)
if u1 > 5
y1=u2;
else y1=u3;
end
if u1 < 5
y2=u3;
else y2=u2;
end
I implemented this function in MATLAB function but my output of MATLAB function block always comes as 5 it is not taking the input properely and it is also showing 5 when it is really less than 5 also,here iam giving this output to controlled current source.
12 comentarios
Sam Chak
el 29 de Sept. de 2023
Hi @Nandhini
I have attached the plots of the u1 and y1 signals (Scope 2 and Scope 3, respectively). The code in the MATLAB Function block works as expected. What is the desired signal for y1? It may be possible to construct the function mathematically.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1496442/image.png)
Blocks under the Masked system (Speed regulator PI controller):
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1496445/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1496448/image.png)
u1 signal:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1496451/image.png)
y1 signal:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1496454/image.png)
Respuestas (1)
Amir Azadeh Ranjbar
el 28 de Sept. de 2023
If you want me to provide better guidance, please tell me more about your goal for writing this function.
function [y1,y2]= fcn(u1,u2,u3,u4)
if u1>=5
y1 = u2 ;
else
y2 = u3 ;
end
end
4 comentarios
Ver también
Categorías
Más información sobre String en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!