You are on page 1of 108

Simulink

BLDC Motor Control Simulation


2

Contents
Simulink Basic

BLDC Motor Modeling

Inverter Modeling & Simulation

Control logic Modiling & Simulation


Simulink Basic
4

Simulink Simulation
Simulation tool.
(Dynamic characteristic analysis)
Library Block
Debugging
dSPACE NI LabView(SIT) External Program Co-simulation
5

Simulink
Command Window simulink .
Model Simulink .
6

Simulink

1
(1) Main Menu
6
5 (2) Workspace

(3) Current Directory

(4) Command History
2 3
(5) Command Window
4

(6) Simulink Icon
Simulink
7

Simulation Block
Block or System
Block Simulation System .
Block .
Block

Block

Source Block
Simulation

Sink Block
Simulation
8

Library Browser

. Commonly Used Blocks


Continuous
Discontinuities
Discrete
Logic and Bit Operations
Lookup Tables
Math Operation
Ports & Subsystems
Signal Routing
Sinks
Sources
User-Defined Functions
9

Block
Commonly Used Blocks

Continuous - Integrator
Discontinuities - Saturation
Discrete Discrete-Time Integrator, Memory, Unit Delay
logic and Bit Operations Compare To Zero, Relational Operator
lookup Tables Lookup Table Unit Delay
Math Operation Abs, Gain, Product, Rounding Function, Sign, Sum, sin
Ports & Subsystems Enabled Subsystem, Triggered Subsystem, In1,
Out1
Signal Routing Demux, From, Goto, Manual Switch, Mux
Sinks Display, Scope
Sources Constant, Ramp, Pulse Generator, Repeating Sequence, Sine
Wave, Step
User-Defined Functions Fcn, S-Function
10

Simulink

New Model : Simulink Background


11

Using Block Libraries

&

Line &
12

Using Block Libraries

Graph Grid
Limit Data .
13

Using Block Libraries

Simulation Configuration Parameters


: Simulation

, , Time-Step type, Solver Type,

Max Step size, Min Step size.,


14

Using Block Libraries


Save Simulink (ex). Ex1.mdl)

Simulation Start

Scope
15

Using Block Libraries

Simout : ,
.(Workspace )


16

Using Block Libraries

Simulation
Workspace
( Array Editor )
17

Using Block Libraries

Ctrl+
18

Using Block Libraries

Input port

Output port
19

Using Block Libraries


1
20

Label & Memo

Line
Line Label
(Line Label )

Label ,
,

Memo
21

Subsystem

, Create Subsystem
22

Subsystem

Subsystem
Create Subsystem

Enabled Subsystem
Enable Positive

Triggered Subsystem
Trigger

Enabled and Triggered Subsystem


Enable Positive
Trigger
BLDC
24

BLDCM


( )
( )
( , )


PWM ( )


d
va Raia ( Laaia Lbaib Lcaic ) ea
dt
d
vb Rbib ( Labia Lbbib Lcbic ) eb
dt
d
vc Rcic ( Lacia Lbcib Lccic ) ec
dt

Ra Rb Rc R ph
Laa Lbb Lcc Lph
Lab Lba Lca .... M

d d
va R phia ( L phia Mib Mic ) ea va R phia ( L ph M ) ia ea
dt dt
d
vb R phib ( Mia L phib Mic ) eb ia ib ic 0 d
vb R phib ( L ph M ) ib eb
dt dt
d d
vc R phic ( Mia Mib L phic ) ec vc R phic ( L ph M ) ic ec
dt dt

d
vab va vb vab 2 R phi1 2( L ph M ) i1 eab
dt
i1 ia ib d
vbc 2 R phi2 2( L ph M ) i2 ebc
dt
d
vca 2 R phi3 2( L ph M ) i3 eca
dt

1
2 R ph Rs d
vab Rsi1 Ls i1 eab
i1
Ls v
ab RS i1 eab dt
dt
2( Lph M ) Ls
1
v ebc dt
d
vbc Rs i2 Ls i2 ebc i2 bc RS i2
dt Ls
d
vca Rs i3 Ls i3 eca 1
dt i3
Ls v
ca RS i3 eca dt
27


