5.5.21 · D1 · Coding › Embedded Systems & Real-Time Software › Hardware-in-the-Loop (HIL) simulation — real hardware, simul
Ek Hardware-in-the-Loop test mein ek real controller chip ko is tarah fool kiya jaata hai ki woh soche usse ek real machine se connect kiya gaya hai, jabki actually woh ek computer se connected hai jo us machine ka natak kar raha hai — itna fast ki chip koi fark nahi pakad sakti. Is page par baaki sab kuch sirf woh vocabulary hai jo aapko samajhni hai ki real chip aur fake machine ek band loop mein kaise baat karte hain jo kabhi rukti nahi.
Aap parent HIL note padhne se pehle, aapko kuch words aur symbols ki zaroorat hai. Parent note un sab ko use karta hai jaise aap unhe pehle se jaante ho. Yeh page har ek ko zero se banata hai: plain meaning → picture → topic ko yeh kyun chahiye , is order mein ki har nayi idea sirf upar wali ideas par tikti hai.
Definition Controller aur Plant
Controller "brain" hai — woh chhota computer jo decisions leta hai ("throttle thoda aur kholo").
Plant "body" hai — woh physical cheez jo control ki ja rahi hai (engine, motor, car). Plant shabd purana engineering slang hai jiska matlab hai "woh machine jise aap control karna chahte ho".
Figure dekho. Left par controller hai. Right par plant hai. Dono ke beech do arrows hain:
Neeche-wala arrow (commands): controller plant ko bata raha hai kya karna hai.
Upar-wala arrow (measurements): plant controller ko bata raha hai ki actually kya hua.
Kyunki upar-wala arrow brain mein wapas feed hota hai, yeh ek loop hai. Woh loop is pure topic ka dhadakta hua dil hai — iska shape yaad rakho, hum ise baar baar draw karte rahenge.
Intuition Loop kyun matter karta hai
Ek controller jo sirf command karta hai aur kabhi sunta nahi, andha hai. Upar-wala arrow hi use correct karne deta hai. HIL isliye exist karta hai taaki test kiya ja sake ki yeh correcting behaviour sahi hai — isliye hum loop ko preserve karna chahte hain chahe plant fake ho.
HIL testing mein hum controller ko real rakhte hain (wahi actual chip jo ship hogi) aur plant ko ek simulator se replace karte hain: ek computer jo plant ki physics equations run karta hai. Controller fool ho jaata hai kyunki simulator wahi electrical signals produce karta hai jo ek real plant karta.
Figure ke dono panels compare karo:
Top panel — reality: real brain ek real engine se connected hai.
Bottom panel — HIL: wahi real brain, lekin engine ab ek computer hai jisme beech mein electronics ka ek box hai (I/O box ) jo numbers ko voltages mein aur wapas convert karta hai.
Dashed magenta box woh hai jo HIL invent karta hai. Violet box ke andar sab kuch (controller) untouched hai — yahi to poora point hai.
Recall Controller ko bhi simulate kyun nahi kar lete?
Controller ko bhi simulate karna SIL ya MIL deta hai, jo saste hain lekin real-chip bugs (timing, drivers, compiler quirks) miss kar dete hain. HIL chip ko real isliye rakhta hai taaki woh bugs pakad sake. ::: Kyunki ek simulated chip real-chip bugs reveal nahi kar sakta.
Loop ke do arrows "ideas" nahi hain — yeh physical wires par electrical signals hain. Parent note mein kaafi naam aate hain. Har ek yahan, zero se.
Voltage electrical "push" hai, volts (V) mein measure hota hai. Ise ek dam ke peeche paani ki unchai samjho: zyada voltage zyada zyor se push karta hai. Cars ke sensors usually 0 V se 5 V ke beech report karte hain — 0 V matlab "thanda", 5 V matlab "garam", aur beech mein sab kuch ek fraction hai.
Definition Analog vs Digital signal
Ek analog signal ek range mein koi bhi height le sakta hai — jaise dimmer knob (2.31 V, 2.32 V, ...).
Ek digital signal sirf on ya off hota hai — jaise light switch (0 V ya 5 V, beech mein kuch nahi).
Figure mein dono dikhaye gaye hain. Smooth orange curve analog hai (temperature reading upar ja rahi hai). Square magenta trace digital hai (switch on/off ho raha hai). HIL ko dono tarah fake karne aane chahiye, kyunki ek real plant dono produce karta hai.
Ek ADC (Analog-to-Digital Converter) ek voltage padhta hai aur use ek aise number mein convert karta hai jo computer samajhe. Socho ek ruler paani ki unchai measure karke "3.4" report kar raha hai.
Ek DAC (Digital-to-Analog Converter) ulta kaam karta hai: ek number leta hai aur ek voltage produce karta hai. Socho ek robot arm paani ko exactly "3.4" unchai par le ja raha hai.
Intuition HIL ko dono kyun chahiye
Controller ka ADC un sensor voltages ko padhta hai jo simulator produce karta hai (apne DAC ke zariye). Simulator ka ADC un command voltages ko padhta hai jo controller produce karta hai. I/O box basically ek bag hai ADCs aur DACs ka jo ek doosre ke saamne hain.
Definition PWM — Pulse Width Modulation
PWM sirf on/off use karke "beech wali" strength fake karta hai. Wire ko 3.5 V par hold karne ki jagah, aap use bahut fast on karte ho phir off karte ho, har cycle ka (maano) 70% on rakhte ho. Woh fraction duty cycle D hai. Motor average dekhta hai aur behave karta hai jaise use 70% power mili. Dekho PWM .
Teen stacked PWM traces dekho. Teeno same do heights ke beech switch karte hain, lekin "on" bars jitne wide honge, fraction D utna bada, aur dashed average line utni zyada. Yahi D woh number hai jo parent note battery voltage se multiply karta hai applied voltage paane ke liye.
Definition GPIO aur CAN bus
GPIO (General-Purpose Input/Output) ek plain pin hai jo chip high ya low set kar sakta hai, ya read kar sakta hai — sabse simple on/off wire.
CAN bus ek shared two-wire "party line" hai jahan bahut se devices ek doosre ko labelled messages (frames) bhejte hain. Isi tarah car computers baatein karte hain. Dekho CAN bus .
Parent ki derivation physics symbols use karti hai. Har ek yahan apni jagah earn karta hai.
Definition Greek aur Latin characters
Symbol
Plain words
Unit
t
time
seconds (s)
Δ t
time ka ek chhota step updates ke beech
seconds
t k
k -ve step par time (k = 0 , 1 , 2 , … )
seconds
V
applied voltage (push)
volts
I
electric current (flow)
amps (A)
R
resistance (wire kitna flow se ladhta hai)
ohms (Ω )
L
inductance (coil ki reluctance current change karne ki)
henries (H)
ω
angular velocity — shaft kitni fast ghumti hai
rad/s
θ
angular position — shaft kitni door ghum gayi
radians
τ
torque — twisting force
N·m
J
rotor inertia — shaft kitni "bhaari hai spin karne mein"
kg·m²
b
damping — friction jo spinning se ladhta hai
N·m·s/rad
K t , K e
motor constants jo current↔torque aur speed↔voltage link karte hain
—
Δ (delta)
Δ ka matlab sirf "mein ek chhota change" hai. To Δ t hai "time ka ek chhota chunk", aur d t d ω hai "har second ω kitni fast badal raha hai". Letter d wahi idea hai lekin infinitely chhota. Hume yeh isliye chahiye kyunki plant ki state (speed, angle) continuously badlati hai, aur simulator ko use ek Δ t ek baar step karna hoga.
2 π , aur PPR
Shaft ka ek full turn 2 π radians hota hai (lagbhag 6.28) — radians sirf angle measure karne ka tarika hai jahan ek full circle = 2 π hai. PPR (Pulses Per Revolution) woh number hai jitne electrical ticks ek encoder har full turn mein emit karta hai. Floor bars ⌊ ⌋ ka matlab hai "poore number par round down karo" — aap aadha pulse emit nahi kar sakte.
RPM = Revolutions Per Minute = shaft ke complete turns har minute. Parent ka "800 RPM idle" matlab hai crankshaft har minute 800 full circles ghoomta hai. Convert karne ke liye: ω [ rad/s ] = RPM × 60 2 π .
Real-time ka matlab "fast" nahi hai. Iska matlab hai "har baar apni deadline se pehle khatam hona ". Ek simulator jo usually quick hai lekin kabhi kabhi late hota hai, woh real-time nahi hai aur HIL ke liye bekaar hai, kyunki controller briefly ek frozen fake plant se baat kar raha hoga.
Common mistake "Real-time matlab blazing fast"
Nahi. Ek slow-lekin-punctual system ek fast-lekin-kabhi-kabhi-late system se behtar hai. Isliye HIL ek real-time OS , FPGAs , aur fixed-step solvers use karta hai — sab predictable timing ke liye choose kiye gaye hain, raw speed ke liye nahi.
Controller and Plant loop
The HIL swap: fake the plant
Voltage, analog vs digital
Motor symbols V I omega theta tau
Simulator updates the plant
Hardware-in-the-Loop testing
Upar se neeche padho: loop aur swap shape dete hain; signals + converters swap ko wire karte hain; symbols + physics + stepping simulator ko plant hone dete hain; real-time deadline fake plant ko honest rakhti hai. Saath mein yeh HIL banate hain.
Self-test: reveal karne se pehle har ek ka jawab de sako?
Control loop mein "plant" kya hai? Woh physical machine jo control ki ja rahi hai (engine, motor, car).
HIL test mein kya REAL rehta hai, aur kya simulated ban jaata hai? Controller chip real rehta hai; plant ek computer simulation ban jaata hai.
Analog aur digital signal mein kya fark hai? Analog ek range mein koi bhi height le sakta hai; digital sirf on/off hota hai.
ADC kya karta hai vs DAC? ADC voltage ko number mein convert karta hai; DAC number ko voltage mein convert karta hai.
PWM ka duty cycle D kya number encode karta hai? Har cycle ka woh fraction jab wire "on" hai — yaani average power fraction.
800 RPM ko rad/s mein convert karo (sirf formula). ω = 800 × 60 2 π ≈ 83.8 rad/s.
Δ t ka kya matlab hai aur simulator ko yeh kyun chahiye?Ek chhota time step; simulator plant ki state ko ek Δ t ek baar aage badhata hai.
"Real-time" ko actually kya chahiye? Har update apni deadline se pehle khatam ho, har baar — sirf "fast" nahi.
Real-time deadline inequality batao. t compute < Δ t .
Controller ko real kyun rakhein SIL ki jagah? Sirf ek real chip real-chip bugs reveal karta hai: timing, drivers, compiler quirks.