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?

조회 수: 10 (최근 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 CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by