lsim and transfer fcn block in simulink output different results
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Raymond Wong
el 25 de En. de 2022
I simulate the same transfer function with lsim and transfer fcn block in simulink but I ended up with different results.
In Simulink, the block diagram is shown as follows, the input signal is ua = 400sin(2*pi*50*t), the sampling frequency is 10 kHz![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/873490/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/873490/image.png)
In matlab, the code is shown following, ua is the data from simulink and the same for ua.
numerator = [ 1 ];
denominator = [1 1];
sys = tf(numerator, denominator);
matlab_ia = lsim(sys, ua, t_simu);
Technically, they're exact the same with no differences, but when I got the error between them and drew them out, I get :
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/873495/image.png)
Although it's really small, it's not tolerable for my later application, which is used for PSO to find the transfer function.
Simulink transfer fcn block actually gave the closer results, but there's no PSO block in Simulink.
So I wondered why the lsim and transfer function generated different results and how I can use the lsim to get the same results as transfer function block or are there other alternative function in matlab.
There're similar questions but I didn't find those answering my questions.
0 comentarios
Respuesta aceptada
Paul
el 25 de En. de 2022
Editada: Paul
el 25 de En. de 2022
Simulink uses a continuous-time differential equation solver. The specific solver and solver parameters, like step size information, are in the model settings.
lsim() in the Control System Toolbox converts sys to a discrete time approximation assuming either a first- or zero-order-hold and then propagates the difference equations.
So it's not a surpise that the two results are not identical. The size of the difference between them will depend on the the block parameters entered for Ua, particularly the sample time, the Simulink solver and solver parameters, and the 'method' argument to lsim().
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre General Applications 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!