# What is the state space model for a BLDC motor

I wanted to model a brushless DC motor so that I can add controllers(PID ) to correct the transient state behaviors. I started to model my BLDC and I found some model. Then I used specs from MAXON motors to verify my model by supplying my model with nominal voltage and looking at the no load speed. The problem is that the no load speed I found from my state space is not the same as the one on the data sheet. It led me to believe that my state space model is wrong. But I could not find out what is wrong. I scoured the internet for answers but still could not find a usable model. I need to find out where I am wrong so that I can correct it. I will explain how I modeled the motor.

TRIAL

The first is the BLDC schematic.it is a 3 phase motor so we are going to have to work with wye or delta connection.i started with wye connection of stators, and assumed it is balanced. There is an inductance of $$\L\$$ per phase and resistance of $$\r\$$ per phase. The figure shows how I converted wye to delta so that I can some how convert the 3 phase scheme to a single phase one.

Each line voltages are going to be triggered one after the other for electrical commutation. The idea is that even if this lines are commutated one after the other, each current values and voltage values should be the same except for phase changes, so I can take one line voltage circuit and work as if it was a brushed dc motor( this assumption might also be the source of error, if it is please correct me ). So the circuit for one line is:

Now from this model, I got my state space model to be: states

$$\begin{bmatrix}(\omega)\\(I)\end{bmatrix}$$

inputs $$\begin{bmatrix}((v)\\(Tl)\end{bmatrix}$$

$$\ Tl \$$ is the load on the torque , since I want to verify it at no load it is zero

outputs

Are the states themselves

state space

$$A=\begin{bmatrix}(\frac{-R}{L})&(\frac{-ke}{3L})\\(\frac{kt}{j})&(\frac{-bm}{j})\end{bmatrix}$$

$$B=\begin{bmatrix}(\frac{1}{3L})&(0)\\(0)&(\frac{-1}{J})\end{bmatrix}$$

$$C=\begin{bmatrix}(1)&(0)\\(0)&(1)\end{bmatrix}$$ $$D=0$$

The specs I used to verify the model is for maxon motor which has the following characterstics:

I plugged in my $$\k_{t}\$$ (torque constant), my $$\k_{e}\$$ (speed constant ) and finally my $$\bm\$$ (torque speed gradient). Using matlab the output plot at steady state is about 4170 but from my data sheet it should go to 16700 rpms and my current from state space is 2.5A but my data sheet says it should go to .723A. So what seems to be the problem with the model.

• In EE Stackexchange, you need to escape the '\$' character: \$x\$ reads $x$. In English, the nominative personal pronoun is capitalized: 'I', not 'i'. I have edited your text. – TimWescott Jun 3 '19 at 13:48

The first thing you need to do is to write out the differential equation. This is your real error -- your immediate error should become apparent in the solution. I'm going to do this just using $$\k_T\$$ and $$\R\$$, because the other constants you mention are derived from those, and I know my way works. Note that this means you need to remember the units conversion $$\\mathrm{\frac{N \cdot m}{A}}\$$ = $$\\mathrm{\frac{V \cdot s}{radian}}\$$. I feel it's a small price to pay.
On to the math. Acceleration is proportional to torque, per Newtonian mechanics: $$T = J\alpha$$ Torque is generated by the motor from current: $$T_a = k_T\, i$$ (Note the total torque $$\T = T_a + T_l\$$ where $$\T_a\$$ is the armature torque and $$\T_l\$$ is your load torque) The motor's back-EMF is generated by rotation: $$E_a = k_T\, \omega$$ (this is why I like using $$\k_T\$$ throughout). Finally, armature current is the effective voltage across the armature divided by resistance: $$i = \frac{V - E_a}{R}$$
I'm going to be bad and put that all together in one step. Feel free to review for errors: $$J\alpha = T_l + k_T \frac{V - k_t \omega}{R}$$ Now rearrange, and substitute in $$\\alpha = \dot \omega\$$: $$\dot \omega = \frac{T_l}{J} + k_T \frac{V}{J\,R} - \frac{k_T^2}{J\, R}\omega$$
All of your desired behaviors should drop out of this, with the exception of the no-load current, which is a consequence of a fraction of $$\T_l\$$ that is always present -- you need to infer this from the datasheet (and pay attention to the fact that almost none of it is nice viscous damping that goes as $$\B\omega\$$ -- some is coloumbic friction that goes as $$\\mathrm{sgn}(\omega)\$$, some is windage that goes as $$\\mathrm{sgn}(\omega)\omega^2\$$, the rest is outright odd).