Professional Documents
Culture Documents
7.2. Obtención de Modelo Matemático
7.2. Obtención de Modelo Matemático
Clase_N12_Ejemplo
[A,B,C,D]=linmod('Clase_N13_Ejemplo')
Warning: Using a default value of 0.2 for maximum step size. The simulation step size
will be limited to be less than this value.
> In dlinmod at 176
In linmod at 54
A=
0 -10 -40
1 0 0
0 -1 -5
B=
10
0
1
C=
0 1 0
D=
[num,den]=ss2tf(A,B,C,D)
num =
den =
printsys(num,den)
num/den =
-6.2172e-015 s^2 + 10 s + 10
----------------------------
s^3 + 5 s^2 + 10 s + 10
help linmod
LINMOD Obtains linear models from systems of ord. diff. equations (ODEs).
[A,B,C,D]=LINMOD('SYS') obtains the state-space linear model of the
system of ordinary differential equations described in the
block diagram 'SYS' when the state variables and inputs are set
to the defaults specified in the block diagram.
Al pedir la ayuda del comando utilizado previamente para generar las matrices de
estado, se aprecia que este comando permite no tan solo obtener el modelo matricial,
sino que permitiría linealizar el modelo si este no fuera lineal. En el ejemplo realizado el
modelo era lineal, a continuación se analizara un caso en el que el modelo cargado en
Simulink no lo es.
7.3. Linealización con Simulink
Mdy2/dt2 = Mg – i2(t)/y(t)
Se desea obtener el modelo matemático linealizado, Para ello las ecuaciones antes
mencionadas se pueden representar con el siguiente diagrama en bloque.
Mdy(t)2/dt2
e(t) 1/(R+LS) i(t) ( )2 * -
/ +
Mg
y(t)
1/M 1/S2
Bloques In / Out, elementos necesarios para generar una comunicación con el espacio
de trabajo en el momento de obtener el modelo matemático. Ubicados en la librería
Source / Sinks .
R= 1 ohm
L= 0.01Hy
M= 1Kg
g=32.2 m/s2
A= -1/0.01
B= 1/0.01
C= 1
D= 0
[A,B,C,D]=linmod('Clase_N13_Ejemplo_N2')
Warning: Using a default value of 0.2 for maximum step size. The simulation step size
will be
equal to or less than this value. You can disable this diagnostic by setting 'Automatic
solver
parameter selection' diagnostic to 'none' in the Diagnostics page of the configuration
parameters dialog
> In dlinmod at 195
In linmod at 60
Warning: Division by zero in 'Clase_N13_Ejemplo_N2/Divide'
> In dlinmod at 231
In linmod at 60
A=
0 0 1
0 -100 0
NaN 0 0
B=
0
100
0
C=
1 0 0
D=
help NaN
NaN Not-a-Number.
NaN is the IEEE arithmetic representation for Not-a-Number.
A NaN is obtained as a result of mathematically undefined
operations like 0.0/0.0 and inf-inf.
Analizando esto nos damos cuenta que es a raíz de que no definimos el punto en donde
se debe linealizar el sistema, por este motivo el programa lo toma como cero. Al ser
cero, esto produce que halla una división por cero, lo que genera el NaN.
Para salvar este problema, definimos un vector con el punto alrededor del cual se
linealizara el sistema y lo ingresamos.
Y de las condiciones iniciales que nos dan (y(0)=0.5 ), determinamos el punto alrededor
del cual vamos a linealizar.
x1(0) = y(0) =x
x2(0) = sqrt(M*g*y(0))
x3(0) = dy(0)/dt
7-Defino el vector "x" con los valores alrededor de los cuales el sistema será linealizado
y el vector “u” de la fuerza de control.
[A,B,C,D]=linmod('Clase_N13_Ejemplo_N2',x,u)
Warning: Using a default value of 0.2 for maximum step size. The simulation step size
will
be equal to or less than this value. You can disable this diagnostic by setting 'Automatic
solver parameter selection' diagnostic to 'none' in the Diagnostics page of the
configuration parameters dialog
> In dlinmod at 195
In linmod at 60
A=
0 0 1.0000
0 -100.0000 0
64.4000 -16.0499 0
B=
0
100
0
C=
1 0 0
D=