📄 bldc_00.mdl
字号:
DropShadow on
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
FunctionWithSeparateData off
MaskHideContents off
MaskDisplay "disp('?')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
System {
Name "Double click here for more info"
Location [278, 109, 925, 559]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Annotation {
Name "Demonstration"
Position [19, 252]
HorizontalAlignment "left"
VerticalAlignment "top"
ForegroundColor "blue"
UseDisplayTextAsClickCallback off
FontSize 14
FontWeight "bold"
}
Annotation {
Name "Circuit Description"
Position [14, 102]
HorizontalAlignment "left"
VerticalAlignment "top"
ForegroundColor "blue"
UseDisplayTextAsClickCallback off
FontSize 14
FontWeight "bold"
}
Annotation {
Name "This demonstration illustrates use of the B"
"LDC in a closed-loop\nspeed and voltage control on a 1 kW, 3000 rpm industria"
"l motor "
Position [14, 17]
HorizontalAlignment "left"
VerticalAlignment "top"
UseDisplayTextAsClickCallback off
FontSize 14
FontWeight "bold"
}
Annotation {
Name "A three-phase motor rated 1 kW, 500 Vdc, 30"
"00 rpm is fed by a six step voltage inverter. The inverter is a \nMOSFET brid"
"ge used from the SimPowerSystems library. A speed regulator is used to contro"
"l the DC \nbus voltage. The gates of the inverter are controlled by the Hall "
"effects switches, passing through a gates \ndecoder. The three-phase output o"
"f the inverter are applied to the PMSM block's stator windings. The load \nto"
"rque applied to the machine's shaft is originally set to 0 and steps to its "
"nominal value (3 N.m) at t = 0.1 s. \n\nTwo control loops are used. The inner"
" loop synchronise the impulsions of the bridge with the electromotive \nforce"
". The outer loop controls the motor's speed, by varying the DC bus voltage."
Position [16, 120]
HorizontalAlignment "left"
VerticalAlignment "top"
UseDisplayTextAsClickCallback off
FontName "Arial"
FontSize 12
}
Annotation {
Name "Observe that the waveform of the current is"
" the shape of saw-teeth.That is caused by the DC bus voltage \nwhich applies "
"a constant value during 120 electrical degrees to the motor inductance. The i"
"nitial current is \nhigh and decreases during the acceleration to the nominal"
" speed. When the nominal torque is applied, the \nstator current increases to"
" maintain the nominal speed. The saw-teeth waveform is also observed in the "
"\nelectromagnetic torque signal Te. However, the motor's inertia prevents thi"
"s noise from appearing in the \nmotor's speed waveform. "
" \n\nChange the \"Flux distribution\" of the motor from trapezoidal to s"
"inusoidal and observe the waveform of the \nelectromotive force e_a.\n"
Position [19, 281]
HorizontalAlignment "left"
VerticalAlignment "top"
UseDisplayTextAsClickCallback off
FontName "Arial"
FontSize 12
}
Annotation {
Name "Olivier Tremblay, Louis-A. Dessaint (Ecole "
"de technologie superieure, Montreal)"
Position [249, 68]
UseDisplayTextAsClickCallback off
FontName "Arial"
FontSize 12
}
}
}
Block {
BlockType SubSystem
Name "Gates"
Ports [1, 1]
Position [505, 30, 585, 70]
Orientation "left"
BackgroundColor "lightBlue"
NamePlacement "alternate"
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
FunctionWithSeparateData off
MaskHideContents off
System {
Name "Gates"
Location [91, 268, 905, 724]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType Inport
Name "emf_abc\n"
Position [20, 143, 50, 157]
IconDisplay "Port number"
}
Block {
BlockType Reference
Name "Compare\nTo Zero"
Ports [1, 1]
Position [275, 59, 320, 81]
ShowName off
SourceBlock "simulink/Logic and Bit\nOperations/Compare"
"\nTo Zero"
SourceType "Compare To Zero"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
relop ">"
LogicOutDataTypeMode "boolean"
ZeroCross off
}
Block {
BlockType Reference
Name "Compare\nTo Zero1"
Ports [1, 1]
Position [275, 99, 320, 121]
ShowName off
SourceBlock "simulink/Logic and Bit\nOperations/Compare"
"\nTo Zero"
SourceType "Compare To Zero"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
relop "<"
LogicOutDataTypeMode "boolean"
ZeroCross off
}
Block {
BlockType Reference
Name "Compare\nTo Zero2"
Ports [1, 1]
Position [275, 139, 320, 161]
ShowName off
SourceBlock "simulink/Logic and Bit\nOperations/Compare"
"\nTo Zero"
SourceType "Compare To Zero"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
relop ">"
LogicOutDataTypeMode "boolean"
ZeroCross off
}
Block {
BlockType Reference
Name "Compare\nTo Zero3"
Ports [1, 1]
Position [275, 179, 320, 201]
ShowName off
SourceBlock "simulink/Logic and Bit\nOperations/Compare"
"\nTo Zero"
SourceType "Compare To Zero"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
relop "<"
LogicOutDataTypeMode "boolean"
ZeroCross off
}
Block {
BlockType Reference
Name "Compare\nTo Zero4"
Ports [1, 1]
Position [270, 219, 315, 241]
ShowName off
SourceBlock "simulink/Logic and Bit\nOperations/Compare"
"\nTo Zero"
SourceType "Compare To Zero"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
relop ">"
LogicOutDataTypeMode "boolean"
ZeroCross off
}
Block {
BlockType Reference
Name "Compare\nTo Zero5"
Ports [1, 1]
Position [270, 259, 315, 281]
ShowName off
SourceBlock "simulink/Logic and Bit\nOperations/Compare"
"\nTo Zero"
SourceType "Compare To Zero"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
relop "<"
LogicOutDataTypeMode "boolean"
ZeroCross off
}
Block {
BlockType Demux
Name "Demux2"
Ports [1, 3]
Position [155, 28, 160, 272]
BackgroundColor "black"
ShowName off
Outputs "3"
DisplayOption "bar"
}
Block {
BlockType Mux
Name "Mux3"
Ports [6, 1]
Position [420, 124, 425, 221]
ShowName off
Inputs "6"
DisplayOption "bar"
}
Block {
BlockType Outport
Name "Gates"
Position [465, 168, 495, 182]
IconDisplay "Port number"
BusOutputAsStruct off
}
Line {
SrcBlock "emf_abc\n"
SrcPort 1
DstBlock "Demux2"
DstPort 1
}
Line {
SrcBlock "Mux3"
SrcPort 1
DstBlock "Gates"
DstPort 1
}
Line {
SrcBlock "Demux2"
SrcPort 1
Points [0, 0; 75, 0]
Branch {
DstBlock "Compare\nTo Zero"
DstPort 1
}
Branch {
Points [0, 40]
DstBlock "Compare\nTo Zero1"
DstPort 1
}
}
Line {
SrcBlock "Demux2"
SrcPort 2
Points [0, 0; 75, 0]
Branch {
DstBlock "Compare\nTo Zero2"
DstPort 1
}
Branch {
Points [0, 40]
DstBlock "Compare\nTo Zero3"
DstPort 1
}
}
Line {
SrcBlock "Demux2"
SrcPort 3
Points [0, 0; 70, 0]
Branch {
DstBlock "Compare\nTo Zero4"
DstPort 1
}
Branch {
Points [0, 40]
DstBlock "Compare\nTo Zero5"
DstPort 1
}
}
Line {
SrcBlock "Compare\nTo Zero"
SrcPort 1
Points [60, 0; 0, 65]
DstBlock "Mux3"
DstPort 1
}
Line {
SrcBlock "Compare\nTo Zero1"
SrcPort 1
Points [45, 0; 0, 40]
DstBlock "Mux3"
DstPort 2
}
Line {
SrcBlock "Compare\nTo Zero2"
SrcPort 1
Points [30, 0; 0, 15]
DstBlock "Mux3"
DstPort 3
}
Line {
SrcBlock "Compare\nTo Zero3"
SrcPort 1
Points [30, 0; 0, -10]
DstBlock "Mux3"
DstPort 4
}
Line {
SrcBlock "Compare\nTo Zero4"
SrcPort 1
Points [45, 0; 0, -35]
DstBlock "Mux3"
DstPort 5
}
Line {
SrcBlock "Compare\nTo Zero5"
SrcPort 1
Points [60, 0; 0, -60]
DstBlock "Mux3"
DstPort 6
}
Annotation {
Name "This module implements the following true t"
"able\n\n emf_a | emf_b | emf_c || Q1 | Q2 | Q3 | Q4"
" | Q5 | Q6\n -----------------------------------------------------"
"-------------------------------------------------------------\n 0 "
" 0 0 0 0 0 0 "
" 0 0\n 0 -1 +1 0 0"
" 0 1 1 0\n -1 +1 "
" 0 0 1 1 0 0 0\n -1 "
" 0 +1 0 1 0 0 "
" 1 0\n +1 0 -1 1 "
" 0 0 0 0 1\n +1 -1 "
" 0 1 0 0 1 0 0\n "
" 0 +1 -1 0 0 1 "
" 0 0 1\n 0 0 0 0 "
" 0 0 0 0 0\n "
Position [559, 324]
UseDisplayTextAsClickCallback off
}
}
}
Block {
BlockType Scope
Name "N (rpm)"
Ports [1]
Position [955, 165, 985, 195]
BackgroundColor "green"
NamePlacement "alternate"
Floating off
Location [466, 394, 921, 686]
Open off
NumInputPorts "1"
ZoomMode "yonly"
List {
ListType AxesTitles
axes1 "Rotor speed (rpm)"
}
TimeRange "0.2"
YMin "0"
YMax "3500"
SaveToWorkspace on
SaveName "N"
DataFormat "StructureWithTime"
LimitDataPoints off
SampleTime "0"
}
Block {
BlockType SubSystem
Name "PWM Module"
Ports [2, 1]
Position [1025, 42, 1135, 98]
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
FunctionWithSeparateData off
MaskHideContents off
System {
Name "PWM Module"
Location [316, 453, 1300, 710]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType Inport
Name "Hall\n"
Position [60, 43, 90, 57]
IconDisplay "Port number"
}
Block {
BlockType Inport
Name "Duty"
Position [60, 103, 90, 117]
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Abs
Name "Abs"
Position [455, 35, 485, 65]
SaturateOnIntegerOverflow off
ZeroCross on
SampleTime "-1"
}
Block {
BlockType Sum
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -