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!