85 const mat Hp = { { 1.0, 1.0, 1.0, 1.0 }, { -1.0, 1.0, -1.0, 1.0 }, { -l, l, l, -l } };
89 return { vb(0), vb(1), vb(2) };
105 xdot(0) = u(0) * (
s + c) + u(1) * (-
s + c) + u(2) * (
s + c) + u(3) * (-
s + c);
106 xdot(1) = u(0) * (
s - c) + u(1) * (
s + c) + u(2) * (
s - c) + u(3) * (
s + c);
107 xdot(2) = -u(0) * l + u(1) * l + u(2) * l - u(3) * l;
118 mat
fdx(
const vec x,
const vec u)
const
120 mat
A(3, 3, arma::fill::zeros);
126 u(0) * (-
s + c) + u(1) * (-
s - c) + u(2) * (-
s + c) + u(3) * (-
s - c);
128 u(0) * (
s + c) + u(1) * (-
s + c) + u(2) * (
s + c) + u(3) * (-
s + c);
141 mat
fdu(
const vec x)
const
147 const mat B = { {
s + c, -
s + c,
s + c, -
s + c },
148 {
s - c,
s + c,
s - c,
s + c },
179 const auto xdot = u(0) * std::cos(x(2)) - u(1) * std::sin(x(2));
180 const auto ydot = u(0) * std::sin(x(2)) + u(1) * std::cos(x(2));
181 return { xdot, ydot, u(2) };
192 mat
fdx(
const vec x,
const vec u)
const
194 mat
A(3, 3, arma::fill::zeros);
195 A(0, 2) = -u(0) * std::sin(x(2)) - u(1) * std::cos(x(2));
196 A(1, 2) = u(0) * std::cos(x(2)) - u(1) * std::sin(x(2));
205 mat
fdu(
const vec x)
const
208 const mat B = { { std::cos(x(2)), -std::sin(x(2)), 0.0 },
209 { std::sin(x(2)), std::cos(x(2)), 0.0 },