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

📄 hdd_noinst.mdl

📁 hard disk drive spindle motor control simulink, show you how to keep the speed at a level
💻 MDL
📖 第 1 页 / 共 3 页
字号:
	DataLoggingMaxPoints	"5000"
      }
    }
    Block {
      BlockType		      Reference
      Name		      "RMS"
      Ports		      [2, 1]
      Position		      [585, 307, 660, 343]
      SourceBlock	      "dspstat3/RMS"
      SourceType	      "RMS"
      run		      on
      reset_popup	      "Rising edge"
    }
    Block {
      BlockType		      Sum
      Name		      "Sum1"
      Ports		      [2, 1]
      Position		      [505, 480, 525, 500]
      Orientation	      "left"
      ShowName		      off
      IconShape		      "round"
      Inputs		      "|++"
      InputSameDT	      off
      OutDataTypeMode	      "Inherit via internal rule"
    }
    Block {
      BlockType		      Sum
      Name		      "Sum3"
      Ports		      [2, 1]
      Position		      [385, 190, 405, 210]
      Orientation	      "left"
      ShowName		      off
      IconShape		      "round"
      Inputs		      "|+-"
      InputSameDT	      off
      OutDataTypeMode	      "Inherit via internal rule"
    }
    Block {
      BlockType		      ToWorkspace
      Name		      "To Workspace"
      Position		      [700, 310, 760, 340]
      VariableName	      "meanerror"
      MaxDataPoints	      "1"
      SampleTime	      "-1"
      SaveFormat	      "Array"
    }
    Block {
      BlockType		      Reference
      Name		      "axle"
      Ports		      [0, 0, 0, 0, 0, 2, 2]
      Position		      [137, 130, 188, 185]
      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		      "platter"
      Ports		      [0, 0, 0, 0, 0, 1]
      Position		      [52, 80, 248, 100]
      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, 1, 0, 0, 0, 1]
      Position		      [340, 86, 415, 144]
      TreatAsAtomicUnit	      off
      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		  Goto
	  Name			  "Goto1"
	  Position		  [180, 48, 245, 72]
	  GotoTag		  "ang_vel"
	  TagVisibility		  "global"
	}
	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			  "Out"
	  Position		  [470, 48, 500, 62]
	}
	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		  "Goto1"
	  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		  "Out"
	  DstPort		  1
	}
      }
    }
    Block {
      BlockType		      DiscretePulseGenerator
      Name		      "reset after transient 25s"
      Position		      [480, 318, 525, 352]
      AttributesFormatString  "A = %<Amplitude>"
      Period		      "100000"
      PulseWidth	      "98000"
      PhaseDelay	      "2000"
      SampleTime	      "0.01"
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "Ground"
      SrcPort		      RConn1
      DstBlock		      "axle"
      DstPort		      LConn1
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "platter"
      SrcPort		      LConn1
      DstBlock		      "axle"
      DstPort		      RConn1
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "Joint Stiction Actuator"
      SrcPort		      RConn1
      DstBlock		      "axle"
      DstPort		      LConn2
    }
    Line {
      LineType		      "Connection"
      SrcBlock		      "axle"
      SrcPort		      RConn2
      DstBlock		      "preamp"
      DstPort		      LConn1
    }
    Line {
      SrcBlock		      "preamp"
      SrcPort		      1
      Points		      [230, 0]
      DstBlock		      "CDR"
      DstPort		      1
    }
    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		      "Joint Stiction Actuator"
      DstPort		      2
    }
    Line {
      SrcBlock		      "DC Drive signal"
      SrcPort		      1
      DstBlock		      "Sum3"
      DstPort		      1
    }
    Line {
      SrcBlock		      "Sum3"
      SrcPort		      1
      DstBlock		      "Joint Stiction Actuator"
      DstPort		      1
    }
    Line {
      SrcBlock		      "Gain"
      SrcPort		      1
      Points		      [-80, 0]
      DstBlock		      "Sum3"
      DstPort		      2
    }
    Line {
      SrcBlock		      "Ground1"
      SrcPort		      1
      Points		      [-10, 0; 0, -45]
      Branch {
	Points			[0, -10]
	Branch {
	  DstBlock		  "Joint Stiction Actuator"
	  DstPort		  3
	}
	Branch {
	  DstBlock		  "Joint Stiction Actuator"
	  DstPort		  4
	}
      }
      Branch {
	DstBlock		"Joint Stiction Actuator"
	DstPort			5
      }
    }
    Line {
      Name		      "component level"
      Labels		      [2, 0]
      SrcBlock		      "CDR"
      SrcPort		      1
      Points		      [0, 0; -10, 0]
      Branch {
	DstBlock		"Gain"
	DstPort			1
      }
      Branch {
	Points			[0, 70]
	DstBlock		"RMS"
	DstPort			1
      }
    }
    Line {
      Labels		      [0, 0]
      SrcBlock		      "From3"
      SrcPort		      1
      Points		      [-10, 0]
      DstBlock		      "Product"
      DstPort		      1
    }
    Line {
      SrcBlock		      "Sum1"
      SrcPort		      1
      DstBlock		      "Product"
      DstPort		      2
    }
    Line {
      SrcBlock		      "RMS"
      SrcPort		      1
      DstBlock		      "To Workspace"
      DstPort		      1
    }
    Line {
      SrcBlock		      "reset after transient 25s"
      SrcPort		      1
      DstBlock		      "RMS"
      DstPort		      2
    }
  }
}

⌨️ 快捷键说明

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