# Alternating current ## Microsim <iframe src="https://editor.p5js.org/sciencenibber/full/3joGGd1vg" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> <img src="../SPINTRONICS Images/Alternating_current.png" alt="Alternating_current microsim"> *Live sketch: [open in the p5.js editor](https://editor.p5js.org/sciencenibber/sketches/3joGGd1vg). The poster image above is a placeholder pending an attended or server-side canvas capture.* ### p5.js source ```js // Alternating_current.js -- Wikitube MicroSim // Hub: SPINTRONICS · Branch: P - Power transmission // Pattern: H (signal-over-time) composed with a rotating phasor. // // CONCEPT // A sinusoidal AC voltage v(t) = Vp * sin(2*PI*f*t + phi) is the vertical // projection of a vector (a "phasor") of length Vp rotating at angular speed // w = 2*PI*f. Its RMS value Vrms = Vp / sqrt(2) is the DC-equivalent voltage // that sets the average power into a resistor, because the mean of sin^2 over a // full cycle is exactly 1/2. The optional v^2 overlay makes that visible. // // GOLDEN RULES honoured: 720x520 + pixelDensity(2); layout from width/height; // ASCII-only strings (Unicode only in comments); dt-clamped time; cheap draw() // with a baked offscreen scenery buffer; HUD watermark drawn last; one concept // per control; reset restores ALL state. Animation is the point here (AC is a // time waveform), so we loop() but keep every per-frame loop bounded and cheap. const ARTICLE = "Alternating_current"; // single source of truth (HUD + save name + URL) // ---- layout (all derived; never hard-code magic coordinates) ---- let cx, cy, RAD; // phasor circle center + radius let plotX0, plotX1; // waveform plot x-range let vHalf; // pixels that represent one Vp (== RAD, so circle maps to wave) // ---- controls ---- let freqSlider, vpSlider, phiSlider; // f (Hz), Vp (V), phi (deg) let sqToggle, playButton, resetButton; // show v^2, play/pause, reset let isPlaying = true; let showSquare = false; // ---- state ---- let phaseAcc = 0; // accumulated phase (rad) of the "now" instant let scenery; // baked static buffer (circle, axes, fixed labels) // ---- palette (ASCII identifiers only) ---- let BG, INK, MUTE, VOLT, PHAS, RMSC, SQC; function setup() { createCanvas(720, 520); pixelDensity(2); p5.disableFriendlyErrors = true; // clean + cheap textFont("monospace"); BG = color(14, 18, 32); INK = color(232, 238, 248); MUTE = color(120, 134, 158); VOLT = color(95, 220, 255); // voltage trace (cyan) PHAS = color(255, 92, 110); // phasor (red) RMSC = color(120, 230, 150); // RMS band (green) SQC = color(210, 130, 255); // v^2 overlay (magenta) cy = 175; cx = 130; RAD = 92; // drawing-region geometry plotX0 = 250; plotX1 = 700; vHalf = RAD; // one Vp == RAD px (circle radius == wave amplitude) buildControls(); buildScenery(); // bake once: keeps setup() and draw() cheap } function buildControls() { // sliders carry the field's real symbols and meaningful ranges (one concept each) freqSlider = createSlider(0.5, 5.0, 2.0, 0.1); // f, Hz (low so the phasor is watchable) vpSlider = createSlider(10, 340, 170, 5); // Vp, volts (170 V ~ 120 Vrms) phiSlider = createSlider(-180, 180, 0, 5); // phi, degrees freqSlider.position(20, 392); freqSlider.style("width", "170px"); vpSlider.position(20, 432); vpSlider.style("width", "170px"); phiSlider.position(20, 472); phiSlider.style("width", "170px"); sqToggle = createCheckbox(" show v^2 and its mean", false); sqToggle.position(250, 386); sqToggle.style("color", "#e8eef8"); sqToggle.changed(function () { showSquare = sqToggle.checked(); if (!isPlaying) redraw(); }); playButton = createButton("pause"); playButton.position(252, 430); playButton.mousePressed(togglePlay); resetButton = createButton("reset"); resetButton.position(330, 430); resetButton.mousePressed(resetAll); // when paused, moving a slider should still refresh the frame freqSlider.input(function () { if (!isPlaying) redraw(); }); vpSlider.input(function () { if (!isPlaying) redraw(); }); phiSlider.input(function () { if (!isPlaying) redraw(); }); } function togglePlay() { isPlaying = !isPlaying; playButton.html(isPlaying ? "pause" : "play"); if (isPlaying) loop(); else noLoop(); } function resetAll() { // reset restores ALL state, not just some phaseAcc = 0; freqSlider.value(2.0); vpSlider.value(170); phiSlider.value(0); sqToggle.checked(false); showSquare = false; isPlaying = true; playButton.html("pause"); loop(); redraw(); } // Bake non-moving scenery into an offscreen buffer so draw() only paints the // moving parts each frame (Golden Rule 8: keep draw cheap, no per-frame scenery). function buildScenery() { scenery = createGraphics(720, 520); const g = scenery; g.pixelDensity(2); g.background(BG); g.textFont("monospace"); // phasor circle + crosshair g.noFill(); g.stroke(60, 72, 96); g.strokeWeight(1.5); g.circle(cx, cy, 2 * RAD); g.stroke(40, 50, 70); g.line(cx - RAD, cy, cx + RAD, cy); g.line(cx, cy - RAD, cx, cy + RAD); // waveform frame: zero line, value axis, +Vp / -Vp guides g.stroke(60, 72, 96); g.line(plotX0, cy, plotX1, cy); g.line(plotX0, cy - vHalf, plotX0, cy + vHalf); g.stroke(34, 44, 62); g.line(plotX0, cy - vHalf, plotX1, cy - vHalf); g.line(plotX0, cy + vHalf, plotX1, cy + vHalf); // fixed labels g.noStroke(); g.fill(120, 134, 158); g.textSize(11); g.textAlign(CENTER, TOP); g.text("phasor: Vp at angle w*t + phi", cx, cy + RAD + 14); g.textAlign(RIGHT, CENTER); g.text("+Vp", plotX1 - 6, cy - vHalf - 9); g.text("-Vp", plotX1 - 6, cy + vHalf + 9); g.textAlign(LEFT, TOP); g.text("time -> (newest at left, ~3 periods shown)", plotX0 + 4, cy + vHalf + 6); } function draw() { background(BG); image(scenery, 0, 0); // blit baked scenery // read every control ONCE into named locals const f = freqSlider.value(); // Hz const Vp = vpSlider.value(); // volts const phi = radians(phiSlider.value()); const w = TWO_PI * f; // rad/s const Vrms = Vp / Math.SQRT2; // = Vp / sqrt(2) const T = 1 / f; // period (s) // advance time: frame-rate independent, clamped (Golden Rule 7) if (isPlaying) { const dt = Math.min(deltaTime / 1000, 0.05); phaseAcc += w * dt; if (phaseAcc > 1e6) phaseAcc = phaseAcc % TWO_PI; // keep bounded } const ang = phaseAcc + phi; // phasor angle "now" const vNow = Vp * Math.sin(ang); // instantaneous voltage // RMS band (+/- Vrms) const yRmsP = cy - (Vrms / Vp) * vHalf; const yRmsN = cy + (Vrms / Vp) * vHalf; stroke(RMSC); strokeWeight(1); drawingContext.setLineDash([5, 5]); line(plotX0, yRmsP, plotX1, yRmsP); line(plotX0, yRmsN, plotX1, yRmsN); drawingContext.setLineDash([]); noStroke(); fill(RMSC); textSize(11); textAlign(LEFT, BOTTOM); text("+Vrms", plotX0 + 6, yRmsP - 2); // optional v^2 overlay (shows mean(sin^2) = 1/2 -> Vrms = sqrt(mean)) if (showSquare) drawSquared(f, Vp, phi, w); // voltage waveform: newest sample at the left edge, older to the right const win = 3 * T; // ~3 periods across the plot const pxPerSec = (plotX1 - plotX0) / win; stroke(VOLT); strokeWeight(2); noFill(); beginShape(); for (let x = plotX0; x <= plotX1; x += 2) { // bounded, cheap const tau = (x - plotX0) / pxPerSec; // seconds before "now" const v = Vp * Math.sin((phaseAcc - w * tau) + phi); vertex(x, cy - (v / Vp) * vHalf); } endShape(); // rotating phasor + link to the wave's left edge (same height by construction) const px = cx + RAD * Math.cos(ang); const py = cy - RAD * Math.sin(ang); stroke(PHAS, 150); strokeWeight(1); drawingContext.setLineDash([4, 4]); line(px, py, plotX0, py); drawingContext.setLineDash([]); stroke(PHAS); strokeWeight(3); line(cx, cy, px, py); noStroke(); fill(PHAS); circle(px, py, 9); circle(plotX0, cy - (vNow / Vp) * vHalf, 8); // moving dot on the wave drawHUD(f, Vp, phiSlider.value(), Vrms, T, w, vNow); } // v^2 normalized by Vp^2 into [0,1], mapped into the lower half-band; its mean // is 0.5 (i.e. Vp^2/2), and sqrt(0.5)*Vp = Vrms. function drawSquared(f, Vp, phi, w) { const T = 1 / f, win = 3 * T; const pxPerSec = (plotX1 - plotX0) / win; const top = cy + 4, bot = cy + vHalf; noStroke(); fill(SQC, 40); beginShape(); vertex(plotX0, bot); for (let x = plotX0; x <= plotX1; x += 2) { const tau = (x - plotX0) / pxPerSec; const v = Vp * Math.sin((phaseAcc - w * tau) + phi); const n = (v * v) / (Vp * Vp); // 0..1 vertex(x, lerp(bot, top, n)); } vertex(plotX1, bot); endShape(CLOSE); const yMean = lerp(bot, top, 0.5); // mean of v^2 -> 0.5 stroke(SQC); strokeWeight(1.5); drawingContext.setLineDash([6, 4]); line(plotX0, yMean, plotX1, yMean); drawingContext.setLineDash([]); noStroke(); fill(SQC); textSize(11); textAlign(LEFT, BOTTOM); text("mean(v^2) = Vp^2/2 -> Vrms = sqrt(mean)", plotX0 + 6, yMean - 2); } function drawHUD(f, Vp, phiDeg, Vrms, T, w, vNow) { // HUD watermark, drawn LAST: title, URL, control hints, live equation footer noStroke(); textAlign(LEFT, TOP); fill(INK); textSize(15); text("Alternating Current -- rotating phasor and RMS", 16, 12); fill(MUTE); textSize(11); text("en.wikitube.io/wiki/Alternating_current", 16, 33); // slider value labels (control hints) fill(INK); textSize(12); textAlign(LEFT, CENTER); text("f = " + f.toFixed(1) + " Hz", 200, 400); text("Vp = " + Vp.toFixed(0) + " V", 200, 440); text("phi = " + phiDeg.toFixed(0) + " deg", 200, 480); // live numeric readout textAlign(LEFT, TOP); textSize(12); fill(INK); const bx = 432, by = 392; text("v(now) = " + vNow.toFixed(1) + " V", bx, by); text("Vrms = " + Vrms.toFixed(1) + " V (Vp/sqrt2)", bx, by + 18); text("T = " + T.toFixed(3) + " s w = " + w.toFixed(1) + " rad/s", bx, by + 36); // live equation footer fill(MUTE); textSize(12); textAlign(LEFT, BOTTOM); text("v(t) = Vp*sin(2*PI*f*t + phi) Vrms = Vp/sqrt(2)", 16, height - 10); } ``` <!-- REAL-GENERATIVE-MEDIA:START --> ## MicroSim A red phasor of length `Vp` rotates on the left; its vertical projection feeds the swept sine on the right (newest sample at the left edge, joined to the phasor tip). A green band marks `±Vrms`. Toggling **show v²** shades `v^2(t)` — which oscillates at twice the frequency between 0 and `Vp^2` — and draws its mean line at `Vp^2/2`, whose square root is `Vrms`. Controls: `f`, `Vp`, `phi`; play/pause and reset. **Possible extensions (publish/refine):** add a current trace lagging by a load angle `theta` to show power factor and average power `P = Vrms*Irms*cos(theta)`; add 50/60 Hz mains presets. ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Alternating_current.json (2026-07-30T02:09:12Z) --> `AC/DC_receiver_design` · `AC_motor` · `AC_power` · `AC_power_plugs_and_sockets` · `Abraham–Lorentz_force` · `Acceleration` · `Albert_Einstein` · `Alessandro_Volta` · `Alfred-Marie_Liénard` · `Almarian_Decker` · `Alternator` · `Ames_Hydroelectric_Generating_Plant` · `Ampère's_circuital_law` · `Ampère's_force_law` · `André-Marie_Ampère` · [[Angular_frequency]] · `Arc_lamp` · `Audio_frequency` · `Austria` · `Austria-Hungary` · `Baseband` · `Benjamin_Franklin` · `Biot–Savart_law` · `Bremsstrahlung` · `Cable_television` · `Capacitance` · `Carl_Friedrich_Gauss` · `Charge_density` · `Charles-Augustin_de_Coulomb` · `Charles_Eugene_Lancelot_Brown` · `Charles_LeGeyt_Fortescue` · `Charles_Proteus_Steinmetz` · `Classical_electromagnetism` · `Classical_electromagnetism_and_special_relativity` · `Coaxial_cable` · `Commutator_(electric)` · `Computational_electromagnetics` · [[Coulomb's_law]] · `Covariant_formulation_of_classical_electromagnetism` · `Crest_factor` · `Current_density` · `Cyclotron_radiation` · `DC_motor` · `Deptford_Power_Station` · `Dielectric` · `Direct_current` · `Dissipation` · `Eddy_current` · `Electret` · `Electric_charge` · [[Electric_current]] · `Electric_dipole_moment` · `Electric_field` · `Electric_flux` · `Electric_generator` · `Electric_machine` · [[Electric_motor]] · `Electric_potential` · `Electric_potential_energy` · `Electric_power` · `Electric_power_distribution` · [[Electric_power_transmission]] · `Electrical_conductor` · `Electrical_energy` · `Electrical_impedance` · `Electrical_load` · `Electrical_network` · `Electrical_resistance_and_conductance` · `Electrical_wiring` · `Electricity` · `Electricity_meter` · `Electricity_sector_in_Japan` · `Electrolysis` · `Electromagnetic_field` · `Electromagnetic_four-potential` · `Electromagnetic_induction` · `Electromagnetic_mass` · `Electromagnetic_radiation` · `Electromagnetic_stress–energy_tensor` · `Electromagnetic_tensor` · `Electromagnetism` · `Electromotive_force` · `Electrostatic_discharge` · `Electrostatic_induction` · `Electrostatics` · `Electrotherapy` · `Emil_Lenz` · `Emil_Wiechert` · `Fan_(machine)` · `Faraday's_law_of_induction` · `Four-current` · `Frankfurt` · `Franz_Ernst_Neumann` · `François_Arago` · `Function_(mathematics)` · `Félix_Savart` · `Galileo_Ferraris` · `Ganz_Works` · `Gauss's_law` · `Gauss's_law_for_magnetism` · `Georg_Ohm` · `George_Francis_FitzGerald` · `George_Green_(mathematician)` · `George_Singer` · `Germany` · `Great_Barrington,_Massachusetts` · `Grosvenor_Gallery` · `Ground_and_neutral` · `Grängesberg` · `Guitar_amplifier` · `Gustav_Kirchhoff` · `Gyrator–capacitor_model` · `Hans_Christian_Ørsted` · `Heinrich_Hertz` · `Helmholtz_decomposition` · `Hendrik_Lorentz` · `Hermann_von_Helmholtz` · `Hertz` · `High_voltage` · `Hippolyte_Fizeau` · `Hippolyte_Pixii` · `History_of_electromagnetic_theory` · `Horsepower` · `Humphry_Davy` · `Hungary` · `Incandescent_light_bulb` · `Inductance` · `Induction_motor` · `Inductive_coupling` · `Inductor` · `Industrial_and_multiphase_power_plugs_and_sockets` · [[Information]] · `Insulator_(electricity)` · `J._J._Thomson` · `James_Clerk_Maxwell` · `James_Prescott_Joule` · `Jaruga_Hydroelectric_Power_Plant` · `Jean-Baptiste_Biot` · `Jefimenko's_equations` · `John_Dixon_Gibbs` · `John_Henry_Poynting` · `John_Hopkinson` · `Jonas_Wenström` · `Joseph_Henry` · `Joseph_Larmor` · [[Josiah_Willard_Gibbs]] · `Joule_heating` · `Kilometre` · `Kirchhoff's_circuit_laws` · `Károly_Zipernowsky` · `Larmor_formula` · `Leading_and_lagging_current` · `Lenz's_law` · `Linear_motor` · `List_of_electrical_phenomena` · `List_of_textbooks_in_electromagnetism` · `Litz_wire` · `Liénard–Wiechert_potential` · `London` · `London_equations` · `Lord_Kelvin` · `Lorentz_force` · `Los_Alamos_National_Laboratory` · `Lucien_Gaulard` · `Luigi_Galvani` · `Magnetic_circuit` · `Magnetic_complex_reluctance` · `Magnetic_field` · `Magnetic_flux` · `Magnetic_moment` · `Magnetic_reluctance` · `Magnetic_scalar_potential` · `Magnetic_vector_potential` · `Magnetism` · `Magnetization` · `Magnetomotive_force` · `Magnetostatics` · `Mains_electricity_by_country` · `Mathematical_descriptions_of_the_electromagnetic_field` · `Maxwell's_equations` · `Maxwell's_equations_in_curved_spacetime` · `Maxwell_stress_tensor` · `Mean_of_a_function` · `Metre` · `Michael_Faraday` · `Microwave` · `Mikhail_Dolivo-Dobrovolsky` · `Miksa_Déri` · `Nagycenk` · `Nature_(journal)` · `Network_analysis_(electrical_circuits)` · `Nikola_Tesla` · `Norway` · `Ohm's_law` · `Oliver_Heaviside` · `Optics` · `Ottó_Bláthy` · `PBS` · `Pavel_Yablochkov` · `Permeability_(electromagnetism)` · `Permeance` · `Permittivity` · `Plain_old_telephone_service` · `Polarization_density` · `Pomona,_California` · `Poynting's_theorem` · `Radio_frequency` · `Rectifier` · `Redlands,_California` · `Relativistic_electromagnetism` · `Resonator` · `Retarded_potential` · `Right-hand_rule` · `Ripple_(electrical)` · `Rome` · `Root_mean_square` · `Rotor_(electric)` · `Sebastian_Ziani_de_Ferranti` · `Second` · `Series_and_parallel_circuits` · `Shunt_(electrical)` · `Siemens` · `Siméon_Denis_Poisson` · [[Sine_wave]] · `Skin_effect` · `Split-phase_electric_power` · `Square_wave_(waveform)` · `Static_electricity` · `Stator_(electric_machines)` · `Sweden` · `Switzerland` · `Symmetrical_components` · `Synchrotron_radiation` · `Telephone` · `Television` · `Thomas_Edison` · `Three-phase_electric_power` · `Tivoli,_Lazio` · `Traction_motor` · `Transformer` · `Transmission_tower` · `Triangle_wave` · `Triboelectric_effect` · `Turin` · `Twisted_pair` · `University_of_Florida` · `University_of_Pavia` · `Utah` · `Utility_frequency` · `Volt` · [[Voltage]] · `War_of_the_currents` · `Watt` · `Waveform` · `Waveguide_(radio_frequency)` · `Wavelength` · [[Wayback_Machine]] · `Wilhelm_Eduard_Weber` · `William_Gilbert_(physicist)` · `William_Ritchie_(physicist)` · `Wireless` ## From the Real GENERATIVE library ![Alternating current](https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Types_of_current.svg/260px-Types_of_current.svg.png) *Alternating current — placed from the Real G.E.N.E.R.A.T.I.V.E. course library (STEM and Music room). Source: Wikimedia Commons (via Wikipedia article media). [Details & license](https://commons.wikimedia.org/wiki/File:Types_of_current.svg).* > Alternating current (AC) is an electric current that periodically reverses direction and changes its magnitude continuously with time, in contrast to direct current (DC), which flows only in one direction. Alternating current is the form in which electric power is delivered to businesses and residences, and it is the form of electrical energy that consumers ([Wikipedia](https://en.wikipedia.org/wiki/Alternating_current)) <!-- REAL-GENERATIVE-MEDIA:END --> *SPINTRONICS · branch **P — Power transmission** · MicroSim pattern **H** ([[Signal|signal]]-over-time) composed with a rotating phasor. Draft staged by the headless draft queue; the publish stage adds frontmatter, the live editor iframe, and routes this into the Power-transmission branch folder.* ## Overview **Alternating current (AC)** is [[Electric_current|electric current]] whose direction reverses periodically, in contrast to **direct current (DC)**, which flows in one direction only. The dominant AC waveform is sinusoidal, so the instantaneous [[Voltage|voltage]] is ``` v(t) = Vp * sin(2*PI*f*t + phi) ``` where `Vp` is the peak (amplitude) voltage, `f` is the frequency, and `phi` is the phase. AC is the backbone of electric **power transmission**: because transformers act on changing magnetic flux, a sinusoidal voltage can be stepped up for low-loss long-distance transmission and stepped back down for use, which DC cannot do as simply. Standard mains frequency is **50 Hz** across most of the world and **60 Hz** in North America. ## The physics / derivation **Where the sinusoid comes from.** A coil of area `A` with `N` turns rotating at [[Angular_frequency|angular frequency]] `w` in a uniform field `B` links a flux `Phi = N*B*A*cos(w*t)`. By Faraday's law the induced EMF is `emf = -dPhi/dt = N*B*A*w*sin(w*t)` — a sinusoid of peak `Vp = N*B*A*w`. Mechanical rotation at `w = 2*PI*f` is literally what a generator turns into AC voltage. **Phasor picture.** A sinusoid is the vertical projection of a vector of length `Vp` rotating at `w`. Its angle is `w*t + phi` and its projection is `Vp*sin(w*t + phi)`. This is why AC circuit analysis is done with **phasors** and complex impedance rather than differential equations. **RMS — the value that matters for power.** The **root-mean-square** voltage is the DC voltage that would deliver the same average power to a resistor. For a sinusoid the mean of `sin^2` over a full cycle is exactly `1/2`, so ``` Vrms = Vp / sqrt(2) ~= 0.707 * Vp ``` Average power into a resistance `R` is `P = Vrms^2 / R`. Quoted AC voltages (120 V, 230 V) are **RMS**, not peak — 120 Vrms has a peak of about 170 V, and 230 Vrms about 325 V. **Period, frequency, phase.** `T = 1/f` is the period; `w = 2*PI*f` the angular frequency. The phase `phi` shifts the [[Wave|wave]] in time. In circuits with reactance, current lags or leads voltage by a load angle `theta`, and the **power factor** is `cos(theta)`. ## Parameter table (controls → real symbols) | Control | Symbol | Meaning | Range (sim) | |---------|:------:|---------|-------------| | frequency | `f` | cycles per second; `w = 2*PI*f` | 0.5 – 5.0 Hz | | peak voltage | `Vp` | amplitude; `Vrms = Vp/sqrt(2)` | 10 – 340 V | | phase | `phi` | time shift of the wave | −180 … 180° | | show v² | — | overlays `v^2(t)` and its mean to show `Vrms = sqrt(mean of v^2)` | toggle | *Note: the sketch runs at a low, human-watchable frequency so the rotating phasor is visible; every relationship shown (`Vrms`, `T`, `w`, the `sin^2` average) is exact for the chosen `f`. Mains presets for reference: 50/60 Hz, ~170 V peak ≈ 120 Vrms, ~325 V peak ≈ 230 Vrms.* ## Learning objective Understand that a sinusoidal AC voltage is the **projection of a rotating phasor**, and that its **RMS value** (`Vp/sqrt(2)`) — not its peak — sets the average power delivered, because the mean of `sin^2` over a cycle is `1/2`. <!-- CRAFT-LINK:START g12 --> *Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].* <!-- CRAFT-LINK:END --> <!-- SPINEPATH:BEGIN g20 — shortest chain of Wikipedia links between local articles to a Compendium Main article; do not hand-edit inside --> *Connected to the Apex Spine:* Alternating current → [[Fuel_cell|Fuel cell]] — [[WT!Thury_Hydrodynamics_Compendium|Compendium]] section 11, *Fuel cells: the same reaction without a flame*. <!-- SPINEPATH:END --> <!-- ELECSIM:BEGIN g28 — Electronics portal microsim (framework build, specs/sims/Alternating_current.json); do not hand-edit inside --> **Microsim — three.js (Wikitube framework):** *Alternating current: peak, mean and root mean square* <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/electronics/Alternating_current.html" data-title="Alternating current"></div> *Built from `MICROSIM_GUIDE/specs/sims/Alternating_current.json`; part of the [[Electronics]] set ([[PORTAL_Electronics]]).* <!-- ELECSIM:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Alternating_current) : [Wikitube](https://en.wikitube.io/wiki/Alternating_current) ## Previous hub tags Tree parent: [[Feedback]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*