m (Some fixes and more explanation.) |
m (→Data: Minor fixes) |
||
| Line 46: | Line 46: | ||
==Data== |
==Data== |
||
| − | The following Matlab code assembles the above described <math>A</math>, <math>B</math> and <math>C</math> matrix for a given number of modes <math>K</math>. |
+ | The following Matlab code assembles the above described <math>A</math>, <math>B</math> and <math>C</math> matrix for a given number of modes <math>K</math>, actuators (inputs) <math>M</math> and sensors (outputs) <math>Q</math>. |
<div class="thumbinner" style="width:540px;text-align:left;"> |
<div class="thumbinner" style="width:540px;text-align:left;"> |
||
| Line 54: | Line 54: | ||
rand('seed',1009); |
rand('seed',1009); |
||
xi = rand(1,K)*0.001; % Sample damping ratio |
xi = rand(1,K)*0.001; % Sample damping ratio |
||
| − | omega = rand(1,K)*100; % Sample natural frequencies |
+ | omega = rand(1,K)*100.0; % Sample natural frequencies |
A_k = cellfun(@(p) sparse([-2.0*p(1)*p(2),-p(2);p(2),0]), ... |
A_k = cellfun(@(p) sparse([-2.0*p(1)*p(2),-p(2);p(2),0]), ... |
||
| Line 67: | Line 67: | ||
</source> |
</source> |
||
</div> |
</div> |
||
| − | |||
==Reference== |
==Reference== |
||
Revision as of 09:12, 12 May 2017
Note: This page has not been verified by our editors.
Description
The flexible space structure benchmark[1] is a procedural modal model which represents structural dynamics with a selectable number actuators and sensors. This model is used for truss structures in space environments i.e. the COFS-1 (Control of Flexible Structures) mast flight experiment.
Model
In modal form the flexible space structure model for \(K\) modes, \(M\) actuators and \(Q\) sensors is of second order and given by:
\[\ddot{\nu}(t) = (2 \xi \circ \omega) \circ \dot{\nu}(t) + (\omega \circ \omega) \circ \nu = Bu(t)\]
\[y(t) = C_r\dot{\nu}(t) + C_d\nu(t)\]
with the parameters \(\xi \in \mathbb{R}_{>0}^K\) (damping ratio), \(\omega \in \mathbb{R}_{>0}^K\) (natural frequency) and using the Hadamard product \(\circ\). The first order representation follows for \(x(t) = (\dot{\nu}(t), \omega_1\nu_1, \dots, \omega_K\nu_K)\) by:
\[\dot{x}(t) = Ax(t) + Bu(t) \]
\[y(t) = Cx(t)\]
with the matrices:
\[A := \begin{pmatrix} A_1 & & \\ & \ddots & \\ & & A_K \end{pmatrix}, \; B := \begin{pmatrix} B_1 \\ \vdots \\ B_K \end{pmatrix}, \; C := \begin{pmatrix} C_1 & \dots & C_K \end{pmatrix}, \]
and their components:
\[A_k := \begin{pmatrix} -2\xi_k\omega_k & -\omega_k \\ \omega_k & 0 \end{pmatrix}, \; B_k := \begin{pmatrix} b_k \\ 0 \end{pmatrix}, \; C_k := \begin{pmatrix} c_{rk} & \frac{c_{dk}}{\omega_k} \end{pmatrix},\]
where \(b_k \in \mathbb{R}^{1 \times M}\) and \(c_{rk}, c_{dk} \in \mathbb{R}^{Q \times 1}\).
Benchmark Specifics
For this benchmark the system matrix is block diagonal and thus chosen to be sparse. The parameters \(\xi\) and math>\omega</math> are sampled from a uniform random distributions \(\mathcal{U}_{[0,\frac{1}{1000}]}^K\) and \(\mathcal{U}_{[0,100]}^K\) respectively. The components of the input matrix \(b_k\) are sampled form a uniform random distribution \(\mathcal{U}_{[0,1]}\), while the output matrix \(C\) is sampled from a uniform random distribution \(\mathcal{U}_{[0,10]}\) completely w.l.o.g, since if the components of \(C_d\) are random their scaling can be ignored.
Data
The following Matlab code assembles the above described \(A\), \(B\) and \(C\) matrix for a given number of modes \(K\), actuators (inputs) \(M\) and sensors (outputs) \(Q\).
function [A,B,C] = fss(K,M,Q)
rand('seed',1009);
xi = rand(1,K)*0.001; % Sample damping ratio
omega = rand(1,K)*100.0; % Sample natural frequencies
A_k = cellfun(@(p) sparse([-2.0*p(1)*p(2),-p(2);p(2),0]), ...
num2cell([xi;omega],1),'UniformOutput',0);
A = blkdiag(A_k{:});
B = kron(rand(K,M),[1;0]);
C = 10.0*rand(Q,2*K);
end
Reference
- ↑ W. Gawronski and T. Williams, "Model Reduction for Flexible Space Structures", Journal of Guidance 14(1): 68--76, 1991