simulation discrete-time model
24 次查看(过去 30 天)
显示 更早的评论
I'm studying the linear model of a DC motor. In state-space form, the governing equations above can be expressed by choosing the rotational speed and electric current as the state variables.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/247228/image.jpeg)
So:
Ac = [-b/J k/J; -k/L -R/L];
Bc = [0; 1/L];
Cc = eye(2);
Dc = zeros(2,1);
I expressed all in discrete -time:
sys_TC = ss(Ac,Bc,Cc,Dc);
sys_TD = c2d(sys_TC,Ts);
[A,B,C,D] = ssdata(sys_TD);
Now I shuould simulate the model (TD). In this sense, I simulate the input signal with the function rand. How can I obtain the results of the output and collect them in a matrix?
0 个评论
采纳的回答
Star Strider
2019-11-7
To simulate your system with the appropriate input, use the lsim function. You will need to create a time vector as well as the input signal vector. (You have a single-input system, so this is straightforward. For multiple-input systems, the number of columns in the input signal must match the number of columns of the B matrix.)
2 个评论
Star Strider
2019-11-10
As always, my pleasure!
No, the output should be a matrix of N rows and two columns.
This code:
[u,t] = gensig('square',1,10,Ts);
y = lsim(sys_TD, u, t);
returns a (10001x2) output matrix in ‘y’ when I run it, as it should. If you are not using the gensig function, be sure to create ‘u’ and ‘t’ as column vectors.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time and Frequency Domain Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!