📄 direct.mdl
字号:
Position [165, 71, 190, 89]
Expr "(-u[1]+1.7320508*u[2])*u[4]*0.5+(u[2]+1.732"
"0508*u[1])*u[3]*0.5"
}
Block {
BlockType Sum
Name "ic"
Ports [2, 1]
Position [240, 92, 250, 123]
Inputs "--"
}
Block {
BlockType Outport
Name "Iabc*"
Position [370, 73, 400, 87]
InitialOutput "0"
}
Line {
SrcBlock "Fcn"
SrcPort 1
DstBlock "Mux"
DstPort 2
}
Line {
SrcBlock "Fcn1"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "Mux2"
SrcPort 1
DstBlock "Iabc*"
DstPort 1
}
Line {
SrcBlock "Mux"
SrcPort 1
Points [10, 0]
Branch {
Points [0, 5]
DstBlock "ib"
DstPort 1
}
Branch {
Points [0, -25]
DstBlock "ia"
DstPort 1
}
}
Line {
SrcBlock "Teta"
SrcPort 1
Points [10, 0]
Branch {
DstBlock "Fcn1"
DstPort 1
}
Branch {
DstBlock "Fcn"
DstPort 1
}
}
Line {
SrcBlock "Iq*"
SrcPort 1
DstBlock "Mux"
DstPort 3
}
Line {
SrcBlock "Id*"
SrcPort 1
DstBlock "Mux"
DstPort 4
}
Line {
SrcBlock "Gain3"
SrcPort 1
DstBlock "Mux2"
DstPort 2
}
Line {
SrcBlock "ic"
SrcPort 1
DstBlock "Gain4"
DstPort 1
}
Line {
SrcBlock "Gain4"
SrcPort 1
DstBlock "Mux2"
DstPort 3
}
Line {
SrcBlock "Gain2"
SrcPort 1
DstBlock "Mux2"
DstPort 1
}
Line {
SrcBlock "ia"
SrcPort 1
Points [5, 0]
Branch {
DstBlock "Gain2"
DstPort 1
}
Branch {
Points [0, 65]
DstBlock "ic"
DstPort 2
}
}
Line {
SrcBlock "ib"
SrcPort 1
Points [20, 0]
Branch {
DstBlock "Gain3"
DstPort 1
}
Branch {
Points [0, 20]
DstBlock "ic"
DstPort 1
}
}
}
}
Block {
BlockType Reference
Name "Demux"
Ports [1, 3]
Position [725, 194, 765, 306]
NamePlacement "alternate"
SourceBlock "powerlib2/Machines/Machines\nMeasurement\nDemux"
SourceType "Machine measurements"
machType "Asynchronous"
ssm1 on
ssm2 on
ssm3 on
ssm4 on
ssm5 on
ssm6 on
sm1 on
sm2 on
sm3 on
sm4 on
sm5 on
sm6 on
sm7 on
sm8 on
sm9 on
sm10 on
sm11 on
sm115 off
sm12 off
sm13 off
sm14 off
asm1 off
asm2 off
asm3 off
asm4 off
asm5 on
asm6 off
asm7 off
asm8 off
asm9 on
asm10 on
asm11 off
pmsm1 on
pmsm2 on
pmsm3 on
pmsm4 on
pmsm5 on
pmsm6 on
lastType "3"
}
Block {
BlockType SubSystem
Name "Flux Calculation"
Ports [1, 1]
Position [235, 20, 320, 50]
Orientation "left"
NamePlacement "alternate"
TreatAsAtomicUnit off
MaskType "Flux Calcultation"
MaskInitialization "NF=0.44572610323020e-6;\nDF=[1 -0.9999871548673"
"4];"
MaskDisplay "disp('Flux\\nCalc.')"
MaskIconFrame on
MaskIconOpaque off
MaskIconRotate "none"
MaskIconUnits "autoscale"
System {
Name "Flux Calculation"
Location [24, 605, 408, 813]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "Id"
Position [320, 38, 350, 52]
Orientation "left"
}
Block {
BlockType SubSystem
Name "Discrete Tranfer Function"
Ports [1, 1]
Position [95, 20, 165, 70]
Orientation "left"
TreatAsAtomicUnit off
MaskType "First Order Low Pass Filter (Discrete)"
MaskDescription "H(s)=1/(1+T.s)"
MaskPromptString "Time constant T (s) :|Time step (s)"
MaskStyleString "edit,edit"
MaskTunableValueString "on,on"
MaskCallbackString "|"
MaskEnableString "on,on"
MaskVisibilityString "on,on"
MaskToolTipString "on,on"
MaskVarAliasString ","
MaskVariables "T=@1;Ts=@2;"
MaskInitialization " X=[0 1 2 3 4];\n Y=[-2 -2 -3 -4 -4];\n str"
"=sprintf('\\nH=1/(1+T.s)\\n T= %g s\\n\\n\\n',T);\nnum=1;\nden=[T 1];\n\n% di"
"screte transfer function\n% descending powers of z\nnumd= Ts/T;\ndend=[ 1 (T"
"s-T)/T];\n\n"
MaskDisplay "plot(X,Y);\ndisp(str);\n"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "0.1557|2e-6"
System {
Name "Discrete Tranfer Function"
Location [565, 312, 994, 482]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "In"
Position [25, 38, 55, 52]
}
Block {
BlockType DiscreteTransferFcn
Name "Discrete\nTransfer Fcn"
Position [75, 27, 135, 63]
Numerator "numd"
Denominator "dend"
SampleTime "Ts"
}
Block {
BlockType Outport
Name "Out"
Position [165, 38, 195, 52]
InitialOutput "0"
}
Line {
SrcBlock "Discrete\nTransfer Fcn"
SrcPort 1
DstBlock "Out"
DstPort 1
}
Line {
SrcBlock "In"
SrcPort 1
DstBlock "Discrete\nTransfer Fcn"
DstPort 1
}
}
}
Block {
BlockType Gain
Name "Lm"
Position [220, 27, 280, 63]
Orientation "left"
Gain "34.7e-3"
}
Block {
BlockType Outport
Name "Phir"
Position [25, 38, 55, 52]
Orientation "left"
}
Line {
SrcBlock "Discrete Tranfer Function"
SrcPort 1
DstBlock "Phir"
DstPort 1
}
Line {
SrcBlock "Id"
SrcPort 1
DstBlock "Lm"
DstPort 1
}
Line {
SrcBlock "Lm"
SrcPort 1
DstBlock "Discrete Tranfer Function"
DstPort 1
}
Annotation {
Name "Phir = Lm *Id / (1 +Tr .s) "
Position [95, 118]
}
Annotation {
Name "Lm = 34.7 mH"
Position [74, 139]
}
Annotation {
Name "Lr = Ll'r +Lm = 0.8 +34.7= 35.5 mH"
Position [124, 179]
}
Annotation {
Name "Tr = Lr / Rr = 0.1557 s"
Position [89, 159]
}
Annotation {
Name "Rr = 0.228 ohms"
Position [284, 179]
}
}
}
Block {
BlockType Reference
Name "IGBT Inverter"
Tag "PoWeRsYsTeMbLoCk"
Ports [3, 3]
Position [520, 207, 585, 273]
NamePlacement "alternate"
SourceBlock "powerlib2/Power\nElectronics/Universal Bridge"
SourceType "Universal Bridge"
arms "3"
confi "ABC as output terminals"
injcc "1000"
cf "inf"
device "IGBT / Diodes"
Ron "1e-3"
Lon "0"
VFs "[ 0.8 0.8 ]"
Vf ".8"
gtoparameters "[ 1e-6 , 1e-6 ]"
igbtparameters "[ 1e-6 , 2e-6 ]"
mesure "None"
PSBOutputType "111"
}
Block {
BlockType Reference
Name "Induction Motor\n50 HP / 460 V"
Tag "PoWeRsYsTeMbLoCk"
Ports [4, 1]
Position [625, 207, 700, 293]
NamePlacement "alternate"
SourceBlock "powerlib2/Machines/Asynchronous Machine\nSI Uni"
"ts"
SourceType "Asynchronous Machine"
rotType "Squirrel-cage"
ctrl "Stationary"
x1 "[ 50*746, 460, 60 ]"
x2 "[ 0.087 0.8e-3 ]"
x3 "[ 0.228 0.8e-3 ]"
x4 "34.7e-3"
x5 "[1.662 0.1 2 ]"
x6 "[ 1, 0 , 0 , 0 , 0 , 0 , 0 , 0 ]"
PSBOutputType "1110"
iounits "1"
LoadFlowParameters "0"
}
Block {
BlockType Step
Name "Load_torque"
Position [545, 338, 575, 362]
NamePlacement "alternate"
Time "2"
After "200"
SampleTime "0"
}
Block {
BlockType Constant
Name "Load_torque "
Position [545, 293, 575, 317]
NamePlacement "alternate"
Value "0"
}
Block {
BlockType SubSystem
Name "More Info"
Ports []
Position [730, 465, 757, 490]
DropShadow on
TreatAsAtomicUnit off
MaskDisplay "disp('?')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
System {
Name "More Info"
Location [98, 216, 805, 752]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "99"
Annotation {
Name "Start the simulation. Observe the motor cur"
"rent, voltage, speed, and torque during the starting on the scope.\n\nAt the "
"end of the simulation time (1.5 s), the system has attained its steady-state."
" The final state \nvector can be saved by previously selecting 'Workspace I/"
"O/Save to workspace/Final state' in \nSimulation/Parameters window. Once the"
" simultion is finished save the xFinal variable into xInitial. \n\nNote : Th"
"e initial conditions state vector xInitial to start with wm = 120 rad/s and T"
"e = 0 is stored in the\npsbacdrive_init.mat file.\n\nReplace the constant wr"
"ef and TL blocks by the two Simulink step functions with different starting t"
"imes.\n(Refence speed wref changed from 120 to 160 rad/s at t = 0.4 s and loa"
"d torque changed from 0 to 200 N.m at t = 2s) \nSelect 'Workspace I/O/Load f"
"rom workspace/Initial state' in Simulation parameters window to load the stea"
"dy-state \nvector xInitial. Restart the simulation and observe the drive re"
"sponse to successive changes in speed reference\nand load torque."
Position [24, 240]
HorizontalAlignment "left"
VerticalAlignment "top"
FontName "Arial"
FontSize 12
}
Annotation {
Name "The induction motor is fed by a current-con"
"trolled PWM inverter which is built using a Universal Bridge block. \nThe mot"
"or drives a mechanical load characterized by inertia J, friction coeficient B"
", and load torque TL . \nThe speed control loop"
" uses a proportional-integral controller to produce the quadrature-axis curre"
"nt reference \niq* which controls the motor torque. The motor flux is contro"
"lled by the direct-axis current reference id*.\nBlock DQ-ABC is used to conve"
"rt id* and iq* into current references ia*, ib*, and ic* for the current regu"
"lator. \nCurrent and Voltage Measurement blocks provide signals for visual"
"ization purpose. \nMotor current, speed, and torque signals are ava"
"ilable at the output of the 'Asynchronous Machine' block. "
Position [23, 98]
HorizontalAlignment "left"
VerticalAlignment "top"
FontName "Arial"
FontSize 12
}
Annotation {
Name "Demonstration"
Position [24, 217]
HorizontalAlignment "left"
VerticalAlignment "top"
ForegroundColor "blue"
FontSize 14
FontWeight "bold"
}
Annotation {
Name "Circuit Description"
Position [24, 77]
HorizontalAlignment "left"
VerticalAlignment "top"
ForegroundColor "blue"
FontSize 14
FontWeight "bold"
}
Annotation {
Name "Case study : Variable-Frequency Induction M"
"otor Drive"
Position [24, 27]
HorizontalAlignment "left"
VerticalAlignment "top"
FontSize 14
FontWeight "bold"
}
Annotation {
Name "Notes"
Position [23, 464]
HorizontalAlignment "left"
VerticalAlignment "top"
ForegroundColor "blue"
FontName "Arial"
FontSize 14
FontWeight "bold"
}
Annotation {
Name "1) The system (control and power sytem) has"
" been discretized with a 2 us time step."
Position [22, 491]
HorizontalAlignment "left"
VerticalAlignment "top"
FontName "Arial"
FontSize 12
}
Annotation {
Name "2) In order to reduce the number of points "
"stored in the scope memory, a decimation factor of 20 is used. "
Position [22, 511]
HorizontalAlignment "left"
VerticalAlignment "top"
FontName "Arial"
FontSize 12
}
Annotation {
Name "H. Le-Huy (Universit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -