How can I set up that a Matlab function in Simulink should first finish calculating and then get the new input values?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello all,
I think that my Matlab function in Simulink Real Time somehow fails to calculate the output values first and gets new input values only afterwards. So it is overriding the output??? It uses fminsearch to calculate the values.
iter = 199;
fun2 = @(x)kU2kU0berechnung(x,u2,u3,din);
options = optimset('TolFun',1e-14,'TolX',1e-14,'MaxIter',iter);
y = fminsearch(fun2,x0,options);
function meankU2kU0 = kU2kU0berechnung(x,u2,u3,din)
u123 = [x(1)*exp(1i*x(2)/360*2*pi);u3;u2];
a = exp(1i*120/360*2*pi);
a2 = a^2;
T = [1 1 1; a2 a 1; a a2 1];
umg0 = T\u123;
meankU2kU0 = sqrt((abs((umg0(2)/umg0(1))*100)^2+((1-din)*abs((umg0(3)/umg0(1))*100))^2)/2);
end
uabs = y(1);
uphi = y(2);
I get the idea because I calculate the output values once with a real time measurement and a second time for control with the data set from the real time measurement start another calculation in Simulink (not real time). In the attachment you can see the results for uabs. The image with the yellow line jumping up and down is the real-time measurement and the image with the stable yellow line is the subsequent calculation.
You can see that the data jumps somehow.
Maybe someone can help me or had this problem before.
0 comentarios
Respuestas (1)
Saksham
el 22 de Ag. de 2023
Hi Yannic,
I understand that you want MATLAB function block to receive input only after it has processed the previously received input.
For this use case, “Rate Transition” block might be helpful. Below is the link to its documentation:
I hope the above shared resource will be helpful to you.
Sincerely,
Saksham
0 comentarios
Ver también
Categorías
Más información sobre Target Computer Setup 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!