Model BLDC_ElectricalModel.mdl

+-
28

+-
29

+--
30


31

+-

3
32

eab ea eb
1
ebc eb ec i1
Ls (vab Rsi1 eab )dt ia i1 i3
eca ec ea

vab va vb
vbc vb vc
vca vc va
33

Ctrl+A
Port
Create Subsystem
(Labeling Port)
34

Pout Ter EI eaia ebib ecic


eaia ebib ecic
Te
r
e K er
Te K t i K taia K tbib K tcic

d m
Te J m Bm TLoad K m
dt
d 2 m d m d 2 m
Jm B TLoad J m TLoad
dt 2 dt dt 2
35


Model BLDC_MechanicalModel.mdl

+++

Kt
36

+-
1/J

60/(2*pi)
37

Te Kti Ktaia Ktbib Ktcic

d 2 r
Te J 2 TLoad
dt
d 1
r r Te TLoad dt
dt J
r _ rpm r (60 / (2 ))

r r dt
38

Ctrl+A Port
Create Subsystem (Labeling Port)
39

Data

- m-file
40


Matlab Current Folder
New File Blank M-File
(File : BLDC_Parameters.m )
41


B_slope=60;
BLDC_Parameters.m B_max=0.1;
Blank M-File Code Ke=0.21476;
Kt=0.21486;

for i=1:360
if i<(floor(B_slope/2))
B(i)=(i)*B_max/(B_slope/2);
elseif i<=(180-floor(B_slope/2))
B(i)=B_max;
elseif i<=(180+floor(B_slope/2))
B(i)=(180-i)*B_max/(B_slope/2);
elseif i<=(360-floor(B_slope/2))
B(i)=-B_max;
else
B(i)=(i-360)*B_max/(B_slope/2);
end
end
42

For i=1:360
if i<=181
f(i)=mean([B(i:179+i)]);
else
f(i)=mean([B(i:360),B(1:(i-181))]);
end
end

for i=1:360
if i<=1
e(i)=Ke*(f(360)-f(i));
else
e(i)=Ke*(f(i-1)-f(i));
end
end
43

subplot(3,1,1); plot(B); F5 M-File


axis([1 360 -0.12 0.12]);
subplot(3,1,2); plot(f);
axis([1 360 -0.12 0.12]);
subplot(3,1,3); plot(e);
44


Model BLDC_BackEMFModel.mdl

++|(shift+\)
45

|(shift+\)+-
46


47

(Ctrl+A)
Create Subsystem , Port
48


49


50


51

Ctrl+A Port
Create Subsystem (Labeling Port)
52

BLDC
Model BLDC_MotorModel.mdl
53

BLDC

55

BLDCM


( )
( )
( , )


PWM ( )
56


57


58


59


60


Model BLDC_InverterModel.mdl

>=

Boolean
61

Subsystem

|+-
62

Sa: ((u[1]<150)*(u[1]>=30))-((u[1]<330)*(u[1]>=210))

Sb: ((u[1]<270)*(u[1]>=150))-((u[1]<90)*(u[1]>=0))-((u[1]<360)*(u[1]>=330))

Sc: -((u[1]<210)*(u[1]>=90))+((u[1]<360)*(u[1]>=270))+((u[1]<30)*(u[1]>=0))
63

Upper : >= Boolean


Lower : <= Boolean |++
64

|++
65

==

Boolean
66

Ctrl+A Port
Create Subsystem (Labeling Port)

Inverter Model
67

Voltage Source Simulation(Constant Speed)


Model BLDC_VoltageSource_Test.mdl
68

Voltage Source Simulation(Constant Speed)


69

Voltage Source Simulation(Constant Speed)


70

Voltage Source Simulation(Constant Speed)

[0 0.5*t_switching 1*t_switching]

[-Vdc/2 Vdc/2 -Vdc/2]


71

Voltage Source Simulation(Constant Speed)

Vdc=54;

Rs=1.5;

Ls=0.0061;

J=8.2614e-5;

Tl=0.662;

t_switching=0.0001;

i_res=0.01;
72

Voltage Source Simulation(Constant Speed)

