How can I get system Matrix A,B and C for my state space system of Spring-Mass damper system of n blocks arranged in uniform way?

7 ビュー (過去 30 日間)
I am trying to generate equations of motion for Spring mass (damper) system consisting of N blocks. I want to write such a function that automatically creates equations of motion(that fills these matrices A,B,C) just by passing a value of number of masses in a function input arguement. This is what I want ideally. I know the pattern for equation of motion. My system matrix A is something like
[ -2k k 0 0... 0(n);
k -3k k 0.... 0(n);
0 k -3k k 0... 0(n);
0 0 k -3k k 0 .... 0(n);
.. 0(n);
.. 0(n);
0 0............. k -2k ]
where k is stiffness of the spring. This matrix has some kind of uniform pattern as you can see. How can I write a function to this?
  3 件のコメント
Sandeep Parameshwara
Sandeep Parameshwara 2019 年 12 月 1 日
編集済み: Sandeep Parameshwara 2019 年 12 月 1 日
With n as my function input argument, what i need is n by n matrix as output. So 0(n) just tells that its last zero in n'th column. Sorry for the confusion. Its just a zero. I hope its clear now. So I am looking to generate n by n matrix with above pattern.
Sandeep Parameshwara
Sandeep Parameshwara 2019 年 12 月 1 日
matrix.PNG
Here's a sample matrix to avoid any confusion with my question. Suppose I want to write a function to this pattern(similar to my question above) how do I write a general function?

サインインしてコメントする。

採用された回答

Dhananjay Kumar
Dhananjay Kumar 2019 年 12 月 4 日
I think this should be very simple (Writing the generalized matrix in the image). You just need to know array indexing and for loop in MATLAB.
Take as input, a k vector, and a constant n.
Create a nxn zeros-only-matrix A with the help of zeros function.
For n>=3, loop through i= 2 to n-1, and update the matrix values according to the values in the image (you will need to write just 3 assgnment statements inside the for loop for the three values). For i=1 and i=n update the matrix values outside the loop (total 4 assignment statement).
For n<3, you can update the values in the matrix without loop.
Please first try yourself and then post your doubts here.
  3 件のコメント

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by