
https://hrubos.tech/blogy/content/images/20260321195524-battery-hack2.png
Takže ako by mala byť uložená turbína na Liptovskej Mare? Tak, aby bila do zeme, nie do vody, domnievam sa že takto zvislo a voda ide zboku ako vietor:

https://hrubos.tech/blogy/content/images/20260322033226-turbina.png

https://hrubos.tech/blogy/content/images/20260321195552-battery-hack3.png
using Pkg
Pkg.add(["Plots", "LinearAlgebra"])
using LinearAlgebra
using Plots
# Parametre simulácie
dt = 0.01
steps = 500
# Častica (plazma)
mutable struct Particle
pos::Vector{Float64}
vel::Vector{Float64}
q::Float64
m::Float64
end
# Magnetické pole dvoch rovnakých pólov (zjednodušený model)
function magnetic_field(pos)
# Pozície magnetov (rovnaké póly)
m1 = [-1.0, 0.0]
m2 = [1.0, 0.0]
# Intenzita poľa (heuristická)
function B_from_magnet(p, m)
r = p - m
dist = norm(r) + 1e-5
return (1 / dist^2) * [-r[2], r[1]] # rotované pole (kolmé)
end
return B_from_magnet(pos, m1) + B_from_magnet(pos, m2)
end
# Lorentzova sila (2D verzia)
function lorentz_force(p::Particle)
B = magnetic_field(p.pos)
v = p.vel
# v × B v 2D (rozšírené do 3D)
return p.q * [v[2]*0 - 0*B[2], 0*B[1] - v[1]*0] + p.q * [v[2]*B[1] - v[1]*B[2], v[1]*B[2] - v[2]*B[1]]
end
# Inicializácia častíc
particles = [Particle(rand(2) .* 4 .- 2, rand(2) .* 2 .- 1, 1.0, 1.0) for _ in 1:50]
# Uloženie trajektórií
trajectories = [Vector{Vector{Float64}}() for _ in particles]
# Simulácia
for step in 1:steps
for (i, p) in enumerate(particles)
F = lorentz_force(p)
a = F / p.m
# Eulerova integrácia
p.vel += a * dt
p.pos += p.vel * dt
push!(trajectories[i], copy(p.pos))
end
end
# Vizualizácia
plt = plot(title="Simulácia plazmy medzi rovnakými pólmi magnetov", legend=false)
for traj in trajectories
xs = [p[1] for p in traj]
ys = [p[2] for p in traj]
plot!(plt, xs, ys)
end
display(plt)
readline()
using Pkg
Pkg.add(["Plots", "LinearAlgebra"])
using LinearAlgebra
using Plots
dt = 0.01
steps = 500
mutable struct Particle
pos::Vector{Float64} # 2D pozícia
vel::Vector{Float64} # 3D rýchlosť (kvôli v × B)
q::Float64
m::Float64
end
# Magnetické pole (stále v rovine XY, smer Z)
function magnetic_field(pos)
m1 = [-1.0, 0.0]
m2 = [1.0, 0.0]
function B_from_magnet(p, m)
r = p - m
dist = norm(r) + 1e-5
strength = 1 / dist^2
return [0.0, 0.0, strength] # pole kolmo na rovinu (Z)
end
return B_from_magnet(pos, m1) + B_from_magnet(pos, m2)
end
# Lorentzova sila F = q (v × B)
function lorentz_force(p::Particle)
v3 = p.vel
B3 = magnetic_field(p.pos)
return p.q * cross(v3, B3)
end
# Inicializácia častíc
particles = [
Particle(rand(2) .* 4 .- 2,
[rand()*2-1, rand()*2-1, 0.0],
1.0, 1.0)
for _ in 1:50
]
trajectories = [Vector{Vector{Float64}}() for _ in particles]
z_components = [Float64[] for _ in particles]
# Simulácia
for step in 1:steps
for (i, p) in enumerate(particles)
F = lorentz_force(p)
a = F / p.m
p.vel += a * dt
p.pos += p.vel[1:2] * dt # len XY pohyb
push!(trajectories[i], copy(p.pos))
push!(z_components[i], F[3]) # kolmá zložka (v × B)
end
end
# --- Vizualizácia trajektórií ---
plt1 = plot(title="Trajektórie častíc (XY rovina)", legend=false)
for traj in trajectories
xs = [p[1] for p in traj]
ys = [p[2] for p in traj]
plot!(plt1, xs, ys)
end
# --- Vizualizácia kolmého smeru (Z zložka sily) ---
plt2 = plot(title="Kolmá zložka sily (v × B)_z", legend=false)
for z in z_components
plot!(plt2, z)
end
p=plot(plt1, plt2, layout=(1,2))
display(p)
readline()

Comments “Komentár: Tak už viete, prečo sú na Liptovskej Mare víry a zabili sa tam ľudia? Je tam elektráreň. Nakreslím: Platí vektorový súčin vektorov a pravidlo pravej ruky”