⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hdd2.mdl

📁 hard disk drive spindle motor control simulink, show you how to keep the speed at a level
💻 MDL
📖 第 1 页 / 共 3 页
字号:
      Tag		      "__orphan__"
      Ports		      [5, 0, 0, 0, 0, 0, 1]
      Position		      [190, 200, 300, 260]
      Orientation	      "left"
      SourceBlock	      "mblibv1/Sensors & \nActuators/Joint Stiction Ac"
"tuator"
      SourceType	      "msb"
      PortType		      "blob"
      PhysicalDomain	      "Mechanical"
      ActuationStyle	      "Force"
      AngleUnits	      "deg"
      ArcVelocityUnits	      "deg/s"
      ArcAccelerationUnits    "deg/s^2"
      CoordPositionUnits      "m"
      VelocityUnits	      "m/s"
      AccelerationUnits	      "m/s^2"
      ForceUnits	      "N"
      TorqueUnits	      "N-m"
      ClassName		      "JointStictionActuator"
      DialogClass	      "EventActuatorBlock"
      Primitive		      "R1"
      FrictionalForceUnits    "N"
      ExternalForceUnits      "N"
      FrictionalTorqueUnits   "N-m"
      ExternalTorqueUnits     "N-m"
      LockingTolerance	      "1e-2"
    }
    Block {
      BlockType		      Reference
      Name		      "platter"
      Ports		      [0, 0, 0, 0, 0, 1]
      Position		      [52, 90, 248, 110]
      Orientation	      "up"
      NamePlacement	      "alternate"
      SourceBlock	      "mblibv1/Bodies/Body"
      SourceType	      "msb"
      PhysicalDomain	      "mechanical"
      SubClassName	      "Unknown"
      PortType		      "workingframe"
      LConnTagsString	      "CS1"
      ClassName		      "Body"
      DialogClass	      "MechanicalBodyBlock"
      Mass		      "0.01"
      MassUnits		      "kg"
      InertiaUnits	      "kg*m^2"
      Inertia		      "eye(3)"
      Shape		      "Cylinder"
      ShapeDims		      "[1 1]"
      ShapeUnits	      "m"
      ShapeUse		      "false"
      Density		      "1"
      DensityUnits	      "kg/m^3"
      DensityUse	      "false"
      CG		      "Left$CG$[0 0 0]$WORLD$WORLD$m$[0 0 0]$Euler X-Y"
"-Z$deg$WORLD$false"
      WorkingFrames	      "Left$CS1$[0 0 0]$CG$CG$m$[0 0 0]$Euler X-Y-Z$de"
"g$WORLD$true"
    }
    Block {
      BlockType		      SubSystem
      Name		      "preamp"
      Ports		      [0, 2, 0, 0, 0, 1]
      Position		      [340, 96, 415, 154]
      TreatAsAtomicUnit	      off
      Port {
	PortNumber		1
	PropagatedSignals	"ang vel"
	ShowPropagatedSignals	"on"
	TestPoint		off
	LinearAnalysisOutput	off
	LinearAnalysisInput	off
	RTWStorageClass		"Auto"
	DataLogging		off
	DataLoggingNameMode	"SignalName"
	DataLoggingDecimateData	off
	DataLoggingDecimation	"2"
	DataLoggingLimitDataPoints off
	DataLoggingMaxPoints	"5000"
      }
      System {
	Name			"preamp"
	Location		[137, 137, 662, 270]
	Open			off
	ModelBrowserVisibility	off
	ModelBrowserWidth	200
	ScreenColor		"white"
	PaperOrientation	"landscape"
	PaperPositionMode	"auto"
	PaperType		"usletter"
	PaperUnits		"inches"
	ZoomFactor		"100"
	Block {
	  BlockType		  Reference
	  Name			  "Platter Sensor"
	  Tag			  "__orphan__"
	  Ports			  [0, 2, 0, 0, 0, 1]
	  Position		  [80, 30, 120, 70]
	  SourceBlock		  "mblibv1/Sensors & \nActuators/Joint Sensor"
	  SourceType		  "msb"
	  PortType		  "blob"
	  PhysicalDomain	  "Mechanical"
	  Muxed			  "off"
	  Pose			  "off"
	  Angle			  "on"
	  AngleUnits		  "deg"
	  ArcVelocity		  "on"
	  ArcVelocityUnits	  "deg/s"
	  ArcAcceleration	  "off"
	  ArcAccelerationUnits	  "deg/s^2"
	  CoordPosition		  "on"
	  CoordPositionUnits	  "m"
	  Velocity		  "off"
	  VelocityUnits		  "m/s"
	  Acceleration		  "off"
	  AccelerationUnits	  "m/s^2"
	  Quaternion		  "on"
	  QuaternionDT		  "off"
	  QuaternionDDT		  "off"
	  QuaternionUnits	  "off"
	  OutputVector		  "[ 1 1 ]"
	  ClassName		  "JointSensor"
	  DialogClass		  "MechanicalSensorBlock"
	  Primitive		  "R1"
	  Force			  "off"
	  ForceUnits		  "N"
	  Torque		  "off"
	  TorqueUnits		  "N-m"
	  ReferenceFrame	  "Absolute (INERTIAL)"
	  ReactionSensedSide	  "Base"
	  ReactionReferenceFrame  "Absolute (World)"
	  ReactionForce		  "off"
	  ReactionForceUnits	  "N"
	  ReactionMoment	  "off"
	  ReactionMomentUnits	  "N-m"
	  Port {
	    PortNumber		    1
	    Name		    "angle"
	    TestPoint		    off
	    LinearAnalysisOutput    off
	    LinearAnalysisInput	    off
	    RTWStorageClass	    "Auto"
	    DataLogging		    off
	    DataLoggingNameMode	    "SignalName"
	    DataLoggingDecimateData off
	    DataLoggingDecimation   "2"
	    DataLoggingLimitDataPoints off
	    DataLoggingMaxPoints    "5000"
	  }
	  Port {
	    PortNumber		    2
	    Name		    "ang vel"
	    TestPoint		    off
	    LinearAnalysisOutput    off
	    LinearAnalysisInput	    off
	    RTWStorageClass	    "Auto"
	    DataLogging		    off
	    DataLoggingNameMode	    "SignalName"
	    DataLoggingDecimateData off
	    DataLoggingDecimation   "2"
	    DataLoggingLimitDataPoints off
	    DataLoggingMaxPoints    "5000"
	  }
	}
	Block {
	  BlockType		  Sum
	  Name			  "Sum"
	  Ports			  [2, 1]
	  Position		  [255, 30, 275, 50]
	  ShowName		  off
	  IconShape		  "round"
	  Inputs		  "|++"
	  InputSameDT		  off
	  OutDataTypeMode	  "Inherit via internal rule"
	}
	Block {
	  BlockType		  Constant
	  Name			  "convert angle to LUT index"
	  Position		  [250, 80, 280, 110]
	  Orientation		  "up"
	  NamePlacement		  "alternate"
	  Value			  "180"
	}
	Block {
	  BlockType		  Lookup2D
	  Name			  "stored bits"
	  Position		  [390, 27, 445, 78]
	  InitFcn		  "COLINBITS=[-ones(1,180) ; ones(1,180)];\nCO"
"LINBITS = reshape(COLINBITS, 360, 1);\nCOLINBITS=[COLINBITS COLINBITS];      "
" "
	  RowIndex		  "[1:360]"
	  ColumnIndex		  "[1:2]"
	  OutputValues		  "COLINBITS"
	  ShowAdditionalParam	  on
	  LookUpMeth		  "Use Input Nearest"
	  InputSameDT		  off
	  Port {
	    PortNumber		    1
	    Name		    "bits"
	    TestPoint		    off
	    LinearAnalysisOutput    off
	    LinearAnalysisInput	    off
	    RTWStorageClass	    "Auto"
	    DataLogging		    off
	    DataLoggingNameMode	    "SignalName"
	    DataLoggingDecimateData off
	    DataLoggingDecimation   "2"
	    DataLoggingLimitDataPoints off
	    DataLoggingMaxPoints    "5000"
	  }
	}
	Block {
	  BlockType		  Constant
	  Name			  "track number:\nthe arm motion\nwould drive "
"here"
	  Position		  [330, 50, 360, 80]
	}
	Block {
	  BlockType		  PMIOPort
	  Name			  "head"
	  Position		  [25, 43, 55, 57]
	  Port			  "1"
	  Side			  "left"
	}
	Block {
	  BlockType		  Outport
	  Name			  "ang_vel"
	  Position		  [175, 53, 205, 67]
	}
	Block {
	  BlockType		  Outport
	  Name			  "data"
	  Position		  [490, 48, 520, 62]
	  Port			  "2"
	}
	Line {
	  Name			  "angle"
	  Labels		  [0, 0]
	  SrcBlock		  "Platter Sensor"
	  SrcPort		  1
	  DstBlock		  "Sum"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "track number:\nthe arm motion\nwould drive "
"here"
	  SrcPort		  1
	  DstBlock		  "stored bits"
	  DstPort		  2
	}
	Line {
	  SrcBlock		  "Sum"
	  SrcPort		  1
	  DstBlock		  "stored bits"
	  DstPort		  1
	}
	Line {
	  SrcBlock		  "convert angle to LUT index"
	  SrcPort		  1
	  DstBlock		  "Sum"
	  DstPort		  2
	}
	Line {
	  Name			  "ang vel"
	  Labels		  [0, 0]
	  SrcBlock		  "Platter Sensor"
	  SrcPort		  2
	  DstBlock		  "ang_vel"
	  DstPort		  1
	}
	Line {
	  LineType		  "Connection"
	  SrcBlock		  "head"
	  SrcPort		  RConn1
	  DstBlock		  "Platter Sensor"
	  DstPort		  LConn1
	}
	Line {
	  Name			  "bits"
	  Labels		  [0, 0]
	  SrcBlock		  "stored bits"
	  SrcPort		  1
	  DstBlock		  "data"
	  DstPort		  1
	}
      }
    }
    Block {
      BlockType		      DiscretePulseGenerator
      Name		      "reset after transient 100s"
      Position		      [730, 328, 775, 362]
      AttributesFormatString  "A = %<Amplitude>"
      Period		      "100000"
      PulseWidth	      "90000"
      PhaseDelay	      "10000"
      SampleTime	      "0.01"
    }
    Block {
      BlockType		      Reference
      Name		      "spin motor"
      Ports		      [0, 0, 0, 0, 0, 2, 2]
      Position		      [137, 140, 188, 195]
      Orientation	      "up"
      NamePlacement	      "alternate"
      SourceBlock	      "mblibv1/Joints/Revolute"
      SourceType	      "msb"
      PhysicalDomain	      "mechanical"
      SubClassName	      "Unknown"
      PortType		      "blob"
      LConnTagsString	      "__newl0|SA1"
      RConnTagsString	      "__newr0|SA1"
      NumSAPorts	      "2"
      CutJoint		      "off"
      MarkAsCut		      "off"
      Primitives	      "revolute"
      PrimitiveProps	      "R1$WORLD$[0 0 1]$revolute"
      ClassName		      "Joint"
      DialogClass	      "JointBlock"
    }
    Block {
      BlockType		      Reference
      Name		      "spin stand"
      Tag		      "__orphan__"
      Ports		      [0, 0, 0, 0, 0, 0, 1]
      Position		      [130, 240, 170, 280]
      Orientation	      "up"
      NamePlacement	      "alternate"
      SourceBlock	      "mblibv1/Bodies/Ground"
      SourceType	      "msb"
      PortType		      "workingframe"
      PhysicalDomain	      "Mechanical"
      DialogClass	      "GroundBlock"
      ClassName		      "Ground"
      CoordPosition	      "[0 0 0]"
      CoordPositionUnits      "m"
      StateVectorMgrId	      "-1"
    }
    Block {
      BlockType		      Constant
      Name		      "zero"
      Position		      [320, 235, 350, 265]
      Orientation	      "left"
      Value		      "0"
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "spin stand"
      SrcPort		      RConn1
      DstBlock		      "spin motor"
      DstPort		      LConn1
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "platter"
      SrcPort		      LConn1
      DstBlock		      "spin motor"
      DstPort		      RConn1
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "motor forces\ndrive and friction"
      SrcPort		      RConn1
      DstBlock		      "spin motor"
      DstPort		      LConn2
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "spin motor"
      SrcPort		      RConn2
      DstBlock		      "preamp"
      DstPort		      LConn1
    }
    Line {
      Name		      "disturb"
      Labels		      [0, 0]
      SrcBlock		      "Friction disturbance"
      SrcPort		      1
      DstBlock		      "Sum1"
      DstPort		      1
    }
    Line {
      SrcBlock		      "Friction/back emf coeff"
      SrcPort		      1
      DstBlock		      "Sum1"
      DstPort		      2
    }
    Line {
      Name		      "Friction proportional to ang vel"
      Labels		      [1, 0]
      SrcBlock		      "Product"
      SrcPort		      1
      Points		      [-35, 0; 0, -275]
      DstBlock		      "motor forces\ndrive and friction"
      DstPort		      2
    }
    Line {
      SrcBlock		      "DC Drive signal"
      SrcPort		      1
      DstBlock		      "Sum3"
      DstPort		      1
    }
    Line {
      SrcBlock		      "Sum3"
      SrcPort		      1
      DstBlock		      "motor forces\ndrive and friction"
      DstPort		      1
    }
    Line {
      SrcBlock		      "Gain"
      SrcPort		      1
      Points		      [-80, 0]
      DstBlock		      "Sum3"
      DstPort		      2
    }
    Line {
      Labels		      [0, 0]
      SrcBlock		      "From1"
      SrcPort		      1
      DstBlock		      "Scope"
      DstPort		      2
    }
    Line {
      Labels		      [0, 0]
      SrcBlock		      "preamp"
      SrcPort		      1
      Points		      [0, 0; 265, 0]
      Branch {
	Points			[170, 0; 0, 50]
	DstBlock		"Scope"
	DstPort			1
      }
      Branch {
	Points			[0, 30]
	DstBlock		"Goto1"
	DstPort			1
      }
    }
    Line {
      SrcBlock		      "zero"
      SrcPort		      1
      Points		      [0, 0]
      Branch {
	Points			[0, -10]
	Branch {
	  DstBlock		  "motor forces\ndrive and friction"
	  DstPort		  3
	}
	Branch {
	  DstBlock		  "motor forces\ndrive and friction"
	  DstPort		  4
	}
      }
      Branch {
	DstBlock		"motor forces\ndrive and friction"
	DstPort			5
      }
    }
    Line {
      Name		      "f_error"
      Labels		      [2, 0]
      SrcBlock		      "CDR"
      SrcPort		      1
      Points		      [0, 0; -10, 0]
      Branch {
	Labels			[1, 0]
	Points			[0, 70]
	Branch {
	  Points		  [235, 0]
	  Branch {
	    DstBlock		    "RMS"
	    DstPort		    1
	  }
	  Branch {
	    Labels		    [2, 0]
	    Points		    [0, -85]
	    DstBlock		    "Scope"
	    DstPort		    3
	  }
	}
	Branch {
	  Points		  [0, 20]
	  DstBlock		  "error"
	  DstPort		  1
	}
      }
      Branch {
	DstBlock		"Gain"
	DstPort			1
      }
    }
    Line {
      Labels		      [0, 0]
      SrcBlock		      "From3"
      SrcPort		      1
      Points		      [-10, 0]
      DstBlock		      "Product"
      DstPort		      1
    }
    Line {
      Name		      "friction"
      Labels		      [0, 0]
      SrcBlock		      "Sum1"
      SrcPort		      1
      Points		      [0, 0; -30, 0]
      Branch {
	DstBlock		"Product"
	DstPort			2
      }
      Branch {
	Points			[0, 105]
	DstBlock		"Goto"
	DstPort			1
      }
    }
    Line {
      SrcBlock		      "RMS"
      SrcPort		      1
      Points		      [0, 0; 5, 0]
      Branch {
	DstBlock		"meanerror"
	DstPort			1
      }
      Branch {
	Points			[0, 75]
	DstBlock		"To Workspace"
	DstPort			1
      }
    }
    Line {
      SrcBlock		      "reset after transient 100s"
      SrcPort		      1
      DstBlock		      "RMS"
      DstPort		      2
    }
    Line {
      SrcBlock		      "preamp"
      SrcPort		      2
      Points		      [240, 0; 0, 115]
      DstBlock		      "CDR"
      DstPort		      1
    }
    Annotation {
      Name		      "Simple Model of a Hard Disk Drive spin controll"
"er\nMulti domain (mechanical, signal processing) simulation\nusing Simulink, "
"DSP Blockset, and SimMechanics"
      Position		      [238, 50]
      FontName		      "Arial"
      FontSize		      18
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -