Home Online Manual
Top
Back: canonize
Forward: findTorsion
FastBack:
FastForward:
Up: control_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.11.2.12 iostruct

Procedure from library control.lib (see control_lib).

Usage:
iostruct( R ); R a module

Return:
list L with entries: string s, intvec v, module P and module Q

Purpose:
if R is the kernel-representation-matrix of some system, then we output a input-ouput representation Py=Qu of the system, the components that have been chosen as outputs(intvec v) and a comment s

Note:
the procedure uses Bareiss algorithm

Example:
 
LIB "control.lib";
//Example Antenna
ring r = (0, K1, K2, Te, Kp, Kc),(Dt, delta), (c,dp);
module RR;
RR =
[Dt, -K1, 0, 0, 0, 0, 0, 0, 0],
[0, Dt+K2/Te, 0, 0, 0, 0, -Kp/Te*delta, -Kc/Te*delta, -Kc/Te*delta],
[0, 0, Dt, -K1, 0, 0, 0, 0, 0],
[0, 0, 0, Dt+K2/Te, 0, 0, -Kc/Te*delta, -Kp/Te*delta, -Kc/Te*delta],
[0, 0, 0, 0, Dt, -K1, 0, 0, 0],
[0, 0, 0, 0, 0, Dt+K2/Te, -Kc/Te*delta, -Kc/Te*delta, -Kp/Te*delta];
module R = transpose(RR);
view(iostruct(R));
==> The following components have been chosen as outputs: 
==> 
==> 1,
==> 2,
==> 3,
==> 4,
==> 5,
==> 6 
==> 
==> Dt,(-K1)       ,0 ,0           ,0 ,0           ,
==> 0 ,Dt+(K2)/(Te),0 ,0           ,0 ,0           ,
==> 0 ,0           ,Dt,(-K1)       ,0 ,0           ,
==> 0 ,0           ,0 ,Dt+(K2)/(Te),0 ,0           ,
==> 0 ,0           ,0 ,0           ,Dt,(-K1)       ,
==> 0 ,0           ,0 ,0           ,0 ,Dt+(K2)/(Te)
==> 
==> 0               ,0               ,0               ,
==> (-Kp)/(Te)*delta,(-Kc)/(Te)*delta,(-Kc)/(Te)*delta,
==> 0               ,0               ,0               ,
==> (-Kc)/(Te)*delta,(-Kp)/(Te)*delta,(-Kc)/(Te)*delta,
==> 0               ,0               ,0               ,
==> (-Kc)/(Te)*delta,(-Kc)/(Te)*delta,(-Kp)/(Te)*delta
==>