Professional Documents
Culture Documents
Electrical Drives
MEP 1422
2004/2005-02
Module 1.
Introduction to drives:
Elements in electrical drives, overview of DC and AC drives.
Torque equations,
Components of load torque, torque characteristics. Four-quadrant
operation
Notes on Introduction to Electromechanical Energy Conversion
Module 2
Module 3
DC motor drives
DC drives in power point format, in .pdf
Construction, modeling and transfer function, Converters for DC
drives quadrant of operations.
MATLABbased controller design method here
Linear analysis in Simulink
Large signal simulation using SIMULINK here
Electrical Drives
Module 4.
&
'
(
"
)
*
*
!
&
+
&
#
$
)
)
*
$
#
.
#
#
&
&
&
!
#
0
#
1
&
2
%
0
0
.
)
/ 0
#
#
#
(
0
0
& '
0
$
0
% 2
&
& '
0
3
4567
&
#
$
#
#
4587
2
$ & %%
#
#
$* %
$/: %
#
)
0
#
0
;
#
0
0
0
0
0
#$
#$
& '
*
(
1
J
*
Te = Tl +
. <'
d (J m )
dt
=7$
%
Te = Tl + J
* =
* =
<=
=
)
,
)
$> %
$> %
$
?%
d (J m )
dt
d m
dt
'%
.
' = 7 * = *
@
.
"
#$ +
$% /
*/
0
*/
*" "
*
* &
.
$* = -%
0
*
*
*
*
*/
$% 2
*/
*2
*2
*2
= C?
*2
*"
$ %*
*,
*,
.
* = *, + - + * + C?
2
C?
* =<
#$
+ *, + -
% $ .#$ !
*
'
T
*
$
% *
*
. .. ...
."
,
F
-
.
*
= * %
F
*
*
!
*
..
G
*
*
*
F
*
...
*
*
F
*
."
*
*
*
*
The characteristic of the flux linkage and current (-i) of a system shown in
Fig 1 is determined by the B-H characteristic of the core and the length of
the air-gap. With small air-gap length, g, the -i characteristic is dominated
by the B-H characteristic of the core which has a non-linear characteristic
due to the core magnetic saturation. With large g, however, the linear
magnetic characteristic of the air-gap will dominate. Thus for large air-gap
system the -i curve of the system displays a linear characteristic. If a
linear system is assumed, all of the mmf drops appear across the air-gap. In
other words, it is assumed that the reluctance of the core is negligibly small
compared to that of the air-gaps reluctance. This assumption is based on the
fact that the magnetic permeability of the core is much larger than the airgap permeability. The -i curves for different air-gap values are therefore
linear.
Fig. 1
non-linear system
Fig. 2
linear system
(1)
The differential relation between the 3 forms of energy exists in the system
can be written as:
dWf = i d
(3)
(2)
If the position of the moving part is fixed (air-gap length is fixed, thus dWm
= 0) and the current in the coil is increased from 0 to ix, the field energy
will increase and is given by:
Substituting e = d/dt,
Wf =
id
co-energy
Fig. 3
(4)
If the flux linkage increased from 0 to x, the stored energy can be written as:
energy
ix
di
ix
(5)
The co-energy, which is used later to calculate the force, in this particular
example is defined as:
W'f =
It should be noted that for a linear system, Wf = Wf
(6)
If the moving part is allow to move slowly, from x = x1 to x = x2, such that
the air-gap is reduced, the rate of change of flux linkage will be very small
during this movement and hence the current can be assumed to be constant.
Fig. 4
id
x2
The mechanical force associated with this movement can be obtained if the
change in mechanical energy is known. Thus,
dWm = dWe - dWf
During the motion, dWe = e.i dt = i d. Hence We =
x1
The change in the stored field energy can be obtained by calculating the
difference in stored energy between the two positions.
(7)
It can be shown graphically that Wm is given by the shaded area of Fig.4 which
essentially is the increase in co-energy. Thus:
dWm = dWf
Wf'(i, x)
x
i = cons tan t
fm =
If the movement of the moving part is very fast (i.e. for the same
displacement but for a very short time), the change in flux linkage can be
assumed negligible. However, the rate of change of the flux linkage with time
is finite and hence causes the current to decrease during this movement. It
can be graphically shown that the mechanical energy is given by the shaded
Wf(i, x)
x
= cons tan t
(8)
area of Fig 5, which is a reduction in field energy. Thus the mechanical force
is given by:
fm =
Fig. 5
If the differential movement is small, the shaded area of Fig 4 and Fig 5 is
the same. Hence the force calculated using equation (7) and (8) will be the
same.
Linear system
di =
Wf'(i, x)
1 2 dL(x)
=
i
x
dx
2
i = cons tan t
= L(x)i
Wf' =
fm =
1 2
i L(x)
2
(11)
(10)
(9)
For linear system, the flux linkage is proportional to the current, where the
constant of proportionality is the inductance of the coil. The inductance
however depends on the position, x. Thus,
Rotating machines
Fig 6 shows a general rotating machine with salient stator and salient rotor.
Both stator and rotor are exited (doublyfed). We are interested in obtaining
the electromagnetic torque expression of the system. We can do this by
obtaining the expression for the coenergy (or energy) and differentiate it
with respect to x for constant current (or constant flux).
dWf
ds/dt
and
er
Fig. 6
=dr/dt,
(14)
(13)
With no rotation (rotor not moving), the stored field energy can be calculated
as:
= esis dt + erir dt
(12)
Substituting
es
dWf = is ds + ir dr
The flux linkage of the stator winding can be expressed in terms of stator
self inductance and mutual inductance:
s = Lssis + Lsrir
(18)
(17)
(16)
(15)
The first term of (14) is the flux linkage of the stator winding caused by the
stator current whereas the second term is caused by the rotor current.
Similarly, the flux linkage of the rotor winding can be expressed as,
r = Lrrir + Lsris
Substituting (14) and (15) into (13),
dWf = Lssisdis + Lrrirdir + Lsr d(isir)
For a linear system, Wf = Wf. It can be shown that for rotational systems,
=
dLsr
dLrr
1 2 dLss
1
1
+ ir2
+ isir
is
2
d
2
d
2
d
T =
ii)
i)
Stator - salient
Rotor non-salient
Stator self inductance does not
depend on rotor position
Rotor self inductance does not
depend on rotor position
Stator - salient
Rotor salient
Stator self inductance depends on
rotor position
Rotor self inductance depends on
rotor position
Stator - non-salient
Rotor salient
Stator self inductance depends on
rotor position
Rotor self inductance does not
depend on rotor position
-
Stator - salient
Rotor non-salient
Stator self inductance does not
depend on rotor position
Rotor self inductance depends on
rotor position
-
CONTROLLED RECTIFIER
We have seen in previous course (undergraduate course) that a relation between the
average voltage and the firing angle (or delay angle) of a single-phase controlled
rectifier is given by:
=
where is the delay angle, Vm is the peak input voltage and Va is the average
voltage. Note that this relation is only valid for continuous current mode. It
describes the average behavior of the rectifier over a period of the output voltage.
The dynamic characteristic of the controlled rectifier is however very nonlinear
which can be described by nonlinear differential equations. In order to simplify the
designed of the controller containing controlledrectifier circuit, an approximation
using the average value is normally used. This approximation is however valid
provided that the bandwidth of the control loop is maintained well below half of the
maximum time for the average voltage to change. For instance, if a 3-phase system,
50Hz system is used as the input to the full-wave controlled rectifier, then, the
time taken for the average voltage to change varies between 0 to 3.33 ms ((1/50)/6).
The average time of 3.33ms/2 = 1.67 ms is taken. If this delay is not to be used in
the model, the bandwidth of the drive must be made much smaller than 600 Hz.
The SCRs are normally triggered based on the control signal generated, for example,
by a current controller. Depending on the firing circuit used, a linear or a non
linear relation between vc and Va can be obtained.
Introduction
Modeling is a simplified representation of a physical system. In electrical
engineering, physical systems are normally modeled using mathematical equations.
The complexity of the developed model of power electronic converters will depend on
the applications of the model. For instance, a model for a switching device used to
analyze its switching characteristic or switching losses is different from a model
develop used to study the fundamental behavior of a converter containing that
particular switching device.
Here we will look on how switch-mode converters used in DC drives are modeled. The
application of our model is in the designing of linear controllers for drive systems
using linear control system theory. We therefore need to obtain the linear models of
the converters, i.e. we need to establish a linear relation between the control
signal and the average output voltage.
va
+
Va
Four-quadrant
Two-quadrant
Two typical switch-mode converters used in DC drives are the 2-quadrant and 4quadrant converters shown below. We will assume that the converters obtained the
switching signals from a comparison between control signal vc and a triangular
waveforms.
Two-quadrant converter
As in all other converters, the status of the upper and lower switches in a leg, must
always complement, i.e. if the upper switch is on, the lower switch must be off or
vice versa- thus only one control signal is required to control a leg of a twoquadrant converter.
If the upper switch is ON, the output voltage, vo equals Vdc and if the lower switch
is ON vo = 0. The instantaneous output voltage will swing between Vdc and 0, however
its average value depends on how long the switch upper (or lower) switch is ON.
We will assume the control signals for the switches are obtained as a result of
comparison between the control signal and a triangular
q=
0
1
when vc < vtri, lower switch ON
Vdc dt = dVdc
dTs
Where d = ton/T
(1)
(2)
1
Va =
T
q dt
t + Ttri
(3)
d is in fact an average value of q over a cycle and therefore have a range of between
0 and 1, thus,
1
d=
Ttri
If the triangular frequency is high and therefore is much larger than the control
signal, d can be assumed continuous. However when selecting the bandwidth of the
closed-loop system, the discrete values of d must be taken into account, i.e. the
bandwidth must be limited to one or two order lower than the triangular frequency.
vc
2 Vtri , p
d = 0.5 +
Vdc
vc
2 Vtri , p
The relation between vc and Va can be obtained by substituting (4) into (2),
Va = 0.5Vdc +
Vdc
(v c + ~v c )
2Vtri , p
(4)
(5)
(6)
If we want to include the converter into our closed-loop model of a DC drive system,
we need to obtain the small signal transfer function between vc and Va. This is done
by introducing small signal perturbation in Va and vc.
(Va + ~v a ) = 0.5Vdc +
DC
~v = Vdc ~
vc
a
2 Vtri , p
Va = 0.5Vdc +
Vdc
vc
2 Vtri , p
AC
Vdc
2 Vtri , p
"
#$
By taking Laplace transform of equation (8), the small signal transfer function
between vc and VA can be obtained.
#$
va
'
'
&
(7)
(8)
Four-quadrant converter
The model developed for the two-quadrant converter can be used as a building block in
developing the model for the four-quadrant converter. As illustrated in the figure
below, the 4-quadrant converter is composed of two legs, with each leg similar to
that of the 2-quadrant converter. We will consider two switching schemes normally
employed: (1) Bipolar switching scheme (2) unipolar switching scheme.
'
'
Therefore the output voltage va can swing between Vdc and Vdc, Vdc and 0 or 0 and Vdc,
which is determined by the switching scheme chosen:
"
Bipolar switching
Leg A and Leg B obtained the switching signals from the same control signal. This
implies that switching of Leg A and Leg B are always complements.
&
In a forward breaking mode where the average voltage Va is positive and smaller than
the back emf of the armature, current will flow through D1 and D2 when va = Vdc and
will flow through Q3 and Q4 when va = -Vdc
Using the comparison between the control signal and triangular waveform as shown in
Figure 7, the resultant q and q is as below:
+ ,
From previous analysis, the average voltage for Leg A and Leg B is given by:
VAO = dA(Vdc)
(9)
(10)
d A = 0 .5 +
vc
2 Vtri , p
For Leg A
(11)
d B = 0.5
(14)
(12)
vc
2 Vtri , p
For Leg B
Vdc
vc
Vtri , p
Vdc
v c (s )
Vtri , p
(15)
By taking the Laplace transform of the ac components in (14), the transfer function
between the vAB(s) and vc(s) is obtained:
v AB (s ) =
Unipolar switching
#$
Vdc
Vtri , p
vc
2 Vtri , p
#$
(16)
The switching signals for Leg B is obtained from the inverse of control signal for
Leg A. This is illustrated in Figure 10. According to our previous analysis, the
continuous duty ratio for Leg A, dA, is given by:
d A = 0 .5 +
vc
2 Vtri , p
Vdc
vc
Vtri ,p
(18)
(17)
Since Leg B uses the inverse control signal , accordingly the continuous duty ratio
for Leg B is given by:
d B = 0 .5
!.
The transfer function obtained for unipolar switching scheme is therefore similar to
the bipolar switching scheme.
CURRENT-CONTROLLED CONVERTER
0
2
0
2
Figure 1
a)
b)
Implementing cascade control structure requires the torque and hence the current to
be controlled. Good current controlled schemes should produce low current ripple,
good tracking capability with zero steady state error, constant switching frequency
regardless of operating conditions, and fast dynamic response. There are two well
known methods normally used to control the current,
i)
ii)
56
The reference current is compared with the actual current and the error is fed to the
PI controller. The output of the PI controller is compared with the triangular
waveform to determine the duty ratio of the switches either to increase or reduce
the current. This method resulted in the inverter switches at fixed frequency
regardless of operating conditions. However the bandwidth of the current loop is
limited by the triangular waveform. The bandwidth of the closedloop system is
normally set to at least an order lower than the triangular frequency.
Figure 2
For three-phase induction motor with isolated neutral, the 3-phase currents are not
completely independent i.e. only two phases are independent, the third phase
current can be constructed from the other two phases. In other words, only two
controllers are required. This problem can be eliminated if the control is performed
in d-q axis whereby only two controllers are required. Two variations have been
proposed for this technique: stationary reference frame and synchronous reference
frame. Tracking problem will present if the current control is performed in
stationary reference frame. This will results in the actual current waveform that
will always lag the reference current. The tracking problem can be avoided if the
56
56
9:
56
56
! .
! .
.2
758 1
76
758 1
76
. !
;4
7 1
7 1
.2
61
61
synchronous frame is used, however extra work is required to transform the current
from the stationary to the synchronous frames and vice versa. In addition, explicit
knowledge of synchronous frequency is required to perform these transformations. The
reference voltage can be implemented using the well-known modulation techniques such
as Sinusoidal Pulse Width Modulation (SPWM) or Space Vector Modulation (SVM).
9:
Hysteresis control
The reference current is compared with the actual torque using hysteresis comparator.
The output of the hystresis comparator will determine whether the current need to be
increased or decreased. For instance, when the current touches the upper band,
Hysteresisbased currentcontrolled
current need to be reduced and this is accomplished by turning on the lower switch of
that particular leg. This is illustrated in Figure 5.
Figure 5
Hysteresis based controlled has large bandwidth. However, the switching frequency
varies with operating conditions and control signal. Thus the maximum switching
capability of the switching devices must be based on the worstcase condition. If the
simulation does not require detail information regarding the ripple, hysteresis-based
control can be modeled by a simple large DC gain due to its large bandwidth. The nonlinear behavior of the hystersis-based current control can be investigated using
large signal simulation.
As with the fixed frequency control, each phase current not only depend on the
corresponding phase voltage, but also on other phase voltages. In other words, there
is interferences between phases.
The behavior of the hysteresis current control can be described using the complex
plane switching diagram, as shown in Figure 6. The phase components of the current
error vector i (which is the difference between reference current vector and the
actual current vector) can be obtained by resolving it to the respective phase axis.
If the current error of a phase touches the hysteresis band of that particular phase,
it should be switched to the other direction by toggling the switch of that
particular phase. Therefore, ideally, the current error vector should be confined
within the hexagonal defined by the hysteresis bands. However, due to the
interactions between phases, the current error may go outside the hysteresis band. As
a result, current error may become as large as twice the hysteresis band (Figure 7)
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.2
&
-0.15
-0.1
-0.05
0.05
0.1
0.15
0.2
<
( :
* 7
=
.
0 <0
References:
N. Mohan, Power Electronics: Converters, applications and design John Wiley and
Sons, 1995.
N. Mohan, Electric Drives an integrative approach MNPERE, 2000.
W. Leonhard, Control of electrical drives, Springer-Verlag, 1984.
J. M. D. Murphy and F.G. Turnbull, Power electronic control of AC motor,
Pergamon press, 1988.
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
Model {
Name
"rl_2q_average"
Version
5.0
SaveDefaultBlockParams on
SampleTimeColors
off
LibraryLinkDisplay
"none"
WideLines
off
ShowLineDimensions
off
ShowPortDataTypes
off
ShowLoopsOnError
on
IgnoreBidirectionalLines off
ShowStorageClass
off
ExecutionOrder
off
RecordCoverage
off
CovPath
"/"
CovSaveName
"covdata"
CovMetricSettings
"dw"
CovNameIncrementing
off
CovHtmlReporting
on
covSaveCumulativeToWorkspaceVar on
CovSaveSingleToWorkspaceVar on
CovCumulativeVarName
"covCumulativeData"
CovCumulativeReport
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
MinMaxOverflowArchiveMode "Overwrite"
BlockNameDataTip
off
BlockParametersDataTip off
BlockDescriptionStringDataTip off
ToolBar
on
StatusBar
on
BrowserShowLibraryLinks off
BrowserLookUnderMasks
off
Created
"Thu Sep 11 20:51:10 2003"
UpdateHistory
"UpdateHistoryNever"
ModifiedByFormat
"%<Auto>"
LastModifiedBy
"Nik Rumzi"
ModifiedDateFormat
"%<Auto>"
LastModifiedDate
"Mon Jul 19 11:38:36 2004"
ModelVersionFormat
"1.%<AutoIncrement:14>"
ConfigurationManager
"None"
SimParamPage
"Solver"
LinearizationMsg
"none"
Profile
off
ParamWorkspaceSource
"MATLABWorkspace"
AccelSystemTargetFile
"accel.tlc"
AccelTemplateMakefile
"accel_default_tmf"
AccelMakeCommand
"make_rtw"
TryForcingSFcnDF
off
ExtModeMexFile
"ext_comm"
ExtModeBatchMode
off
ExtModeTrigType
"manual"
ExtModeTrigMode
"normal"
ExtModeTrigPort
"1"
ExtModeTrigElement
"any"
ExtModeTrigDuration
1000
ExtModeTrigHoldOff
0
ExtModeTrigDelay
0
ExtModeTrigDirection
"rising"
ExtModeTrigLevel
0
ExtModeArchiveMode
"off"
ExtModeAutoIncOneShot
off
ExtModeIncDirWhenArm
off
ExtModeAddSuffixToVar
off
ExtModeWriteAllDataToWs off
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl (1 von 10) [17.05.2005 17:11:15]
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
ExtModeArmWhenConnect
on
ExtModeSkipDownloadWhenConnect off
ExtModeLogAll
on
ExtModeAutoUpdateStatusClock on
BufferReuse
on
RTWExpressionDepthLimit 5
SimulationMode
"normal"
Solver
"ode5"
SolverMode
"Auto"
StartTime
"0.0"
StopTime
"100e-3"
MaxOrder
5
MaxStep
"auto"
MinStep
"auto"
MaxNumMinSteps
"-1"
InitialStep
"auto"
FixedStep
"1e-6"
RelTol
"1e-3"
AbsTol
"auto"
OutputOption
"RefineOutputTimes"
OutputTimes
"[]"
Refine
"1"
LoadExternalInput
off
ExternalInput
"[t, u]"
LoadInitialState
off
InitialState
"xInitial"
SaveTime
on
TimeSaveName
"t"
SaveState
off
StateSaveName
"xout"
SaveOutput
on
OutputSaveName
"yout"
SaveFinalState
off
FinalStateName
"xFinal"
SaveFormat
"Array"
Decimation
"1"
LimitDataPoints
off
MaxDataPoints
"1000"
SignalLoggingName
"sigsOut"
ConsistencyChecking
"none"
ArrayBoundsChecking
"none"
AlgebraicLoopMsg
"warning"
BlockPriorityViolationMsg "warning"
MinStepSizeMsg
"warning"
InheritedTsInSrcMsg
"warning"
DiscreteInheritContinuousMsg "warning"
MultiTaskRateTransMsg
"error"
SingleTaskRateTransMsg "none"
CheckForMatrixSingularity "none"
IntegerOverflowMsg
"warning"
Int32ToFloatConvMsg
"warning"
ParameterDowncastMsg
"error"
ParameterOverflowMsg
"error"
ParameterPrecisionLossMsg "warning"
UnderSpecifiedDataTypeMsg "none"
UnnecessaryDatatypeConvMsg "none"
VectorMatrixConversionMsg "none"
InvalidFcnCallConnMsg
"error"
SignalLabelMismatchMsg "none"
UnconnectedInputMsg
"warning"
UnconnectedOutputMsg
"warning"
UnconnectedLineMsg
"warning"
SfunCompatibilityCheckMsg "none"
RTWInlineParameters
off
BlockReductionOpt
on
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl (2 von 10) [17.05.2005 17:11:15]
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
BooleanDataType
on
ConditionallyExecuteInputs on
ParameterPooling
on
OptimizeBlockIOStorage on
ZeroCross
on
AssertionControl
"UseLocalSettings"
ProdHWDeviceType
"Microprocessor"
ProdHWWordLengths
"8,16,32,32"
RTWSystemTargetFile
"grt.tlc"
RTWTemplateMakefile
"grt_default_tmf"
RTWMakeCommand
"make_rtw"
RTWGenerateCodeOnly
off
RTWRetainRTWFile
off
TLCProfiler
off
TLCDebug
off
TLCCoverage
off
TLCAssertion
off
BlockDefaults {
Orientation
"right"
ForegroundColor
"black"
BackgroundColor
"white"
DropShadow
off
NamePlacement
"normal"
FontName
"Helvetica"
FontSize
10
FontWeight
"normal"
FontAngle
"normal"
ShowName
on
}
BlockParameterDefaults {
Block {
BlockType
Constant
Value
"1"
VectorParams1D
on
ShowAdditionalParam
off
OutDataTypeMode
"Inherit from 'Constant value'"
OutDataType
"sfix(16)"
ConRadixGroup
"Use specified scaling"
OutScaling
"2^0"
}
Block {
BlockType
Gain
Gain
"1"
Multiplication
"Element-wise(K.*u)"
ShowAdditionalParam
off
ParameterDataTypeMode
"Same as input"
ParameterDataType
"sfix(16)"
ParameterScalingMode
"Best Precision: Matrix-wise"
ParameterScaling
"2^0"
OutDataTypeMode
"Same as input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Inport
Port
"1"
PortDimensions
"-1"
SampleTime
"-1"
ShowAdditionalParam
off
LatchInput
off
DataType
"auto"
OutDataType
"sfix(16)"
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl (3 von 10) [17.05.2005 17:11:15]
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
OutScaling
SignalType
SamplingMode
Interpolate
"2^0"
"auto"
"auto"
on
}
Block {
BlockType
Outport
Port
"1"
OutputWhenDisabled
"held"
InitialOutput
"[]"
}
Block {
BlockType
Reference
}
Block {
BlockType
Relay
OnSwitchValue
"eps"
OffSwitchValue
"eps"
OnOutputValue
"1"
OffOutputValue
"0"
ShowAdditionalParam
off
OutputDataTypeScalingMode "All ports same datatype"
OutDataType
"sfix(16)"
OutScaling
"2^0"
ConRadixGroup
"Use specified scaling"
ZeroCross
on
}
Block {
BlockType
"S-Function"
FunctionName
"system"
PortCounts
"[]"
SFunctionModules
"''"
}
Block {
BlockType
Sin
SineType
"Time based"
Amplitude
"1"
Bias
"0"
Frequency
"1"
Phase
"0"
Samples
"10"
Offset
"0"
SampleTime
"-1"
VectorParams1D
on
}
Block {
BlockType
SubSystem
ShowPortLabels
on
Permissions
"ReadWrite"
RTWSystemCode
"Auto"
RTWFcnNameOpts
"Auto"
RTWFileNameOpts
"Auto"
SimViewingDevice
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
}
Block {
BlockType
Sum
IconShape
"rectangular"
Inputs
"++"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Same as first input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl (4 von 10) [17.05.2005 17:11:15]
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
VariableName
MaxDataPoints
Decimation
SampleTime
}
Block {
BlockType
Numerator
Denominator
AbsoluteTolerance
Realization
}
}
AnnotationDefaults {
HorizontalAlignment
VerticalAlignment
ForegroundColor
BackgroundColor
DropShadow
FontName
FontSize
FontWeight
FontAngle
}
LineDefaults {
FontName
FontSize
FontWeight
FontAngle
}
System {
Name
Location
Open
ModelBrowserVisibility
ModelBrowserWidth
ScreenColor
PaperOrientation
PaperPositionMode
PaperType
PaperUnits
ZoomFactor
ReportName
Block {
BlockType
Name
Position
Value
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
}
Block {
BlockType
ToWorkspace
"simulink_output"
"1000"
"1"
"0"
TransferFcn
"[1]"
"[1 2 1]"
"auto"
"auto"
"center"
"middle"
"black"
"white"
off
"Helvetica"
10
"normal"
"normal"
"Helvetica"
9
"normal"
"normal"
"rl_2q_average"
[2, 78, 1022, 701]
on
off
212
"white"
"landscape"
"auto"
"usletter"
"inches"
"115"
"simulink-default.rpt"
Constant
"Constant"
[315, 390, 345, 420]
"100"
Reference
"Dot Product"
[2, 1]
[610, 431, 640, 464]
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Gain
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
Name
Position
Gain
"Gain1"
[480, 95, 510, 125]
"200"
}
Block {
BlockType
Gain
Name
"Gain3"
Position
[255, 320, 285, 350]
Gain
"200/30"
}
Block {
BlockType
Relay
Name
"Relay"
Position
[340, 95, 370, 125]
OnSwitchValue
"0"
OffSwitchValue
"0"
}
Block {
BlockType
Sin
Name
"Sine Wave"
Position
[115, 55, 145, 85]
SineType
"Time based"
Amplitude
"2"
Frequency
"1000"
SampleTime
"0"
}
Block {
BlockType
SubSystem
Name
"Subsystem"
Ports
[0, 1]
Position
[110, 130, 150, 190]
TreatAsAtomicUnit
off
MaskPromptString
"frekuensi|V peak"
MaskStyleString
"edit,edit"
MaskTunableValueString "on,on"
MaskCallbackString
"|"
MaskEnableString
"on,on"
MaskVisibilityString
"on,on"
MaskToolTipString
"on,on"
MaskVarAliasString
","
MaskVariables
"f=@1;v1=@2;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"5000|15"
System {
Name
"Subsystem"
Location
[553, 276, 688, 358]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Reference
Name
"Repeating\nSequence"
Ports
[0, 1]
Position
[25, 25, 55, 55]
SourceBlock
"simulink/Sources/Repeating\nSequence"
SourceType
"Repeating table"
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl (6 von 10) [17.05.2005 17:11:15]
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
rep_seq_t
rep_seq_y
}
Block {
BlockType
Name
Position
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
}
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Outport
"Out1"
[80, 33, 110, 47]
"Repeating\nSequence"
1
"Out1"
1
Sum
"Sum"
[2, 1]
[205, 100, 225, 120]
off
"round"
"+-"
off
"Inherit via internal rule"
Sum
"Sum1"
[2, 1]
[350, 325, 370, 345]
off
"round"
"|++"
off
"Inherit via internal rule"
ToWorkspace
"To Workspace1"
[485, 240, 545, 270]
"vave"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace2"
[255, 20, 315, 50]
"vc"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace3"
[660, 100, 720, 130]
"vau"
"inf"
"-1"
"Array"
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
Denominator
}
Block {
BlockType
Name
Position
Denominator
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
ToWorkspace
"To Workspace4"
[925, 160, 985, 190]
"iau"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace5"
[665, 320, 725, 350]
"iave"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace8"
[715, 435, 775, 465]
"iD"
"inf"
"-1"
"Array"
TransferFcn
"Transfer Fcn"
[785, 157, 845, 193]
"[0.01 10]"
TransferFcn
"Transfer Fcn1"
[500, 317, 560, 353]
"[0.01 10]"
"Sine Wave"
1
[25, 0]
[5, 0]
[0, -35]
"To Workspace2"
1
[35, 0]
"Sum"
1
[0, 265]
"Gain3"
1
"Subsystem"
1
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
[60, 0]
"Sum"
2
"Sum"
1
"Relay"
1
"Relay"
1
[65, 0]
"Gain1"
1
[0, 345]
"Dot Product"
2
"Gain1"
1
[20, 0; 0, 45; 80, 0; 0, 20; 30, 0]
"Transfer Fcn"
1
"To Workspace3"
1
"Transfer Fcn"
1
"To Workspace4"
1
"Transfer Fcn1"
1
[30, 0]
"To Workspace5"
1
"Dot Product"
1
"Dot Product"
1
"To Workspace8"
1
"Gain3"
1
http://encon.fke.utm.my/courses/mep1422/rl_2q_average.mdl
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Annotation {
Name
Position
FontName
FontSize
FontWeight
}
Annotation {
Name
Position
}
"Sum1"
1
"Sum1"
1
[20, 0]
"Transfer Fcn1"
1
[0, -80]
"To Workspace1"
1
"Constant"
1
[10, 0]
"Sum1"
2
"qA"
[399, 99]
}
}
!
"
!
#
!
%
&!
!
'
'
+ #
"
'
'
'
"'
"'
'
$"
'
'
.
*+
'
*/
'
'
0
$"
,
$
2
0
'
$"
*1
,(3
, / "+
$"
$
*
, ( 43 %
/ ,
(( 3 ( 3 ) = ' 5.
'
/.
*6
"# "
'
"'
#
"
'
'
'
'
'
$"
'
'
.
*3
'
'
0
$"
, */
$
"+ '
*7
=
#
/'
.
*4
,(3
(3
,
$"
=
8
*6
*5
/'
(( 3 ( 3 ) = ' /.
/
*5
2
+
AC
Motor
Vd
vd *
vq *
Space vector
modulator
Given a location of the reference voltage in any of the sectors, the actual voltage can be synthesized,
within a sampling period, by selecting the two adjacent voltage vectors and zero voltage vectors. For
example, if the reference voltage is located in sector 1, voltage vectors v1, v2, v0 and v7 should be
selected. This is illustrated in Figure 2
q
Sector 2
[010]
Figure 2 Voltage
vectors of a 3-phase
VSI
[110]
(1/3)Vd
Sector 3
Sector 1
v *s
[100]
[011]
(2/3)Vd
Sector 4
Sector 6
[001]
sector 6
sector 1
sector 2
sector 3
sector 4
100
[101]
Sector 5
sector 5
50
Figure 3 Sinusoidal
reference voltage
-50
-100
0
0.005
0.01
000
0.015
010
110
111
0.02
110
Phase a
010
0.03
000
Figure 4 Example of
modulated waveform in
sector 2
Phase b
Phase c
0.025
T0
T1
T
T2
T7
T
The interval for each voltage vector, as shown in Figure 4, is determined by equating volt-second
integral of vs with the sum of all voltage vectors within a cycle. Thus, for example in sector 1,
v s T = v o To + v1 T1 + v 2 T2 + v 7 T7
Note that v1 and v2 equal
2
Vd . Thus in terms of d-q components this can be written as:
3
2
2
v s T = To 0 + Vd T1 + Vd T2 (cos 60 o + j sin 60 o ) + T7 0
3
3
Also, we need to satisfy the time constraint: T= T0 + T1 + T2 + T7
If we let T0 = T7, we can calculate all the required time intervals. If the angle between the reference
voltage and the adjacent vector (to the right of the reference voltage) equals , it can be shown that
for any sector, the time intervals T1 and T2 are given by:
3
1
T1 = T vs cos
sin
2
3
T2 = 3 T vs sin
In the above equation, vs is the normalized reference vector. The interval for the zero voltage vector is
given by: T0 + T7 = T (T1 +T2). The ratio between T0 and T7 essentially control the amount of
triplen harmonic components in the fundamental phase voltage.
Further readings:
PG Handley and JT Boys, Practical real-time PWM modulators: an assessment IEE Proceedings-B,
Vol 139, No. 2 March 1992
W. Leonhard, Control of electrical drives, Springer-Verlag, 1984.
DC DRIVES
Prin c iple o f o pe rat io n an d c o n s t ru c t io n a re v ie w
DC m a ch in e con s is t s of
s t a t or s t a t ion a r y wh er e t h e field flu x is p r od u ced
r ot or r ot a t in g wh er e t h e a r m a t u r e win d in g is p la ced .
Field flu x is ob t a in ed eit h er fr om p er m a n en t m a gn et or fr om field win d in g excit a t ion . Field flu x
in t er a ct s wit h cu r r en t ca r r yin g con d u ct or s in a r m a t u r e t o p r od u ce t or qu e. Com m u t a t or in
a r m a t u r e cir cu it will en s u r e t h a t t h e t or qu e p r od u ct ion is a lwa ys m a xim u m , r ega r d les s of r ot or
p os it ion .
Mo de lin g o f DC m o t o r
Th e t or qu e is p r od u ced a s a r es u lt of in t er a ct ion of field flu x wit h cu r r en t in a r m a t u r e
con d u ct or s a n d is given b y
Te = k t i a
(1 )
(2 )
e a = Kt
Th e p ola r it y of t h e b a ck em f d ep en d s on t h e d ir ect ion of t h e m ot or r ot a t ion
For s ep a r a t ely excit ed DC m ot or , t h e a r m a t u r e cir cu it is s h own :
La
Ra
+
vt
ea
R a lu m p ed a r m a t u r e win d in g r es is t a n ce
La s elf in d u ct a n ce of t h e a r m a t u r e win d in g
e a a s d efin ed b efor e, is t h e b a ck em f of t h e m ot or
Us in g KVL,
v t = ia R a + La
di a
+ ea
dt
(3 )
In s t ea d y s t a t e con d it ion ,
Vt = I a R a + E a
(4 )
T
R a + k t
k t
(5 )
Vt
T
Ra
k t (k t )2
(6 )
wh ich gives :
Th u s t h r ee m et h od s ca n b e u s ed t o con t r ol t h e s p eed : Vt , a n d R a
S p eed con t r ol u s in g a r m a t u r e r es is t a n ce b y a d d in g ext er n a l r es is t or R ext is s eld om u s ed ,
es p ecia lly for la r ge m ot or d u e t o t h e los s es a s s ocia t ed wit h Ia 2 R ext . Vt is n or m a lly con t r ol for
s p eed u p t o r a t ed s p eed . Beyon d r a t ed s p eed , for s ep a r a t ely excit ed DC m ot or , t h e s p eed con t r ol
is a ch ieved b y flu x con t r ol, . Wh en s p eed con t r ol b y flu x con t r ol is u s ed , t h e m a xim u m t or qu e
ca p a b ilit y of t h e m ot or is r ed u ced s in ce for a given m a xim u m a r m a t u r e cu r r en t , t h e flu x is les s
t h a n t h e r a t ed va lu e a n d t h u s t h e m a xim u m t or qu e p r od u ced is les s t h a n t h e m a xu m u m
t or qu e. Als o it s h ou ld b e n ot ed t h a t , wit h p er m a n en t m a gn et excit a t ion , s p eed con t r ol u s in g
flu x wea k en in g is n ot p os s ib le t h u s m a xim u m s p eed of p er m a n en t m a gn et m ot or is lim it ed .
Wh en d es ign in g con t r oller s for DC m ot or d r ives u s ed in s er vo or h igh p er for m a n ce a p p lica t ion s ,
a s m a ll s ign a l m od el of t h e m ot or is r equ ir ed . A s ep a r a t ely excit ed DC m ot or wit h fixed field
excit a t ion , or a p er m a n en t m a gn et DC m ot or , is d es cr ib ed b y equ a t ion s (3 ), (1 ) a n d (2 ). If a s m a ll
p er t u r b a t ion a r ou n d a DC op er a t in g p oin t is in t r od u ced , t h es e equ a t ion s ca n b e wr it t en a s (7 )(9 ). Th e ~ in d ica t es a s m a ll p er t u r b a t ion , wh ich is a d d t o t h e DC com p on en t s of v t , ia , e a , Te , TL
and :
2
~
~
d I a + ia
+ ( E a + ~ea )
Vt + ~
v t = ( I a + ia ) R a + L a
dt
(7 )
~
Te + Te = k E ( I a + i a )
(8 )
~)
E e + ~ee = k E ( +
(9 )
d m
dt
(1 0 )
wh er e Tl = TL + B
Tl is t h e loa d t or qu e com p os ed of wor k in g t or qu e of t h e loa d , TL a n d t or qu e d u e t o fr ict ion , B .
Th e fr ict ion a l t or qu e d ep en d s on t h e r ot a t ion a l s p eed , wh ile TL d ep en d s on t h e n a t u r e of t h e
loa d b ein g d r iven . S im ila r ly, if a s m a ll p er t u r b a t ion is in t r od u ced in Te a n d TL a n d , equ a t ion
(1 0 ) ca n b e wr it t en a s :
~
~
~
~ ) + J d ( + )
Te + Te = T L + T L + B ( +
(1 1 )
dt
S ep a r a t in g t h e DC a n d s m a ll p er t u r b a t ion or AC com p on en t s in (7 )(9 ) a n d (1 1 ), t h e s t ea d y s t a t e
a n d s m a ll s ign a l equ a t ion s d es cr ib in g t h e DC m ot or ca n b e ob t a in ed :
AC com p on en t s
DC com p on en t s
~
~v = ~i R + L d ia + ~e
t
a
a
a
a
dt
Vt = I a R a + E a
~
~
Te = k E ( ia )
Te = k E I a
~e = k (
~)
e
E
Ee = k E
~
~
~
~ + J d ( )
Te = TL + B
dt
Te = TL + B( )
(1 2 )
Te (s ) = k E Ia (s )
(1 3 )
E a (s ) = k E (s )
(1 4 )
Te (s ) = TL(s ) + B (s ) + s J (s )
(1 5 )
Th u s t h e b lock d ia gr a m r ep r es en t in g t h e DC m ot or is s h own :
Tl (s )
Va (s )
+
Ra
1
+ sLa
I a (s )
kT
Te (s )
+
1
B + sJ
(s )
kE
Po we r e le c t ro n ic c o n v e rt e rs in DC driv e s
Th e p ower elect r on ic con ver t er s a r e u s ed t o ob t a in a n a d ju s t a b le DC volt a ge a p p lied t o t h e
a r m a t u r e of a DC m ot or . Th er e a r e b a s ica lly t wo t yp es of con ver t er n or m a lly em p loyed in DC
d r ives : (i) con t r olled r ect ifier (ii) s wit ch m od e con ver t er .
(i) Con t r olled r ect ifier
Con t r olled r ect ifier ca n b e op er a t ed fr om a s in gle p h a s e or t h r ee p h a s e in p u t
Ou t p u t volt a ge con t a in low fr equ en cy r ip p le wh ich m a y r equ ir e a la r ge in d u ct or in s er t ed in
a r m a t u r e cir cu it , in or d er t o r ed u ce t h e a r m a t u r e cu r r en t r ip p le. A la r ge a r m a t u r e cu r r en t r ip p le
is u n d es ir a b le s in ce it m a y b e r eflect ed in s p eed r es p on s e if t h e in er t ia of t h e m ot or loa d is n ot
la r ge en ou gh . Con t r olled r ect ifier h a s low b a n d wid t h . Th e a ver a ge ou t p u t volt a ge r es p on s e t o a
con t r ol s ign a l, wh ich is t h e d ela y a n gle, is r ela t ively s low. Th er efor e con t r olled r ect ifier is n ot
s u it a b le for d r ives r equ ir in g fa s t r es p on s e, e.g. in s er vo a p p lica t ion s .
In t er m s of qu a d r a n t of op er a t ion s , a s in gle p h a s e or a t h r ee p h a s e r ect ifier is on ly ca p a b le of
op er a t in g in fir s t a n d fou r t h qu a d r a n t s wh ich is n ot s u it a b le for d r ives r equ ir in g for wa r d
b r ea k in g m od e. To b e a b le t o op er a t e in a ll fou r qu a d r a n t s , con figu r a t ion s u s in g b a ck t o b a ck
r ect ifier s or con t a ct or s s h own b elow m u s t b e em p loyed .
Con ver t er A
3-phase
supply
Con ver t er B
3-phase
supply
Va
Converter
B
Converter
A
Converter
B
Converter
A
R1
F1
3 p h a s e
s u p p ly
Va
R2
Con ta ctor
F2
R1 and R2
are closed
F1 and F2
are closed
R1 and R2
are closed
F1 and F2
are closed
+
va
Q2
Q1
Q3
Q4
Q2
Q3
+
va
Single-quadrant
Two-quadrant
va
Q2
Q1
Q3
Q4
Four-quadrant
Reference:
N. Mohan, Electric Drives: An integrative approach, University of Minnesota Printing services, 2000.
N. Mohan, Power Electronics: Converters, applications and design John Wiley and Sons, 1995.
5
Q1
Q4
DC MOTOR DRIVES
(MEP 1422)
Dr. Nik Rumzi Nik Idris
Department of Energy Conversion
FKE, UTM
Contents
Introduction
Trends in DC drives
DC motors
Modeling of Converters and DC motor
Phase-controlled Rectifier
DC-DC converter (Switch-mode)
Modeling of DC motor
Closed-loop speed control
Cascade Control Structure
Closed-loop speed control - an example
Torque loop
Speed loop
Summary
INTRODUCTION
DC DRIVES: Electric drives that use DC motors
as the prime movers
DC motor: industry workhorse for decades
Dominates variable speed applications before
PE converters were introduced
Will AC drive replaces DC drive ?
Predicted 30 years ago
DC strong presence easy control huge numbers
AC will eventually replace DC at a slow rate
Introduction
DC Motors
Advantage: Precise torque and speed control
without sophisticated electronics
Several limitations:
Regular Maintenance
Expensive
Heavy
Speed limitations
Sparking
Introduction
DC Motors
Stator: field
windings
Rotor: armature
windings
Mechanical commutator
Current in
Current out
Introduction
Ra
+
Lf
La
ia
Rf
if
Vt
ea
Vf
di
v t = R a ia + L a + ea
dt
v f = R f if + L
Te = k t i a
Electric torque
e a = k E
di f
dt
Introduction
Armature circuit:
Vt = R a i a + L
di a
+ ea
dt
In steady state,
Vt = R a Ia + E a
Therefore speed is given by,
Vt
R T
a e2
k T (k T )
Introduction
Armature voltage control : retain maximum torque capability
Field flux control (i.e. flux reduced) : reduce maximum torque capability
For wide range of speed control
0 to base armature voltage, above base field flux reduction
Armature voltage control
Field flux control
Te
Maximum
Torque capability
base
MODELING OF CONVERTERS
AND DC MOTOR
POWER ELECTRONICS CONVERTERS
Used to obtain variable armature voltage
Efficient
Ideal : lossless
Phase-controlled rectifiers (AC DC)
DC-DC switch-mode converters(DC DC)
+
3-phase
supply
Vt
Q2
Q1
Q3
Q4
Phase-controlled rectifier
3phase
supply
+
3-phase
supply
Vt
Q2
Q1
Q3
Q4
Phase-controlled rectifier
R1
F1
3-phase
supply
+
Va
F2
R2
Q2
Q1
Q3
Q4
+
-
current
controller
vc
firing
circuit
controlled
rectifier Vt
vt
v
= c
180
Va =
vc
180
vt
Vm
cos c 180
vt
v c = v s cos
Va =
Vm v c
vs
Output
voltage
-200
-400
0.3
0.31
0.32
10
0.33
Td
0.34
0.35
0.36
Control
signal
Cosine-wave
crossing
0
-5
-10
0.3
0.31
0.32
0.33
0.34
0.35
0.36
Switchmode converters
T1
+
Vt
-
Q2
Q1
Q3
Q4
Switchmode converters
T1
T2
D1
+
Vt
D2 -
Q2
Q1
Q3
Q4
Q1 T1 and D2
Q2 D1 and T2
Switchmode converters
T1
T4
D1
D3
+ Vt -
D4
D2
T3
T2
Q2
Q1
Q3
Q4
Switchmode converters
Switching at high frequency
Reduces current ripple
Increases control bandwidth
Suitable for high performance applications
Vdc
Vdc
vtri
vc
q
1
q=
0
Vdc
Vt
1
d=
Ttri
1
Vt =
Ttri
t + Ttri
dTtri
t on
qdt =
Ttri
Vdc dt = dVdc
0
Vtri,p
d = 0.5 +
vc
2Vtri,p
Vt = 0.5Vdc +
Vdc
vc
2Vtri,p
vc
di a
+ ea
dt
Te = kt ia
dm
Te = Tl + J
dt
ee = k t
~
~
Te = k E ( ia )
dc components
Vt = Ia R a + E a
Te = k E Ia
~
~)
e e = k E (
Ee = k E
~)
d (
~
~
~
Te = TL + B + J
dt
Te = TL + B()
~
~
Te = k E ( ia )
Te(s) = kEIa(s)
~
~)
e e = k E (
Ea(s) = kE(s)
~)
d (
~
~
~
Te = TL + B + J
dt
Tl (s )
Va (s )
+
-
Ra
1
+ sL a
I a (s )
kT
Te (s )
1
B + sJ
kE
(s )
position
controller
* +
speed
controller
T* +
torque
controller
converter
Motor
tacho
kT
1/s
Minimum overshoot
good phase margin (>65o)
BODE PLOTS
METHOD
La = 5.2 mH
B = 1 x104 kg.m2/sec
ke = 0.1 V/(rad/s)
kt = 0.1 Nm/A
Vd = 60 V
Vtri = 5 V
fs = 33 kHz
PI controllers
vtri
Tc
Torque
controller
+
Vdc
kt
DC motor
Tl (s )
Converter
T e (s )
Torque
controller
-
V dc
V tri ,peak
Va (s )
Ra
Ia (s )
1
+ sL a
kT
Te (s )
kE
1
B + sJ
(s )
150
kpT= 90
Magnitude (dB)
100
compensated
kiT= 18000
50
-50
90
Pha s e (deg)
45
0
compensated
-45
-90
10
-2
10
-1
10
10
10
Frequency (rad/s ec )
10
10
10
* +
T*
Speed
controller
Torque loop
1
B + sJ
Speed controller
Open-loop gain
Bode Diagra m
From: Input Point To: Output Point
150
Ma gnitude (dB)
100
kps= 0.2
50
compensated
-50
0
Phas e (deg)
-45
-90
compensated
-135
-180
10
-2
10
-1
10
10
Frequenc y (Hz )
10
10
10
kis= 0.14
Speed
0
-20
-40
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
2
1
Torque
0
-1
-2
SUMMARY
Speed control by: armature voltage (0 b) and field flux (b)
Power electronics converters to obtain variable armature voltage
Phase controlled rectifier small bandwidth large ripple
Switch-mode DC-DC converter large bandwidth small ripple
Controller design based on linear small signal model
Power converters - averaged model
DC motor separately excited or permanent magnet
Closed-loop speed control design based on Bode plots
Verify with large signal simulation
! "#$
(
%! &'(
) *
/ ( ,
$
0
%! &'
*
/
+*,-( %
/ (,
1 2,
1 23(
PID
Step
PID
0.2
PID Controller1
60
1/Vt
Vd
Va
speed
T
Tl
Step1
Output Point
Ia
Subsystem
Bode Diagram
From: Input Point To: Output Point
20
Magnitude (dB)
10
0
-10
-20
-30
-40
90
Phase (deg)
45
0
-45
-90
-3
-2
10
10
-1
10
10
10
10
10
Frequency (Hz)
Pole-Zero Map
1
0.8
0.6
Imaginary Axis
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-350
-300
-250
-200
-150
-100
-50
Real Axis
/ (, 4
1
(
.
"
%! &'
.
5(5 16.(
55 16.( /
59+
#(
.
0
1 2 -33
(
7
/ (, 0
-33
#0
1 #1 2 -33
#(
/ (- &
1
*. 0
58
#
1
#.
Bode Diagram
From: Input Point To: Output Point
20
Magnitude (dB)
10
0
-10
-20
-30
-40
90
Phase (deg)
45
0
-45
-90
-135
-180
-3
10
-2
-1
10
10
10
10
10
10
10
Frequency (Hz)
/ (- 4
/
1 2 -33
/ (-
7
0
-33
1 2,
(
1( /
#
/ ( 5(
1
:30
5(516.
0.
"
(
Bode Diagram
From: Input Point To: Output Point
100
Magnitude (dB)
80
60
40
20
0
-20
90
Phase (deg)
45
0
-45
-90
-135
-180
-3
10
-2
10
10
-1
10
10
10
10
10
Frequency (Hz)
/ (5
:3
7
0( (
( %
<(
/ (9
"
7
PID
PID
speed controller
current controller
0.2
60
1/Vt
Vd
Va
speed
T
Tl
In1 Out1
Ia
Subsystem
Step1
PID
0
"
(/ (9
( /
0
7
(
speed_controller
1/(sJ +B)1
In1 Out1
torque-loop
1/(sJ +B)
Bode Diagram
From: Input Point To: Output Point
200
150
)
B
d(
e
d
uti
n
g
a
M
100
50
0
-50
-100
0
-45
)
g
e
d(
e
s
a
h
P
-90
-135
-180
-3
10
10
-2
-1
10
10
10
10
10
10
10
Frequency (Hz)
/ (9 $
;
3(8
#(
"
7
7
/ (>(
0
7
-33 6.(
0
"
Bode Diagram
From: Input Point To: Output Point
150
Magnitude (dB)
100
50
Phase (deg)
-50
0
-45
-90
-135
-2
-1
10
10
10
10
10
10
10
Frequency (Hz)
/ (>
.
1
:3
3(-
?
?
1
,+333
3(,9
(
/ (@
%! &'
( %
7
,(> & (
> 6.
7
/ (@
7
(
vtri
To Workspace2
torque
PID
Signal
Generator
PID Controller1
PID
Saturation1
T o Workspace1
PID Controller
Rel ay
speed
speed
Va
T
Tl
Out1
T o Workspace
Ia
Subsystem
Subsystem1
Step1
-1
Gain
Relay1
vc
T o Workspace3
vc_m
T o Workspace4
40
20
0
-20
-40
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
2
1
0
-1
-2
/ (@ !
7
$
!
(b)
GOL
100
=
s(0.1s + 1)
Ga in
1
s
0 .1s+1
-K-
100
0.1s2 +s
Tra nsfe r Fcn
Ga in
In te g ra to r In p ut P oint
1
s
-KGa in
-KInput P oint
Ga in
1
s
-K-
In p ut P oint In te g ra to r
0 .1 s+1
Tra nsfe r Fcn
Ou tp u t P o in t
1
0 .1 s+1
Tra nsfe r Fcn
Ou tp u t P o in t
1
s
0.1s+1
Output P o in t
100
Ma gnitude (dB)
50
-50
-100
0
Pha s e (de g)
-45
-90
-135
-180
10
-1
10
10
10
10
Ga in
1
s
0.1s+1
In te g ra tor
Outp ut P o in t
Bode Diagram
From: Input Point To: Output Point
100
Magnitude (dB)
50
Crossover frequency
approximates close
loop bandwidth
-50
-100
0
Phas e (de g)
-45
-90
-135
-180
10
-1
10
10
10
10
ki 1 + k
i
kp
1
s
1
In p u t P o in t
Ga in
Ou tp u t P o in t
In te g ra to r
0 .1
Ga in 1
100
ki=100, kp=10
Ma gnitude (dB)
50
-50
ki=1, kp=0.1
Pha s e (de g)
-100
0
-45
-90
10
-1
10
10
10
10
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Model {
Name
"dc_m2_linear_large_torque"
Version
5.0
SaveDefaultBlockParams on
SampleTimeColors
off
LibraryLinkDisplay
"none"
WideLines
off
ShowLineDimensions
off
ShowPortDataTypes
off
ShowLoopsOnError
on
IgnoreBidirectionalLines off
ShowStorageClass
off
ExecutionOrder
off
RecordCoverage
off
CovPath
"/"
CovSaveName
"covdata"
CovMetricSettings
"dw"
CovNameIncrementing
off
CovHtmlReporting
on
covSaveCumulativeToWorkspaceVar on
CovSaveSingleToWorkspaceVar on
CovCumulativeVarName
"covCumulativeData"
CovCumulativeReport
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
MinMaxOverflowArchiveMode "Overwrite"
BlockNameDataTip
off
BlockParametersDataTip off
BlockDescriptionStringDataTip off
ToolBar
on
StatusBar
on
BrowserShowLibraryLinks off
BrowserLookUnderMasks
on
Created
"Wed May 28 20:17:31 2003"
UpdateHistory
"UpdateHistoryNever"
ModifiedByFormat
"%<Auto>"
LastModifiedBy
"Nik Rumzi"
ModifiedDateFormat
"%<Auto>"
LastModifiedDate
"Mon Jul 26 11:46:55 2004"
ModelVersionFormat
"1.%<AutoIncrement:33>"
ConfigurationManager
"None"
SimParamPage
"Solver"
LinearizationMsg
"none"
Profile
off
ParamWorkspaceSource
"MATLABWorkspace"
AccelSystemTargetFile
"accel.tlc"
AccelTemplateMakefile
"accel_default_tmf"
AccelMakeCommand
"make_rtw"
TryForcingSFcnDF
off
ExtModeMexFile
"ext_comm"
ExtModeBatchMode
off
ExtModeTrigType
"manual"
ExtModeTrigMode
"normal"
ExtModeTrigPort
"1"
ExtModeTrigElement
"any"
ExtModeTrigDuration
1000
ExtModeTrigHoldOff
0
ExtModeTrigDelay
0
ExtModeTrigDirection
"rising"
ExtModeTrigLevel
0
ExtModeArchiveMode
"off"
ExtModeAutoIncOneShot
off
ExtModeIncDirWhenArm
off
ExtModeAddSuffixToVar
off
ExtModeWriteAllDataToWs off
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (1 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
ExtModeArmWhenConnect
on
ExtModeSkipDownloadWhenConnect off
ExtModeLogAll
on
ExtModeAutoUpdateStatusClock on
BufferReuse
on
RTWExpressionDepthLimit 5
SimulationMode
"normal"
Solver
"ode5"
SolverMode
"Auto"
StartTime
"0.0"
StopTime
"0.45"
MaxOrder
5
MaxStep
"0.0001"
MinStep
"0.00001"
MaxNumMinSteps
"-1"
InitialStep
"0.00001"
FixedStep
"0.000001"
RelTol
"1e-3"
AbsTol
"auto"
OutputOption
"RefineOutputTimes"
OutputTimes
"[]"
Refine
"1"
LoadExternalInput
off
ExternalInput
"[t, u]"
LoadInitialState
off
InitialState
"xInitial"
SaveTime
on
TimeSaveName
"t"
SaveState
off
StateSaveName
"xout"
SaveOutput
on
OutputSaveName
"yout"
SaveFinalState
off
FinalStateName
"xFinal"
SaveFormat
"Array"
Decimation
"1"
LimitDataPoints
off
MaxDataPoints
"1000"
SignalLoggingName
"sigsOut"
ConsistencyChecking
"none"
ArrayBoundsChecking
"none"
AlgebraicLoopMsg
"warning"
BlockPriorityViolationMsg "warning"
MinStepSizeMsg
"warning"
InheritedTsInSrcMsg
"warning"
DiscreteInheritContinuousMsg "warning"
MultiTaskRateTransMsg
"error"
SingleTaskRateTransMsg "none"
CheckForMatrixSingularity "none"
IntegerOverflowMsg
"warning"
Int32ToFloatConvMsg
"warning"
ParameterDowncastMsg
"error"
ParameterOverflowMsg
"error"
ParameterPrecisionLossMsg "warning"
UnderSpecifiedDataTypeMsg "none"
UnnecessaryDatatypeConvMsg "none"
VectorMatrixConversionMsg "none"
InvalidFcnCallConnMsg
"error"
SignalLabelMismatchMsg "none"
UnconnectedInputMsg
"warning"
UnconnectedOutputMsg
"warning"
UnconnectedLineMsg
"warning"
SfunCompatibilityCheckMsg "none"
RTWInlineParameters
off
BlockReductionOpt
on
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (2 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
BooleanDataType
on
ConditionallyExecuteInputs on
ParameterPooling
on
OptimizeBlockIOStorage on
ZeroCross
on
AssertionControl
"UseLocalSettings"
ProdHWDeviceType
"Microprocessor"
ProdHWWordLengths
"8,16,32,32"
RTWSystemTargetFile
"grt.tlc"
RTWTemplateMakefile
"grt_default_tmf"
RTWMakeCommand
"make_rtw"
RTWGenerateCodeOnly
off
RTWRetainRTWFile
off
TLCProfiler
off
TLCDebug
off
TLCCoverage
off
TLCAssertion
off
BlockDefaults {
Orientation
"right"
ForegroundColor
"black"
BackgroundColor
"white"
DropShadow
off
NamePlacement
"normal"
FontName
"Helvetica"
FontSize
10
FontWeight
"normal"
FontAngle
"normal"
ShowName
on
}
BlockParameterDefaults {
Block {
BlockType
Clock
DisplayTime
off
}
Block {
BlockType
Derivative
}
Block {
BlockType
Fcn
Expr
"sin(u[1])"
}
Block {
BlockType
Gain
Gain
"1"
Multiplication
"Element-wise(K.*u)"
ShowAdditionalParam
off
ParameterDataTypeMode
"Same as input"
ParameterDataType
"sfix(16)"
ParameterScalingMode
"Best Precision: Matrix-wise"
ParameterScaling
"2^0"
OutDataTypeMode
"Same as input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Inport
Port
"1"
PortDimensions
"-1"
SampleTime
"-1"
ShowAdditionalParam
off
LatchInput
off
DataType
"auto"
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (3 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
OutDataType
OutScaling
SignalType
SamplingMode
Interpolate
"sfix(16)"
"2^0"
"auto"
"auto"
on
}
Block {
BlockType
Lookup
InputValues
"[-4:5]"
OutputValues
" rand(1,10)-0.5"
ShowAdditionalParam
off
LookUpMeth
"Interpolation-Extrapolation"
OutDataTypeMode
"Same as input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Outport
Port
"1"
OutputWhenDisabled
"held"
InitialOutput
"[]"
}
Block {
BlockType
Relay
OnSwitchValue
"eps"
OffSwitchValue
"eps"
OnOutputValue
"1"
OffOutputValue
"0"
ShowAdditionalParam
off
OutputDataTypeScalingMode "All ports same datatype"
OutDataType
"sfix(16)"
OutScaling
"2^0"
ConRadixGroup
"Use specified scaling"
ZeroCross
on
}
Block {
BlockType
Saturate
UpperLimit
"0.5"
LowerLimit
"-0.5"
LinearizeAsGain
on
ZeroCross
on
}
Block {
BlockType
"S-Function"
FunctionName
"system"
PortCounts
"[]"
SFunctionModules
"''"
}
Block {
BlockType
SignalGenerator
WaveForm
"sine"
Amplitude
"1"
Frequency
"1"
Units
"Hertz"
VectorParams1D
on
}
Block {
BlockType
Step
Time
"1"
Before
"0"
After
"1"
SampleTime
"-1"
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (4 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
VectorParams1D
ZeroCross
on
on
}
Block {
BlockType
SubSystem
ShowPortLabels
on
Permissions
"ReadWrite"
RTWSystemCode
"Auto"
RTWFcnNameOpts
"Auto"
RTWFileNameOpts
"Auto"
SimViewingDevice
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
}
Block {
BlockType
Sum
IconShape
"rectangular"
Inputs
"++"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Same as first input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
ToWorkspace
VariableName
"simulink_output"
MaxDataPoints
"1000"
Decimation
"1"
SampleTime
"0"
}
Block {
BlockType
TransferFcn
Numerator
"[1]"
Denominator
"[1 2 1]"
AbsoluteTolerance
"auto"
Realization
"auto"
}
}
AnnotationDefaults {
HorizontalAlignment
VerticalAlignment
ForegroundColor
BackgroundColor
DropShadow
FontName
FontSize
FontWeight
FontAngle
}
LineDefaults {
FontName
FontSize
FontWeight
FontAngle
}
System {
Name
Location
Open
ModelBrowserVisibility
ModelBrowserWidth
"center"
"middle"
"black"
"white"
off
"Helvetica"
10
"normal"
"normal"
"Helvetica"
9
"normal"
"normal"
"dc_m2_linear_large_torque"
[6, 82, 1018, 533]
on
off
212
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
ScreenColor
PaperOrientation
PaperPositionMode
PaperType
PaperUnits
ZoomFactor
ReportName
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
SourceBlock
"white"
"landscape"
"auto"
"usletter"
"inches"
"92"
"simulink-default.rpt"
Gain
"Gain"
[410, 230, 440, 260]
"-1"
Reference
"PID Controller"
[1, 1]
[335, 90, 365, 120]
"simulink_extras/Additional\nLinear/PID Controll"
"er"
SourceType
P
I
D
}
Block {
BlockType
Name
Ports
Position
SourceBlock
"PID Controller"
"90"
"90*200"
"0"
Reference
"PID Controller1"
[1, 1]
[150, 90, 180, 120]
"simulink_extras/Additional\nLinear/PID Controll"
"er"
SourceType
P
I
D
}
Block {
BlockType
Name
Position
OnSwitchValue
OffSwitchValue
OnOutputValue
}
Block {
BlockType
Name
Position
OnSwitchValue
OffSwitchValue
OnOutputValue
}
Block {
BlockType
Name
Position
UpperLimit
LowerLimit
}
Block {
BlockType
Name
Position
WaveForm
"PID Controller"
"0.2"
"0.7*0.2"
"0"
Relay
"Relay"
[500, 90, 530, 120]
"0"
"0"
"60"
Relay
"Relay1"
[520, 230, 550, 260]
"0"
"0"
"60"
Saturate
"Saturation1"
[225, 90, 255, 120]
"1.5"
"-1.5"
SignalGenerator
"Signal\nGenerator"
[20, 90, 50, 120]
"square"
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Amplitude
Frequency
"-30"
"5"
}
Block {
BlockType
Step
Name
"Step1"
Position
[600, 205, 630, 235]
Time
"0"
After
"0"
SampleTime
"0"
}
Block {
BlockType
SubSystem
Name
"Subsystem"
Ports
[2, 3]
Position
[700, 120, 740, 180]
TreatAsAtomicUnit
off
MaskPromptString
"Armature resistance|La|J|Kt|B"
MaskStyleString
"edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on"
MaskCallbackString
"||||"
MaskEnableString
"on,on,on,on,on"
MaskVisibilityString
"on,on,on,on,on"
MaskToolTipString
"on,on,on,on,on"
MaskVarAliasString
",,,,"
MaskVariables
"Ra=@1;La=@2;J=@3;Kt=@4;B=@5;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"2|5.2e-3|152e-6|0.1|0.0001"
System {
Name
"Subsystem"
Location
[90, 152, 644, 411]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"Va"
Position
[25, 88, 55, 102]
}
Block {
BlockType
Inport
Name
"Tl"
Position
[280, 28, 310, 42]
Port
"2"
}
Block {
BlockType
Gain
Name
"Gain"
Position
[250, 80, 280, 110]
Gain
"Kt"
}
Block {
BlockType
Gain
Name
"Gain2"
Position
[270, 185, 300, 215]
Orientation
"left"
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (7 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Gain
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
NamePlacement
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Position
Denominator
}
Block {
BlockType
Name
Position
Denominator
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
"Kt"
Sum
"Sum"
[2, 1]
[80, 85, 100, 105]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum1"
[2, 1]
[310, 85, 330, 105]
"alternate"
off
"round"
"-+|"
off
"Inherit via internal rule"
TransferFcn
"Transfer Fcn"
[145, 77, 205, 113]
"[La Ra]"
TransferFcn
"Transfer Fcn1"
[375, 77, 435, 113]
"[J B]"
Outport
"speed"
[495, 88, 525, 102]
Outport
"T"
[390, 33, 420, 47]
"2"
Outport
"Ia"
[240, 33, 270, 47]
"3"
"Sum"
1
"Transfer Fcn"
1
"Gain"
1
"Sum1"
2
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
"Transfer Fcn"
1
[10, 0]
"Gain"
1
[0, -55]
"Ia"
1
"Sum1"
1
[5, 0]
[0, -55]
"T"
1
"Transfer Fcn1"
1
"Transfer Fcn1"
1
[35, 0]
"speed"
1
[0, 105]
"Gain2"
1
"Tl"
1
[5, 0]
"Sum1"
1
"Va"
1
"Sum"
1
"Gain2"
1
[-175, 0]
"Sum"
2
}
}
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (9 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Block {
BlockType
SubSystem
Name
"Subsystem1"
Ports
[0, 1]
Position
[325, 162, 360, 198]
TreatAsAtomicUnit
off
MaskPromptString
"frekuensi|V peak"
MaskStyleString
"edit,edit"
MaskTunableValueString "on,on"
MaskCallbackString
"|"
MaskEnableString
"on,on"
MaskVisibilityString
"on,on"
MaskToolTipString
"on,on"
MaskVarAliasString
","
MaskVariables
"f=@1;v1=@2;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"33000|5"
System {
Name
"Subsystem1"
Location
[553, 276, 688, 358]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Reference
Name
"Repeating\nSequence"
Ports
[0, 1]
Position
[25, 25, 55, 55]
SourceBlock
"simulink/Sources/Repeating\nSequence"
SourceType
"Repeating table"
rep_seq_t
"[0 1/(2*f) 1/f]"
rep_seq_y
"[-v1 v1 -v1]"
}
Block {
BlockType
Outport
Name
"Out1"
Position
[80, 33, 110, 47]
}
Line {
SrcBlock
"Repeating\nSequence"
SrcPort
1
DstBlock
"Out1"
DstPort
1
}
}
}
Block {
BlockType
Sum
Name
"Sum"
Ports
[2, 1]
Position
[100, 95, 120, 115]
ShowName
off
IconShape
"round"
Inputs
"|+-"
InputSameDT
off
OutDataTypeMode
"Inherit via internal rule"
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl (10 von 14) [17.05.2005 17:12:11]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Sum
"Sum1"
[2, 1]
[290, 95, 310, 115]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum2"
[2, 1]
[430, 95, 450, 115]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum3"
[2, 1]
[470, 235, 490, 255]
off
"round"
"-+|"
off
"Inherit via internal rule"
Sum
"Sum4"
[2, 1]
[560, 145, 580, 165]
off
"round"
"+|-"
off
"Inherit via internal rule"
ToWorkspace
"To Workspace"
[910, 115, 970, 145]
"speed"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace1"
[800, 75, 860, 105]
"torque"
"inf"
"-1"
"Array"
ToWorkspace
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Block {
BlockType
Name
Position
VariableName
MaxDataPoints
SampleTime
SaveFormat
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
"To Workspace2"
[445, 25, 505, 55]
"vtri"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace3"
[485, 290, 545, 320]
"vc"
"inf"
"-1"
"Array"
ToWorkspace
"To Workspace4"
[495, 370, 555, 400]
"vc_m"
"inf"
"-1"
"Array"
"PID Controller"
1
[10, 0]
[20, 0]
[-5, 0]
"Gain"
1
"Sum2"
1
[0, 200]
"To Workspace3"
1
"Step1"
1
[50, 0]
"Subsystem"
2
"Sum2"
1
"Relay"
1
"Subsystem1"
1
[45, 0]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
[30, 0]
[40, 0]
"Sum3"
1
"Sum2"
2
[0, -140]
"To Workspace2"
1
"Signal\nGenerator"
1
"Sum"
1
"Sum"
1
"PID Controller1"
1
"PID Controller1"
1
"Saturation1"
1
"Sum1"
1
"PID Controller"
1
"Saturation1"
1
"Sum1"
1
"Subsystem"
1
[120, 0]
[0, 295; -755, 0]
"Sum"
2
"To Workspace"
1
"Gain"
1
[5, 0]
http://encon.fke.utm.my/courses/mep1422/dc_m2_large_torque.mdl
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
"Sum3"
2
[0, 140]
"To Workspace4"
1
"Relay"
1
[35, 0]
"Sum4"
1
"Sum3"
1
"Relay1"
1
"Relay1"
1
[15, 0]
"Sum4"
2
"Sum4"
1
[50, 0; 0, -20]
"Subsystem"
1
"Subsystem"
2
[30, 0]
[10, 0]
"To Workspace1"
1
}
}
c
x
s =
s
f
p
2
2 f
p
rad/ s
(1 )
(2 )
s =
s r
s
(3 )
(4 )
Vs = R s Is + j(2 f)Lls + E a g
(5 )
(6 )
Oleh it u , p er s a m a a n u n t u k lit a r r ot or ia la h :
E r = s E a g = R r Ir + js (2 f)Llr
(7 )
J ik a k ed u a -d u a b ela h p er s a m a a n d ib a h a gi d en ga n s ,
E ag =
Rs
Rr
Ir + j(2 f )L lr
s
Is
(8 )
Llr
Lls
Ir
+
Lm
Vs
E ag
Im
Rr
s
Lit a r s et a r a p er fa s a
Rs
Rr
Lls
Llr
Lm
s
Rin t a n ga n b elit a n s t a t or
Rin t a n ga n p en ga lir r ot or
Kea r u h a n b ocor b elit a n s t a t or
Kea r u h a n b ocor b elit a n r ot or
Kea r u h a n k em a gn et a n
gelin cir a n
Pa g = 3 I 2r
Rr
s
3 I 2r R r
Hila n g
p a d a Rr
3 I 2r
Rr
[1 s ]
s
Ditu k a r k ep a d a k u a s a m ek a n ik a l
P m = (1 - s )P a g
s s = s - r
r = (1 -s )s
P a g = Tem s
Tem =
Oleh it u
J ik a
Ir =
Vs
Rs +
Rr
+ j(X ls + X lr )
s
Tem =
Pa g
s
3 I 2r R r
s s
Vs2
3R r
2
s s
R
2
R s + r + (X ls + X lr )
s
Tm ,r a t ed
r a t ed s
0
1
sm =
Rr
R s + (X ls + X lr )
2
Tm a x =
Vs2
3
s s R R 2 + (X + X )2
s
ls
lr
s
3
(ii)
T
TL
(iii)
Va r ia b le m a gn it u d e va r ia b le fr equ en cy
Ma gn it u d volt a n b ek a la n d it u k a r b er k a d a r a n d en ga n fr ek u en s i d a n m er u p a k a n k a ea d a h ya n g
p a lin g p op u la r d igu n a k a n d a la m p em a cu k a wa la n la ju m ot or a r u h a n . Un t u k s ya n g k ecil d a n
a g ya n g t et a p , b oleh d it u n ju k k a n h u b u n ga n d i a n t a r a d a ya k ila s d a n la ju gelin cir a n (s lip s p eed )
a d a la h lin ea r
Un t u k m en gek a lk a n flu k s s ela u d a r a p a d a n ila i k a d a r a n , b ila volt a n d iu b a h , fr ek u en s i ju ga
p er lu d iu b a h :
E a g = k f a g
Oleh u n t u k m en gh a s ilk a n a g ya n g m a la r p a d a n ila i k a d a r a n , n is b a h
E ag
f
k eja t u h a n volt a n p a d a R s d a n Xls a d a la h k ecil d ib a n d in gk a n d en ga n Vs ,
E ag
f
h a r u s la h m a la r . J ik a
Vs
f
Vs , r a t ed
f
fr a t ed
Bila la ju k ecil, k eja t u h a n volt a n oleh R s d a n Xls a d a la h b es a r jik a d ib a n d in gk n d en ga n Vs . Oleh
it u k eb ia s a a n n ya Vs d in a ik k a n leb ih b es a r s ed ik it (b oos t ) s em a s a fr equ en s i r en d a h
Cir i T- b ila m a gn it u d Vs d a n f d iu b a h b er k a d a r a n
T
TL
T,r a t ed
r ,r a t ed
Vs
s ,r a t ed
Ba ga im a n a k a h m a gn it u d d a n fr ek u en s i d ik a wa l s er en t a k ?
Men ggu n a k a n Pu ls e Wid t h Mod u la t ion (PWM) In ver t er
Fixed AC.
ACDC
(r ect ifier )
PWM in ver t er
IM
Va r ia b le volt a ge
Va r ia b le fr eq.
Con t r ol
(f a n d V)
Ex am ple 1
4 0 0 V,
Rs = 2 ,
5 0 Hz
Rr = 3 ,
4 SROH
1370 rpm
Xls = Xlr = 3 .5
3 0 Hz
Tr a t ed
0 .8 Tr a t ed
Ra ted
s lip
s p eed
1500
Ns lip ,0 .8
Tr a t ed
Ns lip , r a t ed
0 . 8 Tr a t ed
N s lip ,0 . 8
Ns lip , 0 . 8 =
0 . 8 Tr a t ed
Ns lip , r a t ed = 0 . 8 (1 3 0 ) = 1 0 4 r p m
Tr a t ed
Pa d a 3 0 Hz, la ju s eger a k ia la h 3 0 x 6 0 = 1 8 0 0 / 2 = 9 0 0 r p m
6
Nr = Ns 1s lip = 9 0 0 0 4 = 7 9 6 r p m
(b )
5 0 Hz
? Hz
Tr a t ed
Ns
1000
1370
1500
Ns = 1 3 0 + 1 0 0 0 = 1 1 3 0 r p m
Ns =
2
f 60
p
f = 3 7 .6 7 Hz
(c)
5 0 Hz
4 0 Hz
Tr a t ed
T=?
1100
Ns
Ns lip
Ns =
2
f 60
p
Ns = 1 2 0 0 r p m
1370
1500
Tr a t ed
T
=
130
100
Tr a t ed d ip er oleh i d a r i :
T = 0 .7 6 9 Tr a t ed
Tem =
Tr a t ed = ?
3Rr
Vs2
2
s s
R
2
R s + r + (X ls + X lr )
s
Tr a t ed = 3 8 .0 6 Nm
Da ya k ila s p a d a 4 0 Hz, la ju 1 1 0 0 r p m ia la h T = 0 .7 6 9 (3 8 .0 6 ) = 2 9 .2 6 7 Nm
Example 2
A 4pole, 3-phase, 50 Hz IM, 1460 rpm has a rated torque of 20 Nm. It is used
to drive a load with characteristic given by TL = K2 , such that the speed
equals rated value at rated torque. If a constant V/Hz control method is used,
find the speed of motor at 0.5 rated torque.
If the starting torque of 1.1 times the rated is required, what should be the
starting frequency?
5 0 Hz
TL(Nm)
TL = K 2
Trated
0.5 Trated
Zsyn,r
(rad/s)
Zr,r
slip,r = 1500 1460 = 40 rpm
a)
or
4.19 rad/s
1460 rpm
152.9 rad/s
20 = K(152.9)2
Zslip,r
K = 20/(152.9)2
TL =
20
2
1 5 2 .9 2
Te = 4 . 7 7 s yn 4 . 7 7 r
1 0 = 4 . 7 7 s yn 4 . 7 7 (1 0 8 . 1 1 )
syn = 110.2 f = 35 Hz
5 0 Hz
TL(Nm)
TL = K 2
1.1(Trated)
Trated
Zsyn,r
(rad/s)
Zslip = Zsyn
Zr,r
1 . 1 T r a t ed
T
= r a t ed
s lip
4 .1 9
At start-up,
s lip = s yn
s yn = 4 . 1 9 (1 . 1 ) = 4 . 6 1
Zslip,r
SCALAR CONTROL OF IM
We have seen that applying balanced, sinusoidal 3-phase supply to a 3-phase
sinusoidally distributed winding produces a rotating mmf wave and hence
rotating magnetic flux. The rotating magnetic flux will induce emf on the
rotor circuit, which is shorted for squirell cage rotor. Rotor current will
flow and interact with the rotating flux, producing torque.
Rs
Lr l
Ls l
Eg
Lm
Im
Rr/ s
speedrad/s
torque - Nm
Simulation results with constant V/f
10
Im =
j L lr +
Rr
s
j (L lr + L m ) +
I1 =
Rr
s
j (L lr + L m ) +
j L lr +
Rr
s
I1
Rr
s I
m
I1 =
I1 =
j L r +
r
j
1 + r
Rr
s
R
L r + r
j s lip Tr + 1
r
j s lip
1 + r
Tr + 1
Im
Im ,
11
For low cost, low performance drive, open-loop constant V/f control is
normally employed. With open-loop speed control, the rotor speed will be less
than the synchronous speed by slip speed. In other words, the desired speed,
*, will differ from the actual speed by slip speed. The slip speed on the
other hand, depends on load. To improve the performance or the speed
regulation, slip speed can be estimated and added to the reference speed
slip compensation technique. Typical arrangement is shown below:
Rectifier
3-phase
supply
VSI
IM
Ramp
+
+
Slip speed
calculator
Pulse
Width
Modulator
+
Vboost
Vdc Idc
12
Pag is estimated by subtracting the input DC power with the inverter and stator
copper losses.
The reference and actual speed are compared. The error is fed to the speed
controller which defines the inverter frequency. The current limit is
activated only when current exceeds the maximum allowable value. The signal
generated by the current limit block will reduce the rate by which the
inverter frequency is increased. This is to avoid the frequency from reaching
the breakdown frequency.
Further readings:
Power Electronic Control of AC Motors J.M.D. Murphy and F.G. Turnbull,
Pergamon Press
13
System equations
Figure 1 shows the conceptual representation of a 3-phase, 2 poles induction machine. The
magnetic axis of each winding is represented by an inductor symbol. As usual the angles
between windings of each phase are 120o. The angle between rotors phase a axis and
stators phase a axis is given by r. The equation describing the stator and rotor
circuits can be written as:
vabcs = Rsiabcs + d(
abcs)/dt
(1)
vabcr = Rriabcr + d(
abr)/dt
(2)
where,
v as
v abcs = v bs
v cs
ias
iabcs = ibs
ics
abcs =
as
bs
cs
and v abcr =
v ar
v br
v cr
iar
iabcr = ibr
icr
abcs =
ar
br
cr
It is clear that since the displacements between various windings of all the phases are
non-quadrature, there exists magnetic coupling between them. The stator and rotor flux
linkages (abcs and abcs)of equations (1) and (2) are contributed by the stator and rotor
currents. Thus:
(3)
(4)
stator, b
rotor, a
r
rotor, b
stator, a
= 0
rotor, c
Figure 1
stator, c
abcs,s and abcs,r are the components of the stator flux linkage caused by stator and rotor
currents (phase a, b and c) respectively, and, abcr,r and abcr,s are the components of the
rotor flux linkage caused by rotor and stator currents (phase a, b and c) respectively
These flux linkages can be written in terms of the inductances and respective currents.
abcs,s
Las,br
Las,cr iar
abcs,r = L bs,ar
L bs,br
L bs,cr ibr
Lcs,ar
Lcs,br
Lcs,cr icr
Lar
Labr
Lacr iar
abcr,r = Labr
L br
L bcr ibr
Lacr L bcr
Lcr
(5)
(6)
(7)
icr
Lar,as
abcr,s =
Lar,bs
Lar,cs ias
Lcr,bs
(8)
Lcr,cs ics
In equation (5), Las, Lbs and Lcs are the self inductances of phases a, b and c
respectively. The self inductance consists of magnetising and leakage inductance.
Las = Lms + Lls.
Labs, Lbcs, Lacs in equation (5), are the mutual inductances between stator phases.
For symmetrical winding, which is normally the case, magnetising and leakage as well as
mutual inductances for each phase are equal.
It can be shown that the magnetizing and the mutual inductances are given by:
L ms = o Ns2
rl
g
rl
g
L ms
2
(9)
L ms + Lls
abcs,s =
L
ms
2
L
ms
2
L ms
2
L ms + Lls
L ms
2
L ms
L ms
2
L ms + Lls
ias
ibs
(10)
ics
The mutual inductances between the stator and rotor windings in (6) and (8) depend on the
rotor position, r and it can be shown that they can be written as:
abcs,r
abcr,s
cos r + 2 3
cos r
cos r 2 3
cos r
Nr
=
L ms cos r + 2 3
Ns
cos r 2 3
cos r 2 3
cos r
cos r + 2 3
N
= r L ms
Ns
cos r
cos 2
(
cos(
(
(
)
+ 2 3)
)
)
(
(
cos r 2 3
cos r + 2 3
cos r
(
(
cos r + 2 3
cos r 2 3
cos r
)
)
iar
ibr
(11)
icr
)
)
ias
ibs
(12)
ics
If the permeability of the core is assumed infintely large, all the mmf drops will appear
across the airgap. Therefore, the stator airgap MMF of a sinusoidally distributed winding
for phase a can be written as:
N
as = s ias cos( )
(13)
2
is any angle where =0 coincide with the magnetic axis of stator winding phase a. is
the angle in which airgap mmf is maximum. ias is the stator phase a current. If = 0 then
equation (9) can be written as:
Ns
ias cos
(14)
2
Phases b and c are spatially separated from phase a by 120o. Thus airgap mmf of phase b
and c are given by:
as =
(15)
cs
(16)
abcs =
Ns
2
i bs cos(
)
2
3
N
2
= s ics cos( +
)
2
3
bs =
Ns
N
N
2
2
)
ias cos + s i bs cos(
) + s ics cos( +
2
2
3
2
3
(17)
Using Eulers identity and with some mathematical manupulation, it can be shown that:
abcs =
{(
Ns
ias + a2i bs + aics ej + ias + ai bs + a2ics e j
4
(18)
where a = ej(2/3)
This can be further reduced or written as:
3 Ns
ise j + is*ej
2 4
abcs =
(19)
The term is is defined as the space phasor or complex space vector of the stator current.
It is given by:
is =
2
ias + aibs + a2ics
3
(20)
The physical current can be obtained from the space phasor by separating the space phasor
into its real and imaginary part. In most cases we can assume that ias + ibs + ics = 0.
2
is =
(ias + ibs(cos 120 + j sin 120) + ics(cos 240 + j sin 240))
3
2
1
3
ias (ibs + ics) + j
(ibs ics)
3
2
2
= ias + j
Thus
1
(ibs ics)
3
ias = Re[is ]
(21)
[ ]
and
(22)
Similar definitions can be made to the stator voltage, rotor current, stator flux and
rotor flux. Equations (1) and (2) therefore can be written as:
vr = Rrir +
(23)
dr
dt
(24)
(25)
is obtained by multiplying second and third rows of (5) with a and a2 respectively.
Similarly,
shown that:
s = Ls is + L m ir'ejr
(26)
Nr
ir
Ns
Similarly, it can be shown that the rotor flux linkage can be written as:
(27)
rotating rotor reference frame. However, the d and q components of ir'ejr are expressed in
the stator stationary reference frame. This is illustrated in Figure 2. Therefore we can
define the rotor current referred to the stator stationary frame as
irs = ir'ejr
(28)
ss = Ls iss + L m irs
(29)
qs
ir'
ir' = i'rejr
irs = i'rej(r + r)
dr
isqr
r
r
r
Figure 2
ds
isdr
Similarly the term isejr in (27) is the stator current referred to rotating rotor frame.
This is illustrated in Figure 3.
qr
qs
is
js
is = ise
r
s
dr
j(s r)
= ise
Figure 3
irqs
irds
ds
Re-writing equations (23),(24),(26) and (27), the space vector equations to describe the
squirrel cage IM written in stationary stator frame can be written as follows:
vss = R s iss +
0 = R r irs +
dss
dt
(30a)
d rs
jr rs
dt
(31a)
ss = Ls iss + L m irs
(32a)
rs = Lr irs + L m iss
(33a)
vsg = R s isg +
0 = R r irg +
dsg
+ jg sg
dt
(30b)
d rg
+ j(g r) rg
dt
(31b)
sg = Ls isg + L m irg
(32b)
rg = Lr irg + L m isg
(33b)
Torque equation
The product of the stator voltage and conjugate stator current space vectors is given by:
) (
2
2
v as + av bs + a2v cs
ias + a2ibs + aics
3
3
vs is* =
(34)
After some mathematical manipulations, with the three phase currents sum to zero, it can
be shown that:
Re vs is* =
2
(v asias + v bsibs + v csics )
3
(35)
For a three phase induction machine without a neutral return, the power into the machine
can be written as:
Pe =
( [
3
Re vs is*
2
]) + 32 (Re[v i ])
' *'
r r
(36)
Replacing the voltage vectors expressed in rotating general reference frame, it can be
shown that equation (36) can be expressed as:
Pe =
2
2
2
2
2
L'
3
3
3 Lls
rs is + rr ir' +
p
is + lr ir' + L m is + ir'
2
2
2
2
2
2
2
3
+ Re j(Lls + L m )is + L m ir is* + j( r)(Lls + L m )ir'
+ L misi'*
r
2
(37)
Pmech =
2
2
3
Re j(Lls + L m )is + L m ir is* + j( r)(Lls + L m )ir' + L misi'*
r
2
(38)
The first and third terms of (38) have only imaginary components. Thus,
Pmech =
{ [
{ [
3
3
Re j(L m ir is* + j( r)L misi'*
=
Re j(L m ir is* + L misi'*
jrL misi'*
r
r
r
2
2
(39)
Pmech =
3
Re jrL misi'*
r
2
(40)
Pmech =
3
Im rL misi'*
r
2
(41)
OR
Pmech =
3
rL m iqsi'dr idsi'qr
2
(42)
The mechanical power is the product of torque and speed, and the mechanical rotor speed is
related to the rotor speed as r = (p/2)rm , thus from (42)
Te =
3 p
L m iqsi'dr idsi'qr
2 2
(43)
v sd
v sq
v rd
v rq
R s + sLs
0
sL m
rL m
0
R s + sLs
rL m
sL m
isd
isq
ird
2
m
1
Lr Ls
irq
sL m
0
R r + sLr
rLr
isd
i
sq
ird
irq
(44)
R sL r
r L2misq
R rL m
r L m L r
L
R sL m
r L m Ls
R sLr
r L m Ls
R sL m
r L m L r
R r Ls
r L r Ls
R rL m
r Lr Ls
R r Ls
2
r m
0
sL m
rLr
R r + sLr
isd
i
sq
ird
irq
2
m
Lr
0
Lm
0
1
Lr Ls
0
Lr
0
Lm
v sd
v sq
(45)
Equations (43),(45) along with the mechanical torque equation, can be used to simulate the
IM using SIMULINK. The SIMULINK blocks used to simulate the IM is shown in Figure 4.
1
1
isd
Va
Vd
2
q
Mux
Mux
3to2
Vb
In1
Out1
isq
Demux
IM1
Demux
3
ird
6
irq
8
Te
Vc
7
-K-
Vq
-KGain2
4
speed
1/s
Integrator
1/J
T load
Sum
Constant
-K1/J1
-KGain1
Figure 4
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Model {
Name
"constant_vhz"
Version
5.0
SaveDefaultBlockParams on
SampleTimeColors
off
LibraryLinkDisplay
"none"
WideLines
off
ShowLineDimensions
off
ShowPortDataTypes
off
ShowLoopsOnError
on
IgnoreBidirectionalLines off
ShowStorageClass
off
ExecutionOrder
off
RecordCoverage
off
CovPath
"/"
CovSaveName
"covdata"
CovMetricSettings
"dw"
CovNameIncrementing
off
CovHtmlReporting
on
covSaveCumulativeToWorkspaceVar on
CovSaveSingleToWorkspaceVar on
CovCumulativeVarName
"covCumulativeData"
CovCumulativeReport
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
MinMaxOverflowArchiveMode "Overwrite"
BlockNameDataTip
off
BlockParametersDataTip off
BlockDescriptionStringDataTip off
ToolBar
on
StatusBar
on
BrowserShowLibraryLinks off
BrowserLookUnderMasks
off
Created
"Tue Oct 01 11:07:25 2002"
UpdateHistory
"UpdateHistoryNever"
ModifiedByFormat
"%<Auto>"
ModifiedDateFormat
"%<Auto>"
LastModifiedDate
"Mon Sep 13 15:37:48 2004"
ModelVersionFormat
"1.%<AutoIncrement:14>"
ConfigurationManager
"none"
SimParamPage
"Solver"
LinearizationMsg
"none"
Profile
off
ParamWorkspaceSource
"MATLABWorkspace"
AccelSystemTargetFile
"accel.tlc"
AccelTemplateMakefile
"accel_default_tmf"
AccelMakeCommand
"make_rtw"
TryForcingSFcnDF
off
ExtModeMexFile
"ext_comm"
ExtModeBatchMode
off
ExtModeTrigType
"manual"
ExtModeTrigMode
"normal"
ExtModeTrigPort
"1"
ExtModeTrigElement
"any"
ExtModeTrigDuration
1000
ExtModeTrigHoldOff
0
ExtModeTrigDelay
0
ExtModeTrigDirection
"rising"
ExtModeTrigLevel
0
ExtModeArchiveMode
"off"
ExtModeAutoIncOneShot
off
ExtModeIncDirWhenArm
off
ExtModeAddSuffixToVar
off
ExtModeWriteAllDataToWs off
ExtModeArmWhenConnect
on
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (1 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
ExtModeSkipDownloadWhenConnect off
ExtModeLogAll
on
ExtModeAutoUpdateStatusClock on
BufferReuse
on
RTWExpressionDepthLimit 5
SimulationMode
"normal"
Solver
"ode5"
SolverMode
"Auto"
StartTime
"0.0"
StopTime
"1000"
MaxOrder
5
MaxStep
"0.0001"
MinStep
"0.00001"
MaxNumMinSteps
"-1"
InitialStep
"0.00001"
FixedStep
"10e-6"
RelTol
"1e-3"
AbsTol
"auto"
OutputOption
"RefineOutputTimes"
OutputTimes
"[]"
Refine
"1"
LoadExternalInput
off
ExternalInput
"[t, u]"
LoadInitialState
off
InitialState
"xInitial"
SaveTime
off
TimeSaveName
"t"
SaveState
off
StateSaveName
"xout"
SaveOutput
off
OutputSaveName
"yout"
SaveFinalState
off
FinalStateName
"xFinal"
SaveFormat
"Array"
Decimation
"1"
LimitDataPoints
off
MaxDataPoints
"10000000"
SignalLoggingName
"sigsOut"
ConsistencyChecking
"none"
ArrayBoundsChecking
"none"
AlgebraicLoopMsg
"warning"
BlockPriorityViolationMsg "warning"
MinStepSizeMsg
"warning"
InheritedTsInSrcMsg
"warning"
DiscreteInheritContinuousMsg "warning"
MultiTaskRateTransMsg
"error"
SingleTaskRateTransMsg "none"
CheckForMatrixSingularity "none"
IntegerOverflowMsg
"warning"
Int32ToFloatConvMsg
"warning"
ParameterDowncastMsg
"error"
ParameterOverflowMsg
"error"
ParameterPrecisionLossMsg "warning"
UnderSpecifiedDataTypeMsg "none"
UnnecessaryDatatypeConvMsg "none"
VectorMatrixConversionMsg "none"
InvalidFcnCallConnMsg
"error"
SignalLabelMismatchMsg "none"
UnconnectedInputMsg
"warning"
UnconnectedOutputMsg
"warning"
UnconnectedLineMsg
"warning"
SfunCompatibilityCheckMsg "none"
RTWInlineParameters
off
BlockReductionOpt
off
BooleanDataType
off
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (2 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
ConditionallyExecuteInputs on
ParameterPooling
on
OptimizeBlockIOStorage on
ZeroCross
on
AssertionControl
"UseLocalSettings"
ProdHWDeviceType
"Microprocessor"
ProdHWWordLengths
"8,16,32,32"
RTWSystemTargetFile
"grt.tlc"
RTWTemplateMakefile
"grt_default_tmf"
RTWMakeCommand
"make_rtw"
RTWGenerateCodeOnly
off
RTWRetainRTWFile
off
TLCProfiler
off
TLCDebug
off
TLCCoverage
off
TLCAssertion
off
BlockDefaults {
Orientation
"right"
ForegroundColor
"black"
BackgroundColor
"white"
DropShadow
off
NamePlacement
"normal"
FontName
"Helvetica"
FontSize
10
FontWeight
"normal"
FontAngle
"normal"
ShowName
on
}
BlockParameterDefaults {
Block {
BlockType
Constant
Value
"1"
VectorParams1D
on
ShowAdditionalParam
off
OutDataTypeMode
"Inherit from 'Constant value'"
OutDataType
"sfix(16)"
ConRadixGroup
"Use specified scaling"
OutScaling
"2^0"
}
Block {
BlockType
Demux
Outputs
"4"
DisplayOption
"none"
BusSelectionMode
off
}
Block {
BlockType
ElementaryMath
Operator
"sin"
}
Block {
BlockType
Gain
Gain
"1"
Multiplication
"Element-wise(K.*u)"
ShowAdditionalParam
off
ParameterDataTypeMode
"Same as input"
ParameterDataType
"sfix(16)"
ParameterScalingMode
"Best Precision: Matrix-wise"
ParameterScaling
"2^0"
OutDataTypeMode
"Same as input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (3 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Block {
BlockType
Inport
Port
"1"
PortDimensions
"-1"
SampleTime
"-1"
ShowAdditionalParam
off
LatchInput
off
DataType
"auto"
OutDataType
"sfix(16)"
OutScaling
"2^0"
SignalType
"auto"
SamplingMode
"auto"
Interpolate
on
}
Block {
BlockType
Integrator
ExternalReset
"none"
InitialConditionSource "internal"
InitialCondition
"0"
LimitOutput
off
UpperSaturationLimit
"inf"
LowerSaturationLimit
"-inf"
ShowSaturationPort
off
ShowStatePort
off
AbsoluteTolerance
"auto"
ZeroCross
on
}
Block {
BlockType
Mux
Inputs
"4"
DisplayOption
"none"
}
Block {
BlockType
Outport
Port
"1"
OutputWhenDisabled
"held"
InitialOutput
"[]"
}
Block {
BlockType
Product
Inputs
"2"
Multiplication
"Element-wise(.*)"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Same as first input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
RateLimiter
RisingSlewLimit
"1"
FallingSlewLimit
"-1"
LinearizeAsGain
on
}
Block {
BlockType
Scope
Floating
off
ModelBased
off
TickLabels
"OneTimeTick"
ZoomMode
"on"
Grid
"on"
TimeRange
"auto"
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (4 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
YMin
YMax
SaveToWorkspace
SaveName
LimitDataPoints
MaxDataPoints
Decimation
SampleInput
SampleTime
"-5"
"5"
off
"ScopeData"
on
"5000"
"1"
off
"0"
}
Block {
BlockType
"S-Function"
FunctionName
"system"
PortCounts
"[]"
SFunctionModules
"''"
}
Block {
BlockType
SubSystem
ShowPortLabels
on
Permissions
"ReadWrite"
RTWSystemCode
"Auto"
RTWFcnNameOpts
"Auto"
RTWFileNameOpts
"Auto"
SimViewingDevice
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
}
Block {
BlockType
Sum
IconShape
"rectangular"
Inputs
"++"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Same as first input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Switch
Criteria
"u2 >= Threshold"
Threshold
"0"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Inherit via internal rule"
RndMeth
"Floor"
SaturateOnIntegerOverflow on
ZeroCross
on
}
}
AnnotationDefaults {
HorizontalAlignment
VerticalAlignment
ForegroundColor
BackgroundColor
DropShadow
FontName
FontSize
FontWeight
FontAngle
}
LineDefaults {
FontName
"center"
"middle"
"black"
"white"
off
"Helvetica"
10
"normal"
"normal"
"Helvetica"
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
FontSize
FontWeight
FontAngle
9
"normal"
"normal"
}
System {
Name
"constant_vhz"
Location
[2, 82, 790, 584]
Open
on
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
ReportName
"simulink-default.rpt"
Block {
BlockType
Constant
Name
"Constant"
Position
[35, 121, 75, 139]
Value
"50"
}
Block {
BlockType
SubSystem
Name
"Constant V/Hz"
Ports
[2, 3]
Position
[270, 88, 335, 172]
TreatAsAtomicUnit
off
MaskPromptString
"Vm at rated frequency"
MaskStyleString
"edit"
MaskTunableValueString "on"
MaskEnableString
"on"
MaskVisibilityString
"on"
MaskToolTipString
"on"
MaskVariables
"Vm=@1;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"240"
System {
Name
"Constant V/Hz"
Location
[2, 70, 798, 552]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"88"
Block {
BlockType
Inport
Name
"In1"
Position
[30, 93, 60, 107]
}
Block {
BlockType
Inport
Name
"boost"
Position
[20, 403, 50, 417]
Port
"2"
}
Block {
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (6 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
BlockType
Name
Position
Value
Constant
"Constant1"
[195, 371, 235, 389]
"(2*pi)/3"
}
Block {
BlockType
SubSystem
Name
"Dot Product1"
Ports
[2, 1]
Position
[400, 307, 430, 343]
TreatAsAtomicUnit
off
MaskType
"Dot Product"
MaskDescription
"Inner (dot) product.\ny=sum(u1.*u2)
"
MaskHelp
"Computes the inner (dot) product of the inp"
"uts: sum(u1.*u2). The inputs are vectors of the same length. Output is a sca"
"lar."
MaskInitialization
"t=(0:.1:2*pi)';\nx=cos(t);\ny=sin(t);"
MaskDisplay
"plot(0,0,1,1,x*[0.025 0.07]+0.5,y*[0.025 0."
"07]+0.5)"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"normalized"
System {
Name
"Dot Product1"
Location
[33, 479, 253, 634]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_1"
Position
[15, 25, 35, 45]
}
Block {
BlockType
Inport
Name
"in_2"
Position
[15, 90, 35, 110]
Port
"2"
}
Block {
BlockType
Product
Name
"Product"
Ports
[2, 1]
Position
[65, 55, 90, 75]
}
Block {
BlockType
Sum
Name
"Sum"
Ports
[1, 1]
Position
[125, 55, 145, 75]
Inputs
"+"
}
Block {
BlockType
Outport
Name
"out_1"
Position
[185, 55, 205, 75]
InitialOutput
"0"
}
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (7 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"Sum"
1
"out_1"
1
"Product"
1
"Sum"
1
"in_1"
1
"Product"
1
"in_2"
1
"Product"
2
}
}
Block {
BlockType
SubSystem
Name
"Dot Product2"
Ports
[2, 1]
Position
[340, 72, 370, 108]
TreatAsAtomicUnit
off
MaskType
"Dot Product"
MaskDescription
"Inner (dot) product.\ny=sum(u1.*u2)
"
MaskHelp
"Computes the inner (dot) product of the inp"
"uts: sum(u1.*u2). The inputs are vectors of the same length. Output is a sca"
"lar."
MaskInitialization
"t=(0:.1:2*pi)';\nx=cos(t);\ny=sin(t);"
MaskDisplay
"plot(0,0,1,1,x*[0.025 0.07]+0.5,y*[0.025 0."
"07]+0.5)"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"normalized"
System {
Name
"Dot Product2"
Location
[33, 479, 253, 634]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_1"
Position
[15, 25, 35, 45]
}
Block {
BlockType
Inport
Name
"in_2"
Position
[15, 90, 35, 110]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (8 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Port
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"2"
Product
"Product"
[2, 1]
[65, 55, 90, 75]
Sum
"Sum"
[1, 1]
[125, 55, 145, 75]
"+"
Outport
"out_1"
[185, 55, 205, 75]
"0"
"in_2"
1
"Product"
2
"in_1"
1
"Product"
1
"Product"
1
"Sum"
1
"Sum"
1
"out_1"
1
}
}
Block {
BlockType
SubSystem
Name
"Dot Product3"
Ports
[2, 1]
Position
[385, 467, 415, 503]
TreatAsAtomicUnit
off
MaskType
"Dot Product"
MaskDescription
"Inner (dot) product.\ny=sum(u1.*u2)
"
MaskHelp
"Computes the inner (dot) product of the inp"
"uts: sum(u1.*u2). The inputs are vectors of the same length. Output is a sca"
"lar."
MaskInitialization
"t=(0:.1:2*pi)';\nx=cos(t);\ny=sin(t);"
MaskDisplay
"plot(0,0,1,1,x*[0.025 0.07]+0.5,y*[0.025 0."
"07]+0.5)"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"normalized"
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (9 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
System {
Name
Location
Open
ModelBrowserVisibility
ModelBrowserWidth
ScreenColor
PaperOrientation
PaperPositionMode
PaperType
PaperUnits
ZoomFactor
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
"Dot Product3"
[33, 479, 253, 634]
off
off
200
"white"
"landscape"
"auto"
"usletter"
"inches"
"100"
Inport
"in_1"
[15, 25, 35, 45]
Inport
"in_2"
[15, 90, 35, 110]
"2"
Product
"Product"
[2, 1]
[65, 55, 90, 75]
Sum
"Sum"
[1, 1]
[125, 55, 145, 75]
"+"
Outport
"out_1"
[185, 55, 205, 75]
"0"
"in_2"
1
"Product"
2
"in_1"
1
"Product"
1
"Product"
1
"Sum"
1
"Sum"
1
"out_1"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
}
}
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
ElementaryMath
"Elementary\nMath"
[1, 1]
[275, 85, 305, 115]
ElementaryMath
"Elementary\nMath1"
[1, 1]
[335, 320, 365, 350]
ElementaryMath
"Elementary\nMath2"
[1, 1]
[320, 480, 350, 510]
Gain
"Gain"
[150, 85, 180, 115]
"2*pi"
Gain
"Gain1"
[150, 25, 180, 55]
"Vm/50"
Gain
"Gain2"
[170, 320, 200, 350]
"2*pi"
Gain
"Gain3"
[170, 235, 200, 265]
"Vm/50"
Gain
"Gain4"
[160, 480, 190, 510]
"2*pi"
Gain
"Gain5"
[160, 420, 190, 450]
"Vm/50"
Integrator
"Integrator"
[1, 1]
[210, 85, 240, 115]
Integrator
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
"Integrator1"
[1, 1]
[230, 320, 260, 350]
Integrator
"Integrator2"
[1, 1]
[220, 480, 250, 510]
Sum
"Sum"
[2, 1]
[285, 325, 305, 345]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum1"
[2, 1]
[285, 485, 305, 505]
off
"round"
"++|"
off
"Inherit via internal rule"
Sum
"Sum2"
[2, 1]
[275, 240, 295, 260]
off
"round"
"++|"
off
"Inherit via internal rule"
Sum
"Sum3"
[2, 1]
[245, 30, 265, 50]
off
"round"
"++|"
off
"Inherit via internal rule"
Sum
"Sum4"
[2, 1]
[325, 425, 345, 445]
off
"round"
"++|"
off
"Inherit via internal rule"
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Outport
"Out1"
[395, 83, 425, 97]
Outport
"Out2"
[455, 318, 485, 332]
"2"
Outport
"Out3"
[440, 478, 470, 492]
"3"
"Integrator"
1
"Elementary\nMath"
1
"Elementary\nMath"
1
"Dot Product2"
2
"Gain"
1
"Integrator"
1
"Elementary\nMath1"
1
"Dot Product1"
2
"Gain2"
1
"Integrator1"
1
"Elementary\nMath2"
1
"Dot Product3"
2
"Gain4"
1
"Integrator2"
1
"Sum"
1
"Elementary\nMath1"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Branch {
Points
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Branch {
Points
"Integrator1"
1
"Sum"
1
"Constant1"
1
[0, 0; 55, 0]
[0, -20]
"Sum"
2
[5, 0; 0, 90]
"Sum1"
1
"Sum1"
1
"Elementary\nMath2"
1
"Integrator2"
1
"Sum1"
2
"In1"
1
[0, 0; 15, 0]
[15, 0]
"Gain"
1
[0, -60]
"Gain1"
1
[0, 235]
[35, 0]
[0, -85]
"Gain3"
1
"Gain2"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
"Gain4"
1
[0, -60]
"Gain5"
1
}
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
"Dot Product2"
1
"Out1"
1
"Dot Product1"
1
"Out2"
1
"Dot Product3"
1
"Out3"
1
"Gain3"
1
"Sum2"
2
"Sum2"
1
[40, 0; 0, 65]
"Dot Product1"
1
"Gain1"
1
"Sum3"
2
"Sum3"
1
[25, 0; 0, 40]
"Dot Product2"
1
"Gain5"
1
"Sum4"
2
"Sum4"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
}
[10, 0; 0, 40]
"Dot Product3"
1
"boost"
1
[70, 0]
"Sum4"
1
[0, -220]
[0, -175]
"Sum3"
1
[160, 0]
"Sum2"
1
}
}
Block {
BlockType
Constant
Name
"Constant1"
Position
[60, 280, 90, 300]
Value
"50"
}
Block {
BlockType
Constant
Name
"Constant2"
Position
[60, 230, 90, 250]
Value
"0"
}
Block {
BlockType
Gain
Name
"Gain"
Position
[335, 35, 365, 65]
Gain
"(2*pi)/2"
}
Block {
BlockType
SubSystem
Name
"Induction Machine"
Ports
[3, 8]
Position
[470, 63, 525, 192]
TreatAsAtomicUnit
off
MaskPromptString
"Stator resistance (ohm)|Rotor resistance (ohm)|"
"Stator self inductance (H)|Rotor self inductance (H)|Mutual Inductance (H)|No"
" of poles|Moment of inertia (kg.m^2)|Load torque (Nm)|Load constant"
MaskStyleString
"edit,edit,edit,edit,edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on,on,on,on,on"
MaskCallbackString
"||||||||"
MaskEnableString
"on,on,on,on,on,on,on,on,on"
MaskVisibilityString
"on,on,on,on,on,on,on,on,on"
MaskToolTipString
"on,on,on,on,on,on,on,on,on"
MaskVarAliasString
",,,,,,,,"
MaskVariables
"Rs=@1;Rr=@2;Ls=@3;Lr=@4;Lm=@5;pole=@6;J=@7;Tloa"
"d=@8;load_C=@9;"
MaskIconFrame
on
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (16 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
MaskIconOpaque
MaskIconRotate
MaskIconUnits
MaskValueString
on
"none"
"autoscale"
"5.5|4.51|306.5e-3|306.5e-3|291.9e-3|4|0.02|0.01"
"|0.1"
System {
Name
"Induction Machine"
Location
[2, 70, 798, 552]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"Va"
Position
[25, 40, 45, 60]
}
Block {
BlockType
Inport
Name
"Vb"
Position
[25, 120, 45, 140]
Port
"2"
}
Block {
BlockType
Inport
Name
"Vc"
Position
[25, 240, 45, 260]
Port
"3"
}
Block {
BlockType
Gain
Name
"1/J"
Position
[260, 292, 285, 318]
Orientation
"left"
Gain
"pole/(2*J)"
SaturateOnIntegerOverflow off
}
Block {
BlockType
SubSystem
Name
"3to2"
Ports
[3, 2]
Position
[105, 81, 135, 139]
ShowPortLabels
off
TreatAsAtomicUnit
off
System {
Name
"3to2"
Location
[4, 74, 628, 500]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_1"
Position
[15, 50, 35, 70]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (17 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Block {
BlockType
Name
Inport
"in_2"
[15, 115, 35, 135]
"2"
Inport
"in_3"
[15, 180, 35, 200]
"3"
Gain
"Gain3"
[120, 248, 160, 272]
"0.577"
Gain
"Gain4"
[120, 298, 160, 322]
"-0.577"
Gain
"Gain5"
[145, 143, 185, 167]
"-0.33333"
Gain
"Gain6"
[140, 183, 180, 207]
"-0.33333"
Gain
"Gain7"
[135, 63, 175, 87]
"0.66666"
Sum
"Ib"
[2, 1]
[240, 255, 260, 275]
Sum
"Ib1"
[3, 1]
[260, 87, 280, 123]
"+++"
Outport
"d"
[330, 60, 350, 80]
"0"
Outport
"q"
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
"Ib1"
1
[15, 0; 0, -35]
"d"
1
"Gain7"
1
[30, 0; 0, 20]
"Ib1"
1
"in_1"
1
[40, 0; 0, 15]
"Gain7"
1
"Gain6"
1
[30, 0; 0, -90]
"Ib1"
2
"Gain5"
1
[25, 0; 0, -40]
"Ib1"
3
"in_3"
1
[40, 0; 0, 5]
"Gain6"
1
[0, 115]
"Gain4"
1
"in_2"
1
[20, 0; 0, 30]
"Gain5"
1
[0, 105]
"Gain3"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"Gain3"
1
"Ib"
1
"Gain4"
1
[30, 0; 0, -40]
"Ib"
2
"Ib"
1
"q"
1
}
}
Block {
BlockType
Constant
Name
"Constant"
Position
[630, 306, 670, 324]
Orientation
"left"
Value
"Tload"
}
Block {
BlockType
Demux
Name
"Demux"
Ports
[1, 5]
Position
[420, 91, 460, 149]
Outputs
"5"
}
Block {
BlockType
Gain
Name
"Gain1"
Position
[150, 407, 175, 433]
Orientation
"left"
Gain
"2/pole"
}
Block {
BlockType
SubSystem
Name
"IM1"
Ports
[1, 1]
Position
[320, 106, 380, 134]
TreatAsAtomicUnit
off
System {
Name
"IM1"
Location
[248, 340, 468, 422]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"In1"
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (20 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Position
}
Block {
BlockType
Name
Ports
Position
FunctionName
Parameters
}
Block {
BlockType
Name
Position
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"S-Function"
"S-Function"
[1, 1]
[80, 25, 140, 55]
"imch"
"Rs, Rr, Ls,Lr,Lm,pole"
Outport
"Out1"
[165, 33, 195, 47]
"0"
"In1"
1
"S-Function"
1
"S-Function"
1
"Out1"
1
}
}
Block {
BlockType
Integrator
Name
"Integrator"
Ports
[1, 1]
Position
[360, 295, 380, 315]
Orientation
"left"
}
Block {
BlockType
Mux
Name
"Mux"
Ports
[3, 1]
Position
[260, 104, 290, 136]
Inputs
"3"
}
Block {
BlockType
Sum
Name
"Sum"
Ports
[3, 1]
Position
[440, 287, 460, 323]
Orientation
"left"
Inputs
"+--"
}
Block {
BlockType
Gain
Name
"load_C"
Position
[375, 367, 400, 393]
Gain
"load_C"
SaturateOnIntegerOverflow off
}
Block {
BlockType
Outport
Name
"isd"
Position
[630, 25, 650, 45]
InitialOutput
"0"
}
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl (21 von 28) [17.05.2005 17:15:21]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Outport
"isq"
[625, 70, 645, 90]
"2"
"0"
Outport
"ird"
[600, 140, 620, 160]
"3"
"0"
Outport
"speed"
[90, 410, 110, 430]
"left"
"4"
"0"
Outport
"Vd"
[265, 50, 285, 70]
"5"
"0"
Outport
"irq"
[595, 185, 615, 205]
"6"
"0"
Outport
"Vq"
[90, 285, 110, 305]
"left"
"7"
"0"
Outport
"Te"
[715, 230, 735, 250]
"8"
"0"
"Demux"
1
[60, 0; 0, -20]
"isq"
1
"Demux"
2
[65, 0; 0, -75]
"isd"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
"3to2"
2
[0, 0]
[0, 170]
"Vq"
1
[55, 0; 0, -15]
"Mux"
1
"3to2"
1
[0, 0; 25, 0]
[0, -35]
"Vd"
1
[30, 0; 0, 25]
"Mux"
2
"Demux"
5
[45, 0; 0, 145]
[0, 15; -35, 0]
"Sum"
1
[70, 0; 0, -45]
"Te"
1
"Vc"
1
[20, 0; 0, -120]
"3to2"
3
"Vb"
1
[20, 0; 0, -20]
"3to2"
2
"Va"
1
[20, 0; 0, 40]
"3to2"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
"1/J"
1
[0, 0; -25, 0]
[0, -175]
"Mux"
3
[-15, 0; 0, 75]
[0, 40]
"Gain1"
1
"load_C"
1
"Mux"
1
"IM1"
1
"IM1"
1
"Demux"
1
"Sum"
1
"Integrator"
1
"Integrator"
1
"1/J"
1
"Demux"
3
[30, 0; 0, 75]
"irq"
1
"Demux"
4
[25, 0; 0, 20]
"ird"
1
"Gain1"
1
[0, 0]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Annotation {
Name
Position
VerticalAlignment
}
}
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
sw
action
}
Block {
BlockType
Name
Ports
Position
ShowName
Inputs
DisplayOption
}
Block {
BlockType
Name
Position
RisingSlewLimit
FallingSlewLimit
}
Block {
BlockType
Name
Ports
Position
Location
Open
NumInputPorts
List {
ListType
axes1
axes2
axes3
}
List {
ListType
"speed"
1
"load_C"
1
[145, 0; 0, -75]
"Sum"
2
"Constant"
1
"Sum"
3
"q"
[482, 87]
"top"
Reference
"Manual Switch"
[2, 1]
[150, 232, 180, 268]
"simulink/Signal\nRouting/Manual Switch"
"Manual Switch"
"0"
"0"
Mux
"Mux"
[2, 1]
[660, 41, 665, 79]
off
"2"
"bar"
RateLimiter
"Rate Limiter"
[170, 115, 200, 145]
"50"
"-50"
Scope
"Scope"
[3]
[735, 104, 765, 136]
[357, 69, 795, 439]
on
"3"
AxesTitles
"%<SignalLabel>"
"%<SignalLabel>"
"%<SignalLabel>"
SelectedSignals
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
axes1
axes2
axes3
}
TimeRange
YMin
YMax
DataFormat
}
Block {
BlockType
Name
Ports
Position
Location
Open
NumInputPorts
List {
ListType
axes1
axes2
axes3
axes4
}
List {
ListType
axes1
axes2
axes3
axes4
}
TimeRange
YMin
YMax
SaveName
DataFormat
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
low
gain
high
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
""
""
""
"1.5"
"-10~-20~-50"
"80~20~50"
"StructureWithTime"
Scope
"Scope1"
[4]
[455, 271, 490, 364]
[6, 204, 444, 564]
on
"4"
AxesTitles
"%<SignalLabel>"
"%<SignalLabel>"
"%<SignalLabel>"
"%<SignalLabel>"
SelectedSignals
""
""
""
""
"1.5"
"-400~-400~-400~-5"
"400~400~400~60"
"ScopeData1"
"StructureWithTime"
Reference
"Slider\nGain1"
[1, 1]
[100, 115, 130, 145]
"simulink/Math\nOperations/Slider\nGain"
"Slider Gain"
"0"
"0.07"
"1"
"Induction Machine"
8
[55, 0; 0, -60]
"Scope"
2
"Induction Machine"
2
[190, 0]
"Scope"
3
"Slider\nGain1"
1
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
Branch {
Points
"Rate Limiter"
1
"Constant"
1
"Slider\nGain1"
1
"Constant V/Hz"
2
[0, 0; 70, 0]
"Induction Machine"
2
[0, 175]
"Scope1"
2
"Constant V/Hz"
1
[55, 0; 0, -20; 35, 0]
"Induction Machine"
1
[0, 195]
"Scope1"
1
"Constant V/Hz"
3
[0, 0; 40, 0]
[15, 0; 0, 20]
"Induction Machine"
3
[0, 175]
"Scope1"
3
"Rate Limiter"
1
[0, 0; 10, 0]
[0, 225]
"Scope1"
4
[25, 0]
[15, 0]
http://encon.fke.utm.my/courses/mep1422/constant_vhz.mdl
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"Constant V/Hz"
1
[0, -80]
"Gain"
1
"Constant1"
1
[0, -30]
"Manual Switch"
2
"Constant2"
1
"Manual Switch"
1
"Manual Switch"
1
[70, 0]
"Constant V/Hz"
2
"Mux"
1
[50, 0]
"Scope"
1
"Induction Machine"
4
[115, 0]
"Mux"
2
"Gain"
1
"Mux"
1
}
}
http://encon.fke.utm.my/courses/mep1422/imch.c
/*
* sfuntmpl.c: Template C S-function source file.
*
* ------------------------------------------------------------------------* | See matlabroot/simulink/src/sfuntmpl.doc for a more detailed template |
* ------------------------------------------------------------------------*
* Copyright (c) 1990-97, by The MathWorks, Inc.
* All Rights Reserved
* $Revision 1.1 $
*/
/*
* You must specify the S_FUNCTION_NAME as the name of your S-function.
*/
#define S_FUNCTION_NAME imch
/* Input Arguments */
/*
* Need to include simstruc.h for the definition of the SimStruct and
* its associated macro definitions.
*/
/* #include "tmwtypes.h" */
#include "tmwtypes.h"
#include "simstruc.h"
#define
#define
#define
#define
#define
#define
Rs ssGetArg(S,0)
Rr ssGetArg(S,1)
Ls ssGetArg(S,2)
Lr ssGetArg(S,3)
Lm ssGetArg(S,4)
pole ssGetArg(S,5)
/*====================*
* S-function methods *
*====================*/
/* Function: mdlInitializeSizes ===============================================
* Abstract:
*
* The sizes information is used by SIMULINK to determine the S-function
* block's characteristics (number of inputs, outputs, states, etc.).
*
*/
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumContStates(
S, 4);
/* number of continuous states
*/
ssSetNumDiscStates(
S, 0);
/* number of discrete states
*/
ssSetNumInputs(
S, 3);
/* number of inputs
*/
ssSetNumOutputs(
S, 5);
/* number of outputs
*/
ssSetDirectFeedThrough(S, 0);
/* direct feedthrough flag
*/
ssSetNumSampleTimes(
S, 1);
/* number of sample times
*/
ssSetNumInputArgs(
S, 6);
ssSetNumRWork(
S, 0);
/* number of real work vector elements
*/
ssSetNumIWork(
S, 0);
/* number of integer work vector elements*/
ssSetNumPWork(
S, 0);
/* number of pointer work vector elements*/
ssSetNumModes(
S, 0);
/* number of mode work vector elements
*/
ssSetNumNonsampledZCs( S, 0);
/* number of nonsampled zero crossings
*/
ssSetOptions(
S, 0);
/* general options (SS_OPTION_xx)
*/
}
http://encon.fke.utm.my/courses/mep1422/imch.c (1 von 3) [17.05.2005 17:15:22]
http://encon.fke.utm.my/courses/mep1422/imch.c
http://encon.fke.utm.my/courses/mep1422/imch.c
=
=
=
=
=
u0=vq
u1=vd
u2=w
*/
mxGetPr(Lm)[0];
mxGetPr(Lr)[0];
mxGetPr(Ls)[0];
mxGetPr(Rr)[0];
mxGetPr(Rs)[0];
a=1/(lm*lm-lr*ls);
dx[0]=(u[2]*lm*lm*x[1]+rs*lr*x[0]+u[2]*lr*lm*x[3]-rr*lm*x[2]-lr*u[0])*a;
dx[1]=(rs*lr*x[1]-u[2]*lm*lm*x[0]-rr*lm*x[3]-u[2]*lr*lm*x[2]-lr*u[1])*a;
dx[2]=-(u[2]*lm*ls*x[1]+rs*lm*x[0]+u[2]*lr*ls*x[3]-rr*ls*x[2]-lm*u[0])*a;
dx[3]=-(rs*lm*x[1]-u[2]*lm*ls*x[0]-rr*ls*x[3]-u[2]*lr*ls*x[2]-lm*u[1])*a;
}
"
#
#
!
=
%'!
%
!
+(
&
%&
$
%
%&
=)
[ ]= )
%
!
[ ]=
%
!
%
!
&
!
&
%
&
%
%
!
+ %
%
!
=
/
+ %
$
(
0
1
&
&
34
&5
&&
!
$
=)
+ (
&%
5=)
%
!
+ (
&!
=3
+3
&*
=3
+3
&+
67
85
=)
5=)
&,
"!
+
+
&,
&.
=3
+3
&0
=3
+3
&2
&2
" #
!
%%
!
%%
!
3
%%
%5
4
$
!
3
%%
+3
%&
%%
$
%!
! 3
%% 3
! 3
%% 3
%!
%*
%*
%*
#
1"<
%*
#
1
=
= 5
%*
! 3
%% 3
%+
%+
><
%+
84
%+
><
-
1"<
%+
1
4
1"<
$
1"<
&!
5=)
-
&+
+ (
5=
)
3 )
3
3
5=
+ (
= 5
)
3 )
3
3
%,
%,
+(
)+
+ (
%.
5=
)
3 )
3
3
5=
3 )
3
%0
%2
1"<
/
>
1"<
1"<
?
%, @
!
1"<
#
?
E
B
>:
F 4
E &225 AB
G
"
>
/ &220 AB
<
/<
/<
C"
1 H &20. AE
D
;
E
<
C"
?
/<
F 4
CE
Figure 1
The torque equation in general reference frame is given by:
=
(1)
and
(2)
(3)
=
=
+
+
+
+
(7)
)+
(8)
The stator flux is obtained by substituting the rotor current (which in practice,
normally unavailable) from (6), into (8)
With mathematical manipulations and recognizing that in the reference frame where
only the d axis component of the stator flux exists, it can be shown that by
separating the real and imaginary terms and after substituting rotor current,
equation (8) is given by:
(
(
)=
(9)
(10)
From (10), it can be seen that s is proportional to isd and isq. There exists a
coupling between s and isq. Varying isq to control the torque will result in s to
vary too hence the torque will not react immediately to isq.
!
$
!$
%&'
'(
"
"
"
# #
Figure 2
To overcome this problem, a decoupler to compensate the effect of the isq
component from the output of the PI controller is can be designed [1].
[1]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Model {
Name
"foc"
Version
5.0
SaveDefaultBlockParams on
SampleTimeColors
off
LibraryLinkDisplay
"none"
WideLines
off
ShowLineDimensions
off
ShowPortDataTypes
off
ShowLoopsOnError
on
IgnoreBidirectionalLines off
ShowStorageClass
off
ExecutionOrder
off
RecordCoverage
off
CovPath
"/"
CovSaveName
"covdata"
CovMetricSettings
"dw"
CovNameIncrementing
off
CovHtmlReporting
on
covSaveCumulativeToWorkspaceVar on
CovSaveSingleToWorkspaceVar on
CovCumulativeVarName
"covCumulativeData"
CovCumulativeReport
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
MinMaxOverflowArchiveMode "Overwrite"
BlockNameDataTip
off
BlockParametersDataTip off
BlockDescriptionStringDataTip off
ToolBar
on
StatusBar
on
BrowserShowLibraryLinks off
BrowserLookUnderMasks
off
Created
"Tue Oct 01 11:07:25 2002"
UpdateHistory
"UpdateHistoryNever"
ModifiedByFormat
"%<Auto>"
LastModifiedBy
"Administrator"
ModifiedDateFormat
"%<Auto>"
LastModifiedDate
"Sun Sep 12 00:33:10 2004"
ModelVersionFormat
"1.%<AutoIncrement:22>"
ConfigurationManager
"none"
SimParamPage
"WorkspaceI/O"
LinearizationMsg
"none"
Profile
off
ParamWorkspaceSource
"MATLABWorkspace"
AccelSystemTargetFile
"accel.tlc"
AccelTemplateMakefile
"accel_default_tmf"
AccelMakeCommand
"make_rtw"
TryForcingSFcnDF
off
ExtModeMexFile
"ext_comm"
ExtModeBatchMode
off
ExtModeTrigType
"manual"
ExtModeTrigMode
"normal"
ExtModeTrigPort
"1"
ExtModeTrigElement
"any"
ExtModeTrigDuration
1000
ExtModeTrigHoldOff
0
ExtModeTrigDelay
0
ExtModeTrigDirection
"rising"
ExtModeTrigLevel
0
ExtModeArchiveMode
"off"
ExtModeAutoIncOneShot
off
ExtModeIncDirWhenArm
off
ExtModeAddSuffixToVar
off
ExtModeWriteAllDataToWs off
http://encon.fke.utm.my/courses/mep1422/foc.mdl (1 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
ExtModeArmWhenConnect
on
ExtModeSkipDownloadWhenConnect off
ExtModeLogAll
on
ExtModeAutoUpdateStatusClock on
BufferReuse
on
RTWExpressionDepthLimit 5
SimulationMode
"normal"
Solver
"ode5"
SolverMode
"Auto"
StartTime
"0.0"
StopTime
"1000"
MaxOrder
5
MaxStep
"0.0001"
MinStep
"0.00001"
MaxNumMinSteps
"-1"
InitialStep
"0.00001"
FixedStep
"5e-6"
RelTol
"1e-3"
AbsTol
"auto"
OutputOption
"RefineOutputTimes"
OutputTimes
"[]"
Refine
"1"
LoadExternalInput
off
ExternalInput
"[t, u]"
LoadInitialState
off
InitialState
"xInitial"
SaveTime
off
TimeSaveName
"t"
SaveState
off
StateSaveName
"xout"
SaveOutput
off
OutputSaveName
"yout"
SaveFinalState
off
FinalStateName
"xFinal"
SaveFormat
"Array"
Decimation
"1"
LimitDataPoints
off
MaxDataPoints
"10000000"
SignalLoggingName
"sigsOut"
ConsistencyChecking
"none"
ArrayBoundsChecking
"none"
AlgebraicLoopMsg
"warning"
BlockPriorityViolationMsg "warning"
MinStepSizeMsg
"warning"
InheritedTsInSrcMsg
"warning"
DiscreteInheritContinuousMsg "warning"
MultiTaskRateTransMsg
"error"
SingleTaskRateTransMsg "none"
CheckForMatrixSingularity "none"
IntegerOverflowMsg
"warning"
Int32ToFloatConvMsg
"warning"
ParameterDowncastMsg
"error"
ParameterOverflowMsg
"error"
ParameterPrecisionLossMsg "warning"
UnderSpecifiedDataTypeMsg "none"
UnnecessaryDatatypeConvMsg "none"
VectorMatrixConversionMsg "none"
InvalidFcnCallConnMsg
"error"
SignalLabelMismatchMsg "none"
UnconnectedInputMsg
"warning"
UnconnectedOutputMsg
"warning"
UnconnectedLineMsg
"warning"
SfunCompatibilityCheckMsg "none"
RTWInlineParameters
off
BlockReductionOpt
off
http://encon.fke.utm.my/courses/mep1422/foc.mdl (2 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
BooleanDataType
off
ConditionallyExecuteInputs on
ParameterPooling
on
OptimizeBlockIOStorage on
ZeroCross
on
AssertionControl
"UseLocalSettings"
ProdHWDeviceType
"Microprocessor"
ProdHWWordLengths
"8,16,32,32"
RTWSystemTargetFile
"grt.tlc"
RTWTemplateMakefile
"grt_default_tmf"
RTWMakeCommand
"make_rtw"
RTWGenerateCodeOnly
off
RTWRetainRTWFile
off
TLCProfiler
off
TLCDebug
off
TLCCoverage
off
TLCAssertion
off
BlockDefaults {
Orientation
"right"
ForegroundColor
"black"
BackgroundColor
"white"
DropShadow
off
NamePlacement
"normal"
FontName
"Helvetica"
FontSize
10
FontWeight
"normal"
FontAngle
"normal"
ShowName
on
}
BlockParameterDefaults {
Block {
BlockType
Constant
Value
"1"
VectorParams1D
on
ShowAdditionalParam
off
OutDataTypeMode
"Inherit from 'Constant value'"
OutDataType
"sfix(16)"
ConRadixGroup
"Use specified scaling"
OutScaling
"2^0"
}
Block {
BlockType
Demux
Outputs
"4"
DisplayOption
"none"
BusSelectionMode
off
}
Block {
BlockType
Derivative
}
Block {
BlockType
Fcn
Expr
"sin(u[1])"
}
Block {
BlockType
Gain
Gain
"1"
Multiplication
"Element-wise(K.*u)"
ShowAdditionalParam
off
ParameterDataTypeMode
"Same as input"
ParameterDataType
"sfix(16)"
ParameterScalingMode
"Best Precision: Matrix-wise"
ParameterScaling
"2^0"
OutDataTypeMode
"Same as input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (3 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Inport
Port
"1"
PortDimensions
"-1"
SampleTime
"-1"
ShowAdditionalParam
off
LatchInput
off
DataType
"auto"
OutDataType
"sfix(16)"
OutScaling
"2^0"
SignalType
"auto"
SamplingMode
"auto"
Interpolate
on
}
Block {
BlockType
Integrator
ExternalReset
"none"
InitialConditionSource "internal"
InitialCondition
"0"
LimitOutput
off
UpperSaturationLimit
"inf"
LowerSaturationLimit
"-inf"
ShowSaturationPort
off
ShowStatePort
off
AbsoluteTolerance
"auto"
ZeroCross
on
}
Block {
BlockType
Math
Operator
"exp"
OutputSignalType
"auto"
}
Block {
BlockType
Mux
Inputs
"4"
DisplayOption
"none"
}
Block {
BlockType
Outport
Port
"1"
OutputWhenDisabled
"held"
InitialOutput
"[]"
}
Block {
BlockType
Relay
OnSwitchValue
"eps"
OffSwitchValue
"eps"
OnOutputValue
"1"
OffOutputValue
"0"
ShowAdditionalParam
off
OutputDataTypeScalingMode "All ports same datatype"
OutDataType
"sfix(16)"
OutScaling
"2^0"
ConRadixGroup
"Use specified scaling"
ZeroCross
on
}
Block {
BlockType
Scope
Floating
off
ModelBased
off
TickLabels
"OneTimeTick"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (4 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
ZoomMode
Grid
TimeRange
YMin
YMax
SaveToWorkspace
SaveName
LimitDataPoints
MaxDataPoints
Decimation
SampleInput
SampleTime
"on"
"on"
"auto"
"-5"
"5"
off
"ScopeData"
on
"5000"
"1"
off
"0"
}
Block {
BlockType
"S-Function"
FunctionName
"system"
PortCounts
"[]"
SFunctionModules
"''"
}
Block {
BlockType
SignalGenerator
WaveForm
"sine"
Amplitude
"1"
Frequency
"1"
Units
"Hertz"
VectorParams1D
on
}
Block {
BlockType
SubSystem
ShowPortLabels
on
Permissions
"ReadWrite"
RTWSystemCode
"Auto"
RTWFcnNameOpts
"Auto"
RTWFileNameOpts
"Auto"
SimViewingDevice
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
}
Block {
BlockType
Sum
IconShape
"rectangular"
Inputs
"++"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Same as first input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Trigonometry
Operator
"sin"
OutputSignalType
"auto"
}
}
AnnotationDefaults {
HorizontalAlignment
VerticalAlignment
ForegroundColor
BackgroundColor
DropShadow
FontName
FontSize
"center"
"middle"
"black"
"white"
off
"Helvetica"
10
http://encon.fke.utm.my/courses/mep1422/foc.mdl
FontWeight
FontAngle
"normal"
"normal"
}
LineDefaults {
FontName
"Helvetica"
FontSize
9
FontWeight
"normal"
FontAngle
"normal"
}
System {
Name
"foc"
Location
[26, 100, 942, 425]
Open
on
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"91"
ReportName
"simulink-default.rpt"
Block {
BlockType
Gain
Name
"Gain3"
Position
[580, 305, 610, 335]
Orientation
"left"
}
Block {
BlockType
SubSystem
Name
"Induction Machine"
Ports
[3, 8]
Position
[645, 13, 700, 142]
TreatAsAtomicUnit
off
MaskPromptString
"Stator resistance (ohm)|Rotor resistance (ohm)|"
"Stator self inductance (H)|Rotor self inductance (H)|Mutual Inductance (H)|No"
" of poles|Moment of inertia (kg.m^2)|Load torque (Nm)"
MaskStyleString
"edit,edit,edit,edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on,on,on,on"
MaskCallbackString
"|||||||"
MaskEnableString
"on,on,on,on,on,on,on,on"
MaskVisibilityString
"on,on,on,on,on,on,on,on"
MaskToolTipString
"on,on,on,on,on,on,on,on"
MaskVarAliasString
",,,,,,,"
MaskVariables
"Rs=@1;Rr=@2;Ls=@3;Lr=@4;Lm=@5;pole=@6;J=@7;Tloa"
"d=@8;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"5.5|4.51|306.5e-3|306.5e-3|291.9e-3|4|0.02|0"
System {
Name
"Induction Machine"
Location
[4, 74, 764, 534]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
http://encon.fke.utm.my/courses/mep1422/foc.mdl (6 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Name
Position
"Va"
[25, 40, 45, 60]
}
Block {
BlockType
Inport
Name
"Vb"
Position
[25, 120, 45, 140]
Port
"2"
}
Block {
BlockType
Inport
Name
"Vc"
Position
[25, 240, 45, 260]
Port
"3"
}
Block {
BlockType
Gain
Name
"1/J"
Position
[260, 292, 285, 318]
Orientation
"left"
Gain
"1/J"
SaturateOnIntegerOverflow off
}
Block {
BlockType
Gain
Name
"1/J1"
Position
[375, 367, 400, 393]
Gain
"0.01"
SaturateOnIntegerOverflow off
}
Block {
BlockType
SubSystem
Name
"3to2"
Ports
[3, 2]
Position
[105, 81, 135, 139]
ShowPortLabels
off
TreatAsAtomicUnit
off
System {
Name
"3to2"
Location
[323, 87, 947, 513]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_1"
Position
[15, 50, 35, 70]
}
Block {
BlockType
Inport
Name
"b"
Position
[15, 115, 35, 135]
Port
"2"
}
Block {
BlockType
Inport
Name
"c"
Position
[15, 180, 35, 200]
Port
"3"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (7 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
Gain
"Gain3"
[120, 248, 160, 272]
"0.577"
Gain
"Gain4"
[120, 298, 160, 322]
"-0.577"
Gain
"Gain5"
[145, 143, 185, 167]
"-0.33333"
Gain
"Gain6"
[140, 183, 180, 207]
"-0.33333"
Gain
"Gain7"
[135, 63, 175, 87]
"0.66666"
Sum
"Ib"
[2, 1]
[240, 255, 260, 275]
Sum
"Ib1"
[3, 1]
[385, 52, 405, 88]
"+++"
Outport
"d"
[535, 60, 555, 80]
"0"
Outport
"q"
[310, 250, 330, 270]
"2"
"0"
"Ib1"
1
"d"
1
"Gain7"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
1
[30, 0; 0, -15]
"Ib1"
1
"in_1"
1
[40, 0; 0, 15]
"Gain7"
1
"Gain6"
1
[30, 0; 0, -125]
"Ib1"
2
"Gain5"
1
[60, 0; 0, -75]
"Ib1"
3
"c"
1
[40, 0; 0, 5]
"Gain6"
1
[0, 115]
"Gain4"
1
"b"
1
[20, 0; 0, 30]
"Gain5"
1
[0, 105]
"Gain3"
1
"Gain3"
1
"Ib"
1
"Gain4"
1
[30, 0; 0, -40]
"Ib"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"Ib"
1
"q"
1
}
}
Block {
BlockType
Constant
Name
"Constant"
Position
[630, 306, 670, 324]
Orientation
"left"
Value
"Tload"
}
Block {
BlockType
Demux
Name
"Demux"
Ports
[1, 5]
Position
[420, 91, 460, 149]
Outputs
"5"
}
Block {
BlockType
Gain
Name
"Gain1"
Position
[150, 407, 175, 433]
Orientation
"left"
Gain
"2/pole"
}
Block {
BlockType
SubSystem
Name
"IM1"
Ports
[1, 1]
Position
[320, 106, 380, 134]
TreatAsAtomicUnit
off
System {
Name
"IM1"
Location
[248, 340, 468, 422]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"In1"
Position
[25, 33, 55, 47]
}
Block {
BlockType
"S-Function"
Name
"S-Function"
Ports
[1, 1]
Position
[80, 25, 140, 55]
FunctionName
"imch"
Parameters
"Rs, Rr, Ls,Lr,Lm,pole"
}
Block {
BlockType
Outport
Name
"Out1"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (10 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Position
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
}
}
Block {
BlockType
Name
Ports
Position
Orientation
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Ports
Position
Orientation
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
"In1"
1
"S-Function"
1
"S-Function"
1
"Out1"
1
Integrator
"Integrator"
[1, 1]
[360, 295, 380, 315]
"left"
Mux
"Mux"
[3, 1]
[260, 104, 290, 136]
"3"
Sum
"Sum"
[3, 1]
[440, 287, 460, 323]
"left"
"+--"
Outport
"isd"
[630, 25, 650, 45]
"0"
Outport
"isq"
[625, 70, 645, 90]
"2"
"0"
Outport
"ird"
[600, 140, 620, 160]
"3"
"0"
Outport
"speed"
[90, 410, 110, 430]
"left"
"4"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
"0"
Outport
"Vd"
[265, 50, 285, 70]
"5"
"0"
Outport
"irq"
[595, 185, 615, 205]
"6"
"0"
Outport
"Vq"
[90, 285, 110, 305]
"left"
"7"
"0"
Outport
"Te"
[715, 230, 735, 250]
"8"
"0"
"Demux"
1
[60, 0; 0, -20]
"isq"
1
"Demux"
2
[65, 0; 0, -75]
"isd"
1
"3to2"
2
[0, 0]
[0, 170]
"Vq"
1
[55, 0; 0, -15]
"Mux"
1
"3to2"
1
[0, 0; 25, 0]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
[0, -35]
"Vd"
1
[30, 0; 0, 25]
"Mux"
2
"Demux"
5
[45, 0; 0, 145]
[0, 15; -35, 0]
"Sum"
1
[70, 0; 0, -45]
"Te"
1
"Vc"
1
[20, 0; 0, -120]
"3to2"
3
"Vb"
1
[20, 0; 0, -20]
"3to2"
2
"Va"
1
[20, 0; 0, 40]
"3to2"
1
"1/J"
1
[0, 0; -25, 0]
[0, -175]
"Mux"
3
[-15, 0; 0, 75]
[0, 40]
"Gain1"
1
"1/J1"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
}
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Annotation {
Name
Position
VerticalAlignment
"Mux"
1
"IM1"
1
"IM1"
1
"Demux"
1
"Sum"
1
"Integrator"
1
"Integrator"
1
"1/J"
1
"Demux"
3
[30, 0; 0, 75]
"irq"
1
"Demux"
4
[25, 0; 0, 20]
"ird"
1
"Gain1"
1
[0, 0]
"speed"
1
"1/J1"
1
[145, 0; 0, -75]
"Sum"
2
"Constant"
1
"Sum"
3
"q"
[482, 87]
"top"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
}
}
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Orientation
}
Block {
BlockType
Name
Position
OnSwitchValue
OffSwitchValue
OnOutputValue
OffOutputValue
}
Block {
BlockType
Name
Position
OnSwitchValue
OffSwitchValue
OnOutputValue
OffOutputValue
}
Block {
BlockType
Name
Position
OnSwitchValue
OffSwitchValue
OnOutputValue
OffOutputValue
}
Block {
BlockType
Name
Position
Value
}
Block {
BlockType
Name
Ports
Position
Location
Open
NumInputPorts
ZoomMode
List {
ListType
axes1
axes2
}
List {
ListType
Integrator
"Integrator1"
[1, 1]
[180, 305, 210, 335]
Integrator
"Integrator2"
[1, 1]
[390, 305, 420, 335]
"left"
Relay
"Relay"
[540, 30, 570, 60]
"0.2"
"-0.2"
"300"
"-300"
Relay
"Relay1"
[545, 65, 575, 95]
"0.2"
"-0.2"
"300"
"-300"
Relay
"Relay2"
[545, 115, 575, 145]
"0.2"
"-0.2"
"300"
"-300"
Constant
"Rotor Flux"
[20, 134, 40, 156]
"1.2*(291.9e-3/306.5e-3)"
Scope
"Scope"
[2]
[835, 205, 865, 240]
[581, 461, 905, 736]
on
"2"
"yonly"
AxesTitles
"%<SignalLabel>"
"%<SignalLabel>"
SelectedSignals
http://encon.fke.utm.my/courses/mep1422/foc.mdl
axes1
axes2
}
TimeRange
YMin
YMax
DataFormat
""
""
"0.1"
"-25~-30"
"25~30"
"StructureWithTime"
}
Block {
BlockType
SignalGenerator
Name
"Signal\nGenerator"
Position
[25, 50, 55, 80]
WaveForm
"square"
Amplitude
"-20"
Frequency
"20"
}
Block {
BlockType
SubSystem
Name
"Subsystem"
Ports
[4, 4]
Position
[895, 21, 945, 124]
TreatAsAtomicUnit
off
System {
Name
"Subsystem"
Location
[596, 100, 1004, 348]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"ird"
Position
[25, 33, 55, 47]
}
Block {
BlockType
Inport
Name
"isd"
Position
[25, 78, 55, 92]
Port
"2"
}
Block {
BlockType
Inport
Name
"irq"
Position
[25, 128, 55, 142]
Port
"3"
}
Block {
BlockType
Inport
Name
"isq"
Position
[25, 173, 55, 187]
Port
"4"
}
Block {
BlockType
Reference
Name
"Cartesian to\nPolar"
Ports
[2, 2]
Position
[255, 87, 285, 118]
SourceBlock
"simulink_extras/Transformations/Cartesian t"
"o\nPolar"
SourceType
"Cart2Polar"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (16 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Port
}
Block {
Gain
"Gain"
[80, 25, 110, 55]
"306.5e-3"
Gain
"Gain1"
[80, 70, 110, 100]
"291.9e-3"
Gain
"Gain2"
[80, 120, 110, 150]
"306.5e-3"
Gain
"Gain3"
[80, 165, 110, 195]
"291.9e-3"
Sum
"Sum"
[2, 1]
[175, 55, 195, 75]
off
"round"
"+|+"
off
"Inherit via internal rule"
Sum
"Sum1"
[2, 1]
[175, 150, 195, 170]
off
"round"
"+|+"
off
"Inherit via internal rule"
Outport
"Fm"
[355, 88, 385, 102]
Outport
"F_the"
[310, 103, 340, 117]
"2"
Outport
"Fd"
[310, 33, 340, 47]
"3"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Outport
"Fq"
[305, 153, 335, 167]
"4"
"Gain"
1
[40, 0]
"Sum"
1
"Gain1"
1
[70, 0]
"Sum"
2
"Sum"
1
[25, 0]
[15, 0]
"Cartesian to\nPolar"
1
[0, -25]
"Fd"
1
"Gain2"
1
[40, 0]
"Sum1"
1
"Gain3"
1
[70, 0]
"Sum1"
2
"Sum1"
1
[40, 0; 0, -5]
"Cartesian to\nPolar"
2
[0, 5]
"Fq"
1
"ird"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"Gain"
1
"isd"
1
"Gain1"
1
"Cartesian to\nPolar"
1
"Fm"
1
"Cartesian to\nPolar"
2
"F_the"
1
"irq"
1
"Gain2"
1
"isq"
1
"Gain3"
1
}
}
Block {
BlockType
SubSystem
Name
"Subsystem1"
Ports
[2, 3]
Position
[95, 50, 135, 110]
TreatAsAtomicUnit
off
MaskPromptString
"Lm|Lr|Rr|p"
MaskStyleString
"edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on"
MaskCallbackString
"|||"
MaskEnableString
"on,on,on,on"
MaskVisibilityString
"on,on,on,on"
MaskToolTipString
"on,on,on,on"
MaskVarAliasString
",,,"
MaskVariables
"Lm=@1;Lr=@2;Rr=@3;p=@4;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"291.9e-3|306.5e-3|4.51|4"
System {
Name
"Subsystem1"
Location
[2, 74, 1014, 724]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (19 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
PaperUnits
ZoomFactor
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Value
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
}
Block {
BlockType
Name
Ports
Position
Orientation
NamePlacement
SourceBlock
SourceType
}
Block {
BlockType
Name
Ports
Position
NamePlacement
SourceBlock
SourceType
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
"inches"
"100"
Inport
"T"
[90, 33, 120, 47]
Inport
"Flux"
[35, 118, 65, 132]
"2"
Constant
"Constant1"
[140, 279, 210, 301]
"1/Lm"
Derivative
"Derivative"
[165, 180, 195, 210]
Reference
"Dot Product"
[2, 1]
[230, 26, 260, 59]
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Reference
"Dot Product1"
[2, 1]
[292, 115, 323, 150]
"down"
"alternate"
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Reference
"Dot Product2"
[2, 1]
[390, 205, 425, 240]
"alternate"
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Gain
"Gain"
[145, 25, 175, 55]
"(4*Lr)/(3*p*Lm)"
Gain
"Gain1"
[230, 85, 260, 115]
"(Lm*Rr)/Lr"
Gain
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
Operator
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Orientation
Port
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
}
Line {
SrcBlock
SrcPort
Points
"Gain2"
[115, 180, 145, 210]
"Lr/Rr"
Math
"Math\nFunction"
[1, 1]
[145, 110, 175, 140]
"reciprocal"
Sum
"Sum2"
[2, 1]
[255, 185, 275, 205]
off
"round"
"|++"
off
"Inherit via internal rule"
Outport
"isq"
[340, 38, 370, 52]
Outport
"slip"
[295, 175, 325, 190]
"down"
"2"
Outport
"isd"
[510, 218, 540, 232]
"3"
"Flux"
1
[25, 0]
"Math\nFunction"
1
[0, 70]
"Gain2"
1
"Math\nFunction"
1
[25, 0; 0, -25]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
[0, -50]
"Dot Product"
2
"Gain1"
1
"Gain"
1
[35, 0]
"Dot Product"
1
"Dot Product"
1
[0, 0; 55, 0]
[-5, 0]
"Dot Product1"
2
"isq"
1
"Gain1"
1
"Dot Product1"
1
"T"
1
"Gain"
1
"Dot Product1"
1
"slip"
1
"Gain2"
1
"Derivative"
1
"Derivative"
1
"Sum2"
1
"Dot Product2"
1
"isd"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
"Sum2"
1
[45, 0; 0, 20]
"Dot Product2"
1
"Constant1"
1
[85, 0; 0, -60]
"Dot Product2"
2
}
}
Block {
BlockType
SubSystem
Name
"Subsystem3"
Ports
[2, 3]
Position
[605, 185, 645, 245]
Orientation
"left"
TreatAsAtomicUnit
off
System {
Name
"Subsystem3"
Location
[436, 127, 909, 413]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"In1"
Position
[80, 38, 110, 52]
}
Block {
BlockType
Inport
Name
"In2"
Position
[115, 143, 145, 157]
Port
"2"
}
Block {
BlockType
Gain
Name
"Gain1"
Position
[215, 28, 255, 52]
Gain
"1.0001"
}
Block {
BlockType
Gain
Name
"Gain10"
Position
[215, 238, 255, 262]
Gain
"-0.867"
}
Block {
BlockType
Gain
Name
"Gain2"
Position
[215, 83, 255, 107]
Gain
"-0.5"
http://encon.fke.utm.my/courses/mep1422/foc.mdl (23 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
}
Line {
Gain
"Gain8"
[215, 138, 255, 162]
"0.867"
Gain
"Gain9"
[215, 188, 255, 212]
"-0.5"
Sum
"Ib2"
[2, 1]
[375, 102, 395, 138]
Sum
"Ib3"
[2, 1]
[375, 187, 395, 223]
Outport
"Out1"
[280, 33, 310, 47]
Outport
"Out2"
[420, 113, 450, 127]
"2"
Outport
"Out3"
[420, 198, 450, 212]
"3"
"In1"
1
[0, 0; 15, 0]
[70, 0]
"Gain1"
1
[0, 50]
"Gain2"
1
[0, 105]
"Gain9"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
}
}
Block {
BlockType
Name
Ports
"In2"
1
[0, 0; 15, 0]
"Gain8"
1
[0, 100]
"Gain10"
1
"Gain2"
1
[50, 0; 0, 15]
"Ib2"
1
"Gain8"
1
[50, 0; 0, -20]
"Ib2"
2
"Gain9"
1
[50, 0; 0, -5]
"Ib3"
1
"Gain10"
1
[50, 0; 0, -35]
"Ib3"
2
"Gain1"
1
"Out1"
1
"Ib2"
1
"Out2"
1
"Ib3"
1
"Out3"
1
SubSystem
"Subsystem4"
[2, 3]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Position
[345, 50, 385, 110]
TreatAsAtomicUnit
off
System {
Name
"Subsystem4"
Location
[436, 127, 909, 413]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"In1"
Position
[80, 38, 110, 52]
}
Block {
BlockType
Inport
Name
"In2"
Position
[115, 143, 145, 157]
Port
"2"
}
Block {
BlockType
Gain
Name
"Gain1"
Position
[215, 28, 255, 52]
Gain
"1.0001"
}
Block {
BlockType
Gain
Name
"Gain10"
Position
[215, 238, 255, 262]
Gain
"-0.867"
}
Block {
BlockType
Gain
Name
"Gain2"
Position
[215, 83, 255, 107]
Gain
"-0.5"
}
Block {
BlockType
Gain
Name
"Gain8"
Position
[215, 138, 255, 162]
Gain
"0.867"
}
Block {
BlockType
Gain
Name
"Gain9"
Position
[215, 188, 255, 212]
Gain
"-0.5"
}
Block {
BlockType
Sum
Name
"Ib2"
Ports
[2, 1]
Position
[375, 102, 395, 138]
}
Block {
BlockType
Sum
Name
"Ib3"
Ports
[2, 1]
http://encon.fke.utm.my/courses/mep1422/foc.mdl (26 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Position
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Outport
"Out1"
[280, 33, 310, 47]
Outport
"Out2"
[420, 113, 450, 127]
"2"
Outport
"Out3"
[420, 198, 450, 212]
"3"
"In1"
1
[0, 0; 15, 0]
[70, 0]
"Gain1"
1
[0, 50]
"Gain2"
1
[0, 105]
"Gain9"
1
"In2"
1
[0, 0; 15, 0]
"Gain8"
1
[0, 100]
"Gain10"
1
"Gain2"
1
[50, 0; 0, 15]
"Ib2"
1
"Gain8"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
[50, 0; 0, -20]
"Ib2"
2
"Gain9"
1
[50, 0; 0, -5]
"Ib3"
1
"Gain10"
1
[50, 0; 0, -35]
"Ib3"
2
"Gain1"
1
"Out1"
1
"Ib2"
1
"Out2"
1
"Ib3"
1
"Out3"
1
}
}
Block {
BlockType
SubSystem
Name
"Subsystem5"
Ports
[3, 2]
Position
[240, 48, 280, 112]
TreatAsAtomicUnit
off
System {
Name
"Subsystem5"
Location
[468, 82, 922, 447]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"iq"
Position
[25, 113, 55, 127]
}
Block {
BlockType
Inport
Name
"id"
Position
[25, 23, 55, 37]
http://encon.fke.utm.my/courses/mep1422/foc.mdl (28 von 36) [17.05.2005 17:15:41]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Port
}
Block {
BlockType
Name
Position
Port
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
}
Block {
BlockType
Name
Ports
Position
SourceBlock
SourceType
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
"2"
Inport
"fp"
[25, 243, 55, 257]
"3"
Reference
"Dot Product"
[2, 1]
[245, 46, 275, 79]
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Reference
"Dot Product1"
[2, 1]
[245, 136, 275, 169]
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Reference
"Dot Product2"
[2, 1]
[260, 201, 290, 234]
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Reference
"Dot Product3"
[2, 1]
[260, 251, 290, 284]
"simulink/Math\nOperations/Dot Product"
"Dot Product"
Sum
"Sum1"
[2, 1]
[350, 95, 370, 115]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum2"
[2, 1]
[350, 210, 370, 230]
off
"round"
"|++"
off
"Inherit via internal rule"
Trigonometry
"Trigonometric\nFunction"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Operator
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
[1, 1]
[165, 145, 195, 175]
Trigonometry
"Trigonometric\nFunction1"
[1, 1]
[170, 55, 200, 85]
"cos"
Outport
"Out1"
[395, 98, 425, 112]
Outport
"Out2"
[395, 213, 425, 227]
"2"
"fp"
1
[5, 0; 0, 5; 25, 0; 0, -95]
"Trigonometric\nFunction"
1
[0, -90]
"Trigonometric\nFunction1"
1
"id"
1
[0, 0; 80, 0]
[0, 230]
"Dot Product3"
1
[90, 0]
"Dot Product"
1
"iq"
1
[0, 0; 70, 0]
[0, 105]
"Dot Product2"
2
[90, 0; 0, 25]
"Dot Product1"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
"Dot Product3"
1
[65, 0]
"Sum2"
2
"Dot Product2"
1
"Sum2"
1
"Dot Product1"
1
[80, 0]
"Sum1"
2
"Trigonometric\nFunction"
1
[0, 0; 5, 0]
"Dot Product1"
2
[0, 115]
"Dot Product3"
2
"Dot Product"
1
[55, 0]
"Sum1"
1
"Trigonometric\nFunction1"
1
[0, 0; 15, 0]
"Dot Product"
2
[0, 140]
"Dot Product2"
1
"Sum1"
1
"Out1"
1
"Sum2"
1
"Out2"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
DstPort
}
}
}
Block {
BlockType
Name
Ports
Position
Orientation
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Block {
BlockType
Name
Ports
Position
ShowName
IconShape
Inputs
InputSameDT
OutDataTypeMode
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
Sum
"Sum"
[2, 1]
[235, 305, 265, 335]
"up"
off
"round"
"+|+"
off
"Inherit via internal rule"
Sum
"Sum1"
[2, 1]
[460, 35, 480, 55]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum2"
[2, 1]
[480, 70, 500, 90]
off
"round"
"|+-"
off
"Inherit via internal rule"
Sum
"Sum3"
[2, 1]
[505, 120, 525, 140]
off
"round"
"|+-"
off
"Inherit via internal rule"
"Induction Machine"
4
[0, 0; 15, 0]
[20, 0; 0, 250]
"Gain3"
1
[0, 145]
"Scope"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
"Subsystem1"
2
[20, 0; 0, 240]
"Integrator1"
1
"Signal\nGenerator"
1
"Subsystem1"
1
"Rotor Flux"
1
[15, 0; 0, -50]
"Subsystem1"
2
"Subsystem4"
1
[15, 0; 0, -15]
"Sum1"
1
"Sum1"
1
"Relay"
1
"Relay"
1
[55, 0]
"Induction Machine"
1
"Subsystem4"
2
"Sum2"
1
"Sum2"
1
"Relay1"
1
"Sum3"
1
"Relay2"
1
"Subsystem4"
3
[20, 0; 0, 30]
"Sum3"
1
http://encon.fke.utm.my/courses/mep1422/foc.mdl
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
"Gain3"
1
"Integrator2"
1
"Induction Machine"
1
[90, 0; 0, 35; 5, 0]
"Subsystem"
2
[0, 140]
"Subsystem3"
1
"Induction Machine"
2
[0, 10; 75, 0]
[30, 0; 0, 60]
"Subsystem"
4
[0, 180]
"Subsystem3"
2
"Induction Machine"
3
[175, 0]
"Subsystem"
1
"Induction Machine"
6
[175, 0]
"Subsystem"
3
"Relay1"
1
"Induction Machine"
2
"Relay2"
1
[35, 0; 0, -10; 15, 0]
"Induction Machine"
3
"Integrator1"
1
"Sum"
http://encon.fke.utm.my/courses/mep1422/foc.mdl
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
"Integrator2"
1
"Sum"
2
"Subsystem3"
1
[-130, 0]
"Sum1"
2
"Subsystem3"
2
[-110, 0]
"Sum2"
2
"Subsystem3"
3
[-85, 0]
"Sum3"
2
"Subsystem1"
3
[50, 0; 0, -20]
"Subsystem5"
2
"Subsystem5"
1
"Subsystem4"
1
"Subsystem5"
2
"Subsystem4"
2
"Subsystem1"
1
"Subsystem5"
1
"Sum"
1
[0, -120; -25, 0]
"Subsystem5"
3
"Induction Machine"
8
[20, 0; 0, 100]
http://encon.fke.utm.my/courses/mep1422/foc.mdl
DstBlock
DstPort
"Scope"
2
}
}
}
(1)
(2)
Sa(t), Sb(t) and Sc(t) are the switching functions of each leg of the VSI, such that,
Si =
Figure 1.
(3)
Where v s , i s , and s are the stator voltage, current and stator flux space vectors
respectively. According to equation (3), if the stator resistance is small and can
be neglected, the change in stator flux, s , will follow the stator voltage, i.e.,
s = v s t
(4)
This simply means that the tip of the stator flux will follow that of the stator
voltage space vector multiplied by the small change in time. Hence if the stator
flux space vector (magnitude and angle) is known, its locus can be controlled by
selecting appropriate stator voltage vectors. In DTC the stator flux space vector
is obtained by calculation utilizing the motor terminal variables (stator voltages
and currents). The stator flux is forced to follow the reference value within a
hysteresis band by selecting the appropriate stator voltage vector using the
hysteresis comparator and selection table.
Direct Torque Control
As shown by Takahashi and Noguchi [1], under a condition of a constant mechanical
frequency and stator flux magnitude, when a step increase in the stator angular
frequency is applied at t=0, the rate of change of torque at time t=0 is
proportional to the slip frequency of the stator flux . Thus,
dT
dt
t =0
sl
t =0
(5)
Figure 2
"
""
"
""
"
"
""
"
""
"
vs,4
Sector II
vs,3
vs,4
Sector I
vs,4
vs,3
vs,5
vs,2
vs,6
vs,2
vs,3
vs,1
vs,3
Figure 3
Figure 4
#$
%& '
&%()*
+
,
) () 3 . 45
'- .)
678
Basic DTC
* - //
0 )
*0 )/
) 1)) 2
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Model {
Name
"DTC_hysteresis"
Version
5.0
SaveDefaultBlockParams on
SampleTimeColors
off
LibraryLinkDisplay
"none"
WideLines
off
ShowLineDimensions
off
ShowPortDataTypes
off
ShowLoopsOnError
on
IgnoreBidirectionalLines off
ShowStorageClass
off
ExecutionOrder
off
RecordCoverage
off
CovPath
"/"
CovSaveName
"covdata"
CovMetricSettings
"dw"
CovNameIncrementing
off
CovHtmlReporting
on
covSaveCumulativeToWorkspaceVar on
CovSaveSingleToWorkspaceVar on
CovCumulativeVarName
"covCumulativeData"
CovCumulativeReport
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
MinMaxOverflowArchiveMode "Overwrite"
BlockNameDataTip
off
BlockParametersDataTip off
BlockDescriptionStringDataTip off
ToolBar
on
StatusBar
on
BrowserShowLibraryLinks off
BrowserLookUnderMasks
off
Created
"Tue Oct 01 11:07:25 2002"
UpdateHistory
"UpdateHistoryNever"
ModifiedByFormat
"%<Auto>"
LastModifiedBy
"Administrator"
ModifiedDateFormat
"%<Auto>"
LastModifiedDate
"Mon Aug 09 11:36:28 2004"
ModelVersionFormat
"1.%<AutoIncrement:16>"
ConfigurationManager
"none"
SimParamPage
"Solver"
LinearizationMsg
"none"
Profile
off
ParamWorkspaceSource
"MATLABWorkspace"
AccelSystemTargetFile
"accel.tlc"
AccelTemplateMakefile
"accel_default_tmf"
AccelMakeCommand
"make_rtw"
TryForcingSFcnDF
off
ExtModeMexFile
"ext_comm"
ExtModeBatchMode
off
ExtModeTrigType
"manual"
ExtModeTrigMode
"normal"
ExtModeTrigPort
"1"
ExtModeTrigElement
"any"
ExtModeTrigDuration
1000
ExtModeTrigHoldOff
0
ExtModeTrigDelay
0
ExtModeTrigDirection
"rising"
ExtModeTrigLevel
0
ExtModeArchiveMode
"off"
ExtModeAutoIncOneShot
off
ExtModeIncDirWhenArm
off
ExtModeAddSuffixToVar
off
ExtModeWriteAllDataToWs off
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (1 von 29) [17.05.2005 17:16:36]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
ExtModeArmWhenConnect
on
ExtModeSkipDownloadWhenConnect off
ExtModeLogAll
on
ExtModeAutoUpdateStatusClock on
BufferReuse
on
RTWExpressionDepthLimit 5
SimulationMode
"normal"
Solver
"ode5"
SolverMode
"Auto"
StartTime
"0.0"
StopTime
"1000"
MaxOrder
5
MaxStep
"0.0001"
MinStep
"0.00001"
MaxNumMinSteps
"-1"
InitialStep
"0.00001"
FixedStep
"1e-6"
RelTol
"1e-3"
AbsTol
"auto"
OutputOption
"RefineOutputTimes"
OutputTimes
"[]"
Refine
"1"
LoadExternalInput
off
ExternalInput
"[t, u]"
LoadInitialState
off
InitialState
"xInitial"
SaveTime
on
TimeSaveName
"t"
SaveState
off
StateSaveName
"xout"
SaveOutput
on
OutputSaveName
"yout"
SaveFinalState
off
FinalStateName
"xFinal"
SaveFormat
"Array"
Decimation
"1"
LimitDataPoints
on
MaxDataPoints
"10000000"
SignalLoggingName
"sigsOut"
ConsistencyChecking
"none"
ArrayBoundsChecking
"none"
AlgebraicLoopMsg
"warning"
BlockPriorityViolationMsg "warning"
MinStepSizeMsg
"warning"
InheritedTsInSrcMsg
"warning"
DiscreteInheritContinuousMsg "warning"
MultiTaskRateTransMsg
"error"
SingleTaskRateTransMsg "none"
CheckForMatrixSingularity "none"
IntegerOverflowMsg
"warning"
Int32ToFloatConvMsg
"warning"
ParameterDowncastMsg
"error"
ParameterOverflowMsg
"error"
ParameterPrecisionLossMsg "warning"
UnderSpecifiedDataTypeMsg "none"
UnnecessaryDatatypeConvMsg "none"
VectorMatrixConversionMsg "none"
InvalidFcnCallConnMsg
"error"
SignalLabelMismatchMsg "none"
UnconnectedInputMsg
"warning"
UnconnectedOutputMsg
"warning"
UnconnectedLineMsg
"warning"
SfunCompatibilityCheckMsg "none"
RTWInlineParameters
off
BlockReductionOpt
off
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (2 von 29) [17.05.2005 17:16:36]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
BooleanDataType
off
ConditionallyExecuteInputs on
ParameterPooling
on
OptimizeBlockIOStorage on
ZeroCross
on
AssertionControl
"UseLocalSettings"
ProdHWDeviceType
"Microprocessor"
ProdHWWordLengths
"8,16,32,32"
RTWSystemTargetFile
"grt.tlc"
RTWTemplateMakefile
"grt_default_tmf"
RTWMakeCommand
"make_rtw"
RTWGenerateCodeOnly
off
RTWRetainRTWFile
off
TLCProfiler
off
TLCDebug
off
TLCCoverage
off
TLCAssertion
off
BlockDefaults {
Orientation
"right"
ForegroundColor
"black"
BackgroundColor
"white"
DropShadow
off
NamePlacement
"normal"
FontName
"Helvetica"
FontSize
10
FontWeight
"normal"
FontAngle
"normal"
ShowName
on
}
BlockParameterDefaults {
Block {
BlockType
Demux
Outputs
"4"
DisplayOption
"none"
BusSelectionMode
off
}
Block {
BlockType
Fcn
Expr
"sin(u[1])"
}
Block {
BlockType
Gain
Gain
"1"
Multiplication
"Element-wise(K.*u)"
ShowAdditionalParam
off
ParameterDataTypeMode
"Same as input"
ParameterDataType
"sfix(16)"
ParameterScalingMode
"Best Precision: Matrix-wise"
ParameterScaling
"2^0"
OutDataTypeMode
"Same as input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
Block {
BlockType
Inport
Port
"1"
PortDimensions
"-1"
SampleTime
"-1"
ShowAdditionalParam
off
LatchInput
off
DataType
"auto"
OutDataType
"sfix(16)"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (3 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
OutScaling
SignalType
SamplingMode
Interpolate
"2^0"
"auto"
"auto"
on
}
Block {
BlockType
Integrator
ExternalReset
"none"
InitialConditionSource "internal"
InitialCondition
"0"
LimitOutput
off
UpperSaturationLimit
"inf"
LowerSaturationLimit
"-inf"
ShowSaturationPort
off
ShowStatePort
off
AbsoluteTolerance
"auto"
ZeroCross
on
}
Block {
BlockType
Mux
Inputs
"4"
DisplayOption
"none"
}
Block {
BlockType
Outport
Port
"1"
OutputWhenDisabled
"held"
InitialOutput
"[]"
}
Block {
BlockType
Relay
OnSwitchValue
"eps"
OffSwitchValue
"eps"
OnOutputValue
"1"
OffOutputValue
"0"
ShowAdditionalParam
off
OutputDataTypeScalingMode "All ports same datatype"
OutDataType
"sfix(16)"
OutScaling
"2^0"
ConRadixGroup
"Use specified scaling"
ZeroCross
on
}
Block {
BlockType
Scope
Floating
off
ModelBased
off
TickLabels
"OneTimeTick"
ZoomMode
"on"
Grid
"on"
TimeRange
"auto"
YMin
"-5"
YMax
"5"
SaveToWorkspace
off
SaveName
"ScopeData"
LimitDataPoints
on
MaxDataPoints
"5000"
Decimation
"1"
SampleInput
off
SampleTime
"0"
}
Block {
BlockType
"S-Function"
FunctionName
"system"
PortCounts
"[]"
SFunctionModules
"''"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (4 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
}
Block {
BlockType
SignalGenerator
WaveForm
"sine"
Amplitude
"1"
Frequency
"1"
Units
"Hertz"
VectorParams1D
on
}
Block {
BlockType
Step
Time
"1"
Before
"0"
After
"1"
SampleTime
"-1"
VectorParams1D
on
ZeroCross
on
}
Block {
BlockType
SubSystem
ShowPortLabels
on
Permissions
"ReadWrite"
RTWSystemCode
"Auto"
RTWFcnNameOpts
"Auto"
RTWFileNameOpts
"Auto"
SimViewingDevice
off
DataTypeOverride
"UseLocalSettings"
MinMaxOverflowLogging
"UseLocalSettings"
}
Block {
BlockType
Sum
IconShape
"rectangular"
Inputs
"++"
ShowAdditionalParam
off
InputSameDT
on
OutDataTypeMode
"Same as first input"
OutDataType
"sfix(16)"
OutScaling
"2^0"
LockScale
off
RndMeth
"Floor"
SaturateOnIntegerOverflow on
}
}
AnnotationDefaults {
HorizontalAlignment
VerticalAlignment
ForegroundColor
BackgroundColor
DropShadow
FontName
FontSize
FontWeight
FontAngle
}
LineDefaults {
FontName
FontSize
FontWeight
FontAngle
}
System {
Name
Location
Open
ModelBrowserVisibility
"center"
"middle"
"black"
"white"
off
"Helvetica"
10
"normal"
"normal"
"Helvetica"
9
"normal"
"normal"
"DTC_hysteresis"
[2, 74, 1014, 724]
on
off
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
ReportName
"simulink-default.rpt"
Block {
BlockType
SubSystem
Name
"Induction Machine"
Ports
[3, 8]
Position
[160, 63, 215, 192]
TreatAsAtomicUnit
off
MaskPromptString
"Stator resistance (ohm)|Rotor resistance (ohm)|"
"Stator self inductance (H)|Rotor self inductance (H)|Mutual Inductance (H)|No"
" of poles|Moment of inertia (kg.m^2)|Load torque (Nm)"
MaskStyleString
"edit,edit,edit,edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on,on,on,on"
MaskCallbackString
"|||||||"
MaskEnableString
"on,on,on,on,on,on,on,on"
MaskVisibilityString
"on,on,on,on,on,on,on,on"
MaskToolTipString
"on,on,on,on,on,on,on,on"
MaskVarAliasString
",,,,,,,"
MaskVariables
"Rs=@1;Rr=@2;Ls=@3;Lr=@4;Lm=@5;pole=@6;J=@7;Tloa"
"d=@8;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"5.5|4.51|306.5e-3|306.5e-3|291.9e-3|4|0.03|1"
System {
Name
"Induction Machine"
Location
[175, 176, 935, 636]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"Va"
Position
[25, 40, 45, 60]
}
Block {
BlockType
Inport
Name
"Vb"
Position
[25, 120, 45, 140]
Port
"2"
}
Block {
BlockType
Inport
Name
"Vc"
Position
[25, 240, 45, 260]
Port
"3"
}
Block {
BlockType
Gain
Name
"1/J"
Position
[260, 292, 285, 318]
Orientation
"left"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (6 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Gain
"1/J"
SaturateOnIntegerOverflow off
}
Block {
BlockType
Gain
Name
"1/J1"
Position
[295, 347, 320, 373]
Gain
"0.05"
SaturateOnIntegerOverflow off
}
Block {
BlockType
SubSystem
Name
"3to2"
Ports
[3, 2]
Position
[105, 81, 135, 139]
ShowPortLabels
off
TreatAsAtomicUnit
off
System {
Name
"3to2"
Location
[4, 42, 628, 468]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_1"
Position
[15, 50, 35, 70]
}
Block {
BlockType
Inport
Name
"in_2"
Position
[15, 115, 35, 135]
Port
"2"
}
Block {
BlockType
Inport
Name
"in_3"
Position
[15, 180, 35, 200]
Port
"3"
}
Block {
BlockType
Gain
Name
"Gain3"
Position
[120, 248, 160, 272]
Gain
"0.577"
}
Block {
BlockType
Gain
Name
"Gain4"
Position
[120, 298, 160, 322]
Gain
"-0.577"
}
Block {
BlockType
Gain
Name
"Gain5"
Position
[145, 143, 185, 167]
Gain
"-0.33333"
}
Block {
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (7 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Gain
"Gain6"
[140, 183, 180, 207]
"-0.33333"
Gain
"Gain7"
[135, 63, 175, 87]
"0.66666"
Sum
"Ib"
[2, 1]
[240, 255, 260, 275]
Sum
"Ib1"
[3, 1]
[260, 87, 280, 123]
"+++"
Outport
"d"
[330, 60, 350, 80]
"0"
Outport
"q"
[310, 250, 330, 270]
"2"
"0"
"Ib1"
1
[15, 0; 0, -35]
"d"
1
"Gain7"
1
[30, 0; 0, 20]
"Ib1"
1
"in_1"
1
[40, 0; 0, 15]
"Gain7"
1
"Gain6"
1
[30, 0; 0, -90]
"Ib1"
2
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
}
}
Block {
BlockType
Name
Ports
Position
Outputs
}
Block {
BlockType
"Gain5"
1
[25, 0; 0, -40]
"Ib1"
3
"in_3"
1
[40, 0; 0, 5]
"Gain6"
1
[0, 115]
"Gain4"
1
"in_2"
1
[20, 0; 0, 30]
"Gain5"
1
[0, 105]
"Gain3"
1
"Gain3"
1
"Ib"
1
"Gain4"
1
[30, 0; 0, -40]
"Ib"
2
"Ib"
1
"q"
1
Demux
"Demux"
[1, 5]
[420, 91, 460, 149]
"5"
Gain
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Name
Position
Orientation
Gain
"Gain1"
[150, 407, 175, 433]
"left"
"2/pole"
}
Block {
BlockType
SubSystem
Name
"IM1"
Ports
[1, 1]
Position
[320, 106, 380, 134]
TreatAsAtomicUnit
off
System {
Name
"IM1"
Location
[248, 340, 468, 422]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"In1"
Position
[25, 33, 55, 47]
}
Block {
BlockType
"S-Function"
Name
"S-Function"
Ports
[1, 1]
Position
[80, 25, 140, 55]
FunctionName
"imch"
Parameters
"Rs, Rr, Ls,Lr,Lm,pole"
}
Block {
BlockType
Outport
Name
"Out1"
Position
[165, 33, 195, 47]
InitialOutput
"0"
}
Line {
SrcBlock
"In1"
SrcPort
1
DstBlock
"S-Function"
DstPort
1
}
Line {
SrcBlock
"S-Function"
SrcPort
1
DstBlock
"Out1"
DstPort
1
}
}
}
Block {
BlockType
Integrator
Name
"Integrator"
Ports
[1, 1]
Position
[360, 295, 380, 315]
Orientation
"left"
}
Block {
BlockType
Mux
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (10 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Ports
Position
Orientation
Inputs
}
Block {
BlockType
Name
Position
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Block {
BlockType
"Mux"
[3, 1]
[260, 104, 290, 136]
"3"
Sum
"Sum"
[2, 1]
[440, 287, 460, 323]
"left"
"+-"
Outport
"isd"
[630, 25, 650, 45]
"0"
Outport
"isq"
[625, 70, 645, 90]
"2"
"0"
Outport
"ird"
[600, 140, 620, 160]
"3"
"0"
Outport
"speed"
[90, 410, 110, 430]
"left"
"4"
"0"
Outport
"Vd"
[265, 50, 285, 70]
"5"
"0"
Outport
"irq"
[595, 185, 615, 205]
"6"
"0"
Outport
"Vq"
[90, 285, 110, 305]
"left"
"7"
"0"
Outport
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
"Te"
[715, 230, 735, 250]
"8"
"0"
"Demux"
1
[60, 0; 0, -20]
"isq"
1
"Demux"
2
[65, 0; 0, -75]
"isd"
1
"3to2"
2
[0, 0]
[0, 170]
"Vq"
1
[55, 0; 0, -15]
"Mux"
1
"3to2"
1
[0, 0; 25, 0]
[0, -35]
"Vd"
1
[30, 0; 0, 25]
"Mux"
2
"Demux"
5
[45, 0; 0, 145]
[0, 15; -35, 0]
"Sum"
1
[70, 0; 0, -45]
"Te"
1
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
"Vc"
1
[20, 0; 0, -120]
"3to2"
3
"Vb"
1
[20, 0; 0, -20]
"3to2"
2
"Va"
1
[20, 0; 0, 40]
"3to2"
1
"1/J"
1
[0, 0; -25, 0]
[0, -175]
"Mux"
3
[-15, 0; 0, 115]
"Gain1"
1
"Mux"
1
"IM1"
1
"IM1"
1
"Demux"
1
"Sum"
1
"Integrator"
1
"Integrator"
1
"1/J"
1
"1/J1"
1
[190, 0; 0, -45]
"Sum"
2
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Annotation {
Name
Position
VerticalAlignment
}
}
}
Block {
BlockType
Name
Ports
Position
Orientation
FunctionName
}
Block {
BlockType
Name
Ports
Position
Location
Open
NumInputPorts
ZoomMode
List {
ListType
axes1
axes2
axes3
}
List {
ListType
axes1
axes2
axes3
}
"Demux"
3
[30, 0; 0, 75]
"irq"
1
"Demux"
4
[25, 0; 0, 20]
"ird"
1
"Gain1"
1
[0, 0; -10, 0]
"speed"
1
[0, -60]
"1/J1"
1
"q"
[482, 87]
"top"
"S-Function"
"S-Function2"
[1, 1]
[220, 355, 270, 375]
"left"
"flxp2"
Scope
"Scope"
[3]
[560, 214, 590, 246]
[249, 259, 660, 649]
on
"3"
"yonly"
AxesTitles
"%<SignalLabel>"
"%<SignalLabel>"
"%<SignalLabel>"
SelectedSignals
""
""
""
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
TimeRange
YMin
YMax
DataFormat
}
Block {
BlockType
Name
Ports
Position
Location
Open
NumInputPorts
ZoomMode
List {
ListType
axes1
}
List {
ListType
axes1
}
TimeRange
YMin
YMax
SaveName
DataFormat
}
Block {
BlockType
Name
Ports
Position
Location
Open
NumInputPorts
ZoomMode
List {
ListType
axes1
}
List {
ListType
axes1
}
TimeRange
YMin
YMax
SaveName
DataFormat
}
Block {
BlockType
Name
Position
Orientation
WaveForm
Amplitude
Frequency
}
Block {
BlockType
Name
Position
Orientation
"0.1"
"-0.1~-20~-15"
"2~20~15"
"StructureWithTime"
Scope
"Scope1"
[1]
[560, 144, 590, 176]
[667, 408, 991, 647]
on
"1"
"yonly"
AxesTitles
"%<SignalLabel>"
SelectedSignals
""
"0.01"
"-0.1"
"2"
"ScopeData1"
"StructureWithTime"
Scope
"Scope2"
[1]
[325, 184, 355, 216]
[667, 110, 991, 349]
on
"1"
"yonly"
AxesTitles
"%<SignalLabel>"
SelectedSignals
""
"0.01"
"-20"
"20"
"ScopeData2"
"StructureWithTime"
SignalGenerator
"Signal\nGenerator"
[640, 320, 670, 350]
"left"
"square"
"-15"
"15"
Step
"Step"
[545, 380, 575, 410]
"left"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Time
After
"0.001"
"1.2"
}
Block {
BlockType
SubSystem
Name
"Subsystem"
Ports
[3, 3]
Position
[110, 286, 160, 384]
Orientation
"left"
TreatAsAtomicUnit
off
System {
Name
"Subsystem"
Location
[230, 305, 670, 522]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"T,err"
Position
[25, 35, 45, 55]
}
Block {
BlockType
Inport
Name
"Flx,err"
Position
[25, 105, 45, 125]
Port
"2"
}
Block {
BlockType
Inport
Name
"Flx ang"
Position
[25, 160, 45, 180]
Port
"3"
}
Block {
BlockType
Demux
Name
"Demux"
Ports
[1, 3]
Position
[280, 99, 320, 131]
Outputs
"3"
}
Block {
BlockType
Mux
Name
"Mux"
Ports
[3, 1]
Position
[100, 99, 130, 131]
Inputs
"3"
}
Block {
BlockType
"S-Function"
Name
"S-Function1"
Ports
[1, 1]
Position
[180, 105, 230, 125]
FunctionName
"select2"
}
Block {
BlockType
Outport
Name
"Sa"
Position
[375, 25, 395, 45]
InitialOutput
"0"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (16 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Outport
"Sb"
[395, 105, 415, 125]
"2"
"0"
Outport
"Sc"
[350, 170, 370, 190]
"3"
"0"
"Flx ang"
1
"Mux"
3
"Demux"
3
[0, 55]
"Sc"
1
"Flx,err"
1
"Mux"
2
"Demux"
2
"Sb"
1
"T,err"
1
"Mux"
1
"Demux"
1
[0, -70]
"Sa"
1
"Mux"
1
"S-Function1"
1
"S-Function1"
1
"Demux"
1
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
}
}
Block {
BlockType
Sum
Name
"Sum2"
Ports
[2, 1]
Position
[510, 307, 530, 343]
Orientation
"left"
Inputs
"-+"
}
Block {
BlockType
Sum
Name
"Sum4"
Ports
[2, 1]
Position
[435, 380, 455, 400]
Orientation
"left"
Inputs
"+-"
}
Block {
BlockType
SubSystem
Name
"Voltage-controlled\nPWM-VSI1"
Ports
[3, 3]
Position
[70, 96, 100, 164]
ShowPortLabels
off
TreatAsAtomicUnit
off
System {
Name
"Voltage-controlled\nPWM-VSI1"
Location
[-23, 85, 764, 579]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_5"
Position
[370, 60, 390, 80]
Orientation
"left"
}
Block {
BlockType
Inport
Name
"in_6"
Position
[390, 155, 410, 175]
Orientation
"left"
Port
"2"
}
Block {
BlockType
Inport
Name
"in_7"
Position
[395, 225, 415, 245]
Orientation
"left"
Port
"3"
}
Block {
BlockType
Gain
Name
"Gain1"
Position
[290, 152, 315, 178]
Orientation
"left"
Gain
"240"
}
Block {
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (18 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
BlockType
Name
Position
Orientation
Gain
}
Block {
BlockType
Name
Position
Orientation
Gain
}
Block {
BlockType
Name
Position
Orientation
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Block {
BlockType
Name
Position
Orientation
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
Gain
"Gain2"
[295, 222, 320, 248]
"left"
"240"
Gain
"Gain3"
[285, 57, 310, 83]
"left"
"240"
Outport
"out_1"
[160, 60, 180, 80]
"left"
"0"
Outport
"out_2"
[165, 155, 185, 175]
"left"
"2"
"0"
Outport
"out_3"
[175, 225, 195, 245]
"left"
"3"
"0"
"in_5"
1
"Gain3"
1
"in_6"
1
"Gain1"
1
"in_7"
1
"Gain2"
1
"Gain3"
1
"out_1"
1
"Gain1"
1
"out_2"
1
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
"Gain2"
1
"out_3"
1
}
}
Block {
BlockType
Relay
Name
"flux\nhysterisis"
Position
[335, 378, 365, 402]
Orientation
"left"
OnSwitchValue
"0.01"
OffSwitchValue
"-0.01"
}
Block {
BlockType
SubSystem
Name
"stator flux - voltage model"
Ports
[4, 4]
Position
[345, 15, 415, 145]
TreatAsAtomicUnit
off
MaskPromptString
"Stator resistance"
MaskStyleString
"edit"
MaskTunableValueString "on"
MaskEnableString
"on"
MaskVisibilityString
"on"
MaskToolTipString
"on"
MaskVariables
"Rs=@1;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"5.5"
System {
Name
"stator flux - voltage model"
Location
[160, 288, 765, 529]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"vd"
Position
[50, 33, 80, 47]
}
Block {
BlockType
Inport
Name
"id"
Position
[40, 98, 70, 112]
Port
"2"
}
Block {
BlockType
Inport
Name
"vq"
Position
[60, 143, 90, 157]
Port
"3"
}
Block {
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (20 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
BlockType
Name
Position
Port
Inport
"iq"
[25, 193, 55, 207]
"4"
}
Block {
BlockType
SubSystem
Name
"Cartesian to Polar"
Ports
[2, 2]
Position
[420, 92, 455, 143]
ShowPortLabels
off
TreatAsAtomicUnit
off
MaskType
"[x,y]->[r,theta]"
MaskDescription
"Tranformation from cartesian to polar\ncoor"
"dinates.\nr=sqrt(x^2+y^2), theta=atan(y/x)"
MaskHelp
"Unmask this block for more help."
MaskDisplay
"plot(0,0,100,100,[24,20,15,20,20],[85,95,85"
",95,20],[80,20,95,85,95,85],[70,20,20,15,20,24],[56,56,55,52,50,46],[20,26,31"
",35,38,42])"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
System {
Name
"Cartesian to Polar"
Location
[0, 0, 359, 206]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"x"
Position
[20, 70, 40, 90]
}
Block {
BlockType
Inport
Name
"y"
Position
[20, 129, 40, 151]
Port
"2"
}
Block {
BlockType
Mux
Name
"Mux"
Ports
[2, 1]
Position
[75, 96, 105, 129]
Inputs
"2"
}
Block {
BlockType
Fcn
Name
"x->r"
Position
[155, 72, 260, 98]
Expr
"hypot(u[1],u[2])"
}
Block {
BlockType
Fcn
Name
"x->theta"
Position
[160, 129, 265, 151]
Expr
"atan2(u[2],u[1])"
}
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (21 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Block {
BlockType
Name
Position
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Annotation {
Name
Position
VerticalAlignment
}
}
}
Block {
BlockType
Name
Position
Gain
}
Outport
"r"
[295, 75, 315, 95]
"0"
Outport
"theta"
[295, 130, 315, 150]
"2"
"0"
"x->theta"
1
"theta"
1
"y"
1
"Mux"
2
"x"
1
"Mux"
1
"x->r"
1
"r"
1
"Mux"
1
[15, 0]
[0, 25]
"x->theta"
1
[0, -30]
"x->r"
1
"Cartesian to Polar"
[167, 37]
"top"
Gain
"Gain2"
[170, 167, 195, 193]
"Rs"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Block {
BlockType
Name
Position
Gain
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Ports
Position
Inputs
}
Block {
BlockType
Name
Position
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
InitialOutput
}
Block {
BlockType
Name
Position
Port
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
Gain
"Gain3"
[170, 112, 195, 138]
"Rs"
Integrator
"Integrator"
[1, 1]
[315, 85, 345, 115]
Integrator
"Integrator1"
[1, 1]
[310, 165, 340, 195]
Sum
"Sum6"
[2, 1]
[240, 90, 260, 110]
"+-"
Sum
"Sum7"
[2, 1]
[240, 145, 260, 165]
"+-"
Outport
"flxsdv"
[500, 28, 530, 42]
Outport
"flxsv"
[550, 88, 580, 102]
"2"
"0"
Outport
"angflxsv"
[480, 123, 510, 137]
"3"
"0"
Outport
"flxsqv"
[435, 203, 465, 217]
"4"
"Sum6"
1
"Integrator"
1
"Sum7"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
1
"Integrator1"
1
"Gain3"
1
[25, 0]
"Sum6"
2
"Gain2"
1
[0, -10]
"Sum7"
2
"vd"
1
[60, 0; 0, 55]
"Sum6"
1
"Integrator"
1
[0, 5; 25, 0]
"Cartesian to Polar"
1
[0, -70]
"flxsdv"
1
"Integrator1"
1
[50, 0]
[0, -50]
"Cartesian to Polar"
2
[0, 30]
"flxsqv"
1
"Cartesian to Polar"
1
[75, 0]
"flxsv"
1
"id"
1
[0, 20]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
"Gain3"
1
"Cartesian to Polar"
2
"angflxsv"
1
"vq"
1
"Sum7"
1
"iq"
1
[0, -20]
"Gain2"
1
}
}
Block {
BlockType
SubSystem
Name
"torquehys"
Ports
[1, 1]
Position
[365, 300, 395, 350]
Orientation
"left"
ShowPortLabels
off
TreatAsAtomicUnit
off
MaskPromptString
"Hyst band"
MaskStyleString
"edit"
MaskTunableValueString "on"
MaskEnableString
"on"
MaskVisibilityString
"on"
MaskToolTipString
"on"
MaskVariables
"Th=@1;"
MaskIconFrame
on
MaskIconOpaque
on
MaskIconRotate
"none"
MaskIconUnits
"autoscale"
MaskValueString
"2"
System {
Name
"torquehys"
Location
[50, 122, 340, 345]
Open
off
ModelBrowserVisibility off
ModelBrowserWidth
200
ScreenColor
"white"
PaperOrientation
"landscape"
PaperPositionMode
"auto"
PaperType
"usletter"
PaperUnits
"inches"
ZoomFactor
"100"
Block {
BlockType
Inport
Name
"in_1"
Position
[275, 95, 295, 115]
Orientation
"left"
}
Block {
BlockType
Relay
Name
"Relay"
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (25 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Position
Orientation
OnSwitchValue
OffSwitchValue
}
Block {
BlockType
Name
Position
Orientation
OnSwitchValue
OffSwitchValue
OnOutputValue
OffOutputValue
}
Block {
BlockType
Name
Ports
Position
Orientation
}
Block {
BlockType
Name
Position
Orientation
InitialOutput
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Relay
"Relay1"
[185, 123, 215, 147]
"left"
"0"
"-Th/2"
"0"
"-1"
Sum
"Sum3"
[2, 1]
[55, 105, 75, 125]
"left"
Outport
"out_1"
[15, 105, 35, 125]
"left"
"0"
"Sum3"
1
"out_1"
1
"Relay1"
1
[-75, 0]
"Sum3"
2
"Relay"
1
[-65, 0]
"Sum3"
1
"in_1"
1
[-20, 0]
[0, 30]
"Relay1"
1
[-5, 0]
"Relay"
1
}
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl (26 von 29) [17.05.2005 17:16:37]
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
Branch {
Points
DstBlock
DstPort
}
Branch {
Points
DstBlock
DstPort
}
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
Branch {
Points
Branch {
"Induction Machine"
5
[30, 0; 0, -100]
"stator flux - voltage model"
1
"Induction Machine"
1
[110, 0]
"stator flux - voltage model"
2
"Induction Machine"
2
[70, 0; 0, 35]
"stator flux - voltage model"
4
"Induction Machine"
7
[15, 0; 0, -70]
"stator flux - voltage model"
3
"Induction Machine"
8
[20, 0; 0, 20]
[0, 90; 140, 0]
[165, 0]
"Sum2"
1
[0, -60]
"Scope"
2
"Scope2"
1
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
Points
DstBlock
DstPort
}
Branch {
DstBlock
DstPort
}
}
Branch {
DstBlock
DstPort
}
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
[0, 165]
"Sum4"
1
"Scope"
1
"Scope1"
1
"Voltage-controlled\nPWM-VSI1"
1
[20, 0; 0, -25]
"Induction Machine"
1
"Voltage-controlled\nPWM-VSI1"
2
"Induction Machine"
2
"Voltage-controlled\nPWM-VSI1"
3
[20, 0; 0, 25]
"Induction Machine"
3
"Subsystem"
1
[-80, 0; 0, -195]
"Voltage-controlled\nPWM-VSI1"
1
"Subsystem"
2
[-70, 0; 0, -205]
"Voltage-controlled\nPWM-VSI1"
2
"Subsystem"
3
[-60, 0; 0, -215]
"Voltage-controlled\nPWM-VSI1"
3
"flux\nhysterisis"
1
[-40, 0; 0, -55]
"Subsystem"
2
"Sum4"
1
http://encon.fke.utm.my/courses/mep1422/DTC_hysteresis.mdl
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
DstBlock
DstPort
}
Line {
SrcBlock
SrcPort
Points
DstBlock
DstPort
}
"flux\nhysterisis"
1
"Step"
1
"Sum4"
2
"torquehys"
1
[-60, 0; 0, -20]
"Subsystem"
1
"Sum2"
1
"torquehys"
1
"Signal\nGenerator"
1
"Sum2"
2
"S-Function2"
1
"Subsystem"
3
"Induction Machine"
4
[45, 0; 0, 120]
"Scope"
3
}
}