I have the following differential equation.
$$\ddot{x} = \frac{q}{m}\cdot I^2 - k_s (x+l)$$
I want to linearize it around an (unknown) point $x_0$. I know I can calculate $I_0$ by inputting $x_0$ (and $\ddot{x}=0$) into my differential equation.
$$ 0=\frac{q}{m}\cdot I_0^2 - k_s(x_0+l) \Rightarrow I_0=\sqrt{\frac{k_s\cdot m}{q}(x_0+l)} $$
I then take the partial derivative.
$$\Delta \ddot{x} = \frac{2*q}{m} I_0 \Delta I -k_s \Delta x = 2\sqrt{\frac{k_sq}{m}(x_0+l)}\Delta I -k_s \Delta x $$ $$ \Rightarrow \Delta \ddot{x} +k_s \Delta x = 2\sqrt{\frac{k_sq}{m}(x_0+l)}\Delta I$$
I now have a differential equation describing my equation of motion in terms of differences around my working point. This working point is not set though, and changes depending on the x value my system currently has.
My initial approach to this problem was to use a sensor that reads my x value and then simply plug it into my control loop.
(For simplicity I've set $x=p_{is}$.)
However, this does not feel like it's the correct way to do things.
This is for $x_0=0.001\text{m}$.
How would I actually go about implementing this linearized transfer function into my loop? Are there even ways to let Simulink linearize my system directly, without me having to manually linearize around a working point?
q
,m
andI
are constant? In which case, no linearisation is needed. But yes, there are some linearisation tools within Simulink that would do the job for you, see Simulink Control Design - it requires the Control Systems Toolbox. $\endgroup$