Start Time : 0s
Stop Time : 1s
Fixed Step
Ode5(Dormand-Prince)
Fixed-Step size : 1e-5s
73

Voltage Source Simulation(Constant Speed)


Iabc(Phase Current)

Te(Torque)
74

Voltage Source Simulation


Model BLDC_VoltageSource_Op.mdl

Reference Voltage = 10V

Mechanical
Model

Load Torque = Tl
75

Voltage Source Simulation

Start Time : 0s
Stop Time : 1s
Fixed Step
Ode5(Dormand-Prince)
Fixed-Step size : 1e-5s
76

Voltage Source Simulation


Speed(RPM)
77

Voltage Source Simulation


Te(Torque)

Speed Saturation
78

Voltage Source Simulation


Iabc(Phase Current)

Speed Saturation
79

Voltage Source Simulation


Reference Voltage = Vdc/2=27V

0
7000
0
2.5
80

Voltage Source Simulation



82

BLDCM


( )
( )
( , )


PWM ( )
83

PI
84

Anti-Windup
Anti-Windup : Actuator Saturation(Integrator Wind-up)

(I) Limiter


85

Anti-Windup

Anti-Windup : Tracking Anti-Windup(Back Calculation)

Limiter(Saturation)

Anti-Windup Gain


86

Model BLDC_SpeedController.mdl

|+- |+- ++|

+|+

Imax
0
87

Simulation
Model BLDC_SC_Op.mdl

Subsystem
Reference Speed(RPM) = 600
88

Simulation

Imax=40;

Kp_sc=0.05;

Ki_sc=2;

Ka_sc=1/Kp_sc;
89

Simulation

Start Time : 0s
Stop Time : 0.5s
Fixed Step
Ode5(Dormand-Prince)
Fixed-Step size : 1e-5s
90

Simulation
Speed(RPM) Te(Torque)

Reference Speed(RPM) = 600

Reference Voltage Iabc(Phase Current)


91

Simulation
Speed(RPM) Te(Torque)

Reference Speed(RPM) = 6000

Reference Voltage Iabc(Phase Current)


92

Simulation
Speed(RPM) Te(Torque)

Reference Speed(RPM) = 7000

Reference Voltage Iabc(Phase Current)


93

Model BLDC_CurrentController.mdl

|+- |+- ++|

+|+

Vdc/2
-Vdc/2
94

Simulation
Model BLDC_CC_Op.mdl

Reference Current = 20A

20

Subsystem
95

Simulation

Kp_cc = 100;

Ki_cc = 100;

Ka_cc=1/Kp_cc;
96

Simulation

Start Time : 0s
Stop Time : 0.5s
Fixed Step
Ode5(Dormand-Prince)
Fixed-Step size : 1e-5s
97

Simulation
Speed(RPM) Te(Torque)

Reference Voltage Iabc(Phase Current)

Reference Current = 20A


98

Simulation
Reference Voltage

Iabc(Phase Current)
Iabc(Phase Current) @ Voltage Source, Constant Speed
99

Simulation
Model BLDC_SC_CC_Op.mdl

Reference Speed(RPM) = 600


600
100

Simulation

Start Time : 0s
Stop Time : 0.5s
Fixed Step
Ode5(Dormand-Prince)
Fixed-Step size : 1e-5s
101

Simulation
Speed(RPM) Te(Torque)

Reference Speed(RPM) = 600

Reference Voltage Iabc(Phase Current)


102

Simulation

Speed(RPM) Te(Torque)


Reference Speed(RPM) = 600

Speed(RPM) Te(Torque)


Reference Speed(RPM) = 600
103

Triggered System Discrete-Time Control


Model BLDC_DSpeedController.mdl
104

Triggered System Discrete-Time Control

Sample Time = -1
105

Triggered System Discrete-Time Control


Model BLDC_DCurrentController.mdl
106

Triggered System Discrete-Time Control

Trigger Type : Rising

Sample Time = -1
107

Triggered System Discrete-Time Control


Model BLDC_DSC_DCC_Op.mdl

Vref
108

Triggered System Discrete-Time Control

Period = 0.001s Period = 0.0001s


PW = 50% PW = 50%

You might also like