Why is "lsim" different than Simulink's "Linear Analysis Tool"
17 ビュー (過去 30 日間)
古いコメントを表示
Hi All,
I have a simple transfer function. I want to analyze its time response to a random input signal. When I use the "lsim" command (or ltiviewer), I can run a simulation. However, when I implement my transfer function in Simulink, and run the same simulation (random input) using the Linear Analysis tool, I get completely different results. Is there a fundamental difference between the two tools? It seems like Simulink and lsim/ltiview are treating my transfer function differently...
Thanks!
-Ted
0 件のコメント
採用された回答
Arkadiy Turevskiy
2014 年 3 月 20 日
編集済み: Arkadiy Turevskiy
2014 年 3 月 20 日
Yes, several suggestions/questions.
First of all, your workflow does not quite make sense. Frequency Response Estimation capability in the Linear Analysis tool is designed for computing frequency response of nonlinear Simulink models that cannot be linearized using exact linearization due to discontinuities such as PWM or triggered subsystems. It does not make sense to use it in your case - you can if you want to, but it is meaningless.
Let me explain why. What you have is a linear system - a transfer function. There is no need to linearize Simulink model that consists only of a transfer function - you already have this transfer function to start with! Also, there is no need to use frequency response estimation. What it does is that it injects a signal into the model, logs the output, and computes the FFT of system response from the input and output signals. Again, as you already have your transfer function, there is no need to use frequency response estimation.
In your case, it seems you are trying to simulate a transfer function output to a random signal. You already know how to do it in MATLAB. To do it in Simulink, you just run the simulation, you do not need to linearize the model or use frequency response estimation. Just double check that your Random number block generates the same signal as input signal you designed in MATLAB, replace the outport block with "To workspace" block, and run the simulation. The output of the simulation will match what you got in MATLAB (you'll need to change solver's step to be fixed step with the same sampling time you use in MATLAB code).
Now, if you really want to know why the time response you are getting in Frequency Response Estimation tool is different, read on.
1. First of all, when you use frequency response estimation, and generate an excitation signal, this excitation signal is added to the signal you already have in your Simulink model . In your case, this means that the input to your Simulink model, when you run frequency response estimation, will be the random signal you specify in frequency response estimation tool added to the output of Random Number block you have in your model. So what the model sees is a different input signal than what you have in your MATLAB code.
2. Even if you replace Random Number block with zero constant (so when you run frequency response estimation, model will only see the excitation signal you define in Frequency Response Estimation tool), (actually, a better way is to tell the tool to hold the output of this block constant, using BlocksToHoldConstant option ) you need to be careful with this random signal you specify in Frequency Response Tool. To get the same results as what you got with MATLAB code, that random signal from Frequency Response Estimation tool needs to match your input signal in MATLAB exactly. What you use in MATLAB is a random number, normal distribution with standard deviation of 1. The random signal in Frequency Response Estimation is a uniform random number spanning from 0 to Amplitude, so it will be a different signal than what you have in MATLAB, and therefore, you will get a different output.
Hope this helps.
その他の回答 (1 件)
Arkadiy Turevskiy
2014 年 3 月 19 日
Can you be more clear about what you are doing. When you say " run the same simulation (random input) using the Linear Analysis tool" - what are you doing exactly. You should not be getting different results for the same transfer function, but you need to show what you are doing step by step, preferably with images, if you want help with troubleshooting your issue.
2 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!