具有代数约数的机械系统
这个质量-弹簧-阻尼系统包括一个固定顶杆,可防止第二个质量的运动.
dynamics = {Subscript[m, 1] Subscript[x, 1]''[t] == -Subscript[b, 1] Subscript[x, 1]'[t] - Subscript[k, 1] Subscript[x, 1][t] + Subscript[b, 2](Subscript[x, 2]'[t] - Subscript[x, 1]'[t]) + Subscript[k, 2](Subscript[x, 2][t] - Subscript[x, 1][t]) + u[t],
Subscript[m, 2] Subscript[x, 2]''[t] == -Subscript[b, 2](Subscript[x, 2]'[t] - Subscript[x, 1]'[t]) - Subscript[k, 1](Subscript[x, 2][t] - Subscript[x, 1][t]) + α μ[t]};
constraint = {0 == α (Subscript[x, 1][t] + Subscript[x, 2][t]) + (1 - α)μ[t]};pars = {Subscript[m, 1] -> 1, Subscript[m, 2] -> .5, Subscript[k, 1] -> 5, Subscript[k, 2] -> 2, Subscript[b, 1] -> .7, Subscript[b, 2] -> .3};得出 StateSpaceModel 表示:
msd = StateSpaceModel[Join[dynamics, constraint], {Subscript[x, 1][t], Subscript[x, 2][t], μ[t]}, {u[t]}, {Subscript[x, 1][t], Subscript[x, 2][t]}, t, DescriptorStateSpace -> True] /. pars用 OutputResponse 模拟当顶杆锁定和开放时的系统:
constrainedResponse = OutputResponse[msd /. α -> 1, {1}, {t, 0, 20}];
freeResponse = OutputResponse[msd /. α -> 0, {1}, {t, 0, 20}];Plot[constrainedResponse, {t, 0, 20}, PlotRange -> All]Plot[freeResponse, {t, 0, 20}, PlotRange -> All]