3

Hello I am modeling a vehicle that has a seperately excited DC motor as the power plant utilizing the constant-torque and constant-power regions for traction. The acceleration is governed by the following equation $$ M \frac{dv}{dt} = F_t -(\beta_1+\beta_2v^{2}+\beta_3v) $$

velocity profile

The problem with my model is that the $\beta_1$ component, the rolling resistance, is a constant value and causes the velocity to go negative for the first 0.7 seconds when the model is executed . Any suggestion on how to fix this issue?

james
  • 43
  • 4
  • To complement BikerDude's answer, the terms with even powers of velocity (i.e. v^0 and v^2) could also be multiplied by the "sign function" (i.e. 1 or -1 or 0) of the velocity. – Pete W Mar 03 '21 at 20:15

2 Answers2

1

If this is the case, the equation either needs a domain readjustment(so, valid from t∈[0.7,∞]) or an equation redefinition.

Using a piecewise function would look like: $$ M \frac{dv}{dt} = F_t -(\beta_1+\beta_2v^{2}+\beta_3v), t∈[0.7,∞] $$ $$ M \frac{dv}{dt} = 0, t∈(0,0.7) $$

Friction, is just a reactionary force. For rolling resistance can be modelled as an example of a dynamic friction. Hence, until motion occurs, $$F_t = β_1$$ Then, you should get better looking profiles.

Another way to do this would be to have a criteria, where the reactionary $β_1$ is just as big as $F_t$.

Therefore, $$ M \frac{dv}{dt} = F_t -(\beta_1+\beta_2v^{2}+\beta_3v), t∈[0,∞] $$ Where $$ \beta_1 =F_t, F_t∈[0,\beta_{max}] $$ $$ \beta_1 =\beta_{max}, F_t∈[\beta_{max},∞] $$

Here, $\beta_{max} $ is your initial value of $\beta_1$

BikerDude
  • 136
  • 4
  • Thanks for your insight, the domain readjustment won't work in this situation since F_t is not constant, forgot to mention that. However, you've given me a possible solution whereby I will try to implement a conditional statement block that only allows forward motion if the F_t > B_1. – james Mar 03 '21 at 21:48
  • Awesome! My edit might be helpful with your mathematical model. The last equation is valid over all +ve time. – BikerDude Mar 03 '21 at 22:32
1

I solved the issue with a switch function block, it not the best solution but it works for my basic simulation. Thanks againfunction block

james
  • 43
  • 4